|
|
Модератор форума: Slon |
Форум РЕДАКТОР - ArmA 2 Operation Arrowhead Скрипты Иригге проверки наличия EAST с присвоением глобальной переме |
Иригге проверки наличия EAST с присвоением глобальной переме |
› Понедельник
› 16.03.2015
› 12:41
› Сообщение #
Доброго времени суток.
Просьба помочь в реализации данной задумки. Есть глобальная переменная TOWN_STATE, в зависимости от её значения (их 4) выполняются определенные скрипты. Есть сенсоры (пример) lass Item5 { position[]={-1007.4823,535.9903,12277.871}; angle=45; rectangular=1; repeating=1; interruptable=1; age="UNKNOWN"; text="Новая антена"; expCond="((""man"" countType list FFA_EASTSENSOR) < 1) && ((""LandVehicle"" countType list FFA_EASTSENSOR) == 0) && (FFA_TOWNGUARDSSPAWNED) && (FFA_ENEMYATTACK1) && !(alive FFA_RADIO) && (isServer) && (FFA_SERVERSTARTED) && (TOWN_STATE == 2)"; expActiv="Town=[] execVM ""NewAntena.sqf"""; class Effects { }; }; Тоисть когда TOWN_STATE=2, то переходим к выполнению NewAntena.sqf Нужно создать триггер который будет присваивать переменной TOWN_STATE значение 2 когда в данном триггере будет меньше 10% (можно меньше одного игрока EAST, стороны). Вот что я накидал FFA_EASTPRESENT1=createTrigger["EmptyDetector",getMarkerpos "EnemyArea"]; FFA_EASTPRESENT1 setTriggerTimeout [1, 1, 1, false]; FFA_EASTPRESENT1 setTriggerArea[850,850,0,false]; FFA_EASTPRESENT1 setTriggerActivation["EAST","PRESENT",true]; FFA_EASTPRESENT1 setTriggerStatements["((""landVehicle"" countType thislist) < 1) or ((""Man"" countType thislist) < 1)) FFA_TNDEF=2;", ""]; Данный тригер должен устанавливаться на текущую точку (где происходит битва) . Просьба помочь с синтаксисом и указать комманду для начала проверки точки тригером FFA_EASTPRESENT1 |
› Понедельник
› 16.03.2015
› 13:45
› Сообщение #
как только сделаеш так сразу проверять и начинает. в чём проблема?
|
› Понедельник
› 16.03.2015
› 14:05
› Сообщение #
FFA_EASTPRESENT1 setTriggerStatements["((""landVehicle"" countType thislist) < 1) or ((""Man"" countType thislist) < 1)) FFA_TNDEF=2;", ""];
беспокоит данная строка - в синтаксисе скриптов не силен. Нужно что бы когда выполняются условия ((""landVehicle"" countType thislist) < 1) or ((""Man"" countType thislist) < 1)) тоисть на точке нет EAST стороны (коими являются игроки), то установить переменной FFA_TNDEF значение 2. Сейчас не работает. И как правильно указать начало проверки точки данным тригером ? я так понимаю что нужно прописать FFA_EASTPRESENT1=true; ? в скрипте что выполняется перед этим ? Добавлено (16.03.2015, 13:59) Добавлено (16.03.2015, 14:05) |
› Понедельник
› 16.03.2015
› 14:22
› Сообщение #
FFA_TNDEF = 2
надо в активацию записать. https://community.bistudio.com/wiki/setTriggerStatements trigger setTriggerStatements [ "условие", "Активация", "деактивация" ] FFA_EASTPRESENT1 setTriggerStatements[" ((""landVehicle"" countType thislist) < 1) or ((""Man"" countType thislist) < 1)) ;", "FFA_TNDEF = 2", "" ]; https://community.bistudio.com/wiki/a_%3D%3D_b |
› Понедельник
› 16.03.2015
› 14:59
› Сообщение #
А как быть с проверкой данного триггера только в определенном скрипте а не все время ?
Можно ли сделать след образом ? if (FFA_EASTPRESENT1=true) then {FFA_TNDEF = 2} else {FFA_TNDEF = 3} Так будет работать ? Если да, тогда какие нужно оставить FA_EASTPRESENT1 setTriggerStatement ? p.s. TNDEF=3 запускает скрипт перехода к след городу |
› Понедельник
› 16.03.2015
› 15:13
› Сообщение #
Оставь Условие тригера - this
а проверку делай в скрипте _list = List FFA_EASTPRESENT1; - имя тригера if ( (("landVehicle" countType _list) < 1) or (("Man" countType _list) < 1) ) then {FFA_TNDEF = 2} else {FFA_TNDEF = 3}; |
› Понедельник
› 16.03.2015
› 16:51
› Сообщение #
"Оставь Условие тригера - this
а проверку делай в скрипте " - можно пример ? _list -просто обьявить privat переменную ? _list = List FFA_EASTPRESENT1; - имя тригера if ( (("landVehicle" countType _list) < 1) or (("Man" countType _list) < 1) ) then {FFA_TNDEF = 2} else {FFA_TNDEF = 3}; Спасибо. |
› Понедельник
› 16.03.2015
› 17:00
› Сообщение #
не обязательно. достаточно учитывать зону видимости. пример Прикрепления:
tr_test.utes.rar
(1.5 Kb)
|
› Четверг
› 19.03.2015
› 21:01
› Сообщение #
Slon,
//В скрипте прописываю _list = List FFA_ENEMYATTACK1; - имя тригера if ((("landVehicle" countType _list) < 1) or (("Man" countType _list) < 1)) then {FFA_TNDEF = 2} else {FFA_TNDEF = 3}; hint format [" FFA_TNDEF = %1\nlandVehicle = %2\nMan = %3", FFA_TNDEF, "landVehicle" countType _list, "Man" countType _list]; publicVariable "FFA_TNDEF"; В Init //Данный тригер должен запускать скрипт генерации новой вышки, если на точке меньше 1 бойца красных FFA_ENEMYATTACK1=createTrigger["EmptyDetector",getMarkerpos "EnemyArea"]; FFA_ENEMYATTACK1 setTriggerTimeout [1, 1, 1, false]; FFA_ENEMYATTACK1 setTriggerArea[850,850,0,false]; FFA_ENEMYATTACK1 setTriggerActivation["WEST","PRESENT",true]; //Тогда активацию в тригере нужно убрать ? FFA_ENEMYATTACK1 setTriggerStatements["((""landVehicle"" countType thislist) < 1) or ((""Man"" countType thislist) < 1));", "FFA_TNDEF = 2", "" ]; |
› Четверг
› 19.03.2015
› 21:27
› Сообщение #
|
› Четверг
› 19.03.2015
› 21:39
› Сообщение #
Slon, setTriggerStatements ["this", "", "" ]
? |
› Четверг
› 19.03.2015
› 21:49
› Сообщение #
такая строка по умолчанию будет. значит можно в срипте не писать
|
› Суббота
› 21.03.2015
› 11:07
› Сообщение #
|
| |||
| |||
Чат сайта |