GroupEnumUnitsOfPlayer
native GroupEnumUnitsOfPlayer takes [[[group|group.html]]] whichGroup, player whichPlayer, [[[boolexpr|boolexpr.html]]] filter returns [[[nothing|nothing.html]]]
Добавляет в группу юнитов, принадлежащих определённому игроку.
globals
group g = [[[CreateGroup|creategroup.html]]]()
endglobals
function gameStart takes [[[nothing|nothing.html]]] returns [[[nothing|nothing.html]]]
call GroupEnumUnitsOfPlayer([[[null|null.html]]], [[[null|null.html]]], [[[null|null.html]]]) // Безопасна при работе с [[[null|null.html]]]
call CreateUnit(Player(0), '[[[uloc|aloc.html]]]', 0, 0, 0) // Не игнорирует [[[aloc|aloc.html]]]
call GroupEnumUnitsOfPlayer(g, Player(0), [[[null|null.html]]])
call ConsolePrint([[[I2S|i2s.html]]]([[[GroupGetCount|groupgetcount.html]]](g))) // 1
call CreateUnit(Player(0), 'hfoo', 0, 0, 0)
call KillUnit(CreateUnit(Player(0), 'hfoo', 0, 0, 0)) // Добавляет мёртвых юнитов
call RemoveUnit(CreateUnit(Player(0), 'hfoo', 0, 0, 0)) // Добавляет удалённых юнитов
call GroupEnumUnitsOfPlayer(g, Player(0), [[[null|null.html]]])
call ConsolePrint([[[I2S|i2s.html]]]([[[GroupGetCount|groupgetcount.html]]](g))) // 4
call GroupEnumUnitsOfPlayer(g, Player(1), [[[null|null.html]]]) // Очищает группу перед вызовом
call ConsolePrint([[[I2S|i2s.html]]]([[[GroupGetCount|groupgetcount.html]]](g))) // 0
endfunction
function [[[main|main.html]]] takes [[[nothing|nothing.html]]] returns [[[nothing|nothing.html]]]
call TimerStart(CreateTimer(), 0, false, function gameStart)
endfunction
Добавление удалённых юнитов связано с процессом удаления юнитов игрой, которая ждёт завершения внутриигрового цикла перед полным удалением юнита во избежание всякого.
Если отложить действие, то игра успешно удалит юнита и он добавлен не будет.
globals
group g = CreateGroup()
endglobals
function timerCallback takes nothing returns nothing
call GroupEnumUnitsOfPlayer(g, Player(0), null)
call ConsolePrint([[[I2S|i2s.html]]]([[[GroupGetCount|groupgetcount.html]]](g))) // 0
endfunction
function gameStart takes nothing returns nothing
call RemoveUnit(CreateUnit(Player(0), 'hfoo', 0, 0, 0))
call TimerStart(CreateTimer(), 0, false, function timerCallback)
endfunction
function [[[main|main.html]]] takes [[[nothing|nothing.html]]] returns [[[nothing|nothing.html]]]
call TimerStart(CreateTimer(), 0, false, function gameStart)
endfunction
Last modified: 22 October 2024