Подскажите пожалуйста что прописать в условиях активации триггера чтобы он срабатывал на присутствие в нем гранаты, мины или взрывчатки?
Активация триггера
#1
OFFLINE
Отправлено 31 May 2015 - 11:12
#2
OFFLINE
Отправлено 31 May 2015 - 19:15
Подскажите пожалуйста что прописать в условиях активации триггера чтобы он срабатывал на присутствие в нем гранаты, мины или взрывчатки?
Ни чего не прописать), мне тоже нужно было решить эту проблему, да и нужно решать.
Тут нужен не триггер, а правильный код.
#3
OFFLINE
Отправлено 01 June 2015 - 18:37
Как вариант, я хочу попробовать от обратного через 2 триггера. В первом прописать отсутствие в инвентаре игрока определенной гранаты или мины, (кстати что прописать в активации пока не нашел, есть только на наличие предмета). Второй триггер с двумя условиями присутствие игрока и активация триггера 1. Но не особо корректно будет, ведь можно кинуть предмет и в другом месте а триггеры сработают. Или может есть еще какие то варианты?
#4
OFFLINE
Отправлено 01 June 2015 - 19:12
Проблема в том что пуля, а летящая в игре граната представляет собой пулю или снаряд, как будет угодно, хоть и можно создать командой createVehicle, это будет не тот объект, который можно будет отловить например командой nearestObjects, но я ещё не очень экспериментировал с этой командой, активатор триггера тупо на неё не отреагирует.
Тут нужен грамотный код именно в условие активации триггера, и главное очень быстро исполняемый код, это всё таки триггер, и триггеру на проверку отводится максимум пол секунды! А если триггер не один, сами понимаете на сколько это важно.
Сообщение отредактировал SteelRat: 01 June 2015 - 19:14
#6
OFFLINE
Отправлено 01 June 2015 - 19:28
SteelRat, как вариант: использовать addEventHandler "FIRED" и отслеживать местоположение снаряда
Если я совсем не ослеп, и не выжил из ума), в массиве переменных передаваемых хандлером в исполняемый код, пуля представлена своим классом, а не объектом. Я рассматривал хандлеры как вариант.
Надеюсь я понятно выразил свою мысль.
ЗЫ
Проверил ещё раз)
ammo: String - Ammo used
значение типа строка, это не объект, а класс объекта.
#8
OFFLINE
Отправлено 01 June 2015 - 22:07
this addEventHandler ["fired",{(_this select 6) spawn {while {alive _this} do {hint str position _this; sleep 0.01}}}]Спамит позицию гранаты на ура
ГЫ
Я часто и долго пялился на этот элемент массива
projectile: Object - Object of the projectile that was shot (Arma 2: OA and onwards)
Но транслятор давал такой перевод, не буду выражаться), а мелькала у меня мысль что это может быть то что нужно). Стоило бы раньше ткнуть пальцем в небо)
ЗЫ
Топик мейкеру то похоже самое оно, а вот мне не айс, мне нужно что бы именно триггер спотил.
#9
OFFLINE
Отправлено 01 June 2015 - 23:52
SteelRat, после около получаса мучений (Поиск класса гранаты в cfgVehicles - так и не нашел) запилил проверку на гранату в в зоне (Окружность вокруг объекта), а так же броска из спец. места. Собственно вот результат:
Небольшой полигончик, где для срабатывания триггера нужно встать на спец место (Будет понятно) и закинуть гранату (Обычную) в небольшую ямку (Созданную из кубиков), где стоит мишень
Прикрепленные файлы
#10
OFFLINE
Отправлено 02 June 2015 - 00:45
SteelRat, после около получаса мучений (Поиск класса гранаты в cfgVehicles - так и не нашел) запилил проверку на гранату в в зоне (Окружность вокруг объекта), а так же броска из спец. места. Собственно вот результат:
Небольшой полигончик, где для срабатывания триггера нужно встать на спец место (Будет понятно) и закинуть гранату (Обычную) в небольшую ямку (Созданную из кубиков), где стоит мишень
Подобное ищите в cfgAmmo
#11
OFFLINE
Отправлено 02 June 2015 - 01:01
(player in thisList) && (call {massiv = []; {massiv = massiv + [typeOF _x]} forEach nearestObjects [position target, [], 1.5]; if (""GrenadeHand"" in massiv) then {true} else {false}})
Хмм. Знаете, я проделывал уже подобный опыт, у меня получился отрицательный результат, я это списал на то, что команда typeOf вернула пустую строку на гранату, ну да ладно. Это работает и это гут.
А я всё таки решил пойти другим путём. было уже достаточно времени взвесить все за и против. Я пришёл к выводу что наличие подобного кода в условии активации триггера, это не лучшая идея, тем более когда вокруг одного тела намного более одного триггера, и это мультиплеер, и триггерами управляет сервер.
Я решил мониторить это дело в другом потоке и не в триггере.
#12
OFFLINE
Отправлено 02 June 2015 - 01:12
ЗЫ
Я вспомнил про свой опыт, он был не про ваш.
Я проводил проверку командой
_obj isKindOf "Grenade"
то есть, создан ли объект на базе класса "Grenade", и именно этот номер и не прошёл.
#13
OFFLINE
Отправлено 03 June 2015 - 12:58
vlad333000 спасибо за пример, очень неплохой вариант для сингл миссии. Я честно говоря в скриптах и командах не силен, мягко говоря да и в редакторе относительно недавно, поэтому спрошу, можно ли эту команду запилить под мины и взрывчатку заменой (""GrenadeHand"" in massiv) . Пробовал менять эту строку результат нулевой.
#14
OFFLINE
Отправлено 03 June 2015 - 23:15
vlad333000 спасибо за пример, очень неплохой вариант для сингл миссии. Я честно говоря в скриптах и командах не силен, мягко говоря да и в редакторе относительно недавно, поэтому спрошу, можно ли эту команду запилить под мины и взрывчатку заменой (""GrenadeHand"" in massiv) . Пробовал менять эту строку результат нулевой.
Вероятно ошибаетесь с именем класса мины-врывчатки.
Или увеличить радиус поиска, как вариант.
#15
OFFLINE
Отправлено 28 December 2020 - 22:38
У меня похожий вопрос. Как прописать условие срабатывания тригера при взрыве гранаты и повреждения объекта попавшего в зону поражения гранаты?
#16
OFFLINE
Отправлено 31 December 2020 - 03:13
Как прописать условие срабатывания тригера при взрыве гранаты и повреждения объекта попавшего в зону поражения гранаты?
Тут, пожалуй, нужно добавить обработчик события отслеживаемому объекту:
this addEventHandler ["Explosion", {
params ["_object"];
_object setVariable ["blownUp", true];
}];
а в триггере использовать такое условие:
obj getVariable ["blownUp", false]
Здесь obj -- отслеживаемый объект.
#17
OFFLINE
Отправлено 31 December 2020 - 17:42
Как прописать условие срабатывания тригера при взрыве гранаты и повреждения объекта попавшего в зону поражения гранаты?
Тут, пожалуй, нужно добавить обработчик события отслеживаемому объекту:
this addEventHandler ["Explosion", { params ["_object"]; _object setVariable ["blownUp", true]; }];а в триггере использовать такое условие:
obj getVariable ["blownUp", false]Здесь obj -- отслеживаемый объект.
большое спасибо, отлично сработало). Может подскажешь литературу по скриптописанию для аrma 3 желательно на русском ?
#18
OFFLINE
Отправлено 31 December 2020 - 18:06
Может подскажешь литературу по скриптописанию для аrma 3 желательно на русском ?
Сообщение отредактировал Schatten: 31 December 2020 - 18:06












