From a6ccba3ec6655f8d6e1f00e9b2855da1634e88af Mon Sep 17 00:00:00 2001 From: FruitieX Date: Sun, 20 Jun 2010 15:06:35 +0300 Subject: [PATCH] sticky grenades for balanceFruit! --- balance.cfg | 3 ++ balance25.cfg | 1 + balanceFruit.cfg | 9 +++-- balanceSamual.cfg | 3 ++ balanceXPM.cfg | 3 ++ qcsrc/server/w_grenadelauncher.qc | 59 ++++++++++++++++++++++++------- 6 files changed, 63 insertions(+), 15 deletions(-) diff --git a/balance.cfg b/balance.cfg index cb58e9a14..8c5315892 100644 --- a/balance.cfg +++ b/balance.cfg @@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar set g_balance_grenadelauncher_primary2secondary 0 +set g_balance_grenadelauncher_primary_sticky 0 set g_balance_grenadelauncher_primary_damage 50 set g_balance_grenadelauncher_primary_edgedamage 38 set g_balance_grenadelauncher_primary_force 400 @@ -278,9 +279,11 @@ set g_balance_grenadelauncher_primary_speed_up 220 set g_balance_grenadelauncher_primary_speed_z 0 set g_balance_grenadelauncher_primary_spread 0 set g_balance_grenadelauncher_primary_lifetime 30 +set g_balance_grenadelauncher_primary_lifetime2 1 set g_balance_grenadelauncher_primary_refire 0.8 set g_balance_grenadelauncher_primary_animtime 0.3 set g_balance_grenadelauncher_primary_ammo 2 +set g_balance_grenadelauncher_primary_health 25 set g_balance_grenadelauncher_secondary_damage 60 set g_balance_grenadelauncher_secondary_edgedamage 38 set g_balance_grenadelauncher_secondary_force 400 diff --git a/balance25.cfg b/balance25.cfg index a4369249f..d3dae3b72 100644 --- a/balance25.cfg +++ b/balance25.cfg @@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar set g_balance_grenadelauncher_primary2secondary 0 +set g_balance_grenadelauncher_primary_sticky 0 set g_balance_grenadelauncher_primary_damage 70 set g_balance_grenadelauncher_primary_edgedamage 38 set g_balance_grenadelauncher_primary_force 400 diff --git a/balanceFruit.cfg b/balanceFruit.cfg index 415a45808..3231f2d74 100644 --- a/balanceFruit.cfg +++ b/balanceFruit.cfg @@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar // TODO set g_balance_grenadelauncher_primary2secondary 0 +set g_balance_grenadelauncher_primary_sticky 1 set g_balance_grenadelauncher_primary_damage 60 set g_balance_grenadelauncher_primary_edgedamage 28 set g_balance_grenadelauncher_primary_force 200 @@ -277,10 +278,12 @@ set g_balance_grenadelauncher_primary_speed 1200 set g_balance_grenadelauncher_primary_speed_up 200 set g_balance_grenadelauncher_primary_speed_z 0 set g_balance_grenadelauncher_primary_spread 0 -set g_balance_grenadelauncher_primary_lifetime 10 +set g_balance_grenadelauncher_primary_lifetime 5 +set g_balance_grenadelauncher_primary_lifetime2 1 set g_balance_grenadelauncher_primary_refire 0.8 set g_balance_grenadelauncher_primary_animtime 0.5 set g_balance_grenadelauncher_primary_ammo 2 +set g_balance_grenadelauncher_primary_health 25 set g_balance_grenadelauncher_secondary_damage 65 set g_balance_grenadelauncher_secondary_edgedamage 30 set g_balance_grenadelauncher_secondary_force 300 @@ -289,7 +292,7 @@ set g_balance_grenadelauncher_secondary_speed 800 set g_balance_grenadelauncher_secondary_speed_up 0 set g_balance_grenadelauncher_secondary_speed_z 200 set g_balance_grenadelauncher_secondary_spread 0 -set g_balance_grenadelauncher_secondary_lifetime 2 +set g_balance_grenadelauncher_secondary_lifetime 1.5 set g_balance_grenadelauncher_secondary_refire 0.8 set g_balance_grenadelauncher_secondary_animtime 0.5 set g_balance_grenadelauncher_secondary_ammo 2 @@ -505,7 +508,7 @@ set g_balance_campingrifle_magazinecapacity 8 set g_balance_campingrifle_reloadtime 2 // matches reload anim set g_balance_campingrifle_auto_reload_after_changing_weapons 0 set g_balance_campingrifle_bursttime 0 -set g_balance_campingrifle_tracer 0 +set g_balance_campingrifle_tracer 1 set g_balance_campingrifle_primary_damage 60 set g_balance_campingrifle_primary_headshotaddeddamage 100 set g_balance_campingrifle_primary_spread 0 diff --git a/balanceSamual.cfg b/balanceSamual.cfg index 21242f16f..2b716463e 100644 --- a/balanceSamual.cfg +++ b/balanceSamual.cfg @@ -269,6 +269,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar set g_balance_grenadelauncher_primary2secondary 0 +set g_balance_grenadelauncher_primary_sticky 0 set g_balance_grenadelauncher_primary_damage 50 set g_balance_grenadelauncher_primary_edgedamage 38 set g_balance_grenadelauncher_primary_force 400 @@ -278,9 +279,11 @@ set g_balance_grenadelauncher_primary_speed_up 220 set g_balance_grenadelauncher_primary_speed_z 0 set g_balance_grenadelauncher_primary_spread 0 set g_balance_grenadelauncher_primary_lifetime 30 +set g_balance_grenadelauncher_primary_lifetime2 1 set g_balance_grenadelauncher_primary_refire 0.8 set g_balance_grenadelauncher_primary_animtime 0.3 set g_balance_grenadelauncher_primary_ammo 2 +set g_balance_grenadelauncher_primary_health 25 set g_balance_grenadelauncher_secondary_damage 60 set g_balance_grenadelauncher_secondary_edgedamage 38 set g_balance_grenadelauncher_secondary_force 400 diff --git a/balanceXPM.cfg b/balanceXPM.cfg index bb0416a34..83bd146b0 100644 --- a/balanceXPM.cfg +++ b/balanceXPM.cfg @@ -270,6 +270,7 @@ set g_balance_uzi_bulletconstant 115 // 13.1qu // }}} // {{{ mortar set g_balance_grenadelauncher_primary2secondary 1 +set g_balance_grenadelauncher_primary_sticky 0 set g_balance_grenadelauncher_primary_damage 60 set g_balance_grenadelauncher_primary_edgedamage 10 set g_balance_grenadelauncher_primary_force 250 @@ -279,9 +280,11 @@ set g_balance_grenadelauncher_primary_speed_up 200 set g_balance_grenadelauncher_primary_speed_z 0 set g_balance_grenadelauncher_primary_spread 0 set g_balance_grenadelauncher_primary_lifetime 5 +set g_balance_grenadelauncher_primary_lifetime2 1 set g_balance_grenadelauncher_primary_refire 0.7 set g_balance_grenadelauncher_primary_animtime 0.3 set g_balance_grenadelauncher_primary_ammo 2 +set g_balance_grenadelauncher_primary_health 25 set g_balance_grenadelauncher_secondary_damage 65 set g_balance_grenadelauncher_secondary_edgedamage 10 set g_balance_grenadelauncher_secondary_force 300 diff --git a/qcsrc/server/w_grenadelauncher.qc b/qcsrc/server/w_grenadelauncher.qc index a7d9a4935..a6e4d0dc0 100644 --- a/qcsrc/server/w_grenadelauncher.qc +++ b/qcsrc/server/w_grenadelauncher.qc @@ -33,10 +33,56 @@ void W_Grenade_Explode2 (void) remove (self); } +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) + { + W_PrepareExplosionByDamage(attacker, self.think); + } +} + void W_Grenade_Touch1 (void) { PROJECTILE_TOUCH; - W_Grenade_Explode (); + if(cvar("g_balance_grenadelauncher_primary_sticky") && other.takedamage != DAMAGE_AIM) + { + entity oldowner; + oldowner = self.owner; + + vector temporigin; + temporigin = self.origin; + + remove(self); + local entity gren; + + gren = spawn (); + gren.owner = oldowner; + gren.classname = "grenade"; + gren.bot_dodge = TRUE; + gren.bot_dodgerating = cvar("g_balance_grenadelauncher_primary_damage"); + gren.movetype = MOVETYPE_NONE; + PROJECTILE_MAKETRIGGER(gren); + gren.projectiledeathtype = WEP_GRENADE_LAUNCHER; + setorigin(gren, temporigin); + setsize(gren, '0 0 -3', '0 0 -3'); + + gren.nextthink = time + cvar("g_balance_grenadelauncher_primary_lifetime2"); + gren.think = adaptor_think2use_hittype_splash; + gren.use = W_Grenade_Explode; + + gren.flags = FL_PROJECTILE; + + gren.takedamage = DAMAGE_YES; + gren.health = cvar("g_balance_grenadelauncher_primary_health"); + gren.event_damage = W_Grenade_Damage; + + CSQCProjectile(gren, TRUE, PROJECTILE_GRENADE, TRUE); + } + else + W_Grenade_Explode (); } void W_Grenade_Touch2 (void) @@ -66,17 +112,6 @@ 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) - { - W_PrepareExplosionByDamage(attacker, self.think); - } -} - void W_Grenade_Attack (void) { local entity gren; -- 2.39.2