]> de.git.xonotic.org Git - xonotic/xonotic-data.pk3dir.git/blobdiff - qcsrc/server/w_shotgun.qc
shotgun: play less ricoche sounds, this fixes performance issues for Unknown[NF]
[xonotic/xonotic-data.pk3dir.git] / qcsrc / server / w_shotgun.qc
index 29343c8f749dd73e591dc325d237f10f27d54c62..c5f1ed12c02143b993bb15d92e7c3d27c7c4d5b1 100644 (file)
@@ -65,7 +65,7 @@ void shotgun_meleethink (void)
        WarpZone_traceline_antilag(self.owner, self.owner.origin + self.owner.view_ofs, targpos, FALSE, self.owner, ANTILAG_LATENCY(self.owner));
 
        // apply the damage, also remove self
-       if(trace_fraction < 1 && trace_ent.takedamage == DAMAGE_AIM && trace_ent.classname == "player")
+       if(trace_fraction < 1 && trace_ent.takedamage == DAMAGE_AIM && (trace_ent.classname == "player" || trace_ent.classname == "body"))
        {
                vector force;
                force = angle * cvar("g_balance_shotgun_secondary_force");
@@ -146,6 +146,7 @@ float w_shotgun(float req)
 };
 #endif
 #ifdef CSQC
+.float prevric;
 float w_shotgun(float req)
 {
        if(req == WR_IMPACTEFFECT)
@@ -153,14 +154,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)