天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟

标题: J教程 -单位组选取蝗虫类单位 [打印本页]

作者: 提百万    时间: 2018-12-30 01:59
标题: J教程 -单位组选取蝗虫类单位
蝗虫单位的选取用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

选取到蝗虫单位以后 可以衔接任意单位接受伤害的事件 希望大家多发掘其他用途.






欢迎光临 天工维度魔兽争霸开发者社区-全国最大的TJ集中营-原提百万联盟 (http://bbs.mvprpg.com/) Powered by Discuz! X3.4