Лучший Ответ
Sa-Matra
,
22 November 2015 - 13:12
Терпеть не могу триггеры, но все-таки решил попробовать помочь. То что я привел выше это решение достаточно сложное (но более гибкое), но в принципе тут можно одним триггером и 2д редактором обойтись.
CONDITION:
!(thisList isEqualTo (thisTrigger getVariable ["oldList", []]))
ON ACT:thisTrigger setVariable ["oldList", +thisList];
thisTrigger call {
_list = [];
{
_list pushBack _x;
{
if!(_x in _list) then {_list pushBack _x};
} forEach crew _x;
} forEach list _this;
{
_x allowDamage false;
} forEach _list;
{
_x allowDamage true;
} forEach ((_this getVariable ["oldSafeList", []]) - _list);
_this setVariable ["oldSafeList", _list];
};
Вкратце что происходит, триггер активируется когда меняется thisList (сравнивается старый thisList хранящийся в oldList), по активации создается список всех юнитов и техниики в thisList (oldSafeList), им ставится allowDamage false, потом разнице между старым oldSafeList и oldSafeList ставится allowDamage true чтобы техника и юниты вне триггера стали снова смертными.
(Для тех кто найдет тему в гугле, в А2 работать не будет, ибо там нет isEqualTo и pushBack, хотя их можно заменить на альтернативы)
Перейти к сообщению