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");
};
#endif
#ifdef CSQC
+.float prevric;
float w_shotgun(float req)
{
if(req == WR_IMPACTEFFECT)
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)