Код
function SomeTrigger_Actions takes nothing returns nothing
local unit u = GetTriggerUnit()
local group g = CreateGroup()
local unit f = null
local player p = GetOwningPlayer(u)
call GroupEnumUnitsInRange(g, GetWidgetX(u), GetWidgetY(u), 200., null)
loop
set f = FirstOfGroup(g)
exitwhen f == null
if(IsUnitEnemy(f, p) and GetWidgetLife(f) > .405) then
// Юнит враг делаем че-то...
endif
call GroupRemoveUnit(g, f)
endloop
call DestroyGroup(g)
set u = null
set g = null
set f = null
set p = null
endfunction
Вот тебе самый оптимизированный и быстродействующий вариант. В твоем случае у тебя утекает boolexpr и ты используеш точки вместо координат