Ставишь уже два триггера с такими же настройками. Отличаться они будут полями "при активации" и "при деактивации".
В первом триггере будет:
При активации
missionNamespace setVariable ['isInside_1', true, true];
[[[], {['VIP захвачен русскими!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
При деактивации
missionNamespace setVariable ['isInside_1', false, true];
[[[], {['VIP покинул зону!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
Во втором триггере соответственно:
При активации
missionNamespace setVariable ['isInside_2', true, true];
[[[], {['VIP захвачен американцами!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
И при деактивации
missionNamespace setVariable ['isInside_2', false, true];
[[[], {['VIP покинул зону!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
Как видишь, я теперь использую в каждом триггере свою переменную - "isInside_1" и "isInside_2", которая будет обозначать присутствие ВИПа в соответствующей зоне.
Далее меняем код в init.sqf:
if (isServer) then
{
if (isNil "isInside_1") then {isInside_1 = false; publicVariable "isInside_1";}; //объявляем переменные
if (isNil "isInside_2") then {isInside_2 = false; publicVariable "isInside_2";};
missionComplete = false;
[] spawn
{
i1 = 0; //для каждой зоны свой счетчик
i2 = 0;
_timeScore = 10;
while {!missionComplete} do
{
if (isInside_1) then //если ВИП в первой зоне - наращиваем нужный счетчик
{
i1 = i1 + 1;
} else
{
i1 = 0;
};
if (isInside_2) then
{
i2 = i2 + 1;
} else
{
i2 = 0;
};
if (i1 >= _timeScore && alive Ivan) then
{
[[[], {[resistance, 'VIP удержан в зоне!'] call wmt_fnc_endmission;} ], 'bis_fnc_spawn'] call bis_fnc_MP; //удержан в первой зоне - победа зеленых
[[[], {['VIP удержан в зоне!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
missionComplete = true;
};
if (i2 >= _timeScore && alive Ivan) then
{
[[[], {[west, 'VIP удержан в зоне!'] call wmt_fnc_endmission;} ], 'bis_fnc_spawn'] call bis_fnc_MP; //удержан во второй зоне - победа синих
[[[], {['VIP удержан в зоне!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
missionComplete = true;
};
sleep 1;
};
};
[] spawn
{
while {alive Ivan && !missionComplete} do //loop на проверку убийства ВИПа
{
sleep 0.5;
};
if (!alive Ivan) then //если убит - выводим сообщение и завершаем миссию
{
[[[], {[west, 'VIP убит!'] call wmt_fnc_endmission;} ], 'bis_fnc_spawn'] call bis_fnc_MP; //выставляешь вместо west ту сторону, которая должна выиграть при убийстве юнита
[[[], {['VIP убит!'] call WMT_fnc_ShowTaskNotification;} ], 'bis_fnc_spawn'] call bis_fnc_MP;
missionComplete = true;
};
};
};
Попробуй так, я не тестировал, но должно работать.
Поправка к моему посту выше: стороны должны называться west (синие), east (красные) и resistance (независимые)