马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
蝗虫单位的选取用GroupEnumUnitsInRange是选取不了的,好像只有通过 选取玩家单位才能选取
函数:
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
选取到蝗虫单位以后 可以衔接任意单位接受伤害的事件 希望大家多发掘其他用途.
|