Терпеть не могу триггеры, но все-таки решил попробовать помочь. То что я привел выше это решение достаточно сложное (но более гибкое), но в принципе тут можно одним триггером и 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, хотя их можно заменить на альтернативы)
					
					
					
							Сообщение отредактировал Sa-Matra: 22 November 2015 - 13:14