From: FruitieX Date: Tue, 31 Aug 2010 16:58:34 +0000 (+0300) Subject: handle the electro lightning refire as -1 to hopefully prevent the occasional "switch... X-Git-Tag: xonotic-v0.1.0preview~320^2~10^2~1 X-Git-Url: https://git.rm.cloudns.org/?a=commitdiff_plain;h=b735b4fcbc82a7365740beb7d5d25c409d063063;p=xonotic%2Fxonotic-data.pk3dir.git handle the electro lightning refire as -1 to hopefully prevent the occasional "switch to electro, hold button, fire nothing" bug, also allow shotgun secondary to be used after shotgun primary + animtime instead of shotgun primary + refire --- diff --git a/qcsrc/server/w_electro.qc b/qcsrc/server/w_electro.qc index a98c5a915..4ec7ca55c 100644 --- a/qcsrc/server/w_electro.qc +++ b/qcsrc/server/w_electro.qc @@ -348,7 +348,7 @@ float w_electro(float req) { if (self.BUTTON_ATCK) { - if (weapon_prepareattack(0, (cvar("g_balance_electro_lightning") ? 0 : cvar("g_balance_electro_primary_refire")))) + if (weapon_prepareattack(0, (cvar("g_balance_electro_lightning") ? -1 : cvar("g_balance_electro_primary_refire")))) { if(cvar("g_balance_electro_lightning")) { diff --git a/qcsrc/server/w_shotgun.qc b/qcsrc/server/w_shotgun.qc index 658121533..29343c8f7 100644 --- a/qcsrc/server/w_shotgun.qc +++ b/qcsrc/server/w_shotgun.qc @@ -94,6 +94,8 @@ void W_Shotgun_Attack2 (void) void spawnfunc_weapon_shotgun(); // defined in t_items.qc +.float shotgun_primarytime; + float w_shotgun(float req) { if (req == WR_AIM) @@ -104,10 +106,16 @@ float w_shotgun(float req) else if (req == WR_THINK) { if (self.BUTTON_ATCK) - if (weapon_prepareattack(0, cvar("g_balance_shotgun_primary_refire"))) { - W_Shotgun_Attack(); - weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_shotgun_primary_animtime"), w_ready); + if (time >= self.shotgun_primarytime) // handle refire separately so the secondary can be fired straight after a primary + { + if(weapon_prepareattack(0, cvar("g_balance_shotgun_primary_animtime"))) + { + W_Shotgun_Attack(); + self.shotgun_primarytime = time + cvar("g_balance_shotgun_primary_refire"); + weapon_thinkf(WFRAME_FIRE1, cvar("g_balance_shotgun_primary_animtime"), w_ready); + } + } } if (self.BUTTON_ATCK2 && cvar("g_balance_shotgun_secondary")) if (weapon_prepareattack(1, cvar("g_balance_shotgun_secondary_refire")))