/*********************************************************************** 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" }