Cоздание карт типа "Сопровождение груза"

From Valve Developer Community
< TF2
Jump to: navigation, search
English

Этот урок поможет вам создать такую карту, как pl_goldrush, то есть карту типа "Payload".

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

Настраиваем уровень

В этом уроке мы создадим 1ин уровень, но тут также описано создание 2го.

  • Создайте tf_gamerules и назовите его GameRules.
  • Создайте logic_auto и выбирите вкладку Outputs.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnMapSpawn GameRules SetRedTeamRole 1 0.00 Нет
Io11.png OnMapSpawn GameRules SetBlueTeamRole 2 0.00 Нет
Io11.png OnMultiNewMap GameRules SetRedTeamRespawnWaveTime 4 0.00 Нет
Io11.png OnMultiNewMap GameRules SetBlueTeamRespawnWaveTime 8 0.00 Нет
  • Создайте team_control_point_master и назовите его CP_master, а также настройте его таким образом.
Property Name Description Value
Name Name of the entity CP_Master
Start Disabled Self-explanatory No
Cap Layout Self-explanatory
Restrict team from winning Self-explanatory Red
Switch teams on map win? Self-explanatory Yes
Scoring Style Self-explanatory Add team score for each captured point
Play all rounds before changelevel Self-explanatory Only changelevel after all mini-rounds have been played to completion
Rate at which to give partial cap points for area captures Self-explanatory 1
  • Создайте team_control_point_round и назоваите его Round_A, подрузамевая что в карте всего 1 раунд и 2 контрольные точки.
Property Name Description Value
Name Name of the entity Round_A
Start Disabled Self-explanatory No
Print Name Self-explanatory
Priority Higher rounds are played first 0
Control points in this round Self-explanatory CP_A_1 CP_A_2
Restrict team from winning Self-explanatory Red

Если у вас 2 раунда то priority Round_A должна быть 1, а Round_B - ноль.

Этот урок подрузамевает что вы умеете пользоваться team_round_timer и не застряните здесь.

Создание тележки

Стандартная тележка.

Эта секция поможет вам создать полностью рабочую тележку.

  • Создайте браш размером с модель тележки, используя текстуру tools/toolsclip и сделав её func_tracktrain. Дайте ему имя Bomb_Train.
  • Создайте prop_dynamic и измените world model на models/props_trainyard/bomb_cart.mdl, а также имя на Bomb_Model и не забудьте сменить parent на Bomb_Train. Сейчас вы можете подстроить размеры Bomb_Train под модель телеги.
  • Используя текстуруtools/toolstrigger создайте "коробку" вокруг вагонетки, она позволит игрокам толкать телегу и захватывать точки. Сделайте браш trigger_capture_area и назовите его Bomb_CapArea также установить параметр parent Bomb_Train. Этот браш должен быть немного больше вагонетки чтобы игроки могли её толкать.
  • Создайте и другую коробку используя текстуру tools/toolstrigger и снова вокруг вагонетки, примерно такой-же величины, как Bomb_CapArea, это будет зона лечения. Сделайте её dispenser_touch_trigger назвав Bomb_Dispense и снова измените parent на Bomb_Train.
  • Создайте mapobj_cart_dispenser и разместите её там, откуда будет выходить лечебная линия (обычно из трубы). Назовите его Bomb_DispenseBeam сменив parent на Bomb_Train (team смените на Blue и custom touch trigger на Bomb_Dispense, больше для лечебной зоны ничего не потребуется)
  • Разместите math_remap над тележкой и назовите его Bomb_Remap.
  • В конце разместите logic_case также над вагононеткой и назовите его Bomb_LogicCase.

Активируем вагононетку

Сейчас у вас доллжно быть что-то похожее на тележку окружённую 3мя коробками и несколькими квадратиками, в этой секции вы настроите Outputs и Inputs, чтобы тележка начала работать.

Зона толкания

Сначала настроим зону для толкания телеги.

  • Настроим Bomb_CapArea, мы будем использовать CP_A_1, как первую контрольную точку
Property Name Description Value
Name Name of the entity Bomb_CapArea
Start Disabled Self-explanatory No
Parent Self-explanatory Bomb_Train
Control Point The cap assigned to this trigger CP_A_1
Can RED cap? Self-explanatory No
Can BLUE cap? Self-explanatory Yes
Number of RED players to cap Self-explanatory 1
Number of BLUE players to cap Self-explanatory 1
RED spawn adjust How much to change the spawn time on cap 0
Blue spawn adjust How much to change the spawn time on cap 0
Time to cap Self-explanatory 99999
  • Теперь нажмём на вкладку Outputs и создадим два новых Output, Watcher_A мы создадим потом, он будет показывать движение вагонетки на HUD'е.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnNumCappersChanged Bomb_Remap InValue <none> 0.00 Нет
Io11.png OnNumCappersChanged Watcher_A SetNumTrainCappers <none> 0.00 Нет

Remap

Наконец мы можем изменить настройки Bomb_Remap, она ограничивает скорость вагонетки на которую могут влиять игроки (Можно создать огромное количество скоростей).

  • Меняем настройки Bomb_Remap.
Property Name Description Value
Name Name of the entity Bomb_Remap
Start Disabled Self-explanatory No
Minimum Valid Input Value Self-explanatory 0
Maximum Valid Input Value Self-explanatory 3
Output Value When Input Is Min Self-explanatory 0
Output Value When Input Is Max Self-explanatory 3
  • Теперь выбирите вкладку Outputs и создайте один новый, он будет отсылать команды для Bomb_LogicCase.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OutValue Bomb_LogicCase InValue <none> 0.00 Нет

Logic Case

Сейчас нам предстоит настроить Bomb_LogicCase для смены скорости поезда.

  • Откройте настройки Bomb_LogicCase.
Property Name Description Value
Name Name of the entity Bomb_LogicCase
Case 01 Self-explanatory 0
Case 02 Self-explanatory 1
Case 03 Self-explanatory 2
Case 04 Self-explanatory 3

Остальное можно проигнорировать.

  • Откройте вкладку Outputs и создайте несколько новых команд.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCase01 Bomb_Train SetSpeedDirAccel 0 0.00 Нет
Io11.png OnCase02 Bomb_Train SetSpeedDirAccel 0.5 0.00 Нет
Io11.png OnCase03 Bomb_Train SetSpeedDirAccel 0.75 0.00 Нет
Io11.png OnCase04 Bomb_Train SetSpeedDirAccel 1 0.00 Нет

Вагонетка

Теперь мы имеем честь настроить Bomb_Train, в данном уроке описывается добавление звуков тележки только от pl_goldrush.

  • Начнём настраивать Bomb_Train, зная что Track_A_01 начало железной дороги.
Property Name Description Value
Name Name of the entity Bomb_Train
First Stop Target Self-explanatory Track_A_01
Max Speed Self-explanatory 90
Change Velocity How the acceleration is handled Linear blend
Distance Between the Wheels Self-explanatory 20
Height above Track Self-explanatory 1
Damage on Crush Self-explanatory 99999
Move Sound Self-explanatory Cart.Roll
Start Sound Self-explanatory Cart.RollStart
Stop Sound Self-explanatory Cart.RollStop
Manual Train Speed Self-explanatory On
Manual Accel Speed Self-explanatory 70
Manual Decel Speed Self-explanatory 150

Bomb_Train не требует Outputs, но нужно поставить несколько галочку в flags.

  • Откройте вкладку flags и поставьте галочки рядом с No User Control и Is unblockable by player.

Создаём дорогу

Часть дороги.

Теперь у вас есть тележка, но ей негде кататься.

  • Создайте path_track и расположите там где хотите начать дорогу, назвав её Track_A_01.
  • Создайте другую path_track и поставьте туда, куда вагонетка поедет дальше, назвав её Track_A_02.
  • Измените в Track_A_01 Next Stop Target на Track_A_02.
  • Продолжайте создавать новые path_track и называйте, привязывайте их друг-к-другу так, как должен продвигаться ваш путь.
Note:Если вы копируете path_track (Shift-drag), Hammer автоматически соединяется их и вам не надо вручную переиминовывать их.

Чтобы детализировать дорогу, как в TF2, создайте prop_static для создания модели железной дороги и разместите там где вам угодно. Модели которые вам потребуются находятся тут props_mining/track*.mdl. Для контрольной точки используйте prop_dynamic и модель props_trainyard/track_midcap.mdl. назвав её CP_A_1_Model.

Создание контрольной точки

Вы можете создать от 1 до 3 контрольных точек 2х типов, обычная точка и финальная точка.

Внимание: Если вы никогда раньше не создавали контрольных точек, то прочтите это Создание контрольной точки чтобы узнать детали о правильной настройке team_control_point !

Обычная точка

Обычная контрольная точка.

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

  • Настройте outputs CP_A_1_Relay.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrigger Bomb_CapArea CaptureCurrentCP 0.00 Нет
Io11.png OnTrigger CP_A_1_Model Skin 1 0.00 Нет

Вы должны найти path_track в середине точки, к примеру это Track_A_24.

  • Настройте outputs path_track находящегося посередине точки.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass CP_A_1_Relay Trigger 0.00 Да
Io11.png OnPass CP_A_1 SetOwner 3 0.20 Нет
Note:От переводчика: у меня после создания первого из этих Outputs, вагонетка переставала двигаться, если у вас так-же то тупо удалите первый output

Этот урок подрузамивает что вы умеете создавать team_control_point, назовите его CP_A_1 и смените default owner на Red.

  • Не забудьте в настройках сменить warning type на No Announcements, все анонсы будут вещаться с помощью team_train_watcher.
  • Откройте Outputs и создайте следущие.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnCapTeam2 Track_A_23 DisablePath 0.00 Нет
Io11.png OnCapTeam2 Bomb_CapArea SetControlPoint CP_A_2 0.00 Нет

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

Note:Track_A_23 - часть дороги перед серединой точки.

Последняя точка

Последняя точка делается также как и обычная, одно отличие - что вы хотите сделать с ней.

  • Главное отличие - мы должны отключить Bomb_CapArea и что-то ещё что вы хотите добавить для вашей карты, вы можете использоваться logic_relay и последнюю контрольную точку чтобы отключить Bomb_CapArea.

HUD/Train Watcher

Последнее, что надо сделать - добавить вагонетку на HUD, а также разные оповещения.

  • Создайте team_train_watcher и назовите его Watcher_A.
  • Здесь подразумевается что path_track полностью настроены.
Property Name Description Value
Name Name of the entity Watcher_A
Start Disabled Self-explanatory No
Train to watch Self-explanatory Bomb_Train
Node that the path starts at Self-explanatory Track_A_01
Node that the path ends at Self-explanatory Track_A_43
Linked PathTrack 1 Self-explanatory Track_A_24
Linked CP 1 Self-explanatory CP_A_1
Linked PathTrack 2 Self-explanatory Track_A_43
Linked CP 2 Self-explanatory CP_A_2
Linked PathTrack 3 Self-explanatory
Linked CP 3 Self-explanatory
Min Speed for Speed level 1 Self-explanatory 1
Min Speed for Speed level 2 Self-explanatory 60
Min Speed for Speed level 3 Self-explanatory 80
  • Теперь настроим вкладку Outputs.
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnTrainStartRecede Bomb_Train SetSpeedDirAccel -0.2 0.00 Нет

Здесь мы делаем так что поезд будет двигаться назад со скоростью 0.2 (- означает заднюю скорость).

Финальный взрыв

Ваша карта сейчас вполне работает, но эффект финального взрыва сделает вашу карту только лучше. Сейчас мы разберем как это сделать. Здесь будет разобрано простое место взрыва, без разрушения территории (как было в необновленном варианте Badwater Basin) Подразумевается, что сама точка (team_control_point) создана и настроена.

Модернизируем вагонетку

Сделаем некоторые преобразования с моделью тележки, чтобы она реалистично адала в яму.

  • Заменить созданную модель тележки (prop_dynamic с именем Bomb_Model) на prop_physics_override, с такими же именем и моделью.

Теперь модель тележки обладает физикой.

  • Теперь создадим phys_constraint с параметрами:
Property Name Value
Name Bomb_Const
Entity 1 Bomb_Train
Entity 2 Bomb_Model

Это "прицепит" модель тележки к Bomb_Train (которая по сути и едет)

Яма для взрыва

Место для взрыва в Hammer'e

Модель ямы

Теперь сделаем яму, куда упадет тележка.

  • Создайте prop_static с моделью models/hybridphysx/badwater_destruction_before.mdl и еще один с моделью models/props_farm/sewer_cap001a.mdl. И подгоните их.

Двери в яму

Если ваша яма НЕ будет закрытой и открываться, как в GoldRush\Badwater, то этот пункт можно пропустить.

  • Создайте две брашных энтити func_door, покрытых текстурой glass/glasswindow002a на верхнем фейсе.

Параметры для обеих func_door одинаковые:

Property Name Value
Name cap_door
Speed 700
Move Direction (Pitch Yaw Roll) 0 270 0

Если двери открываются не в ту сторону, то поизменяйте параметр Move Direction (Pitch Yaw Roll).

  • Во вкладке "Flags" уберите галочку из "Touch Opens" и поставьте на Toogle.
  • У ОДНОЙ из дверей настраиваем Outputs:
My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnFullyOpen cap_door kill 0.00 No

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

  • Где-то в яме создайте trigger_hurt с параметрами Damage - 1000, Damage Cap - 1000
  • И если вы не хотите, чтобы на дверях можно было поставить строение, то создайте брашную энтитю func_nobuild и укажите Team - Any.

Бочки в яме

  • Создайте несколько (сколько считаете нужным) prop_dynamic_override с моделью models/props_badlands/barrel03.mdl и все с Name - End_Barrels

Взрыв

Финальный взрыв (в игре) (dpl_mine_b2)

Подведите финальный path_track к кромке ямы. Теперь будем настраивать многочисленные Outputs и создавать эффекты.

  • Создайте около места взрыва два ambient_generic.

Параметры Первого:

Property Name Value
Name pre_kaboom
SoundName Cart.Trigger

Второго:

Property Name Value
Name kaboom
SoundName Cart.Explode
  • Создайте по центру ямы чуть ниже дверей info_particle_system
Property Name Value
Name pit_effect
Particle System Name cinefx_goldrush
Pitch Yaw Roll (Y Z X) -90 0 0
  • Создайте брашную энтитю trigger_multiple и назовите KaBoomZone

Настроим Outputs:

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnStartTouch  !activator SetHealth -1000 0.00 No

Outputs для path_track

My Output Target Entity Target Input Parameter Delay Only Once
Io11.png OnPass cap_door Open 0.00 No
Io11.png OnPass Bomb_Train kill 0.00 No
Io11.png OnPass Bomb_Const Break 0.01 No
Io11.png OnPass pre_kaboom PlaySound 1.00 No
Io11.png OnPass kaboom PlaySound 2.00 No
Io11.png OnPass pit_effect Start 2.00 No
Io11.png OnPass end_barrels kill 2.00 No
Io11.png OnPass Bomb_Model kill 2.00 No
Io11.png OnPass Bomb_CapArea CaptureCurrentCP 2.00 No
Io11.png OnPass Bomb_CapArea kill 2.00 No
Io11.png OnPass KaBoomZone Enable 2.00 No
Io11.png OnPass KaBoomZone Disable 2.10 No

Расшифровка:

0.0:

  • открываются двери в яму (если у вас нет дверей, этот output ненужен)
  • уничтожается "двигательная" часть тележки

0.01 - модель тележки становится свободной, и падает

1.0 - звучит "бип" - тележка готова к взрыву

2.0:

  • звучит взрыв
  • стартует эффект взрыва
  • уничтожаются бочки на дне ямы
  • уничтожается модель тележки
  • захватывается последняя точка
  • уничтожается зона толкания
  • запускается "убивалка" игроков

2.1 - останавливается "убивалка"

Просьба к знающим англ.язык перевести часть "Финальный взрыв" и дополнить ею английский вариант этой страницы

‹‹ Назад к Создание уровня Team Fortress 2