Поправьте мой склероз, никак не вспомню как без нагромождения функций выбрать юнитов определенного типа принадлежащих только определенному игроку, насколько мне известно в булэкспр нельзя передать функцию с аргументами игрока и типа юнита. В идеале в одну-две строки это реализовать
Принятый ответ
darkowlom, нужен 1 массив и 1 функция
примерно так будет выглядеть
примерно так будет выглядеть
int types[];
bool myBoolExp(){
return GetUnitTypeId(GetFilterUnit())==types[GetPlayerId(GetOwningPlayer(GetFilterUnit()))];
}
...
types[GetPlayerId(myPlayer)]=myType;
GroupEnumUnitsOfPlayer(myGroup, myPlayer, function myBoolExp);
либо перебирать группу вручную
unit Picked
group myGroup
...
GroupEnumUnitsOfPlayer(myGroup, myPlayer, null);
loop{
Picked = FirstOfGroup(myGroup)
exitwhen Picked == null
GroupRemoveUnit(myGroup,Picked)
}
в данной ситуации лучше использовать первый вариант
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
Отредактирован darkowlom
примерно так будет выглядеть
Отредактирован darkowlom
Отредактирован nvc123
если быть точнее то первый более быстрый и удобный а второй используется там где из за необходимости муи нельзя юзать первый
но так как у тебя по 1 набору данных на каждого игрока то хватит и 1 варианта
Отредактирован 16GB
loop
set u = FirstOfGroup(udg_G)
if нужное условие then
call GroupRemoveUnit(udg_G,u)
exitwhen u == null
endloop