]> de.git.xonotic.org Git - voretournament/voretournament.git/blobdiff - data/qcsrc/server/g_grabber.qc
Include gmqcc binaries for Windows and Linux
[voretournament/voretournament.git] / data / qcsrc / server / g_grabber.qc
index a92cedab7cb2ef880bf6aa24655f81d45c8bfe0f..5433c644a40774c563efa21efca08a7577abbdb2 100644 (file)
@@ -85,6 +85,7 @@ float LostMovetypeFollow(entity ent)
 }\r
 \r
 .float grabber_length;\r
+.float grabber_sendbeam;\r
 \r
 void RemoveGrabber(entity pl)\r
 {\r
@@ -105,7 +106,13 @@ void Grabber_Stop()
        if(other.classname == "player")\r
                sound (self, CHAN_PROJECTILE, "weapons/grabber_impact_player.wav", VOL_BASE, ATTN_NORM);\r
        else\r
+       {\r
                sound (self, CHAN_PROJECTILE, "weapons/grabber_impact_world.wav", VOL_BASE, ATTN_NORM);\r
+               if(trace_dphitq3surfaceflags & Q3SURFACEFLAG_METALSTEPS)\r
+                       pointparticles(particleeffectnum("ground_metal"), trace_endpos, '0 0 0', 1);\r
+               else\r
+                       pointparticles(particleeffectnum("ground_dirt"), trace_endpos, '0 0 0', 1);\r
+       }\r
 \r
        self.state = 1;\r
        self.think = GrabberThink;\r
@@ -247,8 +254,12 @@ void GrabberThink()
                }\r
        }\r
 \r
-       makevectors(self.angles_x * '-1 0 0' + self.angles_y * '0 1 0');\r
-       te_beam(self.owner, WarpZone_RefSys_TransformOrigin(self, self.owner, self.origin) + v_forward * (-9), org);\r
+       if(self.grabber_sendbeam < time) // don't kill the bandwidth by sending this each frame\r
+       {\r
+               makevectors(self.angles_x * '-1 0 0' + self.angles_y * '0 1 0');\r
+               te_beam(self.owner, WarpZone_RefSys_TransformOrigin(self, self.owner, self.origin) + v_forward * (-9), org);\r
+               self.grabber_sendbeam = time + cvar("sys_ticrate");\r
+       }\r
 }\r
 \r
 void GrabberTouch (void)\r
@@ -315,7 +326,7 @@ void FireGrabber (void)
        // UGLY WORKAROUND: play this on CHAN_WEAPON2 so it can't cut off fire sounds\r
        sound (self, CHAN_WEAPON2, "weapons/grabber_fire.wav", VOL_BASE, ATTN_NORM);\r
        org = self.origin + self.view_ofs + v_forward * grabber_shotorigin_x + v_right * grabber_shotorigin_y + v_up * grabber_shotorigin_z;\r
-       pointparticles(particleeffectnum("grapple_muzzleflash"), org, '0 0 0', 1);\r
+       pointparticles(particleeffectnum("grabber_muzzleflash"), org, '0 0 0', 1);\r
 \r
        missile = WarpZone_RefSys_SpawnSameRefSys(self);\r
        missile.owner = self;\r