romanandre
New Member
- Reaction score
- 2
I'm been trying to make a periodic damage inside a timer function like this:
there is probaly sintax errors , but can we use GroupEnumUnitsInRange inside a timer function?
JASS:
globals
constant attacktype AT = ATTACK_TYPE_NORMAL;
constant damagetype DT = DAMAGE_TYPE_NORMAL;
constant weapontype WT = WEAPON_TYPE_WHOKNOWS;
private unit u
private group grp
endglobals
struct data
unit u;
unit t;
real x;
real y;
endstruct
function Targets takes unit target returns boolean
return (GetWidgetLife(target) > 0.405) and not
IsUnitType(target, UNIT_TYPE_STRUCTURE) and not
IsUnitType(target, UNIT_TYPE_FLYING) and not
IsUnitType(target, UNIT_TYPE_MAGIC_IMMUNE) and not
IsUnitType(target, UNIT_TYPE_MECHANICAL) and
IsUnitEnemy(target, GetOwningPlayer(u))
endfunction
function Pick takes nothing returns boolean
if (Targets(GetFilterUnit()))
UnitDamageTarget(u, GetFilterUnit(), 150, true, true, AT, DT, WT);
endif
return false;
}
function Timer takes nothing returns nothing
timer t = GetExpiredTimer();
data d = GetTimerData(t);
GroupEnumUnitsInRange(grp, 0, 0, 10000, Filter(function Pick));
BJDebugMsg("working");
endfunction
function onSpellCast takes nothing returns nothing
timer t = NewTimer();
data d = data.create();
d.u = GetTriggerUnit();
d.t = GetSpellTargetUnit();
d.x = GetUnitX(d.u);
d.y = GetUnitY(d.u);
SetTimerData(t, d);
u = d.u;
BJDebugMsg("working");
TimerStart(t, 1, true, function Timer);
endfunction
function onInit takes nothing returns nothing
RegisterSpellEffectEvent(039;A004039;, function onSpellCast);
endfunction
there is probaly sintax errors , but can we use GroupEnumUnitsInRange inside a timer function?