mirror of
https://github.com/jmarshall23/DoomRTX.git
synced 2026-08-12 08:11:10 +02:00
554 lines
14 KiB
Modula-2
554 lines
14 KiB
Modula-2
/***********************************************************************
|
|
|
|
char_sentry
|
|
|
|
***********************************************************************/
|
|
|
|
model char_sentry {
|
|
mesh models/md5/monsters/sentry/sentry.md5mesh
|
|
skin skins/models/monsters/sentrynobeam.skin
|
|
|
|
channel torso ( *Loneck )
|
|
channel legs ( *Hips origin -*Loneck )
|
|
|
|
anim af_pose models/md5/monsters/sentry/initial.md5anim
|
|
anim ik_pose models/md5/monsters/sentry/initial.md5anim
|
|
anim initial models/md5/monsters/sentry/initial.md5anim
|
|
anim stand models/md5/monsters/sentry/idle_stand1.md5anim
|
|
anim turn_left models/md5/monsters/sentry/turn_left.md5anim {
|
|
frame 8 sound_body snd_step
|
|
frame 10 sound_body2 snd_step
|
|
}
|
|
|
|
anim talk_excuseme models/md5/monsters/sentry/talk_primary.md5anim {
|
|
frame 1 sound_voice snd_talk_excuseme
|
|
frame 9 sound_body snd_step
|
|
frame 16 sound_body snd_step
|
|
frame 17 sound_body2 snd_step
|
|
frame 23 sound_body snd_step
|
|
frame 63 sound_body snd_step
|
|
frame 65 sound_body2 snd_step
|
|
frame 78 sound_body snd_step
|
|
frame 82 sound_body snd_step
|
|
}
|
|
|
|
anim turn_right models/md5/monsters/sentry/turn_right.md5anim {
|
|
frame 8 sound_body snd_step
|
|
frame 9 sound_body2 snd_step
|
|
}
|
|
|
|
anim unlock_door models/md5/monsters/sentry/talk_primary.md5anim {
|
|
frame 9 sound_body snd_step
|
|
frame 16 sound_body snd_step
|
|
frame 17 sound_body2 snd_step
|
|
frame 23 sound_body snd_step
|
|
frame 63 sound_body snd_step
|
|
frame 65 sound_body2 snd_step
|
|
frame 78 sound_body snd_step
|
|
frame 82 sound_body snd_step
|
|
}
|
|
|
|
anim fold models/md5/monsters/sentry/fold.md5anim {
|
|
frame 1 disableWalkIK
|
|
}
|
|
anim folded models/md5/monsters/sentry/folded.md5anim {
|
|
ai_no_turn
|
|
frame 1 disableWalkIK
|
|
}
|
|
|
|
anim unfold models/md5/monsters/sentry/unfold.md5anim {
|
|
frame 1 sound_voice snd_active
|
|
frame 1 disableWalkIK
|
|
frame 13 sound_body snd_step
|
|
frame 14 sound_body2 snd_step
|
|
frame 26 sound_body snd_step
|
|
frame 27 sound_body2 snd_step
|
|
frame 39 sound_body snd_step
|
|
frame 46 sound_body snd_step
|
|
frame 57 sound_body snd_step
|
|
frame 64 sound_body snd_step
|
|
frame 70 enableWalkIK
|
|
}
|
|
|
|
anim walk models/md5/monsters/sentry/walk1.md5anim {
|
|
frame 1 sound_body snd_step
|
|
frame 3 sound_body2 snd_step
|
|
frame 6 sound_body3 snd_step
|
|
frame 9 sound_body snd_step
|
|
}
|
|
|
|
anim range_attack models/md5/monsters/sentry/range_attackstart.md5anim {
|
|
frame 4 sound_body snd_step
|
|
frame 10 sound_body2 snd_step
|
|
frame 15 sound_body3 snd_step
|
|
}
|
|
|
|
anim range_attack_loop models/md5/monsters/sentry/range_attack1.md5anim {
|
|
frame 1 launch_missile barrel
|
|
}
|
|
anim range_attack_aim models/md5/monsters/sentry/idle_stand1.md5anim
|
|
anim range_attack_end models/md5/monsters/sentry/range_attackend.md5anim
|
|
|
|
anim run models/md5/monsters/sentry/walk1.md5anim {
|
|
frame 1 sound_body snd_step
|
|
frame 3 sound_body2 snd_step
|
|
frame 6 sound_body3 snd_step
|
|
frame 9 sound_body snd_step
|
|
}
|
|
|
|
anim pain models/md5/monsters/sentry/walk1_pain.md5anim {
|
|
frame 4 sound_body snd_step
|
|
frame 8 sound_body2 snd_step
|
|
frame 12 sound_body3 snd_step
|
|
frame 16 sound_body snd_step
|
|
}
|
|
|
|
anim sight models/md5/monsters/sentry/unfold.md5anim {
|
|
frame 1 disableWalkIK
|
|
frame 13 sound_body snd_step
|
|
frame 14 sound_body2 snd_step
|
|
frame 26 sound_body snd_step
|
|
frame 27 sound_body2 snd_step
|
|
frame 39 sound_body snd_step
|
|
frame 46 sound_body snd_step
|
|
frame 57 sound_body snd_step
|
|
frame 64 sound_body snd_step
|
|
frame 79 enableWalkIK
|
|
}
|
|
}
|
|
|
|
entityDef char_sentry {
|
|
"editor_var unfolded" "If set, sentry starts out in standing position, otherwise, he starts out in a folded position."
|
|
"editor_var lead_player" "If set, sentry leads the player along its path."
|
|
|
|
"inherit" "character_default"
|
|
"scriptobject" "ai"
|
|
"nativeobject" "rvmCharSentry"
|
|
"model" "char_sentry"
|
|
"ragdoll" "char_sentry"
|
|
"talks" "0"
|
|
"fov" "120"
|
|
"size" "48 48 48"
|
|
"use_aas" "aas48"
|
|
"team" "0"
|
|
"rank" "0"
|
|
"health" "300"
|
|
"anim" "folded"
|
|
"on_activate" "unfold"
|
|
"bleed" "0"
|
|
"def_projectile" "projectile_sentry_bullet"
|
|
"attack_cone" "10"
|
|
"attack_accuracy" "1"
|
|
"turn_rate" "360"
|
|
"bone_focus" "Head"
|
|
"head_look" "1"
|
|
"smoke_wound_metal" "bulletricochet.prt"
|
|
"blockedRadius" "20"
|
|
|
|
"look_min" "-90 -125 0"
|
|
"look_max" "25 125 0"
|
|
"look_joint Loneck" "0.4 0.4 0"
|
|
"look_joint Head" "0.6 0.6 0"
|
|
|
|
"ik_numLegs" "4"
|
|
"ik_footSize" "0"
|
|
"ik_minWaistFloorDist" "20"
|
|
"ik_waist" "Hips"
|
|
"ik_hip1" "L1_upleg"
|
|
"ik_hip2" "R1_upleg"
|
|
"ik_hip3" "L2_upleg"
|
|
"ik_hip4" "R2_upleg"
|
|
"ik_knee1" "L1_midleg"
|
|
"ik_knee2" "R1_midleg"
|
|
"ik_knee3" "L2_midleg"
|
|
"ik_knee4" "R2_midleg"
|
|
"ik_ankle1" "L1_loleg"
|
|
"ik_ankle2" "R1_loleg"
|
|
"ik_ankle3" "L2_loleg"
|
|
"ik_ankle4" "R2_loleg"
|
|
"ik_dir1" "Lelbow"
|
|
"ik_dir2" "Relbow"
|
|
"ik_dir3" "Lknee"
|
|
"ik_dir4" "Rknee"
|
|
"ik_foot1" "L1toe"
|
|
"ik_foot2" "R1toe"
|
|
"ik_foot3" "L2toe"
|
|
"ik_foot4" "R2toe"
|
|
|
|
"damage_zone head" "*Loneck"
|
|
"damage_zone chest" "*Hips -*R1_upleg -*L1_upleg -*R2_upleg -*L2_upleg -*Loneck"
|
|
"damage_zone left_arm" "*L1_upleg"
|
|
"damage_zone right_arm" "*R1_upleg"
|
|
"damage_zone legs" "*L2_upleg *R2_upleg"
|
|
|
|
"mtr_flashShader" "muzzleflash"
|
|
"flashTime" "0.15"
|
|
"flashColor" "1 0.8 0.4"
|
|
"flashRadius" "120"
|
|
|
|
"snd_fire" "char_sentry_fire"
|
|
"snd_active" "char_sentry_active"
|
|
"snd_cant_reach_player" "char_sentry_cant_reach_player"
|
|
"snd_death" "char_sentry_destroyed"
|
|
"snd_sight_enemy" "char_sentry_sight_enemy"
|
|
"snd_sight_friendly" "char_sentry_sight_friendly"
|
|
"snd_open_door" "char_sentry_open_door"
|
|
"snd_pain" "char_sentry_pain"
|
|
"snd_shutdown" "char_sentry_shutdown"
|
|
"snd_target_lost" "char_sentry_target_lost"
|
|
"snd_waiting_for_player" "char_sentry_waiting_for_player"
|
|
"snd_step" "char_sentry_step"
|
|
"snd_gear" "char_sentry_gears"
|
|
"snd_talk_excuseme" "char_sentry_waiting_for_player"
|
|
}
|
|
|
|
model char_sentry_flashlight {
|
|
inherit char_sentry
|
|
anim walk models/md5/monsters/sentry/walk1_beam.md5anim {
|
|
|
|
frame 1 sound_body snd_step
|
|
frame 3 sound_body2 snd_step
|
|
frame 6 sound_body3 snd_step
|
|
frame 9 sound_body snd_step
|
|
}
|
|
|
|
}
|
|
|
|
entityDef char_sentry_flashlight {
|
|
"inherit" "char_sentry"
|
|
"editor_var flashlight_on" "Turns flashlight on when sentry activates"
|
|
|
|
"flashlight" "2"
|
|
"flashlight_distance" "640"
|
|
"mtr_flashlight" "lights/sentrylight"
|
|
"skin_flashlight_off" "skins/models/monsters/sentrynobeam.skin"
|
|
"skin_flashlight_on" "skins/models/monsters/sentrybeam.skin"
|
|
"model" "char_sentry_flashlight"
|
|
}
|
|
|
|
entityDef projectile_sentry_bullet {
|
|
"spawnclass" "idProjectile"
|
|
"mins" "-1 -1 -1"
|
|
"maxs" "1 1 1"
|
|
"cone" "2"
|
|
"scale" "0.1"
|
|
"noshadows" "1"
|
|
"tracers" "1"
|
|
"model_tracer" "models/particles/tracer/tracer.lwo"
|
|
|
|
"snd_ricochet" "bullet_ricochet"
|
|
"snd_impact" "" // we need a much smaller impact sound for the chaingun bullet "bullet_impact_metal"
|
|
|
|
"decal_scale" "8"
|
|
|
|
"def_damage" "damage_sentry_bullet"
|
|
|
|
"launchFromBarrel" "1"
|
|
"health" "0"
|
|
// slowed down for tracers
|
|
"velocity" "2000 0 0" // .38 Special 600 fps. Source: Petzal, David E. "How fast is a speeding bullet." Field and Stream. 97 (1992): 23
|
|
"angular_velocity" "0 0 0"
|
|
"thrust" "0"
|
|
"thrust_start" "0"
|
|
"thrust_end" "0"
|
|
"linear_friction" "0"
|
|
"angular_friction" "0"
|
|
"contact_friction" "0"
|
|
"bounce" "0.6"
|
|
"mass" "2"
|
|
"gravity" "0"
|
|
"fuse" "4"
|
|
|
|
"detonate_on_fuse" "0"
|
|
"detonate_on_death" "0"
|
|
"detonate_on_world" "1"
|
|
"detonate_on_actor" "1"
|
|
|
|
"impact_damage_effect" "1"
|
|
"impact_gib" "1"
|
|
|
|
"mtr_detonate" "textures/decals/bulleth02"
|
|
"decal_size" "10"
|
|
|
|
"smoke_detonate" "smokeandspark.smoke"
|
|
"smoke_residue" "" //particles/chaingun_residue.particle"
|
|
"smoke_bounce" "" //particles/chaingun_bounce.particle"
|
|
"smoke_fuse" ""
|
|
|
|
"mtr_light_shader" ""
|
|
"light_color" "0 0 0"
|
|
"light_radius" "0"
|
|
"light_offset" "0 0 0"
|
|
|
|
"mtr_explode_light_shader" ""
|
|
"explode_light_color" "0 0 0"
|
|
"explode_light_radius" "0"
|
|
"explode_light_fadetime" "0"
|
|
}
|
|
|
|
entityDef damage_sentry_bullet {
|
|
"damage" "5"
|
|
"kickDir" "1 0 0"
|
|
|
|
"mtr_blob" "genericDamage"
|
|
"blob_time" "300"
|
|
"blob_size" "400"
|
|
"blob_offset_x" "400"
|
|
|
|
"knockback" "1"
|
|
|
|
"smoke_wound_flesh" "bloodwound.smoke"
|
|
|
|
"kick_time" "10"
|
|
"kick_amplitude" "0"
|
|
|
|
"dv_time" "100"
|
|
}
|
|
|
|
sound char_sentry_fire {
|
|
minDistance 3
|
|
maxDistance 30
|
|
volume 0
|
|
|
|
sound/xian/sentry/gun/fire_01.wav
|
|
sound/xian/sentry/gun/fire_02.wav
|
|
sound/xian/sentry/gun/fire_03.wav
|
|
sound/xian/sentry/gun/fire_04.wav
|
|
sound/xian/sentry/gun/fire_05.wav
|
|
|
|
}
|
|
|
|
sound char_sentry_active {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/activate_01.wav
|
|
}
|
|
|
|
sound char_sentry_cant_reach_player {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/cant_reach_player_01.wav
|
|
sound/xian/sentry/vocals/cant_reach_player_02.wav
|
|
}
|
|
|
|
sound char_sentry_damaged {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/damaged_01.wav
|
|
}
|
|
|
|
sound char_sentry_destroyed {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/destroyed_01.wav
|
|
}
|
|
|
|
sound char_sentry_destroyed_damaged {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/damaged_destroyed_01.wav
|
|
}
|
|
|
|
sound char_sentry_sight_enemy {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/sight_enemy_01.wav
|
|
sound/xian/sentry/vocals/sight_enemy_02.wav
|
|
}
|
|
|
|
sound char_sentry_sight_friendly {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/sight_friendly_01.wav
|
|
}
|
|
|
|
sound char_sentry_open_door {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/open_door_01.wav
|
|
}
|
|
|
|
sound char_sentry_pain {
|
|
minDistance 2
|
|
maxDistance 25
|
|
volume -2
|
|
no_dups
|
|
|
|
sound/xian/sentry/vocals/pain_01.wav
|
|
sound/xian/sentry/vocals/pain_02.wav
|
|
sound/xian/sentry/vocals/pain_03.wav
|
|
sound/xian/sentry/vocals/pain_04.wav
|
|
}
|
|
|
|
sound char_sentry_shutdown {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
sound/xian/sentry/vocals/shutdown_01.wav
|
|
}
|
|
|
|
sound char_sentry_target_lost {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
|
|
sound/xian/sentry/vocals/lost_target_01.wav
|
|
}
|
|
|
|
sound char_sentry_waiting_for_player {
|
|
minDistance 1
|
|
maxDistance 15
|
|
volume -2
|
|
no_dups
|
|
|
|
sound/xian/sentry/vocals/wait_for_player_01.wav
|
|
sound/xian/sentry/vocals/wait_for_player_02.wav
|
|
sound/xian/sentry/vocals/wait_for_player_03.wav
|
|
}
|
|
|
|
sound char_sentry_step {
|
|
minDistance 1
|
|
maxDistance 16
|
|
volume -8
|
|
|
|
sound/xian/sentry/steps/sstep_01.wav
|
|
sound/xian/sentry/steps/sstep_02.wav
|
|
sound/xian/sentry/steps/sstep_03.wav
|
|
sound/xian/sentry/steps/sstep_04.wav
|
|
sound/xian/sentry/steps/sstep_05.wav
|
|
sound/xian/sentry/steps/sstep_06.wav
|
|
sound/xian/sentry/steps/sstep_07.wav
|
|
}
|
|
|
|
sound char_sentry_gears {
|
|
minDistance 3
|
|
maxDistance 16
|
|
volume -3
|
|
|
|
sound/xian/sentry/gears/walk_01.wav
|
|
sound/xian/sentry/gears/walk_02.wav
|
|
sound/xian/sentry/gears/walk_03.wav
|
|
sound/xian/sentry/gears/walk_04.wav
|
|
sound/xian/sentry/gears/walk_05.wav
|
|
sound/xian/sentry/gears/walk_06.wav
|
|
sound/xian/sentry/gears/walk_07.wav
|
|
sound/xian/sentry/gears/walk_08.wav
|
|
sound/xian/sentry/gears/walk_09.wav
|
|
sound/xian/sentry/gears/walk_10.wav
|
|
sound/xian/sentry/gears/walk_11.wav
|
|
sound/xian/sentry/gears/walk_12.wav
|
|
sound/xian/sentry/gears/walk_13.wav
|
|
}
|
|
|
|
sound char_sentry_wakeup {
|
|
minDistance 3
|
|
maxDistance 16
|
|
volume -3
|
|
|
|
sound/xian/sentry/wakeup_01.wav
|
|
}
|
|
|
|
sound char_sentry_extend {
|
|
minDistance 3
|
|
maxDistance 16
|
|
volume -3
|
|
|
|
sound/xian/sentry/extend_01.wav
|
|
}
|
|
|
|
sound char_sentry_activation {
|
|
minDistance 3
|
|
maxDistance 16
|
|
volume -3
|
|
|
|
sound/xian/sentry/activate_01.wav
|
|
}
|
|
|
|
entityDef path_sentry_light_on {
|
|
"editor_color" ".5 .3 0"
|
|
"editor_mins" "-8 -8 -8"
|
|
"editor_maxs" "8 8 8"
|
|
|
|
"editor_usage" "Tells sentry to turn on his flashlight."
|
|
"editor_var target" "next path entity."
|
|
"editor_var trigger" "entity to trigger when turn finishes."
|
|
|
|
"spawnclass" "idPathCorner"
|
|
}
|
|
|
|
entityDef path_sentry_light_off {
|
|
"editor_color" ".5 .3 0"
|
|
"editor_mins" "-8 -8 -8"
|
|
"editor_maxs" "8 8 8"
|
|
|
|
"editor_usage" "Tells sentry to turn on his flashlight."
|
|
"editor_var target" "next path entity."
|
|
"editor_var trigger" "entity to trigger when turn finishes."
|
|
|
|
"spawnclass" "idPathCorner"
|
|
}
|
|
|
|
entityDef path_sentry_shutdown {
|
|
"editor_color" ".5 .3 0"
|
|
"editor_mins" "-8 -8 -8"
|
|
"editor_maxs" "8 8 8"
|
|
"editor_showangle" "1"
|
|
"editor_rotatable" "1"
|
|
|
|
"editor_usage" "Tells sentry to shutdown until triggered again."
|
|
"editor_var target" "next path entity."
|
|
"editor_var trigger" "entity to trigger when turn finishes."
|
|
|
|
"spawnclass" "idPathCorner"
|
|
}
|
|
|
|
entityDef path_sentry_unlock_door {
|
|
"editor_color" ".5 .3 0"
|
|
"editor_mins" "-8 -8 -8"
|
|
"editor_maxs" "8 8 8"
|
|
"editor_showangle" "1"
|
|
"editor_rotatable" "1"
|
|
|
|
"editor_usage" "Sentry walks to this location and plays the unlock door animation. Set 'trigger' to name of target_lock entity that unlocks the door."
|
|
"editor_var target" "next path entity."
|
|
"editor_var trigger" "entity to trigger when turn finishes."
|
|
|
|
"spawnclass" "idPathCorner"
|
|
}
|
|
|
|
entityDef path_sentry_lead_player {
|
|
"editor_color" ".5 .3 0"
|
|
"editor_mins" "-8 -8 -8"
|
|
"editor_maxs" "8 8 8"
|
|
"editor_showangle" "1"
|
|
"editor_rotatable" "1"
|
|
|
|
"editor_usage" "Tells sentry to start leading the player to his destination. Imediately goes to next path entity."
|
|
"editor_var target" "next path entity."
|
|
"editor_var trigger" "entity to trigger when turn finishes."
|
|
|
|
"spawnclass" "idPathCorner"
|
|
}
|
|
|
|
entityDef path_sentry_ignore_player {
|
|
"editor_color" ".5 .3 0"
|
|
"editor_mins" "-8 -8 -8"
|
|
"editor_maxs" "8 8 8"
|
|
"editor_showangle" "1"
|
|
"editor_rotatable" "1"
|
|
|
|
"editor_usage" "Tells sentry to stop leading the player to his destination. Imediately goes to next path entity."
|
|
"editor_var target" "next path entity."
|
|
"editor_var trigger" "entity to trigger when turn finishes."
|
|
|
|
"spawnclass" "idPathCorner"
|
|
}
|