this addEventHandler ["put", { _container == this select 2;if(_container == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; };}];
Не работает обработчик событий в миссии
#1 OFFLINE
Posted 19 January 2022 - 18:07
#3 OFFLINE
Posted 19 January 2022 - 18:51
Использую триггер в активации пишу следующие: this and { this addEventHandler ["put", { _container == this select 2;if(_container == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; };}];}
В прикреплении файл с примером задания.
#5 OFFLINE
Posted 19 January 2022 - 19:02
1.Отформатируй немного свой код, не this select 2, а _this или params:
player addEventHandler ["put", { params ["", "", "_item"]; if (_item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; }; }];
2. В активации триггера тебе не нужно писать this and
3. this в триггере будет ссылаться на сам триггер, соответственно событие будет прикреплено к триггеру, если тебе нужно прикрепить его к игроку, то используй player, как я указал в примере
#6 OFFLINE
Posted 19 January 2022 - 19:28
2. В активации триггера тебе не нужно писать this and
Зависит от требуемого условия. Скажем, если нужно, чтобы игрок был в пределах триггера и не выше какой-либо высоты, то можно написать так:
this and { ((getPos player) select 2) < 100 }
3. this в триггере будет ссылаться на сам триггер, соответственно событие будет прикреплено к триггеру
Не всегда. Конкретно в этом случае this указывает на то, что нужно использовать настройки триггера в качестве условия, то есть this имеет булев тип.
#7 OFFLINE
Posted 19 January 2022 - 19:56
2. В активации триггера тебе не нужно писать this and
Зависит от требуемого условия. Скажем, если нужно, чтобы игрок был в пределах триггера и не выше какой-либо высоты, то можно написать так:
this and { ((getPos player) select 2) < 100 }3. this в триггере будет ссылаться на сам триггер, соответственно событие будет прикреплено к триггеру
Не всегда. Конкретно в этом случае this указывает на то, что нужно использовать настройки триггера в качестве условия, то есть this имеет булев тип.
Но судя по этому сообщению - "в активации пишу следующие", речь идет не про условие, а про поле "При Активации".
Edited by Denispetrov123, 19 January 2022 - 19:56.
#8 OFFLINE
Posted 19 January 2022 - 20:12
В активации тригерра написал следующие: this and { player addEventHandler ["put", {
params ["", "", "_item"];
if (_item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; };
}];} Не работает!
Попробовал убрать триггер, создал в папке миссии Int.sqf со следующим содержимым: player addEventHandler ["put", {
params ["", "", "_item"];
if (_item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; }; [attachment=6569:ArmA 3 Screenshot .png]
Тоже не работает.
#9 OFFLINE
Posted 19 January 2022 - 20:18
В активации тригерра написал следующие: this and { player addEventHandler ["put", { params ["", "", "_item"]; if (_item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; }; }];} Не работает!
Я же написал:
Kas99, неправильное условие.
Попробовал убрать триггер, создал в папке миссии Int.sqf со следующим содержимым: player addEventHandler ["put", { params ["", "", "_item"]; if (_item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; }; Тоже не работает.
Этот вариант получше. Но, опять же:
Kas99, а ты уверен, что кладёшь вещь типа rhsusf_mine_m14? Запротоколируй и посмотри результат.
Результаты будут?
#10 OFFLINE
Posted 19 January 2022 - 20:27
Не верный класс мины? Или триггер здесь не надо ставить.
#11 OFFLINE
Posted 19 January 2022 - 20:31
Не верный класс мины?
Пока я склоняюсь к этому варианту.
Или триггер здесь не надо ставить.
Пока я не вижу в нём необходимости, но можно и задействовать.
#12 OFFLINE
Posted 19 January 2022 - 20:50
Триггер убрал. В Init.sqf написал следущие: player addEventHandler ["put", {
__item == _this select 3;
if (__item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; };
}]; Не срабатывает событие.
#13 OFFLINE
Posted 19 January 2022 - 20:55
В Init.sqf написал следущие: player addEventHandler ["put", { __item == _this select 3; if (__item == "rhsusf_mine_m14") then { ["Z","SUCCEEDED"] call bis_fnc_taskSetState; }; }]; Не срабатывает событие.
Во-первых, написано с ошибками.
Во-вторых, ты что, не поменяв название класса, надеешься, что наконец-то сработает?
Ну и в-третьих, результаты протоколирования будут?
#14 OFFLINE
Posted 19 January 2022 - 22:13
Нашёл код работающий. Это другой обработчик событий: Player addEventHandler ["Fired", {if ((_this select 4) == "rhsusf_mine_m14_ammo") then {["Z","SUCCEEDED"] call bis_fnc_taskSetState;}}]; Прописал это в Int.sqf