Добавлен Brax
Вопрос странный, есть функция 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
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован PT153
Лучше всего использовать эту функцию.