• Страница 1 из 1
  • 1
Перезахватываемая зона со сбрасываемым таймером
def
Воскресенье, 03.04.2016, 11:58
Пост №: 1


Пример миссии с зоной, которую можно перезахватывать.
Для победы требуется зайти в зону и защищать ее определенное время. Если противник не атакует, то удерживать зону можно меньшим составом, чем это требуется при атаке противника.

Лучше сначала загрузить миссию и почитать код триггеров, а потом прочитать пояснения по настраиваемым параметрам ниже.

Можно задавать следующие параметры захвата
(в init.sqf задаем начальные значения, а в дополнительных триггерах, если нужно (см. пример с триггером казармы) )

ZoneTimerInterval = 0.0167;  // интервал времени, требующийся для захвата в общем случае
для примера поставил минуту. как вычислять? x/60 = кол-во минут в "десятичном" формате. К примеру, 0.5 - полчаса.

ZoneFreeDefenders = 1; // кол-во защитников в зоне, которая не атакуется (если меньше, то зона становится ничейной)
Для примера поставил 1. Если условия захвата противником зоны не выполняются, то для того, чтобы не потерять ее (сделать ничейной) достаточно X бойцов.

ZoneReCaptureDefenders = 0; // кол-во защитников в зоне, при попытке ее захвата второй стороной

ZoneReCaptureAttackers = 1; // кол-во атакующих, пытающихся завладеть зоной (не важно, перезахват или захват ничейной)

Это привычные и понятные нам по стандартным миссиям RBC переменные: сколько нужно атакующих (больше или равно) и сколько нужно обороняющихся (меньше или равно), чтобы зона была перезахвачена атакующими.

(Attackers >= ZoneReCaptureAttackers ) && (Defenders <= ZoneReCaptureDefenders)

Например, при
ZoneReCaptureAttackers = 4;ZoneReCaptureDefenders = 2;
захват произойдет только если выполнены оба условия:
В зону вошло более 3х бойцов, в то время, как в зоне оставалось менее трех бойцов обороны.

// не обязательная переменная, меняющая время захвата, при определенных условиях (для примера)
ZoneTimerInterval2 = 0.0085; // интервал времени требующийся для удержания для победы, в случае, если выполнено условие второго триггера

Ссылка на миссию (исходник и mp-версия)
(требуется WMT_Main, WMT_Time (можно и без них, тогда оповещение делаем другим способом))
Сообщение отредактировал def - Воскресенье, 03.04.2016, 12:04

Автор темы
 
def
Воскресенье, 03.04.2016, 12:09
Пост №: 2
Данная конфигурация триггеров была проверена на играх ifa rb (Битва за Шидлув)
Автор темы
 
def
Понедельник, 11.04.2016, 00:12
Пост №: 3
так же данная конфигурация была использована при создании миссии, где одна сторона должна удерживать зону всю игру, а вторая может захватить за 15 минут. в конце игры (на 90й минуте), если победа не произошла раньше, побеждает та сторона, которая владеет зоной. если никто то ничья.

для этого вместо одного из победных триггеров ставим триггер а-ля
условие : (isServer)&& (daytime > 6.495)
активация: if (ZoneCaptured == "BLUFOR") then {[[[west, "Зона захвачена силами США!"], { _this call wmt_fnc_endmission;}], "bis_fnc_spawn"] call bis_fnc_mp; };if (ZoneCaptured == "OPFOR") then {[[[west, "Зона захвачена силами ВС РФ!"], { _this call wmt_fnc_endmission;}], "bis_fnc_spawn"] call bis_fnc_mp; };if (ZoneCaptured == "") then {[[[resistance, "Вы не смогли захватить зону!"], { _this call wmt_fnc_endmission;}], "bis_fnc_spawn"] call bis_fnc_mp; };

Автор темы
 
  • Страница 1 из 1
  • 1
Поиск: