function fire takes nothing returns nothing
local unit caster=GetTriggerUnit()
local group g=CreateGroup()
local group temp=CreateGroup()
local player owner=GetOwningPlayer(caster)
local unit for
call GroupEnumUnitsInRange(temp,GetUnitX(caster),GetUnitY(caster),500,null)
loop
set for=FirstOfGroup(temp)
exitwhen for==null
if IsUnitAlly(for,owner) then
call GroupAddUnit(g,for)
endif
call GroupRemoveUnit(temp,for)
endloop
...
endfunction
//or -->
globals
private player Owner
endglobals
function filter takes nothing returns boolean
return IsUnitAlly(GetFilterUnit(),Owner)
endfunction
function fire takes nothing returns nothing
local unit caster=GetTriggerUnit
local group g=CreateGroup()
set Owner=GetOwningPlayer(caster)
call GroupEnumUnitsInRange(g,GetUnitX(caster),GetUnitY(caster),500,function filter)
...
endfunction
function fire takes nothing returns nothing
local unit caster=GetTriggerUnit()
local group g=CreateGroup()
local group temp=CreateGroup()
local player owner=GetOwningPlayer(caster)
local unit for
call GroupEnumUnitsInRange(temp,GetUnitX(caster),GetUnitY(caster),500,null)
loop
set for=FirstOfGroup(temp)
exitwhen for==null
if IsUnitAlly(for,owner) then
call GroupAddUnit(g,for) //<--- this makes no sense
endif
call GroupRemoveUnit(temp,for) //<--- the unit gets removed here anyways
endloop
...
endfunction