Учебник по созданию карт


Глава XX. Продвинутый маппинг.

§ 20.14 Курица на карте cs_italy

В этой статье мы расскажем как сделана курица на карте CS_ITALY.
Для ее создания необходимы следующие энтити-объекты:

Давайте посмотрим на всеми любимую курицу на CS_ITALY:

Курица на Cs_Italy


Примечание: мы расскажем об <устройстве> курицы как есть, т.е. так, как это сделано на карте CS_ITALY. Данный метод имеет несколько недостатков, о которых мы расскажем в конце статьи.


1. Создание курицы (как на cs_italy)

Курица на cs_italy является моделью (файл *.mdl). Модели на карту вставляются при помощи объекта cycler. Раньше, когда данного объекта не было, модели вставлялись через объект cycler_sprite, который вообще-то предназначен для вставки спрайтов. Мы решили делать курицу <как есть>, поэтому будем использовать cycler_sprite.

Проблема с курицей заключается в ее убийстве :) При отправлении курицы в мир иной, она должна исчезнуть, издать предсмертный звук и выпустить пару перышек — всего этого модель делать не умеет. Модель просто стоит на карте, она не может быть застрелена, она не может выпустить перышки, она не может издавать звуков.


Вот, как устроено убийство курицы

На самом деле игрок не убивает курицу (привет GreenPeace :). Он стреляет в невидимый разбиваемый объект func_breakable. Данный объект расположен в том же месте, где и курица.

От разрушения невидимого func_breakable активируются сразу 3 энтити-объекта, т.к. все они имеют одинаковое имя.


Рождение курицы заново

С началом нового раунда курица не станет вновь видимой! Ее необходимо сделать видмой при помощи другого объекта env_render. На CS_ITALY этот второй env_render активируется триггером, расположенным на базе контров. При рождении в начале раунда контры пробегают через триггер, и курица вновь <оживает> (становится видимой).


Расположение объектов

На рисунке ниже показано расположение объектов.

Расположение объектов на карте Cs_Italy


Черный выделенный желтой рамкой кубик — это курица. Внутри курицы расположен разбиваемый невидимый в игре объект (CS_ITALY).

Сверху курицы находится env_shooter. Этот объект выбрасывает перья от курицы. Справа внизу расположен звук (CS_ITALY), который раздается при убийстве курицы.

Слева от курицы расположены 2 объекта env_render. Один из них делает курицу невидимой, другой — наоборот видимой.

На нашей тестовой карте так же, как и на CS_ITALY, есть еще один объект — это trigger_multiple. Данный триггер, будучи активированным игроками, запускает второй env_render, который делает курицу видимой.

Trigger_multiple активирует env_render, который делает курицу видимой


Свойства энтити-объектов:

1. Cycler_sprite (используется для вставки модели курицы)
Name: chicken1 (имя курицы)
Angle: угол, который может быть использован для разворота курицы в нужном направлении
Sprite: models/chick.mdl (путь к файлу с моделью курицы)
Frames per second: 1 (скорость проигрывания анимации, т.е. 1 движение в секунду)
Render mode: Solid
FX Amount: 255 (при значении 0 — модель будет полностью невидимой)


2. Func_breakable (невидимый разбиваемый объект, расположенный на месте курицы)
Target on break: chicken1kill (имена трех объектов, активируемых при разрушении данного func_breakable)
Strenght: 1 (прочность)
Material type: flesh (тип материала, куски мяса)
Gibs Direction: Relative to attack (куски летят в направлении атаки)
Render mode: Texture
FX Amount: 0 (делает этот объект невидимым)


3.1 Env_render (делает курицу невидимой после ее убийства)
Name: chicken1kill
Target: chicken1
Render mode: Solid
FX Amount: 0 (делает курицу невидимой)


3.2 Env_render (делает курицу видимой в начале раунда)
Name: chicken1respawn
Target: chicken1
Render mode: Solid
FX Amount: 255 (делает курицу видимой)


4. Env_shooter (выбрасывает перья из "убитой" курицы)
Name: chicken1kill
Number of gibs: 15 (число выбрасываемых моделей, т.е. перьев)
Gib velocity: 100 (скорость падения перьев)
Cource variance: 5 (параметр опредляет на сколько летящие перья будут отклоняться от прямой траектории)
Gib life: 4 (время <жизни> перьев, затем они исчезают)
Model: models/feather.mdl (путь к файлу с моделью перьев)

Флаги:

Repeatable - позволяет активировать env_shooter многократно


5. Ambient_generic (звук при убийстве курицы)
Name: chicken1kill
Path: misc/killChicken.wav (путь к звуку)
Volume: 10 (громкость, максимальная)

Флаги:

Medium Radius - средний радиус распространения звука
Not Toggled - играет 1 раз (затем его необходимо активировать повторно)


6. Trigger_multiple (активирует env_render, который делает курицу видимой)
Target: chicken1respawn
Delay before reset: 180 (в следующий раз сработает только через 180 секунд)


2. Недостатки метода

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

Все дело в триггере trigger_multiple, у которого установлено время обнуления в 180 секунд.
Автор карты расчитывал на то, что в среднем раунд длится 3 минуты или 180 секунд.
Но всем известно, что раунд может быть и 30-секундным, а может длиться более 3 минут.

Если Вы убъете курицу и раунд закончится быстрее 3-х минут, то в следующем раунде курицы не будет!

Если Вы убъете курицу, затем пройдет 3 минуты, и Вы еще раз пробежите через триггер на базе контров, то курица станет неубиваемой!


Ссылки

italy_chicken.zip [17Кб] — в архиве карта-пример в форматах BSP и RMF.


Глава XX. Продвинутый маппинг.


К оглавлению Учебника

© http://cs-mapper.by.ru/
CMT (CS Mapping Tutorials) - © 2006-2011+. Created by VM
[ Script Execution time: 0.0051 ]