Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Краткое справочное руковод...doc
Скачиваний:
0
Добавлен:
01.07.2025
Размер:
218.11 Кб
Скачать
    1. Другие действия

      1. spawn

Для того, чтобы заданная сущность появилась в игровом мире, существует действие spawn. Существует несколько вариантов записи этого действия.

{spawn “<имя сущности>” <дополнительные опции>

{<действия>}

}

Спаунит сущность с заданным именем в текущей позиции, развернутую по направлению текущего воздействия (если не заданы доп. опции).

В дополнительных параметрах с помощью опций noposition можно принудительно задать вместо позиции воздействия центр объекта, а с помощью nonormal – не разворачивать новую сущность по направлению воздействия. Также можно задать смещение относительно текущей позиции с помощью параметра offset <x> <y> <z>.

Внутри этого действия можно использовать другие действия, которые будут применяться к уже появившемуся объекту.

Примеры:

{on bullet_hit

{if volume “crown”

{spawn “tree_hit_small”}

}

}

При этом появится спецэффект попадания в крону дерева в месте попадания пули, при чем он будет развернут в направлении полета пули.

{on bullet_hit

{spawn “ex_bomb_big” nonormal}

{spawn “shellhole_big” nonormal}

}

В данном случае спецэффект взрыва не будет развернут в направлении полета попавшей в сущность пули.

Другой вариант записи действия:

{spawn “<имя сущности>” “<имя кости>” <направление>}

Спаунит сущность, развернутую в заданном направлении от заданной кости текущей сущности. Направление задается буквой оси (x, y, z), либо словом random, означающим выбор произвольной оси.

Пример использования:

{spawn “circledust_norm” “FXshot” x}

Спаунит спецэффект дыма из кости, ориентируя его по оси x.

Или, при разрывании человека:

{spawn “human_hand” “handl”

{impulse up 1 0.5 dir 8 4

cx 0 12 cy 0 12

fx 0 60 fy 0 60 fz 80 40

}

}

При этом появляется сущность “рука человека” в позиции кости левой руки, и к ней применяется действие приложения импульса.

      1. able

С помощью действия able можно управлять свойствами сущности. Формат записи действия:

{able <свойство> <флажок включения>}

В данный момент у юнитов определены следующие свойства:

  • personage – является персонажем;

  • creature – имеется здоровье;

  • crew – может управлять техникой;

  • repair – может ремонтировать;

  • drop – может бросить предметы на землю;

  • talk – может говорить;

  • select – юнит можно выделить;

  • collect – его можно взять другим юнитом;

  • examine – можно покопаться у него в инвентаре;

  • inventory – инвентарный ящик;

  • weapon – оружие, лежащее на земле;

  • ammo – боеприпасы, лежащие на земле;

Например:

{on “explosion”

{able examine 0}

}

По умолчанию флажок включения равен 1.

      1. blastwave

Для того чтобы в определенном месте игрового пространства воспроизвести действие взрывной волны, необходимо выполнить действие blastwave. Формат записи:

{blastwave c4 <масса взрывчатки> r0 <радиус0> r1 <радиус1>}

После этого действия всем сущностям в радиусе r1 придет событие on blast. При этом энергия взрывной волны постоянна и равна заданной массе до радиуса r0, а затем в интервале от r0 до r1 убывает до 0.

К примеру, следующая запись:

{blastwave c4 4 r0 5 r1 8}

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

      1. bullet_detonate

В некоторых случаях при попадании снарядов в определенные волюмы сущности необходимо принудительно взорвать снаряд. Для этого существует действие bullet_detonate. Формат записи:

{bullet_detonate}

Пример использования:

{on bullet_hit

{if volume “wheel”

{if bullet “shell fg”

{bullet_detonate}

}

}

}

      1. chassis_work

При повреждениях компонент, влияющих на двигательные функции техники, необходимо иметь возможность отключать либо включать возможность передвижения. Для этого существует действие chassis_work. Формат записи:

{chassis_work <флажок включения>}

Пример с проверкой работоспособностей компонент, влияющих на шасси:

{if work “engine”

{if work “mover”

{chassis_work 1}

else

{chassis_work 0}

}

else

{chassis_work 0}

}

      1. weapon_work

При повреждениях компонент, влияющих на способность стрельбы, имеется возможность отключать либо включать оружие. Для этого существует действие weapon_work. Формат записи:

{weapon_work <флажок включения>}

Например:

{if work “gun”

{weapon_work “gun” 1}

else

{weapon_work “gun” 0}

}

      1. clear_inventory

При взрыве объектов должен очищаться инвентарь, который у них есть. Для этого используется действие clear_inventory. Формат записи:

{clear_inventory}

Пример использования:

{on “explosion”

{clear_inventory}

}

      1. delete

В игровом процессе при полном разрушении либо уничтожении объекта необходимо сделать так, чтобы он исчез с игрового мира. Для этого существует действие delete. Формат записи:

{delete}

Пример использования:

{on “explosion”

{delete}

}

      1. hide

Аналогичное действию delete существует действие hide. Оно необходимо для плавного исчезновения объектов (например, мелких кусков). Формат записи:

{hide <время исчезновения>}

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

При убивании людей либо разрушении техники до состояния, при котором ее уже невозможно восстановить (превращение в груду металла), объекты умирают, но при этом не удаляются с игрового мира. Для этого существует действие die. Формат записи:

{die}

Пример использования:

{on pierce

{if volume “head”

{die}

}

}

      1. ik_enable

Для разрешения или запрещения работы инверсной кинематики костей скелета сущностей можно использовать действие ik_enable. Формат записи:

{ik_enable “<имя кости>” <флажок включения>}

Пример использования:

{on pierce

{if volume “turret”

{ik_enable “turret” 0}

}

}

      1. say

Для того, чтобы юнит что-то сказал, необходимо вызвать действие say. Формат записи:

{say “<фраза>”}

Набор фраз задается в interface\text\says

      1. tear

При разрушении объектов возникает необходимость отрывания каких-либо кусков (например, отрывание башен у танков, колес у машин, и т.д.) Для этого используется действие tear. Оторванная часть после этого ведет себя как самостоятельный объект. Существует два способа записи действия:

{tear bone “<имя кости>” props “<свойства оторванной части>”

{<действия>}

}

{tear bone from_volume props “<свойства оторванной части>”

{<действия>}

}

В первом варианте явно задается кость, которую необходимо оторвать, во втором она берется из текущего волюма (в который, например, попал снаряд).

Свойства оторванной части задают props, по которым будет функционировать interaction оторванной части.

Внутри этого действия можно использовать другие действия, которые будут применяться к оторванному объекту.

Пример использования действия:

{on pierce

{if bullet “shell ap”

{if volume “wheel”

{tear bone from_volume props “steel small part”}

}

}

}

При этом пробитое снарядом колесо оторвется, будет действовать как самостоятельная сущность со свойствами “стальная маленькая часть”.

      1. impulse

Для того, чтобы приложить заданный импульс к объекту (например, после отрывания колеса), используется действие impulse. Формат записи:

{impulse up <значение> dir <значение>

cx <значение> cy <значение> cz <значение>

fx <значение> fy <значение> fz <значение>

}

Все параметры этого действия не являются обязательными.

Значения параметров являются величинами с разбросом. Например, значение up 5 2 означает 5±2, т.е. параметр up принимает случайное значение от трех до семи с равномерной вероятностью.

Параметр up задает вектор скорости, направленный вверх в мировых координатах, длиной, равной значению up.

Параметр dir задает коэффициент, с помощью которого учитывается вектор направления скорости воздействующего предмета (пули, другого объекта при столкновении).

Параметры cx, cy, cz определяют смещение точки приложения импульса от центра объекта либо от точки взаимодействия с предметом (пуля, другая сущность).

Параметры fx, fy, fz определяют дополнительный вектор силы, прикладываемой к объекту.

Пример записи действия, применительно к отрыванию колеса:

{if volume “wheel”

{tear bone from_volume props “steel small part”

{impulse up 3 1 dir 3 1}

}

}