| well, i'm making this spell Description below:
Blazing Flight
The caster summons fire spirits to aid him in flight, after 15 seconds/30 if hero has a certain aura, they will gently lower him down and vanish,
well there's no problem with the spell's code for me but it's a little bit too laggy, any ideas on how to make it less laggier or make the script smaller GUI/JASS will be appreciated.
P.S here's my code
then there's also a code that makes a circle on the ground that follows the caster CODE:
then there's the custom script part of that
 JASS: function Trig_CircleMovement_Actions takes nothing returns nothing
call SetUnitPositionLoc( udg_Circle_missile[1], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[1])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[1])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[2], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[2])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[2])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[3], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[3])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[3])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[4], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[4])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[4])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[5], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[5])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[5])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[6], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[6])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[6])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[7], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[7])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[7])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[8], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[8])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[8])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[9], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[9])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[9])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[10], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[10])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[10])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[11], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[11])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[11])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[12], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[12])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[12])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[13], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[13])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[13])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[14], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[14])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[14])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[15], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[15])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[15])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[16], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[16])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[16])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[17], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[17])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[17])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[18], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[18])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[18])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[19], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[19])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[19])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[20], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[20])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[20])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[21], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[21])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[21])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[22], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[22])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[22])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[23], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[23])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[23])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[24], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[24])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[24])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[25], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[25])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[25])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[26], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[26])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[26])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[27], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[27])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[27])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[28], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[28])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[28])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[29], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[29])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[29])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[30], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[30])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[30])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[31], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[31])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[31])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[32], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[32])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[32])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[33], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[33])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[33])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[34], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[34])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[34])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[35], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[35])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[35])) + 5.00 )) )
call SetUnitPositionLoc( udg_Circle_missile[36], PolarProjectionBJ(GetUnitLoc(udg_CCaster), DistanceBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[36])), ( AngleBetweenPoints(GetUnitLoc(udg_CCaster), GetUnitLoc(udg_Circle_missile[36])) + 5.00 )) )
endfunction
function InitTrig_CircleMovement takes nothing returns nothing
set gg_trg_CircleMovement = CreateTrigger( )
call TriggerRegisterTimerEventPeriodic( gg_trg_CircleMovement, 0.04 )
call TriggerAddAction( gg_trg_CircleMovement, function Trig_CircleMovement_Actions )
endfunction
function Trig_CircleNull_Actions takes nothing returns nothing
set udg_Circle_missile[1] = null
set udg_Circle_missile[2] = null
set udg_Circle_missile[3] = null
set udg_Circle_missile[4] = null
set udg_Circle_missile[5] = null
set udg_Circle_missile[6] = null
set udg_Circle_missile[7] = null
set udg_Circle_missile[8] = null
set udg_Circle_missile[9] = null
set udg_Circle_missile[10] = null
set udg_Circle_missile[11] = null
set udg_Circle_missile[12] = null
set udg_Circle_missile[13] = null
set udg_Circle_missile[14] = null
set udg_Circle_missile[15] = null
set udg_Circle_missile[16] = null
set udg_Circle_missile[17] = null
set udg_Circle_missile[18] = null
set udg_Circle_missile[19] = null
set udg_Circle_missile[20] = null
set udg_Circle_missile[21] = null
set udg_Circle_missile[22] = null
set udg_Circle_missile[23] = null
set udg_Circle_missile[24] = null
set udg_Circle_missile[25] = null
set udg_Circle_missile[26] = null
set udg_Circle_missile[27] = null
set udg_Circle_missile[28] = null
set udg_Circle_missile[29] = null
set udg_Circle_missile[30] = null
set udg_Circle_missile[31] = null
set udg_Circle_missile[32] = null
set udg_Circle_missile[33] = null
set udg_Circle_missile[34] = null
set udg_Circle_missile[35] = null
set udg_Circle_missile[36] = null
set udg_CCaster = null
endfunction
function InitTrig_CircleNull takes nothing returns nothing
set gg_trg_CircleNull = CreateTrigger( )
call TriggerRegisterTimerExpireEventBJ( gg_trg_CircleNull, udg_CircleTimer[1] )
call TriggerAddAction( gg_trg_CircleNull, function Trig_CircleNull_Actions )
endfunction
and here's the map if anyone wants to see it |