В этой статье мы расскажем, как создаются машины. Нам понадобятся следующие энтити-объекты:
func_vehicle
func_vehiclecontrols
path_track
Машины в CS появились не так давно, тогда в официальный мэппэк была добавлена карта de_jeepathon2k, которая быстренько оттуда исчезла в связи с многочисленными глюками, связанными с машинами. Так что не удивляйтесь, если Ваша машина провалится сквозь землю или наоборот зависнет на высоте 5 м. На картинке ниже Вы можете увидеть, как будут выглядеть машины на нашей тестовой карте:
Сама машина — это брашевый энтити-объект func_vehicle, в состав которого обязательно должен входить ORIGIN-браш (т.к. машина — объект вращающийся). Сначала мы определяем несколькими брашами форму машины, затем создаем ORIGIN-браш и превращаем все это в func_vehicle. Конечно, не обязательно придавать машине форму машины. Можно заставить ездить и доску, и ящик, и бочку.
После этого необходимо создать зону, из которой игрок будет управлять машиной. Эта зона определяется брашевым энтити-объектом func_vehiclecontrols, который необходимо со всех сторон закрасить текстурой AAAtrigger. Зона управления не должна входить в состав машины, она просто размещается вокруг ее кабины.
Ну, и последнее, необходимо сделать два точечных энтити-объекта path_track, которые определяют начальное направление машины (т.е. в какую сторону она будет развернута).
ВАЖНО: при создании машины, ее необходимо ориентировать на виде сверху кабиной налево (так задумано разработчиками), чтобы игра могла определить, где у машины перед.
В игре машина появится на первом объекте path_track и будет направлена на второй объект path_track. Таким образом, совсем необязательно размещать машину именно в том месте, где она должна появиться в игре. Машина появится на первом объекте path_track.
Про ORIGIN-браш в машинах
ORIGIN-браш необходимо размещать в центре машины, вокруг него машина будет вращаться. Размер ORIGIN-браша значения не имеет, более важно положение его центра, т.к. от него зависит расположение машины по вертикальной оси относительно дороги. Возможно, получится так, что машина появится на уровне висящей в воздухе или вкопаной в землю. В этом случае необходимо поправить параметр «Height above track» (т.е. высоту над землей).
Чтобы правильно определить значение параметра «Height above track», нужно в редакторе на 2D-виде сбоку посчитать расстояние от центра ORIGIN-браша до верхней стороны объекта path_track (см. рис. ниже).
Это расстояние необходимо записать в параметр «Height above track» машины func_vehicle.
Ну, и напоследок, перед тем, как мы приведем свойства всех задействованных объектов, необходимо добавить, что в состав машины (объекта func_vehicle) можно включать CLIP-браши для блокирования передвижений игрока. Например, Вы не хотите, чтобы игроки могли залазить в кузов машины — создаете там CLIP-браш и затем вместе с ним создаете func_vehicle.
Если у Вас что-то не получается с машинами, скачайте карту-пример и разберитесь самостоятельно.
Code
Func_vehicle (машина)
Name: car1 (имя машины, обязательно)
First stop target: path1 (имя первого объекта path_track)
Sound: 2 (звук, издаваемый при движении машины)
Length of the vehicle: 150 (длина машины в юнитах, рекомендуем поставить значение меньшее на 8-16 юнитов для удобства управления)
Width of the vehicle: 90 (ширина машины в юнитах, также лучше уменьшить на 8-16 юнитов)
Height above track: 8 (высота машины над дорогой, определяется, как написано выше)
Initial speed: 0 (начальная скорость машины, при значении > 0, машина сама поедет в начале раунда)
Speed: 550 (максимальная скорость машины, юнитов в секунду)
Damage on crush: 0 (количество отнимаемых у игрока процентов жизни при попадании под машину
Volume (10 = Loudest): 7 (громкость звука, значения от 0 до 10, где 10 — максимальная громкость)
Bank angle on turns:0 (угол наклона машины в поворотах)
Флаги:
No Pitch (X-rot) — если отмечено, то машина будет поворачиваться только вокруг вертикальной оси Z
No User Control — если отмечено, то игрок не сможет управлять машиной
Passable — если отмечено, то машина будет нематериальной, т.е. через нее можно будет проходить
Code
Func_vehiclecontrols (зона управления машиной)
Vehicle name: car1 (имя машины, которой будет управлять игрок)
Code
Path_track (определяет начальное положение машины)
Name: path1
Next stop target: path2 (впишите сюда имя второго объекта path_track)
Остальные параметры выстявлять не нужно.
[code]
Path_track (определяет начальное направление машины)
Name: path2
Next stop target: path1 (впишите сюда имя первого объекта path_track)
Остальные параметры выстявлять не нужно.