Вопрос странный, есть функция GetUnitsInRangeOfLocAll, но мой вопрос состоит в том, как она реализована на уровень ниже, или же как мне лучше реализовать её самостоятельно.

Принятый ответ

function GetUnitsInRangeOfLocAll takes real radius, location whichLocation returns group
    return GetUnitsInRangeOfLocMatching(radius, whichLocation, null)
endfunction

function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction

native GroupEnumUnitsInRangeOfLoc takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing
GroupEnumUnitsInRangeOfLoc - нативка, и что там внутри, я не знаю.

По поводу самостоятельной реализации.
Лучше всего использовать эту функцию.
native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing
А так, вот набросок.
globals
    group TempGroup
endglobals

function GetUnitsInRangeMatching takes real x, real y, real radius, boolexpr filter returns group
    set TempGroup = CreateGroup()
    call GroupEnumUnitsInRange(TempGroup, x, y, radius, filter)
    return TempGroup
endfunction

function GetUnitsInRangeAll takes real x, real y, real radius returns group
    return GetUnitsInRangeOfLocMatching(x, y, radius, null)
endfunction
`
ОЖИДАНИЕ РЕКЛАМЫ...
1
28
5 лет назад
Отредактирован PT153
1
function GetUnitsInRangeOfLocAll takes real radius, location whichLocation returns group
    return GetUnitsInRangeOfLocMatching(radius, whichLocation, null)
endfunction

function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
    local group g = CreateGroup()
    call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
    call DestroyBoolExpr(filter)
    return g
endfunction

native GroupEnumUnitsInRangeOfLoc takes group whichGroup, location whichLocation, real radius, boolexpr filter returns nothing
GroupEnumUnitsInRangeOfLoc - нативка, и что там внутри, я не знаю.

По поводу самостоятельной реализации.
Лучше всего использовать эту функцию.
native GroupEnumUnitsInRange takes group whichGroup, real x, real y, real radius, boolexpr filter returns nothing
А так, вот набросок.
globals
    group TempGroup
endglobals

function GetUnitsInRangeMatching takes real x, real y, real radius, boolexpr filter returns group
    set TempGroup = CreateGroup()
    call GroupEnumUnitsInRange(TempGroup, x, y, radius, filter)
    return TempGroup
endfunction

function GetUnitsInRangeAll takes real x, real y, real radius returns group
    return GetUnitsInRangeOfLocMatching(x, y, radius, null)
endfunction
Принятый ответ
Чтобы оставить комментарий, пожалуйста, войдите на сайт.