PG Cold War - официальный форум

[ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Модератор форума: Pheonix 
Форум » Игры серии "В тылу врага" » Академия ВТВ » Вспомогательные объекты и служебные таги в CW (В помощь мапмейкерам)
Вспомогательные объекты и служебные таги в CW
TimoshДата: Пятница, 18.10.2013, 12:10 | Сообщение # 1
Генералиссимус
Группа: Разработчик
Сообщений: 3936
Репутация: 231 []
Статус: Offline
1. Особенности, связанные с наличием вспомогательных объектов
Не секрет, что в Cold War используются т. н. хелперы - невидимые вспомогательные объекты, осуществляющие то или иное действие. Они бывают самые разные - устанавливают окопы, разбрасывают кассетные боеприпасы, поднимают пыль под вертолетом. Большая часть из них является объектами типа game_entity (антуражный объект) и не оказыват никакого влияния на скрипты в миссии. Но в некоторых случаях (главным образом при работе системы самонаведения) могут появляться и хелперы типа actor, воспринимаемые игрой как отдельный юнит. Учет влияния подобных хелперов поможет избежать ошибок в скриптах миссий.

Пусть игрок является player 0, а враг - player 1. Хелперы, возникающие при работе наведения, таковы: один принадлежностью player 0 в точке пуска, два-три принадлежностью player 1 рядом с целью (не возникают при пуске по земле или зданию), один player 0 - сама ракета, перемещающаяся от точки пуска до цели. Время существования не превышает 7-9 секунд. Поскольку эти хелперы имеют "национальную принадлежность", они учитываются условием entities в скриптах, и в некоторых случаях такое условие может сработать не из-за реального юнита, а из-за хелпера.

Для ложного срабатывания необходимо определенным образом заданное условие: оно должно срабатывать при числе объектов в условии с player 0 или player 1 не просто >0, а как минимум >1.
Пример скрипта, способного на ложное срабатывание:

entities: в зоне zone1 с player 0 числом >1

Нужно отметить, что скрипты именно в такой форме (без разбору контролирующих все типы объектов и непременно числом 2 или больше) встречаются довольно редко.
Более простой скрипт, просто отслеживающий наличие в зоне объекта с player 0 или 1, на ложное срабатывание не способен, т. к. штатно сработает от самой цели или стрелка еще до пуска.
Скрипт неспособен на ложное срабатывание, если отслеживает юниты по типу (human, vehicle), MID или тагу.
Пример скрипта, неспособного на ложное срабатывание:

entities: в зоне zone1 с тагом diversant с player 0 числом >1

Хелперы не имеют ни нужных мидов, ни тагов, они не являются human или vehicle, поэтому в таких случаях ложное срабатывание невозможно. Главное препятствие - конечно, таги. Именно их удобнее всего применять при отслеживании юнитов.
Стоит еще отметить, что ложное срабатывание может и не иметь никакого значения: все, что происходит при пуске ракеты - это увеличение числа юнитов там, где они уже есть. 

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

entities: в зоне zone1 с player 0 числом >1

сработает не тогда, когда БМП-1 пустит ракету из зоны zone1 (ложное срабатывание), а тогда, когда она в эту зону въедет, ведь БМП-1 это сама машина, экипаж и десант, и если машина в zone1, то и ее экипаж тоже там же. Аналогично и для цели.

2. Служебные таги в Cold War.
Данный раздел не касается ложных срабатываний, а описывает служебные таги, присутствующие в CW. Помимо служебных тагов из ВТВ (broken, repairing, hidden, burned, destroyed), известных любому автору миссий, в CW есть немало своих служебных тагов. Давать их юнитам специально крайне не рекомендуется, хотя служебный таг человека, данный танку, ни к чему страшному не должен привести. Но все же лучше не рисковать. А вот отслеживание этих тагов условиями скриптов дает автору дополнительные возможности, в т. ч. и такие, которые иначе и не реализовать. Я по возможности стараюсь давать тагам такие имена, которые довольно трудно угадать случайно.

Авиация
plane_in_flight - когда самолет в воздухе, шасси airborne
takeoff_speed - дается самолету при достижении скорости взлета, остается в полете.
air_brake - воздушный тормоз, дается при посадке или при торможении на земле.
flaps_off - когда выпущены закрылки, при взлете и посадке.
damage_fly - при полете с повреждениями управляющих плоскостей
<имя_компонента>_break - при поломке компонента. Компонентов много, точный таг для каждого можно посмотреть в редакторе, сломав его. Снимается при починке.
body_brake - корпус сломан, самолет уничтожен.
crit_system_destroyed - сломан критически важный компонент, поломка еще одного такого компонента приведет к уничтожению самолета/вертолета/танка
air_attacking - из ВТВ. Дается авиаюниту в момент пикирования на цель после команды air_attack
heli_paradrop* - дается парашюту при прыжке с парашютом. Вместо * случайная цифра от 0 до 7, если надо отследить прыжок - лучше не по ним, а по наличию объекта с props parachute_new
heli_in_flight - когда вертолет в воздухе, шасси airborne
engine_started - когда двигатель вертолета запущен

Взрывчатка
mine_planted - из ВТВ. Мина установлена.
flare - из ВТВ. Сигнальная ракета или сигнальная мина.
fuse - из ВТВ. Фитиль динамита зажжен, для С4 не дается.
smoke - из ВТВ. Дымовая граната или дымовой снаряд дымят, в т. ч. и Штора.

Люди
melee_hit - человек был убит ударом руки (без ножа) или шокером. В 4 и 6 миссиях используется для допроса пленных. Таг снимается при попадании в труп пуль - пленный убит.
low_speed_weapon - если у человека в руках РПГ
<название_оружия>_in_hand - если у человека в руках ПУ самонаводящихся ракет. Например, igla_in_hand, stinger_in_hand, javelin_in_hand
low_speed_bullet - человек выстрелил из РПГ

Ракеты
stage_* - * от 01 до 40. Особо не нужен, но желательно не давать такие имена своим юнитам.
guided - дается ракете при старте, снимается при попадании в дым. Подходит для определения ракетного пуска.

Бронетехника
<имя_компонента>_break - при поломке компонента. Компонентов много, точный таг для каждого можно посмотреть в редакторе, сломав его. Снимается при починке.
*_wheel_broken - где * цифра от 1 до 4. Отслеживает число сломанных колес у БТР.
kaz_working - КАЗ включился и отражает ракетную атаку.
low_speed_bullet - техника получает этот таг при выстреле, если выпущенный снаряд (не ракета) может быть перехвачен КАЗ
 
Форум » Игры серии "В тылу врага" » Академия ВТВ » Вспомогательные объекты и служебные таги в CW (В помощь мапмейкерам)
Страница 1 из 11
Поиск:

Топ пользователей