Взрываем двери HL2:EP1
Взрываем двери HL2:EP1
Сейчас я научу вас делать взрывающиеся двери как в Half-Life 2: Episode one.
Для начала, создадим 2 комнаты соединенные дверью.
Дверь
prop_physics
Name: exdoor
World model: models/props_c17/door01_left.mdl
Skin: 2 ///можно выбрать любой (от 0 до 13)
Disable shadows: Yes
Flags:
Motion disabled
_____________________________________________________
Теперь создаем замок Альянса
prop_dynamic
Name: doorlock
World model: models/props_combine/combine_lock01.mdl
установим его на дверь как в игре.
_____________________________________________________
Продолжаем создание двери. Делаем “рабочий” замок Альянса
Рисуем браш размерами 8w 20l 40h и текстурой nodraw , ставим ее в центр замка pic2
И превращаем его в func_door
Name: doorlockb
Locked sound: combine.door_lock
Flags:
Passable
Use opens
Starts locked
_____________________________________________________
Рисуем красную вспышку
env_sprite
Name: boomsprite
Render mode: World space glow
FX Color (R G B): 255 0 0 ///цвет вспышки (красный)
и расположим ее на кнопке замка pic3
_____________________________________________________
Создаем звук «пип»
ambient_generic
Name: sboomspr
Sound name: Streetwar.d3_C17_13_beep ///для HL2 < lostcoast.bomb_beep ///для HL2: Episode one>
Flags:
Start silent
Is NOT looped
расположим перед дверью
_____________________________________________________
Управление звуком и вспышкой.
logic_timer
Name: timerboom
Start disabled: Yes
Refire interval: 2
Outputs:
OnTimer > sboomspr > PlaySound > 0.00
OnTimer > boomsprite > ShowSprite > 0.00
OnTimer > boomsprite > HideSprite > 0.15
_____________________________________________________
Рисуем осколки двери 1
Создадим браш небольших размеров (8w 20l 40h) , расположим за дверью (чтоб игрок не видел pic4)
func_breakable
Name: breakdoor
Pop data: Wooden.Small
Material type: Wood
Gibs direction: Use Precise Gib Dir
Precise gib direction: <куда полетят осколки>///узнать можно на 2D view top(x/y) через дверь
Flags: Only break on tigger
_____________________________________________________
Рисуем осколки двери 2
Создаем некое подобие куска двери из брашей pic5
func_physbox
Name: kysokdoor
Strength: 150
Material type: wood
Flags:
Motion disable
___________________________________________________
Создаем тряску во время взрыва
env_shake
Name: shake
Amplitude (0-16): 10
Effect radius: 1500
Duration (seconds): 1
Frequency: 6.5
_____________________________________________________
env_ar2explosion
Name: ar2explo
Particle material: particle/particle_noisesphere
располагается рядом за дверью
_____________________________________________________
Создаем взрыв 1
env_physexplosion
Name: explore
Magnitude: 35000
Clamp radius (0 = auto): 300
Limit to entity: kysokdoor
Flags: No Damage – Only Force
располагается чуть выше и дальше от kysokdoor
_____________________________________________________
Создаем взрыв 2
env_explosion
Name: explore
Magnitude: 1
Flags: No damage
располагается в центре doorlockb
_____________________________________________________
Активируем все
logic_relay
Name: activator
Start disabled: No
Outputs:
OnTrigger > timerboom > Enable > 0.00
OnTrigger > doorlockb > Kill > 0.00
OnTrigger > timerboom > RefireTime > 0.2 > 8.00
OnTrigger > timerboom > Disable > 9.00
OnTrigger > sboomspr > Kill > 9.00
OnTrigger > doorlock > Kill > 9.00
OnTrigger > exdoor > Kill > 9.00
OnTrigger > ar2explo > Explode > 9.01
OnTrigger > kysokdoor > EnableMotion > 9.01
OnTrigger > shake > StartShake > 9.02
OnTrigger > breakdoor > Break > 9.03
OnTrigger > explore > Explode > 9.06
_____________________________________________________
Создаем кнопку-активатор
func_button
Outputs: OnPressed > activator > Trigger > 0.00
_____________________________________________________
Ну как же так - взрыв, а без солдат.
Рисуем солдат(сильно расписывать не буду, т.к. это уже другой тутор, который можно легко найти «Управление наземными NPC»)
path_corner
Name: soldat_path_<1-5>
Next stop target: soldat_path_<1-5> ///pic6
-------------------
npc_combine_s
Name: soldat<1-3>
Target path corner: soldat_path_<1-3>
-------------------
aiscripted_schedule
Name: soldatactive
Target NPC: soldat<1-3>
Shedule To Run: Run Goal Path
Goal entity: soldat_path_5
Ну вот кажись и все. Так выглядит сторона игрока pic6, а так солдат pic7.
Вот пример: DoorBoom.rar