Code
globals
boolean called = false
endglobals
function ForFunc takes nothing returns nothing
if(called == true) then
return
endif
if(GetUnitTypeId(GetEnumUnit()) == 'dumm') then //если юнит не дамми
call YourFunction()
set called = true
endif
endfunction
local group g = CreateGroup()
call GroupEnumUnitsInRange(g, 100., GetUnitX(dummy), GetUnitY(dummy), null)
call ForGroup(g, function ForFunc)
set called = false
set g = null
call DestroyGroup(g)
Вроде както так