mirror of
https://github.com/mapbase-source/source-sdk-2013.git
synced 2025-05-15 16:22:28 +03:00
Merge branch 'halloween' of https://github.com/1upD/source-sdk-2013 into halloween
This commit is contained in:
commit
759328b805
256
sp/game/mod_episodic/cfg/skill.cfg
Normal file
256
sp/game/mod_episodic/cfg/skill.cfg
Normal file
@ -0,0 +1,256 @@
|
|||||||
|
// ===========
|
||||||
|
// NPCs
|
||||||
|
// ============
|
||||||
|
// Barnacle
|
||||||
|
sk_barnacle_health "35"
|
||||||
|
|
||||||
|
// Barney
|
||||||
|
sk_barney_health "35"
|
||||||
|
|
||||||
|
// Bullseye
|
||||||
|
sk_bullseye_health "35"
|
||||||
|
|
||||||
|
// Bullsquid
|
||||||
|
//sk_bullsquid_health "120"
|
||||||
|
//sk_bullsquid_dmg_bite "15"
|
||||||
|
//sk_bullsquid_dmg_whip "25"
|
||||||
|
|
||||||
|
// Citizen
|
||||||
|
sk_citizen_health "40"
|
||||||
|
|
||||||
|
// Combine Soldier
|
||||||
|
sk_combine_s_health "50"
|
||||||
|
sk_combine_s_kick "10"
|
||||||
|
|
||||||
|
// Combine Guard
|
||||||
|
sk_combine_guard_health "70"
|
||||||
|
sk_combine_guard_kick "15"
|
||||||
|
|
||||||
|
// strider
|
||||||
|
sk_strider_health "350"
|
||||||
|
sk_strider_num_missiles1 "5"
|
||||||
|
sk_strider_num_missiles2 "7"
|
||||||
|
sk_strider_num_missiles3 "7"
|
||||||
|
|
||||||
|
// Headcrab
|
||||||
|
sk_headcrab_health "10"
|
||||||
|
sk_headcrab_melee_dmg "5"
|
||||||
|
|
||||||
|
// Fast Headcrab
|
||||||
|
sk_headcrab_fast_health "10"
|
||||||
|
|
||||||
|
// Poison Headcrab
|
||||||
|
sk_headcrab_poison_health "35"
|
||||||
|
|
||||||
|
// Houndeye
|
||||||
|
//sk_houndeye_health "80"
|
||||||
|
//sk_houndeye_dmg_blast "25"
|
||||||
|
|
||||||
|
// Manhack
|
||||||
|
sk_manhack_health "25"
|
||||||
|
sk_manhack_melee_dmg "20"
|
||||||
|
|
||||||
|
// Metropolice
|
||||||
|
sk_metropolice_health "40"
|
||||||
|
sk_metropolice_stitch_reaction "1.0"
|
||||||
|
sk_metropolice_stitch_tight_hitcount "2"
|
||||||
|
sk_metropolice_stitch_at_hitcount "1"
|
||||||
|
sk_metropolice_stitch_behind_hitcount "3"
|
||||||
|
sk_metropolice_stitch_along_hitcount "2"
|
||||||
|
|
||||||
|
// Rollermine
|
||||||
|
sk_rollermine_shock "10"
|
||||||
|
sk_rollermine_stun_delay "3"
|
||||||
|
sk_rollermine_vehicle_intercept "1"
|
||||||
|
|
||||||
|
// Scanner (City)
|
||||||
|
sk_scanner_health "30"
|
||||||
|
sk_scanner_dmg_dive "25"
|
||||||
|
|
||||||
|
// Stalker
|
||||||
|
sk_stalker_health "50"
|
||||||
|
sk_stalker_melee_dmg "5"
|
||||||
|
|
||||||
|
// Vortigaunt
|
||||||
|
sk_vortigaunt_health "100"
|
||||||
|
sk_vortigaunt_dmg_claw "10"
|
||||||
|
sk_vortigaunt_dmg_rake "25"
|
||||||
|
sk_vortigaunt_dmg_zap "50"
|
||||||
|
sk_vortigaunt_armor_charge "30"
|
||||||
|
|
||||||
|
// Zombie
|
||||||
|
sk_zombie_health "50"
|
||||||
|
sk_zombie_dmg_one_slash "10"
|
||||||
|
sk_zombie_dmg_both_slash "25"
|
||||||
|
|
||||||
|
// Poison Zombie
|
||||||
|
sk_zombie_poison_health "175"
|
||||||
|
sk_zombie_poison_dmg_spit "20"
|
||||||
|
|
||||||
|
//Antlion
|
||||||
|
sk_antlion_health "30"
|
||||||
|
sk_antlion_swipe_damage "5"
|
||||||
|
sk_antlion_jump_damage "5"
|
||||||
|
|
||||||
|
//Antlion Guard
|
||||||
|
sk_antlionguard_health "500"
|
||||||
|
sk_antlionguard_dmg_charge "20"
|
||||||
|
sk_antlionguard_dmg_shove "10"
|
||||||
|
|
||||||
|
//Antlion Grub
|
||||||
|
//sk_antliongrub_health "5"
|
||||||
|
|
||||||
|
//Ichthyosaur
|
||||||
|
sk_ichthyosaur_health "200"
|
||||||
|
sk_ichthyosaur_melee_dmg "8"
|
||||||
|
|
||||||
|
// Combine Gunship
|
||||||
|
sk_gunship_burst_size "15"
|
||||||
|
sk_gunship_health_increments "5"
|
||||||
|
sk_npc_dmg_gunship "40"
|
||||||
|
sk_npc_dmg_gunship_to_plr "3"
|
||||||
|
|
||||||
|
// Combine Helicopter
|
||||||
|
sk_npc_dmg_helicopter "6"
|
||||||
|
sk_npc_dmg_helicopter_to_plr "3"
|
||||||
|
sk_helicopter_grenadedamage "30"
|
||||||
|
sk_helicopter_grenaderadius "275"
|
||||||
|
sk_helicopter_grenadeforce "55000"
|
||||||
|
|
||||||
|
// Combine Dropship
|
||||||
|
sk_npc_dmg_dropship "2"
|
||||||
|
|
||||||
|
// Combine APC
|
||||||
|
sk_apc_health "750"
|
||||||
|
|
||||||
|
|
||||||
|
// =================
|
||||||
|
// WEAPONS
|
||||||
|
// =================
|
||||||
|
|
||||||
|
sk_plr_dmg_ar2 "8"
|
||||||
|
sk_npc_dmg_ar2 "3"
|
||||||
|
sk_max_ar2 "60"
|
||||||
|
sk_max_ar2_altfire "3"
|
||||||
|
|
||||||
|
sk_plr_dmg_alyxgun "5"
|
||||||
|
sk_npc_dmg_alyxgun "3"
|
||||||
|
sk_max_alyxgun "150"
|
||||||
|
|
||||||
|
sk_plr_dmg_pistol "5"
|
||||||
|
sk_npc_dmg_pistol "3"
|
||||||
|
sk_max_pistol "150"
|
||||||
|
|
||||||
|
sk_plr_dmg_smg1 "4"
|
||||||
|
sk_npc_dmg_smg1 "3"
|
||||||
|
sk_max_smg1 "225"
|
||||||
|
|
||||||
|
sk_plr_dmg_buckshot "8"
|
||||||
|
sk_npc_dmg_buckshot "3"
|
||||||
|
sk_max_buckshot "30"
|
||||||
|
|
||||||
|
sk_plr_dmg_rpg_round "100"
|
||||||
|
sk_npc_dmg_rpg_round "50"
|
||||||
|
sk_max_rpg_round "3"
|
||||||
|
|
||||||
|
sk_plr_dmg_smg1_grenade "100"
|
||||||
|
sk_npc_dmg_smg1_grenade "50"
|
||||||
|
sk_max_smg1_grenade "3"
|
||||||
|
sk_smg1_grenade_radius "250"
|
||||||
|
|
||||||
|
//sk_plr_dmg_gauss "25"
|
||||||
|
//sk_plr_max_dmg_gauss "30"
|
||||||
|
|
||||||
|
sk_plr_dmg_sniper_round "20"
|
||||||
|
sk_npc_dmg_sniper_round "100"
|
||||||
|
sk_max_sniper_round "30"
|
||||||
|
|
||||||
|
sk_plr_dmg_357 "40"
|
||||||
|
sk_npc_dmg_357 "30"
|
||||||
|
sk_max_357 "12"
|
||||||
|
|
||||||
|
sk_plr_dmg_crossbow "100"
|
||||||
|
sk_npc_dmg_crossbow "10"
|
||||||
|
sk_max_crossbow "10"
|
||||||
|
|
||||||
|
sk_plr_dmg_airboat "3"
|
||||||
|
sk_npc_dmg_airboat "3"
|
||||||
|
|
||||||
|
//sk_dmg_sniper_penetrate_plr "10"
|
||||||
|
//sk_dmg_sniper_penetrate_npc "100"
|
||||||
|
|
||||||
|
sk_plr_dmg_grenade "150"
|
||||||
|
sk_npc_dmg_grenade "75"
|
||||||
|
sk_max_grenade "5"
|
||||||
|
|
||||||
|
sk_plr_dmg_crowbar "10"
|
||||||
|
sk_npc_dmg_crowbar "5"
|
||||||
|
|
||||||
|
sk_plr_dmg_stunstick "10"
|
||||||
|
sk_npc_dmg_stunstick "40" // Kill a citizen in one hit
|
||||||
|
|
||||||
|
//sk_plr_dmg_satchel "150"
|
||||||
|
//sk_npc_dmg_satchel "75"
|
||||||
|
//sk_satchel_radius "150"
|
||||||
|
|
||||||
|
// Mortar Synth projectile
|
||||||
|
//sk_dmg_energy_grenade "2"
|
||||||
|
//sk_energy_grenade_radius "100"
|
||||||
|
|
||||||
|
sk_dmg_homer_grenade "20"
|
||||||
|
sk_homer_grenade_radius "100"
|
||||||
|
|
||||||
|
// Bullsquid spit
|
||||||
|
//sk_dmg_spit_grenade "5"
|
||||||
|
//sk_spit_grenade_radius "50"
|
||||||
|
|
||||||
|
//sk_plr_dmg_tripmine "150"
|
||||||
|
//sk_npc_dmg_tripmine "125"
|
||||||
|
//sk_tripmine_radius "200"
|
||||||
|
|
||||||
|
sk_plr_dmg_fraggrenade "125"
|
||||||
|
sk_npc_dmg_fraggrenade "75"
|
||||||
|
sk_fraggrenade_radius "250"
|
||||||
|
|
||||||
|
// HEALTH/SUIT CHARGE DISTRIBUTION
|
||||||
|
sk_suitcharger "75"
|
||||||
|
sk_suitcharger_citadel "500"
|
||||||
|
sk_suitcharger_citadel_maxarmor "200"
|
||||||
|
sk_battery "15"
|
||||||
|
sk_healthcharger "50"
|
||||||
|
sk_healthkit "25"
|
||||||
|
sk_healthvial "10"
|
||||||
|
|
||||||
|
// Combine balls
|
||||||
|
sk_combineball_seek_angle "15"
|
||||||
|
sk_combineball_guidefactor "1.0"
|
||||||
|
|
||||||
|
// NPC damage adjusters
|
||||||
|
sk_npc_head "3"
|
||||||
|
sk_npc_chest "1"
|
||||||
|
sk_npc_stomach "1"
|
||||||
|
sk_npc_arm "1"
|
||||||
|
sk_npc_leg "1"
|
||||||
|
|
||||||
|
// player damage adjusters
|
||||||
|
sk_player_head "3"
|
||||||
|
sk_player_chest "1"
|
||||||
|
sk_player_stomach "1"
|
||||||
|
sk_player_arm "1"
|
||||||
|
sk_player_leg "1"
|
||||||
|
|
||||||
|
// Allies
|
||||||
|
sk_ally_regen_time "0.2"
|
||||||
|
|
||||||
|
// Jeep
|
||||||
|
sk_max_gauss_round "30"
|
||||||
|
|
||||||
|
// =================
|
||||||
|
// RTSL
|
||||||
|
// =================
|
||||||
|
//Max health
|
||||||
|
sk_mechacrab_health "40"
|
||||||
|
//Damage inflicted by the mechacrab
|
||||||
|
sk_mechacrab_melee_dmg "10"
|
||||||
|
//Damage taken by crowbar hits
|
||||||
|
sk_mechacrab_crowbar_dmg "20"
|
@ -7,3 +7,5 @@ sk_apc_missile_damage "50"
|
|||||||
// Antlion air attack
|
// Antlion air attack
|
||||||
sk_antlion_air_attack_dmg "10"
|
sk_antlion_air_attack_dmg "10"
|
||||||
|
|
||||||
|
sk_lostsoul_health "25"
|
||||||
|
sk_lostsoul_melee_dmg "5"
|
52
sp/game/mod_episodic/halloween.fgd
Normal file
52
sp/game/mod_episodic/halloween.fgd
Normal file
@ -0,0 +1,52 @@
|
|||||||
|
//=============================================================================
|
||||||
|
//
|
||||||
|
// Purpose: Half-Life 2 mod game definition file (.fgd)
|
||||||
|
// Defines new entities for Halloween themed mods
|
||||||
|
//
|
||||||
|
//=============================================================================
|
||||||
|
|
||||||
|
@include "base.fgd"
|
||||||
|
@include "halflife2"
|
||||||
|
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
//
|
||||||
|
// NPCs
|
||||||
|
//
|
||||||
|
//-------------------------------------------------------------------------
|
||||||
|
@NPCClass base(BaseNPC) studioprop() = npc_shadow_walker : "Shadow Walker"
|
||||||
|
[
|
||||||
|
additionalequipment(choices) : "Weapons" : "0" : "It is recommended that the Shadow Walker be equipped with a melee weapon such as the crowbar or stunstick. The shotgun and Annabelle also work surprisingly well, but firing patterns have not been set up for automatic weapons." =
|
||||||
|
[
|
||||||
|
"0" : "Custom Melee Weapon"
|
||||||
|
"weapon_crowbar" : "Crow Bar"
|
||||||
|
"weapon_stunstick" : "Stun Stick"
|
||||||
|
"weapon_shotgun" : "Shotgun"
|
||||||
|
"weapon_annabelle" : "Annabelle"
|
||||||
|
"weapon_pistol" : "Pistol"
|
||||||
|
"weapon_ar2" : "AR2"
|
||||||
|
"weapon_smg1" : "SMG1"
|
||||||
|
"weapon_alyxgun" : "Alyx Gun"
|
||||||
|
]
|
||||||
|
|
||||||
|
model(studio) : "World Model" : "models/monster/subject.mdl" : "You may specify any model for this NPC. However, the NPC was written with standard human animations in mind. Missing animations may cause errors. Be aware the animations of the model you choose will affect the NPC's behavior."
|
||||||
|
WeaponModel(studio) : "Weapon Model Override" : "models/props_canal/mattpipe.mdl" : "If the Shadow Walker is set to use 'Custom Melee Weapon', you may supply a world model to use. I would recommend using the pipe model, the crowbar model, or the stunstick model."
|
||||||
|
|
||||||
|
Health(integer) : "Health" : 75 : "Starting health of the NPC."
|
||||||
|
|
||||||
|
FearSound(sound) : "Fear Sound" : "NPC_ShadowWalker.Fear" : "The NPC will play this sound when retreating."
|
||||||
|
DeathSound(sound) : "Death Sound" : "NPC_ShadowWalker.Death" : "The NPC will play this sound on death."
|
||||||
|
IdleSound(sound) : "Idle Sound" : "NPC_ShadowWalker.Idle" : "The NPC will play this sound while wandering idly."
|
||||||
|
PainSound(sound) : "Pain Sound" : "NPC_ShadowWalker.Pain" : "The NPC will play this sound when damaged."
|
||||||
|
AlertSound(sound) : "Alert Sound" : "NPC_ShadowWalker.Alert" : "The NPC will play this sound while in an alert state."
|
||||||
|
LostEnemySound(sound) : "Lost Enemy Sound" : "NPC_ShadowWalker.LostEnemy" : "The NPC will play this sound if it loses sight of its enemy."
|
||||||
|
FoundEnemySound(sound) : "Found Enemy Sound" : "NPC_ShadowWalker.FoundEnemy" : "The NPC will play this sound if it finds an enemy again after previously losing it."
|
||||||
|
UseBothSquadSlots(choices) : "Use Both Squad Slots" : 0 : "When in a squad, how many shadow walkers should be able to chase the player at one time? Additional squadmates will run away from the player in the hopes of setting up an ambush." =
|
||||||
|
[
|
||||||
|
0 : "Use One Squad Slot"
|
||||||
|
1 : "Use Both Squad Slots"
|
||||||
|
]
|
||||||
|
]
|
||||||
|
|
||||||
|
@NPCClass base(npc_manhack) studio("models/skeleton/skeleton_torso3.mdl") = npc_lost_soul : "Lost Soul"
|
||||||
|
[
|
||||||
|
]
|
126
sp/game/mod_episodic/scripts/game_sounds_manifest.txt
Normal file
126
sp/game/mod_episodic/scripts/game_sounds_manifest.txt
Normal file
@ -0,0 +1,126 @@
|
|||||||
|
game_sounds_manifest
|
||||||
|
{
|
||||||
|
|
||||||
|
"precache_file" "scripts/game_sounds.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_ui.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_player.txt"
|
||||||
|
|
||||||
|
// Weapon sounds
|
||||||
|
"precache_file" "scripts/game_sounds_weapons.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_weapons_ep2.txt"
|
||||||
|
|
||||||
|
// HL2 World, Ambient Generic, Items, Physics, Vehicles
|
||||||
|
"precache_file" "scripts/game_sounds_world.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_ambient_generic.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_items.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_physics.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_vehicles.txt"
|
||||||
|
|
||||||
|
// E3 level sounds
|
||||||
|
"precache_file" "scripts/level_sounds_e3_c17.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_e3_town.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_e3_bugbait.txt"
|
||||||
|
|
||||||
|
// Episodic content sounds
|
||||||
|
"precache_file" "scripts/npc_sounds_alyx_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_strider_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_strider_episodic2.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_turret_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_soldier_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_ministrider_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_roller_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_combine_ball_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_citizen_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_citizen_episodic2.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_citizen_ep1.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_zombine.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_dog_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_antlion_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_antlionguard_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_antlionguard_episodic2.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_advisor.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_advisor_episodic2.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_hunter.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_antlion_grub_episodic.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_attackheli_episodic2.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_fastzombie_episodic2.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_addendum_ep2.txt"
|
||||||
|
|
||||||
|
|
||||||
|
"precache_file" "scripts/level_sounds_music_episodic.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_music_episodic2.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_weapons_episodic.txt"
|
||||||
|
"precache_file" "scripts/level_voices_episode_01.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_aftermath_episodic.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_outland_episodic.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_c17_02a.txt"
|
||||||
|
|
||||||
|
"precache_file" "scripts/level_voices_episode_02.txt"
|
||||||
|
"precache_file" "scripts/game_sounds_vehicles_ep2.txt"
|
||||||
|
|
||||||
|
// EP2 content sounds
|
||||||
|
"precache_file" "scripts/game_sounds_physics_ep2.txt"
|
||||||
|
|
||||||
|
// Game level sounds
|
||||||
|
"precache_file" "scripts/level_sounds_eli_lab.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_trainyard.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_k_lab.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_k_lab2.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_coast.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_novaprospekt.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_streetwar.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_streetwar2.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_breencast.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_citadel.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_canals.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_ravenholm.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_ravenholm2.txt"
|
||||||
|
"precache_file" "scripts/level_sounds_canals2.txt"
|
||||||
|
|
||||||
|
//Music Tracks
|
||||||
|
"precache_file" "scripts/level_sounds_music.txt"
|
||||||
|
|
||||||
|
// NPC Sounds
|
||||||
|
"precache_file" "scripts/npc_sounds_eli.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_alyx.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_dog.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_citizen.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_barney.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_soldier.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_strider.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_zombie.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_vortigaunt.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_turret.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_scanner.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_rollermine.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_poisonzombie.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_metropolice.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_combinecamera.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_manhack.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_ichthyosaur.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_blackheadcrab.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_fastheadcrab.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_headcrab.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_fastzombie.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_birds.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_gunship.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_dropship.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_barnacle.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_attackheli.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_antlionguard.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_antlion.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_env_headcrabcanister.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_combine_ball.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_combine_mine.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_sniper.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_stalker.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_gman.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_combine_cannon.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_alyx_episodic2.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_turret_episodic2.txt"
|
||||||
|
|
||||||
|
// 1upD's Halloween NPCs
|
||||||
|
"precache_file" "scripts/npc_sounds_shadow_walker.txt"
|
||||||
|
"precache_file" "scripts/npc_sounds_lost_soul.txt"
|
||||||
|
|
||||||
|
}
|
86
sp/game/mod_episodic/scripts/npc_sounds_lost_soul.txt
Normal file
86
sp/game/mod_episodic/scripts/npc_sounds_lost_soul.txt
Normal file
@ -0,0 +1,86 @@
|
|||||||
|
// Default sound scripts for npc_lost_soul
|
||||||
|
// Author: 1upD
|
||||||
|
|
||||||
|
"NPC_LostSoul.Die"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_BODY"
|
||||||
|
"volume" "VOL_NORM"
|
||||||
|
"pitch" "PITCH_NORM"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"wave" "physics/flesh/flesh_bloody_break.wav"
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"NPC_LostSoul.Burn"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_ITEM"
|
||||||
|
"volume" "VOL_NORM"
|
||||||
|
"pitch" "PITCH_NORM"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_70dB"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "player/pl_burnpain1.wav"
|
||||||
|
"wave" "player/pl_burnpain2.wav"
|
||||||
|
"wave" "player/pl_burnpain3.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"NPC_LostSoul.Float"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_ITEM"
|
||||||
|
"volume" "VOL_NORM"
|
||||||
|
"pitch" "PITCH_NORM"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "ambient\levels\citadel\datatransfmalevx01.wav"
|
||||||
|
"wave" "ambient\levels\citadel\datatransmalevx01.wav"
|
||||||
|
"wave" "ambient\levels\citadel\datatransmalevx02.wav"
|
||||||
|
"wave" "ambient\levels\citadel\datatransmalevx02.wav"
|
||||||
|
"wave" "ambient\levels\citadel\datatransrandom03.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
"NPC_LostSoul.ChargeAnnounce"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_WEAPON"
|
||||||
|
"volume" "VOL_NORM"
|
||||||
|
"pitch" "120, 125"
|
||||||
|
"soundlevel" "SNDLVL_70dB"
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc/zombie_poison/pz_alert1.wav"
|
||||||
|
"wave" "npc/zombie_poison/pz_alert1.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_LostSoul.ChargeEnd"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_WEAPON"
|
||||||
|
"volume" "VOL_NORM"
|
||||||
|
"pitch" "120, 125"
|
||||||
|
"soundlevel" "SNDLVL_70dB"
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc/zombie_poison/pz_warn1.wav"
|
||||||
|
"wave" "npc/zombie_poison/pz_warn1.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_LostSoul.Stunned"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.80"
|
||||||
|
"pitch" "145,150"
|
||||||
|
"soundlevel" "SNDLVL_70dB"
|
||||||
|
"wave" "npc/scanner/scanner_siren2.wav"
|
||||||
|
}
|
||||||
|
|
200
sp/game/mod_episodic/scripts/npc_sounds_shadow_walker.txt
Normal file
200
sp/game/mod_episodic/scripts/npc_sounds_shadow_walker.txt
Normal file
@ -0,0 +1,200 @@
|
|||||||
|
// Default sound scripts for npc_shadow_walker
|
||||||
|
// Author: 1upD
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Pain"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "65, 70"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc\stalker\stalker_pain1.wav"
|
||||||
|
"wave" "npc\stalker\stalker_pain2.wav"
|
||||||
|
"wave" "npc\stalker\stalker_pain3.wav"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Idle"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "80, 90"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc\stalker\stalker_scream1.wav"
|
||||||
|
"wave" "npc\stalker\stalker_scream2.wav"
|
||||||
|
"wave" "npc\stalker\stalker_scream3.wav"
|
||||||
|
"wave" "npc\stalker\stalker_scream4.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Vocal.Idle"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "62, 62"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "vo\episode_1\citadel\al_stalk_pleasestopscreaming01.wav"
|
||||||
|
"wave" "vo\episode_1\citadel\al_stalk_pleasestopscreaming02.wav"
|
||||||
|
"wave" "vo\episode_1\citadel\al_stalk_pleasestopscreaming03.wav"
|
||||||
|
"wave" "vo\episode_1\citadel\al_stalk_pleasestopscreaming04.wav"
|
||||||
|
"wave" "vo\episode_1\citadel\al_stalk_pleasestopscreaming05.wav"
|
||||||
|
"wave" "vo\k_lab2\al_optimism.wav"
|
||||||
|
"wave" "vo\episode_1\c17\al_elev_whereselev.wav"
|
||||||
|
"wave" "vo\episode_1\intro\al_wheredoeshethink.wav"
|
||||||
|
"wave" "vo\outland_02\griggs_everywhere.wav"
|
||||||
|
"wave" "vo\outland_11a\silo\kl_silo_wheredata01.wav"
|
||||||
|
"wave" "vo\episode_1\intro\al_cantbelieveit.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_deaf_canthearanything.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_deaf_canthearyou.wav"
|
||||||
|
"wave" "vo\k_lab\ba_cantlook.wav"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Fear"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "62, 62"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
// Replace these
|
||||||
|
"wave" "npc\stalker\stalker_die2.wav"
|
||||||
|
"wave" "npc\stalker\stalker_pain1.wav"
|
||||||
|
"wave" "npc\stalker\stalker_pain2.wav"
|
||||||
|
"wave" "npc\stalker\stalker_pain3.wav"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Alert"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "80, 90"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc\stalker\stalker_alert1b.wav"
|
||||||
|
"wave" "npc\stalker\stalker_alert2b.wav"
|
||||||
|
"wave" "npc\stalker\stalker_alert3b.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Vocal.Alert"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "62, 62"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "vo\citadel\al_bitofit.wav"
|
||||||
|
"wave" "vo\outland_01\intro\al_rbed_notalone.wav"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.LostEnemy"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "80, 90"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc\zombie_poison\pz_alert2.wav"
|
||||||
|
"wave" "npc\stalker\stalker_die2.wav"
|
||||||
|
"wave" "npc\stalker\stalker_scream4.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Vocal.LostEnemy"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "62, 62"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "vo\citadel\al_notagain02.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_light_lost05.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_light_lost11.wav"
|
||||||
|
"wave" "vo\citadel\al_wonderwhere.wav"
|
||||||
|
"wave" "vo\outland_12a\launch\al_launch_damnit.wav"
|
||||||
|
"wave" "vo\streetwar\alyx_gate\al_no.wav"
|
||||||
|
"wave" "vo\k_lab\kl_thenwhere.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.FoundEnemy"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "75, 85"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc\stalker\go_alert2.wav"
|
||||||
|
"wave" "npc\stalker\go_alert2a.wav"
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Vocal.FoundEnemy"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "62, 62"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "npc\stalker\stalker_scream1.wav"
|
||||||
|
"wave" "vo\citadel\al_thatshim.wav"
|
||||||
|
"wave" "vo\citadel\al_thereheis.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_rejoin02.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_seemanyfoe03.wav"
|
||||||
|
"wave" "vo\episode_1\npc\alyx\al_zombie_liveone02.wav"
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
"NPC_ShadowWalker.Death"
|
||||||
|
{
|
||||||
|
"channel" "CHAN_VOICE"
|
||||||
|
"volume" "0.95"
|
||||||
|
"pitch" "60, 65"
|
||||||
|
|
||||||
|
"soundlevel" "SNDLVL_NORM"
|
||||||
|
|
||||||
|
"rndwave"
|
||||||
|
{
|
||||||
|
"wave" "ambient\creatures\town_child_scream1.wav"
|
||||||
|
}
|
||||||
|
}
|
@ -1,25 +1,12 @@
|
|||||||
//========= Copyright Valve Corporation, All rights reserved. ============//
|
//=//=============================================================================//
|
||||||
// This is a skeleton file for use when creating a new
|
|
||||||
// NPC. Copy and rename this file for the new
|
|
||||||
// NPC and add the copy to the build.
|
|
||||||
//
|
//
|
||||||
// Leave this file in the build until we ship! Allowing
|
// Purpose: A frightening flying creature with the appearance of a burning skull.
|
||||||
// this file to be rebuilt with the rest of the game ensures
|
// May be familiar to first person shooter fans.
|
||||||
// that it stays up to date with the rest of the NPC code.
|
|
||||||
//
|
//
|
||||||
// Replace occurances of CNPC_ShadowWalker with the new NPC's
|
// npc_lost_soul is a modified version of a manhack inspired by Mallikas'
|
||||||
// classname. Don't forget the lower-case occurance in
|
// HalloweenVilleFour entry, Satanophobia, as well as Doom.
|
||||||
// LINK_ENTITY_TO_CLASS()
|
|
||||||
//
|
//
|
||||||
//
|
// Author: 1upD
|
||||||
// ASSUMPTIONS MADE:
|
|
||||||
//
|
|
||||||
// You're making a character based on CAI_BaseNPC. If this
|
|
||||||
// is not true, make sure you replace all occurances
|
|
||||||
// of 'CAI_BaseNPC' in this file with the appropriate
|
|
||||||
// parent class.
|
|
||||||
//
|
|
||||||
// You're making a human-sized NPC that walks.
|
|
||||||
//
|
//
|
||||||
//=============================================================================//
|
//=============================================================================//
|
||||||
#include "cbase.h"
|
#include "cbase.h"
|
||||||
@ -61,37 +48,6 @@
|
|||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// Private activities
|
|
||||||
//=========================================================
|
|
||||||
//int ACT_MYCUSTOMACTIVITY = -1;
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// Custom schedules
|
|
||||||
//=========================================================
|
|
||||||
//enum
|
|
||||||
//{
|
|
||||||
// SCHED_MYCUSTOMSCHEDULE = LAST_SHARED_SCHEDULE,
|
|
||||||
//};
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// Custom tasks
|
|
||||||
//=========================================================
|
|
||||||
//enum
|
|
||||||
//{
|
|
||||||
// TASK_MYCUSTOMTASK = LAST_SHARED_TASK,
|
|
||||||
//};
|
|
||||||
|
|
||||||
|
|
||||||
//=========================================================
|
|
||||||
// Custom Conditions
|
|
||||||
//=========================================================
|
|
||||||
//enum
|
|
||||||
//{
|
|
||||||
// COND_MYCUSTOMCONDITION = LAST_SHARED_CONDITION,
|
|
||||||
//};
|
|
||||||
|
|
||||||
|
|
||||||
ConVar sk_lostsoul_health("sk_lostsoul_health", "0");
|
ConVar sk_lostsoul_health("sk_lostsoul_health", "0");
|
||||||
ConVar sk_lostsoul_melee_dmg("sk_lostsoul_melee_dmg", "0");
|
ConVar sk_lostsoul_melee_dmg("sk_lostsoul_melee_dmg", "0");
|
||||||
|
|
||||||
@ -290,9 +246,8 @@ int CNPC_LostSoul::OnTakeDamage_Alive(const CTakeDamageInfo &info)
|
|||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
void CNPC_LostSoul::DeathSound(const CTakeDamageInfo &info)
|
void CNPC_LostSoul::DeathSound(const CTakeDamageInfo &info)
|
||||||
{
|
{
|
||||||
StopSound("NPC_Lost_Soul.Stunned");
|
CPASAttenuationFilter filter2(this, "NPC_LostSoul.Die");
|
||||||
CPASAttenuationFilter filter2(this, "NPC_Lost_Soul.Die");
|
EmitSound(filter2, entindex(), "NPC_LostSoul.Die");
|
||||||
EmitSound(filter2, entindex(), "NPC_Lost_Soul.Die");
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -337,7 +292,7 @@ void CNPC_LostSoul::PlayFlySound(void)
|
|||||||
// Play special engine every once in a while
|
// Play special engine every once in a while
|
||||||
if (gpGlobals->curtime > m_flNextEngineSoundTime && flEnemyDist < 48)
|
if (gpGlobals->curtime > m_flNextEngineSoundTime && flEnemyDist < 48)
|
||||||
{
|
{
|
||||||
m_flNextEngineSoundTime = gpGlobals->curtime + random->RandomFloat(3.0, 10.0);
|
m_flNextEngineSoundTime = gpGlobals->curtime + random->RandomFloat(0.5, 2.0);
|
||||||
|
|
||||||
EmitSound("NPC_LostSoul.Float");
|
EmitSound("NPC_LostSoul.Float");
|
||||||
}
|
}
|
||||||
@ -479,34 +434,17 @@ void CNPC_LostSoul::MoveToTarget(float flInterval, const Vector &vMoveTarget)
|
|||||||
myAccel = flDist / flInterval;
|
myAccel = flDist / flInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*
|
|
||||||
// Boost vertical movement
|
|
||||||
if ( targetDir.z > 0 )
|
|
||||||
{
|
|
||||||
// Z acceleration is faster when we thrust upwards.
|
|
||||||
// This is to help keep manhacks out of water.
|
|
||||||
myZAccel *= 5.0;
|
|
||||||
}
|
|
||||||
*/
|
|
||||||
|
|
||||||
// Clamp vertical movement
|
// Clamp vertical movement
|
||||||
if (myZAccel > flDist / flInterval)
|
if (myZAccel > flDist / flInterval)
|
||||||
{
|
{
|
||||||
myZAccel = flDist / flInterval;
|
myZAccel = flDist / flInterval;
|
||||||
}
|
}
|
||||||
|
|
||||||
// Scale by our engine force
|
|
||||||
//myAccel *= m_fEnginePowerScale;
|
|
||||||
//myZAccel *= m_fEnginePowerScale;
|
|
||||||
|
|
||||||
MoveInDirection(flInterval, targetDir, myAccel, myZAccel, myDecay);
|
MoveInDirection(flInterval, targetDir, myAccel, myZAccel, myDecay);
|
||||||
|
|
||||||
// calc relative banking targets
|
// calc relative banking targets
|
||||||
Vector forward, right;
|
Vector forward, right;
|
||||||
GetVectors(&forward, &right, NULL);
|
GetVectors(&forward, &right, NULL);
|
||||||
//m_vTargetBanking.x = 40 * DotProduct(forward, targetDir);
|
|
||||||
//m_vTargetBanking.z = 40 * DotProduct(right, targetDir);
|
|
||||||
//m_vTargetBanking.y = 0.0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
|
@ -24,6 +24,7 @@
|
|||||||
#include "engine/IEngineSound.h"
|
#include "engine/IEngineSound.h"
|
||||||
#include "basehlcombatweapon_shared.h"
|
#include "basehlcombatweapon_shared.h"
|
||||||
#include "ai_squadslot.h"
|
#include "ai_squadslot.h"
|
||||||
|
#include "weapon_crowbar.h"
|
||||||
|
|
||||||
// memdbgon must be the last include file in a .cpp file!!!
|
// memdbgon must be the last include file in a .cpp file!!!
|
||||||
#include "tier0/memdbgon.h"
|
#include "tier0/memdbgon.h"
|
||||||
@ -57,8 +58,13 @@ public:
|
|||||||
virtual void LostEnemySound(void) { PlaySound(m_iszLostEnemySound, false); };
|
virtual void LostEnemySound(void) { PlaySound(m_iszLostEnemySound, false); };
|
||||||
virtual void FoundEnemySound(void) { PlaySound(m_iszFoundEnemySound, false); };
|
virtual void FoundEnemySound(void) { PlaySound(m_iszFoundEnemySound, false); };
|
||||||
|
|
||||||
|
void Activate();
|
||||||
|
void FixupWeapon();
|
||||||
|
|
||||||
DECLARE_DATADESC();
|
DECLARE_DATADESC();
|
||||||
|
|
||||||
|
string_t m_iszWeaponModelName; // Path/filename of model to override weapon model.
|
||||||
|
|
||||||
string_t m_iszFearSound; // Path/filename of WAV file to play.
|
string_t m_iszFearSound; // Path/filename of WAV file to play.
|
||||||
string_t m_iszDeathSound; // Path/filename of WAV file to play.
|
string_t m_iszDeathSound; // Path/filename of WAV file to play.
|
||||||
string_t m_iszIdleSound; // Path/filename of WAV file to play.
|
string_t m_iszIdleSound; // Path/filename of WAV file to play.
|
||||||
@ -87,7 +93,8 @@ IMPLEMENT_CUSTOM_AI( npc_citizen,CNPC_ShadowWalker );
|
|||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
// Save/Restore
|
// Save/Restore
|
||||||
//---------------------------------------------------------
|
//---------------------------------------------------------
|
||||||
BEGIN_DATADESC( CNPC_ShadowWalker )
|
BEGIN_DATADESC(CNPC_ShadowWalker)
|
||||||
|
DEFINE_KEYFIELD(m_iszWeaponModelName, FIELD_STRING, "WeaponModel"),
|
||||||
DEFINE_KEYFIELD(m_iHealth, FIELD_INTEGER, "Health"),
|
DEFINE_KEYFIELD(m_iHealth, FIELD_INTEGER, "Health"),
|
||||||
DEFINE_KEYFIELD(m_iszFearSound, FIELD_SOUNDNAME, "FearSound"),
|
DEFINE_KEYFIELD(m_iszFearSound, FIELD_SOUNDNAME, "FearSound"),
|
||||||
DEFINE_KEYFIELD(m_iszDeathSound, FIELD_SOUNDNAME, "DeathSound"),
|
DEFINE_KEYFIELD(m_iszDeathSound, FIELD_SOUNDNAME, "DeathSound"),
|
||||||
@ -112,6 +119,18 @@ void CNPC_ShadowWalker::InitCustomSchedules(void)
|
|||||||
INIT_CUSTOM_AI(CNPC_ShadowWalker);
|
INIT_CUSTOM_AI(CNPC_ShadowWalker);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
// Purpose: Inner class for default weapon
|
||||||
|
// TODO: Merge this with the Matt weapon in npc_citizen
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
class CWeaponCustomMelee : public CWeaponCrowbar
|
||||||
|
{
|
||||||
|
DECLARE_CLASS(CWeaponCustomMelee, CWeaponCrowbar);
|
||||||
|
|
||||||
|
const char *GetWorldModel() const { return GetModelName().ToCStr(); }
|
||||||
|
void SetPickupTouch(void) { /* do nothing */ }
|
||||||
|
};
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose:
|
// Purpose:
|
||||||
//
|
//
|
||||||
@ -125,14 +144,21 @@ void CNPC_ShadowWalker::Precache( void )
|
|||||||
SetModelName(MAKE_STRING("models/monster/subject.mdl"));
|
SetModelName(MAKE_STRING("models/monster/subject.mdl"));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (&m_iszWeaponModelName && m_iszWeaponModelName != MAKE_STRING("")) {
|
||||||
|
PrecacheModel(STRING(m_iszWeaponModelName));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
PrecacheModel("models/props_canal/mattpipe.mdl");
|
||||||
|
}
|
||||||
|
|
||||||
PrecacheModel(STRING(GetModelName()));
|
PrecacheModel(STRING(GetModelName()));
|
||||||
PrecacheNPCSoundScript(&m_iszFearSound, MAKE_STRING("NPC_Shadow_Walker.Fear"));
|
PrecacheNPCSoundScript(&m_iszFearSound, MAKE_STRING("NPC_ShadowWalker.Fear"));
|
||||||
PrecacheNPCSoundScript(&m_iszIdleSound, MAKE_STRING("NPC_Shadow_Walker.Idle"));
|
PrecacheNPCSoundScript(&m_iszIdleSound, MAKE_STRING("NPC_ShadowWalker.Idle"));
|
||||||
PrecacheNPCSoundScript(&m_iszAlertSound, MAKE_STRING("NPC_Shadow_Walker.Alert"));
|
PrecacheNPCSoundScript(&m_iszAlertSound, MAKE_STRING("NPC_ShadowWalker.Alert"));
|
||||||
PrecacheNPCSoundScript(&m_iszPainSound, MAKE_STRING("NPC_Shadow_Walker.Pain"));
|
PrecacheNPCSoundScript(&m_iszPainSound, MAKE_STRING("NPC_ShadowWalker.Pain"));
|
||||||
PrecacheNPCSoundScript(&m_iszLostEnemySound, MAKE_STRING("NPC_Shadow_Walker.LostEnemy"));
|
PrecacheNPCSoundScript(&m_iszLostEnemySound, MAKE_STRING("NPC_ShadowWalker.LostEnemy"));
|
||||||
PrecacheNPCSoundScript(&m_iszFoundEnemySound, MAKE_STRING("NPC_Shadow_Walker.FoundEnemy"));
|
PrecacheNPCSoundScript(&m_iszFoundEnemySound, MAKE_STRING("NPC_ShadowWalker.FoundEnemy"));
|
||||||
PrecacheNPCSoundScript(&m_iszDeathSound, MAKE_STRING("NPC_Shadow_Walker.Death"));
|
PrecacheNPCSoundScript(&m_iszDeathSound, MAKE_STRING("NPC_ShadowWalker.Death"));
|
||||||
|
|
||||||
m_bWanderToggle = false;
|
m_bWanderToggle = false;
|
||||||
|
|
||||||
@ -158,10 +184,10 @@ void CNPC_ShadowWalker::Spawn( void )
|
|||||||
SetMoveType( MOVETYPE_STEP );
|
SetMoveType( MOVETYPE_STEP );
|
||||||
SetBloodColor( BLOOD_COLOR_RED );
|
SetBloodColor( BLOOD_COLOR_RED );
|
||||||
|
|
||||||
// If the health has not been set through Hammer, use a default health value of 50
|
// If the health has not been set through Hammer, use a default health value of 75
|
||||||
if (m_iHealth < 1)
|
if (m_iHealth < 1)
|
||||||
{
|
{
|
||||||
m_iHealth = 50;
|
m_iHealth = 75;
|
||||||
}
|
}
|
||||||
|
|
||||||
m_flFieldOfView = 0.5;
|
m_flFieldOfView = 0.5;
|
||||||
@ -187,6 +213,40 @@ void CNPC_ShadowWalker::Spawn( void )
|
|||||||
NPCInit();
|
NPCInit();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
void CNPC_ShadowWalker::FixupWeapon()
|
||||||
|
{
|
||||||
|
// If no weapons supplied, give a crowbar
|
||||||
|
CBaseCombatWeapon *pWeapon = GetActiveWeapon();
|
||||||
|
if (pWeapon == NULL) {
|
||||||
|
pWeapon = (CBaseCombatWeapon *)CREATE_UNSAVED_ENTITY(CWeaponCustomMelee, "weapon_crowbar");
|
||||||
|
|
||||||
|
// Apply weapon model override
|
||||||
|
if (&m_iszWeaponModelName && m_iszWeaponModelName != MAKE_STRING("")) {
|
||||||
|
pWeapon->SetModel(STRING(m_iszWeaponModelName));
|
||||||
|
}
|
||||||
|
else {
|
||||||
|
pWeapon->SetModel("models/props_canal/mattpipe.mdl");
|
||||||
|
}
|
||||||
|
|
||||||
|
DispatchSpawn(pWeapon);
|
||||||
|
Weapon_Equip(pWeapon);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
//-----------------------------------------------------------------------------
|
||||||
|
|
||||||
|
void CNPC_ShadowWalker::Activate()
|
||||||
|
{
|
||||||
|
BaseClass::Activate();
|
||||||
|
FixupWeapon();
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
// Purpose: Choose a schedule after schedule failed
|
// Purpose: Choose a schedule after schedule failed
|
||||||
//-----------------------------------------------------------------------------
|
//-----------------------------------------------------------------------------
|
||||||
@ -464,8 +524,6 @@ bool CNPC_ShadowWalker::HasRangedWeapon()
|
|||||||
Activity CNPC_ShadowWalker::NPC_TranslateActivity(Activity activity)
|
Activity CNPC_ShadowWalker::NPC_TranslateActivity(Activity activity)
|
||||||
{
|
{
|
||||||
switch (activity) {
|
switch (activity) {
|
||||||
case ACT_MELEE_ATTACK1:
|
|
||||||
return ACT_MELEE_ATTACK_SWING;
|
|
||||||
case ACT_RUN_AIM_SHOTGUN:
|
case ACT_RUN_AIM_SHOTGUN:
|
||||||
return ACT_RUN_AIM_RIFLE;
|
return ACT_RUN_AIM_RIFLE;
|
||||||
case ACT_WALK_AIM_SHOTGUN:
|
case ACT_WALK_AIM_SHOTGUN:
|
||||||
@ -486,9 +544,9 @@ void CNPC_ShadowWalker::PlaySound(string_t soundname, bool required /*= false */
|
|||||||
{
|
{
|
||||||
if (required || gpGlobals->curtime > m_flNextSoundTime)
|
if (required || gpGlobals->curtime > m_flNextSoundTime)
|
||||||
{
|
{
|
||||||
m_flNextSoundTime = gpGlobals->curtime + random->RandomFloat(1.0, 2.0);
|
m_flNextSoundTime = gpGlobals->curtime + random->RandomFloat(0.5, 1.0);
|
||||||
CPASAttenuationFilter filter2(this, STRING(soundname));
|
//CPASAttenuationFilter filter2(this, STRING(soundname));
|
||||||
EmitSound(filter2, entindex(), STRING(soundname));
|
EmitSound(STRING(soundname));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -50,6 +50,11 @@ $Project "Server (Episodic)"
|
|||||||
|
|
||||||
$Folder "HL2 DLL"
|
$Folder "HL2 DLL"
|
||||||
{
|
{
|
||||||
|
$Folder "Mod"
|
||||||
|
{
|
||||||
|
$File "mod\npc_lost_soul.cpp"
|
||||||
|
$File "mod\npc_shadow_walker.cpp"
|
||||||
|
}
|
||||||
$File "$SRCDIR\game\shared\episodic\achievements_ep1.cpp"
|
$File "$SRCDIR\game\shared\episodic\achievements_ep1.cpp"
|
||||||
$File "$SRCDIR\game\shared\episodic\achievements_ep2.cpp"
|
$File "$SRCDIR\game\shared\episodic\achievements_ep2.cpp"
|
||||||
$File "$SRCDIR\game\shared\episodic\achievements_epx.cpp"
|
$File "$SRCDIR\game\shared\episodic\achievements_epx.cpp"
|
||||||
|
Loading…
x
Reference in New Issue
Block a user