Hello I am trying to make a spell that creates guardians arround you and moves them with you. I have done this so far:
What I need is:
1-) After (dur)30 seconds, boo must be false.
2-) TriggerSleepAction sux. And I don't know how to make the loop faster.
3-) That's all. Maybe you can fix leaks.
JASS:
function Trig_AS_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local real array x
local real array y
local unit array d
local integer DUMMY = 039;h001039;
local integer ABI = 039;A000039;
local integer lvl = GetUnitAbilityLevel(u, ABI)
local integer count = lvl + 2
local real dur = 30
local real range = 250
local integer i = 0
local integer j = 0
local integer l = 0
local real angle = 0
local real angle2 = 0
local player p = GetOwningPlayer(u)
local boolean boo = true
set x[0] = GetUnitX(u)
set y[0] = GetUnitY(u)
set boo = true
loop
exitwhen i == count
set i = i + 1
set angle = angle + (360/count)
set x<i> = x[0] + range * Cos(angle * bj_DEGTORAD)
set y<i> = y[0] + range * Sin(angle * bj_DEGTORAD)
set d<i> = CreateUnit(p, DUMMY, x<i>, y<i>, 0)
endloop
loop
exitwhen boo == false
set j = j + 1
set l = ModuloInteger(j, i) + 1
set angle2 = angle2 + (360/count)
set x[0] = GetUnitX(u)
set y[0] = GetUnitY(u)
set x[l] = x[0] + range * Cos(angle2 * bj_DEGTORAD)
set y[l] = y[0] + range * Sin(angle2 * bj_DEGTORAD)
call SetUnitX(d[l], x[l])
call SetUnitY(d[l], y[l])
call SetUnitAnimationByIndex(d[l], 2)
call SetUnitFacing(d[l], GetUnitFacing(u))
call TriggerSleepAction(0)
endloop
endfunction
function Trig_AS_Conditions takes nothing returns boolean
return GetSpellAbilityId() == 039;A000039;
endfunction
function InitTrig_AS takes nothing returns nothing
local trigger AS = CreateTrigger( )
call TriggerRegisterAnyUnitEventBJ( AS, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition( AS, Condition( function Trig_AS_Conditions ) )
call TriggerAddAction( AS, function Trig_AS_Actions )
endfunction</i></i></i></i></i>
What I need is:
1-) After (dur)30 seconds, boo must be false.
2-) TriggerSleepAction sux. And I don't know how to make the loop faster.
3-) That's all. Maybe you can fix leaks.