函数:
GroupEnumLocustsInRange(group g,real x, real y, real radius, boolexpr filter )为只选取蝗虫单位
GroupEnumUnitsInRangeAll ( group g,real x, real y, real radius, boolexpr filter)为选取所有的单位(包括蝗虫)
library LocustEnume
globals
private group GROUP = CreateGroup()
endglobals
function GroupEnumLocustsInRange takes group g,real x, real y, real radius, boolexpr filter returns nothing
local integer n = 0
local unit u
loop
exitwhen n == bj_MAX_PLAYER_SLOTS
call GroupEnumUnitsOfPlayer( GROUP, Player(n), filter )
loop
set u = FirstOfGroup(GROUP)
exitwhen u == null
if IsUnitInRangeXY( u, x, y, radius ) and GetUnitAbilityLevel(u,'Aloc') > 0 then
call GroupAddUnit( g, u )
endif
call GroupRemoveUnit(GROUP,u)
endloop
set n = n + 1
endloop
set u=null
endfunction
function GroupEnumUnitsInRangeAll takes group g,real x, real y, real radius, boolexpr filter returns nothing
local integer n = 0
local unit u
loop
exitwhen n == bj_MAX_PLAYER_SLOTS
call GroupEnumUnitsOfPlayer( GROUP, Player(n), filter )
loop
set u = FirstOfGroup(GROUP)
exitwhen u == null
if IsUnitInRangeXY( u, x, y, radius ) then
call GroupAddUnit( g, u )
endif
call GroupRemoveUnit(GROUP,u)
endloop
set n = n + 1
endloop
set u=null
endfunction
endlibrary