Всем доброго времени суток. Подскажите как можно сделать чтобы триггер срабатывал в зависимости от того какое оружие находится в руках игрока. Желательно по подробней! Заранее спасибо!

Проверка того, какое оружие находится у игрока в руках.
#1
OFFLINE
Отправлено 20 April 2015 - 00:25
#2
OFFLINE
Отправлено 20 April 2015 - 01:03
// Особое внимание обратить на написание классов пушек, // классы должны быть описаны с точностью до заглавных и прописных букв, // такова особенность команды (item in [array items]) // написать это в условие активации триггера, или вывести в отдельный скрипт // с нужными вам правками, вместо unit по моему надо this, если в условие активации триггера currentWeapon unit in ["class_name_weapon_1", "class_name_weapon_2", ... , "class_name_weapon_100"]
#3
OFFLINE
Отправлено 20 April 2015 - 02:28
// Особое внимание обратить на написание классов пушек, // классы должны быть описаны с точностью до заглавных и прописных букв, // такова особенность команды (item in [array items]) // написать это в условие активации триггера, или вывести в отдельный скрипт // с нужными вам правками, вместо unit по моему надо this, если в условие активации триггера currentWeapon unit in ["class_name_weapon_1", "class_name_weapon_2", ... , "class_name_weapon_100"]
Спасибо! Мне нужно чтобы если игрок в определённом месте находится не с тем стволом тогда срабатывает скрипт. То, что Вы дали подходит?
#4
OFFLINE
Отправлено 20 April 2015 - 04:20
И ещё вопрос. Можно ли реализовать срабатывание триггера при выстреле из определённой винтовки? Если можно по подробней. Заранее спасибо!
Сообщение отредактировал pixel: 20 April 2015 - 04:20
#5
OFFLINE
Отправлено 21 April 2015 - 05:45
fired, прикрути к нему тригерИ ещё вопрос. Можно ли реализовать срабатывание триггера при выстреле из определённой винтовки? Если можно по подробней. Заранее спасибо!
у КК был скрипт на камеру прикрученную к летящей пули, попробуй это взять за основу
Сообщение отредактировал nepret: 21 April 2015 - 05:47
#6
OFFLINE
Отправлено 21 April 2015 - 09:30
_weapon = _this select 1;
if (_weapon == "arifle_MX_F) then {
unit setDamage 1;
};
}]
#7
OFFLINE
Отправлено 23 April 2015 - 00:40
// Особое внимание обратить на написание классов пушек, // классы должны быть описаны с точностью до заглавных и прописных букв, // такова особенность команды (item in [array items]) // написать это в условие активации триггера, или вывести в отдельный скрипт // с нужными вам правками, вместо unit по моему надо this, если в условие активации триггера currentWeapon unit in ["class_name_weapon_1", "class_name_weapon_2", ... , "class_name_weapon_100"]
Не могу понять сделал всё как написано триггер срабатывает но сразу же после загрузки, а не после того как я в него войду. Помогите разобраться.
unit addEventHandler ["FIRED",{
_weapon = _this select 1;
if (_weapon == "arifle_MX_F) then {
unit setDamage 1;
};
}]
И с этим не пойму что делать. Можно по подробней? Куда это вставить что да как. Заранее спасибо.
Сообщение отредактировал pixel: 23 April 2015 - 01:11
#8
OFFLINE
Отправлено 23 April 2015 - 11:50
Добавить условие на вхождение игрока в зону:Не могу понять сделал всё как написано триггер срабатывает но сразу же после загрузки, а не после того как я в него войду. Помогите разобраться.currentWeapon unit in ["class_name_weapon_1", "class_name_weapon_2", ... , "class_name_weapon_100"]
//Пример (currentWeapon unit in [...]) && ((unit distance target) < 100) //В данном примере зона - это окружность с радиусом 100 м и центром в точке объекта с именем target
Обычный "триггер" на выстрел:unit addEventHandler ["FIRED",{
_weapon = _this select 1;
if (_weapon == "arifle_MX_F) then {
unit setDamage 1;
};
}]
И с этим не пойму что делать. Можно по подробней? Куда это вставить что да как. Заранее спасибо.
unit - объект к которому прикрепляется условие
"FIRED" - название условия
Все, что в {} - это код, который будет исполняться при выстреле
Сообщение отредактировал vlad333000: 23 April 2015 - 12:05
#9
OFFLINE
Отправлено 23 April 2015 - 14:53
unit addEventHandler ["FIRED",{
_weapon = _this select 1;
if (_weapon == "arifle_MX_F) then {
unit setDamage 1;
};
}]
И с этим не пойму что делать. Можно по подробней? Куда это вставить что да как. Заранее спасибо.
Обычный "триггер" на выстрел:
unit - объект к которому прикрепляется условие
"FIRED" - название условия
Все, что в {} - это код, который будет исполняться при выстреле
Я его вписываю в условие триггера при нажатии ок получается это.
Прикрепленные файлы
Сообщение отредактировал pixel: 23 April 2015 - 14:53
#11
OFFLINE
Отправлено 23 April 2015 - 15:29
pixel, потому, что эта команда не возвращает булевое значение (true/false), ее нужно вписывать в активацию т к эту команду нужно выполнить если выполнится условие
PS Изучайте лучше команды и основы написания скриптов и работы с редактором.
И в активацию вписываю там тоже самое.
#14
OFFLINE
Отправлено 23 April 2015 - 15:44
Поэтому лучше будет, если вы будете писать через notepad++ с подсветкой синтаксиса и только потом уже вставлять в игру, так вы наглядно будее видеть сам скрипт и некоторые ошибки такие как вот что и случилось
#15
OFFLINE
Отправлено 23 April 2015 - 17:26
vlad333000, ещё 2 вопроса. Почему он(триггер) сразу срабатывает? И как сделать чтобы после выстрела сработал триггер? Чтобы после выстрела выдвинулась определённая группа. Заранее спасибо!
Сообщение отредактировал pixel: 23 April 2015 - 17:46
#16
OFFLINE
Отправлено 23 April 2015 - 20:41
1. Условие в триггере проверяется каждый кадр и только условие в строчке (не более). У вас сначала стояло только условие на оружие, то и нужного оружия в руках достаточноvlad333000, ещё 2 вопроса. Почему он(триггер) сразу срабатывает? И как сделать чтобы после выстрела сработал триггер? Чтобы после выстрела выдвинулась определённая группа. Заранее спасибо!
2/3. Прикрепить к юниту как я писал выше eventHandler типа "FIRED", где в {} написать нужный вам скрипт (Прм для 3 вопроса: anilihator moveTo position player)
#17
OFFLINE
Отправлено 23 April 2015 - 21:55
1. Условие в триггере проверяется каждый кадр и только условие в строчке (не более).vlad333000, ещё 2 вопроса. Почему он(триггер) сразу срабатывает? И как сделать чтобы после выстрела сработал триггер? Чтобы после выстрела выдвинулась определённая группа. Заранее спасибо!
Условие в триггере проверяется каждые 0.5с со скоростью считывания в один кадр.
Сообщение отредактировал Dimon UA: 23 April 2015 - 21:56
#18
OFFLINE
Отправлено 23 April 2015 - 22:16
1. Условие в триггере проверяется каждый кадр и только условие в строчке (не более). У вас сначала стояло только условие на оружие, то и нужного оружия в руках достаточноvlad333000, ещё 2 вопроса. Почему он(триггер) сразу срабатывает? И как сделать чтобы после выстрела сработал триггер? Чтобы после выстрела выдвинулась определённая группа. Заранее спасибо!
2/3. Прикрепить к юниту как я писал выше eventHandler типа "FIRED", где в {} написать нужный вам скрипт (Прм для 3 вопроса: anilihator moveTo position player)
Нихрена не понял, но всё равно спасибо! Можно пример? Без ссылок я в них пока не соображаю, что да как. Просто пример! Нужно, чтобы после выстрела из определённого ствола группа двинулась к поставленному вэйпоинту. Заранее спасибо!
Сообщение отредактировал pixel: 23 April 2015 - 22:21
#19
OFFLINE
Отправлено 21 March 2017 - 23:14
// Особое внимание обратить на написание классов пушек, // классы должны быть описаны с точностью до заглавных и прописных букв, // такова особенность команды (item in [array items]) // написать это в условие активации триггера, или вывести в отдельный скрипт // с нужными вам правками, вместо unit по моему надо this, если в условие активации триггера currentWeapon unit in ["class_name_weapon_1", "class_name_weapon_2", ... , "class_name_weapon_100"]
а не знаете ли как такое провернуть с вещью в рюкзаке (взрывчатка например)?
Сообщение отредактировал VeryScary: 21 March 2017 - 23:22
#20
OFFLINE
Отправлено 22 March 2017 - 13:54
а не знаете ли как такое провернуть с вещью в рюкзаке (взрывчатка например)?
Проверить, есть ли интересующая взрывчатка среди вещей рюкзака? Если да, то так:
(count (_explosives arrayIntersect (magazineCargo (unitBackpack player)))) > 0
где _explosives -- массив названий классов.