From f207d533926723c5eb4c45ee2415621e24a9f3a8 Mon Sep 17 00:00:00 2001 From: div0 Date: Sat, 30 May 2009 10:17:24 +0000 Subject: [PATCH] weaker rocket guidance, 120 deg/sec is really too much. Trying 60. git-svn-id: svn://svn.icculus.org/nexuiz/trunk@6801 f962a42d-fe04-0410-a3ab-8c8b0445ebaa --- data/qcsrc/server/w_rocketlauncher.qc | 35 ++++++++++++++++++--------- data/weapons.cfg | 2 +- 2 files changed, 25 insertions(+), 12 deletions(-) diff --git a/data/qcsrc/server/w_rocketlauncher.qc b/data/qcsrc/server/w_rocketlauncher.qc index 95428c7a0..2a4f974fa 100644 --- a/data/qcsrc/server/w_rocketlauncher.qc +++ b/data/qcsrc/server/w_rocketlauncher.qc @@ -1,8 +1,19 @@ .float rl_release; .float rl_detonate_later; +void W_Rocket_Unregister(float complain) +{ + if(self.owner && self.owner.lastrocket == self) + { + self.owner.lastrocket = world; + // self.owner.rl_release = 1; + } +} + void W_Rocket_Explode (void) { + W_Rocket_Unregister(); + self.event_damage = SUB_Null; RadiusDamage (self, self.owner, cvar("g_balance_rocketlauncher_damage"), cvar("g_balance_rocketlauncher_edgedamage"), cvar("g_balance_rocketlauncher_radius"), world, cvar("g_balance_rocketlauncher_force"), self.projectiledeathtype, other); @@ -187,7 +198,7 @@ void W_Rocket_Think (void) } else { - if(!self.rl_release && !self.owner.rl_release && cvar("g_balance_rocketlauncher_guiderate")) + if(self == self.owner.lastrocket && !self.owner.rl_release && cvar("g_balance_rocketlauncher_guiderate")) { if(time > self.pushltime) { @@ -206,8 +217,6 @@ void W_Rocket_Think (void) self.velocity = newdir * velspeed; } } - else - self.rl_release = 1; if(self.rl_detonate_later) W_Rocket_RemoteExplode(); @@ -220,8 +229,8 @@ void W_Rocket_Think (void) void W_Rocket_Touch (void) { - if(self.owner && self.owner.lastrocket == self) - self.owner.lastrocket = world; + W_Rocket_Unregister(); + PROJECTILE_TOUCH; W_Rocket_Explode (); } @@ -434,15 +443,19 @@ float w_rlauncher(float req) } else { - if (self.BUTTON_ATCK && self.rl_release) - if (weapon_prepareattack(0, cvar("g_balance_rocketlauncher_refire"))) + if (self.BUTTON_ATCK) { - W_Rocket_Attack(); - weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_rocketlauncher_animtime"), w_ready); - self.rl_release = 0; + if(self.rl_release) + if(weapon_prepareattack(0, cvar("g_balance_rocketlauncher_refire"))) + { + W_Rocket_Attack(); + weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_rocketlauncher_animtime"), w_ready); + self.rl_release = 0; + } } - if (!self.BUTTON_ATCK) + else self.rl_release = 1; + if (self.BUTTON_ATCK2) { rockfound = 0; diff --git a/data/weapons.cfg b/data/weapons.cfg index fb170a14b..084595f9a 100644 --- a/data/weapons.cfg +++ b/data/weapons.cfg @@ -265,7 +265,7 @@ set g_balance_rocketlauncher_animtime 0.3 set g_balance_rocketlauncher_ammo 3 set g_balance_rocketlauncher_health 30 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 120 // max degrees per second +set g_balance_rocketlauncher_guiderate 60 // max degrees per second set g_balance_rocketlauncher_guidegoal 512 // goal distance for (non-laser) guiding (higher = less control, lower = erratic) set g_balance_rocketlauncher_guidedelay 0.15 // delay before guiding kicks in set g_balance_rocketlauncher_laserguided_speed 1000 //650 -- 2.39.2