• Страница 1 из 1
  • 1
Форум » Мастерская » В помощь картоделу » Вопросы и ответы » Триггер - минное поле
Триггер - минное поле
DrSl1m
Пятница, 20.02.2015, 16:31
Пост №: 1
Помню, что где-то видел подобное, но уже пару часов не могу добиться необходимого эффекта.

Есть триггер, необходимо, чтобы любой игрок указанной стороны (допустим west) при входе в него погибал от взрыва. Т.е. аналог команды setDamage, только смерть должна наступать от взрыва, который должен произойти на месте входа в триггер. Причем, триггер должен срабатывать на наземные цели (включая технику), но не на воздушные. На другую сторону триггер срабатывать не должен, чтобы они могли беспрепятственно пересекать и находиться в этом триггере.

Колдовал с командой "тип снаряда" createVehicle (position player); в activation, но этих условий маловато, да и мина не 100% срабатывает, можно пробежать и она появится не взорвавшись. Можно поставить типом снаряда - миномётный, но мне кажется радиус поражения уж больно большой.
Сообщение отредактировал DrSl1m - Пятница, 20.02.2015, 17:05

Автор темы
 
Zealot
Пятница, 20.02.2015, 22:06
Пост №: 2
Цитата DrSl1m ()
Колдовал с командой "тип снаряда" createVehicle (position player); в activation, но этих условий маловато, да и мина не 100% срабатывает, можно пробежать и она появится не взорвавшись. Можно поставить типом снаряда - миномётный, но мне кажется радиус поражения уж больно большой.

Ну в принципе так и нужно, только создавать не снаряд а сразу взрыв (найти подходящий тип взрыва), и одновременно со взрывом делать (vehicle player) setDamage 1;, высоту проверять с помощью (getPos vehicle player) select 2

 
DrSl1m
Суббота, 21.02.2015, 12:44
Пост №: 3
Как-то странно получается.
Есть триггер:
Условие: this
Актив: if (((getPos player) select 2) < 8) then { ["M_Titan_AT" createVehicle (position player)];};

Срабатывает даже если я не в триггере.
Если меняю условие "this" на "player in thislist", то взрыв только при касании земли ногами, а техника катается спокойно и вертолёт садится.

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

Допускаю, что совершаю очевидную ошибку, но, видимо, уже мозг плохо работает ночью.

Добавлено (21.02.2015, 12:44)
---------------------------------------------
Результата удалось достичь следующим триггером:

Condition:

Код
thislist; found = false; {if (getPosATL _x select 2 < 8.0) then {found = true;};} forEach thisList; found;

Activation:

Код
mine = "M_Titan_AT" createVehicle (position player);

Какие-то проблемы связаны с использованием getPos, поэтому использовал getPosATL.
Сообщение отредактировал DrSl1m - Суббота, 21.02.2015, 12:44

Автор темы
 
Zealot
Суббота, 21.02.2015, 13:04
Пост №: 4
По-моему все проще должно быть. В условиях триггера
Код
(vehicle player in thislist) && {(getpos (vehicle player) ) select 2 > 8}
, в активации
Код
(vehicle player) setdamage 1; "M_Titan_AT" createVehicle (position (vehicle player));

 
DrSl1m
Суббота, 21.02.2015, 13:11
Пост №: 5
Тогда он почему-то не видит игрока в триггере, пока тот не покинет технику.
Сейчас попробую твой вариант потестить, хотя меня этот триггер уже достал smile
Сообщение отредактировал DrSl1m - Суббота, 21.02.2015, 13:22

Автор темы
 
Zealot
Суббота, 21.02.2015, 13:24
Пост №: 6
Цитата DrSl1m ()
Тогда он почему-то не видит игрока в триггере, пока тот не покинет технику.
Код
(vehicle player in thislist) && {(getpos (vehicle player) ) select 2 < 8}

конечно меньше, а не больше
и у триггера должна быть активация на любой юнит

 
DrSl1m
Суббота, 21.02.2015, 13:42
Пост №: 7
Цитата Zealot ()
и у триггера должна быть активация на любой юнит
Цитата DrSl1m ()
На другую сторону триггер срабатывать не должен, чтобы они могли беспрепятственно пересекать и находиться в этом триггере.

Вся суть в том, чтобы триггер работал только на одну сторону, значит еще и playerSide == west (к примеру) добавить придется в условие

Добавлено (21.02.2015, 13:42)
---------------------------------------------
Сработало при следующем виде:

Cond:


Код
(playerSide == west) && (vehicle player in thislist) && {(getpos (vehicle player) ) select 2 < 8}
Activ: 

Код
mine = "M_Titan_AT" createVehicle (position (vehicle player)); (vehicle player) setdamage 1;
 
Активация на любой юнит.
Сообщение отредактировал DrSl1m - Суббота, 21.02.2015, 13:30

Автор темы
 
Zealot
Суббота, 21.02.2015, 13:52
Пост №: 8
Цитата DrSl1m ()
Вся суть в том, чтобы триггер работал только на одну сторону
Ну вообще это нетипично для минного поля, когда оно работает только на одну из сторон. В случае если должно работать только на одну сторону лучше наверно мой скрипт запретной зоны использовать.

 
DrSl1m
Суббота, 21.02.2015, 14:05
Пост №: 9
Цитата Zealot ()
Ну вообще это нетипично для минного поля, когда оно работает только на одну из сторон.
Это можно обосновать условиями. Например: сторона установившая минное поле знает расположение мин, поэтому не попадает на них.

В любом случае, я наконец-то закончил, чему очень рад. Спасибо за помощь!

Автор темы
 
inwel
Суббота, 21.02.2015, 15:19
Пост №: 10
Может сделать настоящее минное поле? И одной из сторон дать миноискатели.
 
Форум » Мастерская » В помощь картоделу » Вопросы и ответы » Триггер - минное поле
  • Страница 1 из 1
  • 1
Поиск: