From 9fe2c6ca580a1678ea9cd43c63699362e58d91bd Mon Sep 17 00:00:00 2001 From: div0 Date: Wed, 3 Jun 2009 06:08:14 +0000 Subject: [PATCH] more projectile health cvars more health for RL immuine rockets in havoc git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6851 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/constants.qh | 2 +- data/qcsrc/server/w_electro.qc | 2 +- data/qcsrc/server/w_grenadelauncher.qc | 4 +++- data/qcsrc/server/w_hagar.qc | 15 --------------- data/qcsrc/server/w_rocketlauncher.qc | 4 +++- data/qcsrc/server/w_seeker.qc | 12 +++++++++--- data/weapons.cfg | 13 +++++++++---- data/weaponsHavoc.cfg | 13 +++++++++---- 8 files changed, 35 insertions(+), 30 deletions(-) diff --git a/data/qcsrc/server/constants.qh b/data/qcsrc/server/constants.qh index 43f5381d1..285c0883b 100644 --- a/data/qcsrc/server/constants.qh +++ b/data/qcsrc/server/constants.qh @@ -1,5 +1,5 @@ string CVAR_CHECK_DEFAULT = "c120fa8ce7b9f4b1b86b922d65249573"; -string CVAR_CHECK_WEAPONS = "2f93eb8481f44bb2ff744af86a75eccf"; +string CVAR_CHECK_WEAPONS = "5de99bb7a7ad820b384e6e9e8875ce42"; float FALSE = 0; float TRUE = 1; diff --git a/data/qcsrc/server/w_electro.qc b/data/qcsrc/server/w_electro.qc index 2fb259079..28e1633d2 100644 --- a/data/qcsrc/server/w_electro.qc +++ b/data/qcsrc/server/w_electro.qc @@ -132,7 +132,7 @@ void W_Electro_Attack2() proj.touch = W_Plasma_Touch; setsize(proj, '0 0 -3', '0 0 -3'); proj.takedamage = DAMAGE_YES; - proj.damageforcescale = 4; + proj.damageforcescale = cvar("g_balance_electro_secondary_damageforcescale"); proj.health = cvar("g_balance_electro_secondary_health"); proj.event_damage = W_Plasma_Damage; proj.flags = FL_PROJECTILE; diff --git a/data/qcsrc/server/w_grenadelauncher.qc b/data/qcsrc/server/w_grenadelauncher.qc index 2651ae955..bf5dbf8b4 100644 --- a/data/qcsrc/server/w_grenadelauncher.qc +++ b/data/qcsrc/server/w_grenadelauncher.qc @@ -61,6 +61,8 @@ void W_Grenade_Touch2 (void) void W_Grenade_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) { + if (self.health <= 0) + return; self.health = self.health - damage; if (self.health <= 0) { @@ -131,7 +133,7 @@ void W_Grenade_Attack2 (void) gren.touch = W_Grenade_Touch2; gren.takedamage = DAMAGE_YES; gren.health = cvar("g_balance_grenadelauncher_secondary_health"); - gren.damageforcescale = 4; + gren.damageforcescale = cvar("g_balance_grenadelauncher_secondary_damageforcescale"); gren.event_damage = W_Grenade_Damage; gren.velocity = w_shotdir * cvar("g_balance_grenadelauncher_secondary_speed") + v_up * cvar("g_balance_grenadelauncher_secondary_speed_up"); W_SetupProjectileVelocity(gren); diff --git a/data/qcsrc/server/w_hagar.qc b/data/qcsrc/server/w_hagar.qc index 4edccccb2..e2df25a3e 100644 --- a/data/qcsrc/server/w_hagar.qc +++ b/data/qcsrc/server/w_hagar.qc @@ -36,13 +36,6 @@ void W_Hagar_Touch2 (void) } } -void W_Hagar_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) -{ - self.health = self.health - damage; - if (self.health <= 0) - W_PrepareExplosionByDamage(attacker, self.think); -} - void W_Hagar_Attack (void) { local entity missile; @@ -66,10 +59,6 @@ void W_Hagar_Attack (void) missile.projectiledeathtype = WEP_HAGAR; setorigin (missile, w_shotorg); setsize(missile, '0 0 0', '0 0 0'); - //missile.takedamage = DAMAGE_YES; - //missile.damageforcescale = 4; - //missile.health = 10; - //missile.event_damage = W_Hagar_Damage; missile.movetype = MOVETYPE_FLY; missile.velocity = (w_shotdir + randomvec() * cvar("g_balance_hagar_primary_spread")) * cvar("g_balance_hagar_primary_speed"); @@ -106,10 +95,6 @@ void W_Hagar_Attack2 (void) missile.projectiledeathtype = WEP_HAGAR | HITTYPE_SECONDARY; setorigin (missile, w_shotorg); setsize(missile, '0 0 0', '0 0 0'); - //missile.takedamage = DAMAGE_YES; - //missile.damageforcescale = 4; - //missile.health = 10; - //missile.event_damage = W_Hagar_Damage; missile.movetype = MOVETYPE_BOUNCEMISSILE; missile.velocity = (w_shotdir + randomvec() * cvar("g_balance_hagar_secondary_spread")) * cvar("g_balance_hagar_secondary_speed"); diff --git a/data/qcsrc/server/w_rocketlauncher.qc b/data/qcsrc/server/w_rocketlauncher.qc index 880a915c5..c4232b943 100644 --- a/data/qcsrc/server/w_rocketlauncher.qc +++ b/data/qcsrc/server/w_rocketlauncher.qc @@ -239,6 +239,8 @@ void W_Rocket_Touch (void) void W_Rocket_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) { + if (self.health <= 0) + return; self.health = self.health - damage; self.angles = vectoangles(self.velocity); if (self.health <= 0) @@ -269,7 +271,7 @@ void W_Rocket_Attack (void) missile.bot_dodgerating = cvar("g_balance_rocketlauncher_primary_damage") * 2; // * 2 because it can be detonated inflight which makes it even more dangerous missile.takedamage = DAMAGE_YES; - missile.damageforcescale = 4; + missile.damageforcescale = cvar("g_balance_rocketlauncher_damageforcescale"); missile.health = cvar("g_balance_rocketlauncher_health"); missile.event_damage = W_Rocket_Damage; diff --git a/data/qcsrc/server/w_seeker.qc b/data/qcsrc/server/w_seeker.qc index cd63c7673..34fb05dce 100644 --- a/data/qcsrc/server/w_seeker.qc +++ b/data/qcsrc/server/w_seeker.qc @@ -120,6 +120,9 @@ void Seeker_Missile_Damage (entity inflictor, entity attacker, float damage, flo float d; d = damage; + if (self.health <= 0) + return; + if (self.owner == attacker) d = d * 0.25; @@ -185,8 +188,8 @@ void Seeker_Fire_Missile(vector f_diff) missile.solid = SOLID_BBOX; missile.scale = 2; missile.takedamage = DAMAGE_YES; - missile.damageforcescale = 4; - missile.health = 5; + missile.health = cvar("g_balance_seeker_missile_health"); + missile.damageforcescale = cvar("g_balance_seeker_missile_damageforcescale"); missile.projectiledeathtype = WEP_SEEKER; setorigin (missile, w_shotorg); @@ -259,6 +262,8 @@ void Seeker_Tag_Explode () void Seeker_Tag_Damage (entity inflictor, entity attacker, float damage, float deathtype, vector hitloc, vector force) { + if (self.health <= 0) + return; self.health = self.health - damage; if (self.health <= 0) Seeker_Tag_Explode(); @@ -328,7 +333,8 @@ void Seeker_Fire_Tag() missile.takedamage = DAMAGE_YES; missile.event_damage = Seeker_Tag_Explode; - missile.health = 5; + missile.health = cvar("g_balance_seeker_tag_health"); + missile.damageforcescale = cvar("g_balance_seeker_tag_damageforcescale"); setorigin (missile, w_shotorg); setsize (missile, '-2 -2 -2', '2 2 2'); diff --git a/data/weapons.cfg b/data/weapons.cfg index 0266abe4c..6095c385f 100644 --- a/data/weapons.cfg +++ b/data/weapons.cfg @@ -3,7 +3,7 @@ // // And... don't forget to edit weaponsHavoc.cfg too. -set cvar_check_weapons 2f93eb8481f44bb2ff744af86a75eccf +set cvar_check_weapons 5de99bb7a7ad820b384e6e9e8875ce42 // NOTE: this only replaces weapons on the map // use g_start_weapon_* to also replace the on-startup weapons! @@ -157,6 +157,7 @@ set g_balance_grenadelauncher_secondary_refire 0.7 set g_balance_grenadelauncher_secondary_animtime 0.3 set g_balance_grenadelauncher_secondary_ammo 2 set g_balance_grenadelauncher_secondary_health 10 +set g_balance_grenadelauncher_secondary_damageforcescale 4 set g_balance_electro_primary_damage 60 set g_balance_electro_primary_edgedamage 0 @@ -179,6 +180,7 @@ set g_balance_electro_secondary_refire 0.3 set g_balance_electro_secondary_animtime 0.3 set g_balance_electro_secondary_ammo 2 set g_balance_electro_secondary_health 5 +set g_balance_electro_secondary_damageforcescale 4 set g_balance_electro_combo_damage 80 set g_balance_electro_combo_edgedamage 0 set g_balance_electro_combo_force 200 @@ -263,7 +265,8 @@ set g_balance_rocketlauncher_lifetime 30 set g_balance_rocketlauncher_refire 1 set g_balance_rocketlauncher_animtime 0.3 set g_balance_rocketlauncher_ammo 3 -set g_balance_rocketlauncher_health 30 +set g_balance_rocketlauncher_health 50 +set g_balance_rocketlauncher_damageforcescale 4 set g_balance_rocketlauncher_detonatedelay 0.2 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time set g_balance_rocketlauncher_guiderate 90 // max degrees per second set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic) @@ -338,6 +341,8 @@ set g_balance_seeker_tag_speed 9000 set g_balance_seeker_tag_ammo 1 set g_balance_seeker_tag_animtime 0.3 set g_balance_seeker_tag_refire 0.7 +set g_balance_seeker_tag_health 5 +set g_balance_seeker_tag_damageforcescale 4 set g_balance_seeker_missile_delay 0.25 //set g_balance_seeker_missile_activate_delay 0.1 @@ -359,6 +364,8 @@ set g_balance_seeker_missile_lifetime 15 set g_balance_seeker_missile_refire 0.5 set g_balance_seeker_missile_animtime 0.3 set g_balance_seeker_missile_ammo 2 +set g_balance_seeker_missile_health 5 +set g_balance_seeker_missile_damageforcescale 4 set g_balance_seeker_missile_proxy 0 set g_balance_seeker_missile_proxy_maxrange 45 @@ -386,7 +393,6 @@ set g_balance_seeker_flac_refire 0.1 set g_balance_seeker_flac_animtime 0.1 set g_balance_seeker_flac_ammo 0.5 -// NOTE: maps should not use this weapon yet set g_balance_campingrifle_magazinecapacity 8 set g_balance_campingrifle_reloadtime 2 // matches reload anim set g_balance_campingrifle_primary_damage 60 @@ -408,5 +414,4 @@ set g_balance_campingrifle_secondary_lifetime 5 set g_balance_campingrifle_secondary_refire 0.12 set g_balance_campingrifle_secondary_animtime 0.1 set g_balance_campingrifle_secondary_ammo 10 -set g_balance_campingrifle_secondary_health 5 set g_balance_campingrifle_secondary_bulletconstant 130 // 18.3qu diff --git a/data/weaponsHavoc.cfg b/data/weaponsHavoc.cfg index 91aa9ac57..86c516b0b 100644 --- a/data/weaponsHavoc.cfg +++ b/data/weaponsHavoc.cfg @@ -1,4 +1,4 @@ -set cvar_check_weapons 2f93eb8481f44bb2ff744af86a75eccf +set cvar_check_weapons 5de99bb7a7ad820b384e6e9e8875ce42 // NOTE: this only replaces weapons on the map // use g_start_weapon_* to also replace the on-startup weapons! @@ -152,6 +152,7 @@ set g_balance_grenadelauncher_secondary_refire 0.5 set g_balance_grenadelauncher_secondary_animtime 0.3 set g_balance_grenadelauncher_secondary_ammo 2 set g_balance_grenadelauncher_secondary_health 10 +set g_balance_grenadelauncher_secondary_damageforcescale 4 set g_balance_electro_primary_damage 60 set g_balance_electro_primary_edgedamage 40 @@ -174,6 +175,7 @@ set g_balance_electro_secondary_refire 0.3 set g_balance_electro_secondary_animtime 0.3 set g_balance_electro_secondary_ammo 2 set g_balance_electro_secondary_health 5 +set g_balance_electro_secondary_damageforcescale 4 set g_balance_electro_combo_damage 80 set g_balance_electro_combo_edgedamage 30 set g_balance_electro_combo_force 200 @@ -258,7 +260,8 @@ set g_balance_rocketlauncher_lifetime 30 set g_balance_rocketlauncher_refire 1 set g_balance_rocketlauncher_animtime 0.3 set g_balance_rocketlauncher_ammo 3 -set g_balance_rocketlauncher_health 30 +set g_balance_rocketlauncher_health 99999 +set g_balance_rocketlauncher_damageforcescale 0 set g_balance_rocketlauncher_detonatedelay 0.2 // positive: timer till detonation is allowed, negative: "security device" that prevents ANY remote detonation if it could hurt its owner, zero: detonatable at any time set g_balance_rocketlauncher_guiderate 0 // max degrees per second set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic) @@ -333,6 +336,8 @@ set g_balance_seeker_tag_speed 9000 set g_balance_seeker_tag_ammo 1 set g_balance_seeker_tag_animtime 0.3 set g_balance_seeker_tag_refire 0.7 +set g_balance_seeker_tag_health 5 +set g_balance_seeker_tag_damageforcescale 4 set g_balance_seeker_missile_delay 0.25 //set g_balance_seeker_missile_activate_delay 0.1 @@ -354,6 +359,8 @@ set g_balance_seeker_missile_lifetime 15 set g_balance_seeker_missile_refire 0.5 set g_balance_seeker_missile_animtime 0.3 set g_balance_seeker_missile_ammo 2 +set g_balance_seeker_missile_health 5 +set g_balance_seeker_missile_damageforcescale 4 set g_balance_seeker_missile_proxy 0 set g_balance_seeker_missile_proxy_maxrange 45 @@ -381,7 +388,6 @@ set g_balance_seeker_flac_refire 0.1 set g_balance_seeker_flac_animtime 0.1 set g_balance_seeker_flac_ammo 0.5 -// NOTE: maps should not use this weapon yet set g_balance_campingrifle_magazinecapacity 5 set g_balance_campingrifle_reloadtime 1.5 set g_balance_campingrifle_primary_damage 50 @@ -403,5 +409,4 @@ set g_balance_campingrifle_secondary_lifetime 5 set g_balance_campingrifle_secondary_refire 0.2 set g_balance_campingrifle_secondary_animtime 0.2 set g_balance_campingrifle_secondary_ammo 5 -set g_balance_campingrifle_secondary_health 0 set g_balance_campingrifle_secondary_bulletconstant 130 // 18.3qu -- 2.39.2