SO, I have a unit group, and I used a loop to pick each unit and do the action, and then remove it. But the loop seems to be endless once active, and doesn't reach the ext actions.
DUDamage just creates a dummy to damage the picked unit, and h is the distance from the unit to the centre of the AoE.
DUDamage just creates a dummy to damage the picked unit, and h is the distance from the unit to the centre of the AoE.
Code:
call GroupEnumUnitsInRange(g, FFData.TargetX, FFData.TargetY, 250, null)
loop
//call GroupRefresh(g)
set u = FirstOfGroup(g)
exitwhen u == null
if not IsUnitType(u, UNIT_TYPE_STRUCTURE) and not IsUnitType(u, UNIT_TYPE_MECHANICAL) and IsUnitAlive(u) and not IsUnitAlly(u, FFData.TrigPlayer) then
set h = GetDistanceXY(GetUnitX(u) - FFData.TargetX, GetUnitY(u) - FFData.TargetY)
set i = i + 1
if FFData.Level == 1 then
if h <= 100.00 then
set d = 400.00
else
set d = 400.00 - (1.33 * (h - 100))
endif
else
if FFData.Level == 2 then
if h <= 100.00 then
set d = 600.00
else
set d = 600.00 - (2 * (h - 100))
endif
else
if h <= 100.00 then
set d = 800.00
else
set d = 800.00 - (2.66 * (h - 100))
endif
endif
endif
endif
call DUDamage(FFData.TrigPlayer, u, 1.00, d, false, false, ATTACK_TYPE_MAGIC, DAMAGE_TYPE_UNIVERSAL, WEAPON_TYPE_WHOKNOWS)
call GroupRemoveUnit(g, u)
endloop