Jump to content


Photo

Активация триггера


  • Please log in to reply
17 replies to this topic

#1 OFFLINE   Gordon-F1

Gordon-F1

    Рядовой

  • Пользователи
  • 3 posts

Posted 31 May 2015 - 11:12

Подскажите пожалуйста что прописать в условиях активации триггера чтобы он срабатывал на присутствие в нем гранаты, мины или взрывчатки?


  • 0

#2 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 31 May 2015 - 19:15

Подскажите пожалуйста что прописать в условиях активации триггера чтобы он срабатывал на присутствие в нем гранаты, мины или взрывчатки?

Ни чего не прописать), мне тоже нужно было решить эту проблему, да и нужно решать.

Тут нужен не триггер, а правильный код.


  • 0

#3 OFFLINE   Gordon-F1

Gordon-F1

    Рядовой

  • Пользователи
  • 3 posts

Posted 01 June 2015 - 18:37

Как вариант, я хочу попробовать от обратного через 2 триггера. В первом прописать  отсутствие в инвентаре игрока определенной гранаты или мины, (кстати что прописать в активации  пока не нашел, есть только на наличие предмета). Второй триггер с двумя условиями присутствие игрока и активация триггера 1. Но не особо корректно будет, ведь можно кинуть предмет и в другом месте а триггеры сработают. Или может есть еще какие то варианты?


  • 0

#4 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 01 June 2015 - 19:12

Проблема в том что пуля, а летящая в игре граната представляет собой пулю или снаряд, как будет угодно, хоть и можно создать командой createVehicle, это будет не тот объект, который можно будет отловить например командой nearestObjects, но я ещё не очень экспериментировал с этой командой, активатор триггера тупо на неё не отреагирует.

Тут нужен грамотный код именно в условие активации триггера, и главное очень быстро исполняемый код, это всё таки триггер, и триггеру на проверку отводится максимум пол секунды! А если триггер не один, сами понимаете на сколько это важно.


Edited by SteelRat, 01 June 2015 - 19:14.

  • 0

#5 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 01 June 2015 - 19:20

SteelRat, как вариант: использовать addEventHandler "FIRED" и отслеживать местоположение снаряда
  • 0

#6 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 01 June 2015 - 19:28

SteelRat, как вариант: использовать addEventHandler "FIRED" и отслеживать местоположение снаряда

Если я совсем не ослеп, и не выжил из ума), в массиве переменных передаваемых хандлером в исполняемый код, пуля представлена своим классом, а не объектом. Я рассматривал хандлеры как вариант.

Надеюсь я понятно выразил свою мысль.


ЗЫ

Проверил ещё раз)

ammo: String - Ammo used 

значение типа строка, это не объект, а класс объекта.


  • 0

#7 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 01 June 2015 - 19:34

SteelRat

this addEventHandler ["fired",{(_this select 6) spawn {while {alive _this} do {hint str position _this; sleep 0.01}}}]

Спамит позицию гранаты на ура


  • 0

#8 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 01 June 2015 - 22:07

SteelRat

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)

Но транслятор давал такой перевод, не буду выражаться), а мелькала у меня мысль что это может быть то что нужно). Стоило бы раньше ткнуть пальцем в небо)


ЗЫ

Топик мейкеру то похоже самое оно, а вот мне не айс, мне нужно что бы именно триггер спотил.


  • 0

#9 OFFLINE   vlad333000

vlad333000

    Полковник

  • Пользователи
  • 3224 posts
  • Откуда:Кострома

Posted 01 June 2015 - 23:52

SteelRat, после около получаса мучений (Поиск класса гранаты в cfgVehicles - так и не нашел) запилил проверку на гранату в в зоне (Окружность вокруг объекта), а так же броска из спец. места. Собственно вот результат:

Небольшой полигончик, где для срабатывания триггера нужно встать на спец место (Будет понятно) и закинуть гранату (Обычную) в небольшую ямку (Созданную из кубиков), где стоит мишень

Attached Files


  • 0

#10 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 02 June 2015 - 00:45

SteelRat, после около получаса мучений (Поиск класса гранаты в cfgVehicles - так и не нашел) запилил проверку на гранату в в зоне (Окружность вокруг объекта), а так же броска из спец. места. Собственно вот результат:

Небольшой полигончик, где для срабатывания триггера нужно встать на спец место (Будет понятно) и закинуть гранату (Обычную) в небольшую ямку (Созданную из кубиков), где стоит мишень

Подобное ищите в cfgAmmo


  • 0

#11 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 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 вернула пустую строку на гранату, ну да ладно. Это работает и это гут.

 

А я всё таки решил пойти другим путём. было уже достаточно времени взвесить все за и против. Я пришёл к выводу что наличие подобного кода в условии активации триггера, это не лучшая идея, тем более когда вокруг одного тела намного более одного триггера, и это мультиплеер, и триггерами управляет сервер.

Я решил мониторить это дело в другом потоке и не в триггере.


  • 0

#12 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 02 June 2015 - 01:12

ЗЫ

Я вспомнил про свой опыт, он был не про ваш.

Я проводил проверку командой

_obj isKindOf "Grenade"

то есть, создан ли объект на базе класса "Grenade", и именно этот номер и не прошёл.


  • 0

#13 OFFLINE   Gordon-F1

Gordon-F1

    Рядовой

  • Пользователи
  • 3 posts

Posted 03 June 2015 - 12:58

vlad333000 спасибо за пример, очень неплохой вариант для сингл миссии. Я честно говоря в скриптах и командах не силен, мягко говоря да и в редакторе относительно недавно, поэтому спрошу, можно ли эту команду запилить под мины и взрывчатку  заменой  (""GrenadeHand"" in massiv) . Пробовал менять эту строку результат нулевой.


  • 0

#14 OFFLINE   SteelRat

SteelRat

    Полковник

  • Пользователи
  • 3241 posts
  • Откуда:РФ

Posted 03 June 2015 - 23:15

vlad333000 спасибо за пример, очень неплохой вариант для сингл миссии. Я честно говоря в скриптах и командах не силен, мягко говоря да и в редакторе относительно недавно, поэтому спрошу, можно ли эту команду запилить под мины и взрывчатку  заменой  (""GrenadeHand"" in massiv) . Пробовал менять эту строку результат нулевой.

Вероятно ошибаетесь с именем класса мины-врывчатки.

Или увеличить радиус поиска, как вариант.


  • 0

#15 OFFLINE   ratnik_arma

ratnik_arma

    Рядовой

  • Пользователи
  • 7 posts

Posted 28 December 2020 - 22:38

У меня похожий вопрос. Как прописать условие срабатывания тригера при взрыве гранаты и повреждения объекта попавшего в зону поражения гранаты?


  • 0

#16 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 31 December 2020 - 03:13

Как прописать условие срабатывания тригера при взрыве гранаты и повреждения объекта попавшего в зону поражения гранаты?

Тут, пожалуй, нужно добавить обработчик события отслеживаемому объекту:

this addEventHandler ["Explosion", {
    params ["_object"];

    _object setVariable ["blownUp", true];
}];

а в триггере использовать такое условие:

obj getVariable ["blownUp", false]

Здесь obj -- отслеживаемый объект.


  • 0

#17 OFFLINE   ratnik_arma

ratnik_arma

    Рядовой

  • Пользователи
  • 7 posts

Posted 31 December 2020 - 17:42

 

Как прописать условие срабатывания тригера при взрыве гранаты и повреждения объекта попавшего в зону поражения гранаты?

Тут, пожалуй, нужно добавить обработчик события отслеживаемому объекту:

this addEventHandler ["Explosion", {
    params ["_object"];

    _object setVariable ["blownUp", true];
}];

а в триггере использовать такое условие:

obj getVariable ["blownUp", false]

Здесь obj -- отслеживаемый объект.

большое спасибо, отлично сработало). Может подскажешь литературу по скриптописанию для аrma 3  желательно на русском ?


  • 0

#18 OFFLINE   Schatten

Schatten

    Капитан

  • Пользователи
  • 1844 posts

Posted 31 December 2020 - 18:06

Может подскажешь литературу по скриптописанию для аrma 3  желательно на русском ?

Пожалуйста Войдите или Зарегистрируйтесь чтобы увидеть скрытое содержание


Edited by Schatten, 31 December 2020 - 18:06.

  • 0




Яндекс.Метрика