Хочу сделать триггер, который при активации показывает всех скрытых юнитов определенной фракции (opfor), которые находятся в триггере, и скрывает, как только юниты покидают его территорию.
Что делал. Cоздал триггер – activation type – present.
on activation – {_x hideobject false} foreach thislist,
on deactivation – {_x hideobject true} foreach thislist.
Что в итоге – on activation работает, показывая скрытых юнитов на территории триггера, но не скрывает их, когда покидают его пределы.
Что я делаю не так?
Дело в том, что переменная thisList в поле "On deact." недоступна.
Чтобы решить проблему, надо чтобы триггер активировался при изменении thisList. Тогда при активации можно будет раскрыть объекты в thisList и скрыть те, которых уже нет в thisList.
Решение такое:
- Условие (активации):
!(thisList isEqualTo (thisTrigger getVariable ["prevList", []]))
- При активации:
{_x hideObject false;} forEach thisList;
call {
_prevList = thisTrigger getVariable ["prevList", []];
{hideObject _x;} forEach (_prevList - thisList);
};
thisTrigger setVariable ["prevList", +thisList];
изначально нужно определить кто видим а кто нет чтобы не показывать тех кто уже показан или скрывать кто уже скрыт
А ничего не случится, если скрывать скрытые и раскрывать раскрытые объекты.
и проще всего сделать это через обычный скриптик проще будет ошибки исправлять и редактировать в дальнейшем
Спорное утверждение.
и к тому же не понятно что у тебя там в массиве thislist мб там у тебя просто напросто не объекты а что то другое
Это зависит от настроек триггера, но в любом случае там будут объекты.
Например, если триггер активируется присутствием юнитов BLUFOR, то в thisList будут только юниты BLUFOR.
попробуй просто вычленять через обычную функцию бисовскую
{_x hideobject false} foreach ([allunits,{side _x == west}]call bis_fnc_conditionalselect)
Таким образом раскроются все юниты BLUFOR, вместо, во-первых, OPFOR, и во-вторых, тех юнитов OPFOR, которые находятся в пределах триггера.
Кроме этого, лучше вместо функции использовать команду
Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание
.
Сообщение отредактировал Schatten: 18 February 2018 - 23:58