]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_shotgun.qc
accuracy: only resend if the accuracy value actually changed
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_shotgun.qc
index f47077a2573ff286b9e400d88ec6399a43ca1cd3..3efb0e97320a278571a5c672c6528bc93c212eb9 100644 (file)
@@ -69,8 +69,9 @@ void shotgun_meleethink (void)
        {
                vector force;
                force = angle * cvar("g_balance_shotgun_secondary_force");
+               if(accuracy_isgooddamage(self.owner, trace_ent))
+                       accuracy_add(self.owner, WEP_SHOTGUN, 0, cvar("g_balance_shotgun_secondary_damage") * min(1, f + 1));
                Damage (trace_ent, self.owner, self.owner, cvar("g_balance_shotgun_secondary_damage") * min(1, f + 1), WEP_SHOTGUN | HITTYPE_SECONDARY , self.owner.origin + self.owner.view_ofs, force);
-               Damage_RecordDamage(self.owner, WEP_SHOTGUN | HITTYPE_SECONDARY, cvar("g_balance_shotgun_secondary_damage") * min(1, f + 1));
                remove(self);
        }
        else if(time >= self.cnt + cvar("g_balance_shotgun_secondary_melee_time")) // missed, remove ent
@@ -146,6 +147,7 @@ float w_shotgun(float req)
 };
 #endif
 #ifdef CSQC
+.float prevric;
 float w_shotgun(float req)
 {
        if(req == WR_IMPACTEFFECT)
@@ -153,14 +155,15 @@ float w_shotgun(float req)
                vector org2;
                org2 = w_org + w_backoff * 2;
                pointparticles(particleeffectnum("shotgun_impact"), org2, w_backoff * 1000, 1);
-               if(!w_issilent)
+               if(!w_issilent && time - self.prevric > 0.25)
                {
-                       if(w_random < 0.05)
+                       if(w_random < 0.0165)
                                sound(self, CHAN_PROJECTILE, "weapons/ric1.wav", VOL_BASE, ATTN_NORM);
-                       else if(w_random < 0.1)
+                       else if(w_random < 0.033)
                                sound(self, CHAN_PROJECTILE, "weapons/ric2.wav", VOL_BASE, ATTN_NORM);
-                       else if(w_random < 0.2)
+                       else if(w_random < 0.05)
                                sound(self, CHAN_PROJECTILE, "weapons/ric3.wav", VOL_BASE, ATTN_NORM);
+                       self.prevric = time;
                }
        }
        else if(req == WR_PRECACHE)