Глава XX. Продвинутый маппинг.
§ 20.19 Пулемет
В этой статье мы расскажем, как создаются управляемые пулеметы. Нам понадобятся следующие энтити-объекты:
Так будет выглядеть пулемет в игре:
Вы можете придать пулемету какую угодно форму, можете сделать его маленьким или огромным - это не имеет значения. При создании пулемет необходимо ориентировать дулом направо на виде сверху, это необходимо для того, чтобы игра могла определить, откуда должны вылетать пули :) Если Вы хотите, чтобы в начале раунда пулемет был направлен в какую-то определенную сторону - выставьте направление углом "Angle".
Наиболее важной частью пулемета (а это объект
func_tank) является
ORIGIN-браш.
ORIGIN-брашем задается точка, вокруг которой пулемет будет вращаться. Размер
ORIGIN-браша значения не имеет, важно расположение его центра (впрочем, Вы это уже давно знаете :)
Что еще следует знать об ORIGIN-браше в пулемете? От положения его центра зависит какие параметры Вы должны будете выставить в свойствах пулемета, например, необходимо будет указать длину ствола, расстояние от центра ствола до ORIGIN-браша - все эти параметры отсчитываются от центра ORIGIN-браша.
Итак, форма пулемета определена. Создаем
ORIGIN-браш и помещаем его куда-нибудь в центр пулемета. Затем выделяем все браши, составляющие пулемет, также выделяем ORIGIN-браш и превращаем это дело в
func_tank.
Чуть выше пулемета Вы можете видеть объект
ambient_generic - это звук стрельбы пулемета (на нашей тестовой карте мы использовали свой звук, который поместили в папку "cstrike/sound/ambience..").
Func_tank (пулемет) |
Name: gun (имя пулемета) Target: gun_sound (имя объекта ambient_generic - звука выстрелов) Yaw rate: 60 (скорость движения пулемета по горизонтали) Yaw range: 150 (угол поворота по горизонтали в градусах) Pitch rate: 15 (скорость движения пулемета по вертикали) Pitch range: 45 (угол поворота по вертикали в градусах) Barrel Length: 66 (расстояние в юнитах от центра ORIGIN-браша до конца ствола) Barrel Horizontal: 0 (расстояние в юнитах от центра ORIGIN-браша до центра ствола по горизонтали) Barrel Vertical: 0 (расстояние в юнитах от центра ORIGIN-браша до центра ствола по вертикали) Rate of Fire: 20 (скорострельность, выстрелов в секунду) Damage Per Bullet: 10 (убойная сила пуль) Bullet accuracy: small cone (точность выстрелов, небольшое отклонение) Bullets: 12mm (калибр пуль)
Флаги:
Controllable: следует отметить, чтобы игрок мог управлять пулеметом
|
Свойства звука стрельбы выглядят так:
Ambient_generic (звук стрельбы) |
Path: ambience/dm_gun.wav (путь к звуку, в данном случае это наш собственный файл) Volume: 10 (громкость, максимальная)
Флаги:
Small radius: маленький радиус распространения Start silent: "молчит" в начале раунда Not toggled: не повторяется бесконечно (звучит только при активации)
|
И последний, но неменее важный объект: func_tankcontrols - область, откуда игрок управляет пулеметом.
Как создается эта область? Сначала делаем обычный браш (размером, скажем, 64х64х32 юнита). Окрашиваем его со всех сторон спецтекстурой
AAAtrigger и превращаем в
func_tankcontrols.
Если при тестировании работы пулемета Вы никак не можете найти область управления - значит разместили ее не в том месте, где следует.
Func_tankcontrols (область, откуда игрок управляет пулеметом) |
Tank entity name: gun (сюда записываем имя пулемета)
|
Если что-то не понятно, скачайте карту-пример. На ней Вы, кстати, сможете пострелять из пулемета по разбиваемым ящикам 8]
pulemet.zip (!) [72Кб] - в архиве карта-пример в форматах BSP и RMF, а также необходимый звук.
Глава XX. Продвинутый маппинг.
К оглавлению Учебника
©
http://cs-mapper.by.ru/