}\r
\r
.float grabber_length;\r
+.float grabber_sendbeam;\r
\r
void RemoveGrabber(entity pl)\r
{\r
void Grabber_Stop()\r
{\r
pointparticles(particleeffectnum("grabber_impact"), self.origin, '0 0 0', 1);\r
- sound (self, CHAN_PROJECTILE, "weapons/grabber_impact.wav", VOL_BASE, ATTN_NORM);\r
+ if(other.classname == "player")\r
+ sound (self, CHAN_PROJECTILE, "weapons/grabber_impact_player.wav", VOL_BASE, ATTN_NORM);\r
+ else\r
+ sound (self, CHAN_PROJECTILE, "weapons/grabber_impact_world.wav", VOL_BASE, ATTN_NORM);\r
\r
self.state = 1;\r
- self.think =GrabberThink;\r
+ self.think = GrabberThink;\r
self.nextthink = time;\r
self.touch = SUB_Null;\r
self.velocity = '0 0 0';\r
}\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
self.grabber_state &~= GRABBER_WAITING_FOR_RELEASE;\r
\r
self.grabber_state &~= GRABBER_RELEASING;\r
- if(self.BUTTON_CROUCH)\r
- {\r
- self.grabber_state &~= GRABBER_PULLING;\r
- //self.grabber_state |= GRABBER_RELEASING;\r
- }\r
- else\r
- {\r
- self.grabber_state |= GRABBER_PULLING;\r
- //self.grabber_state &~= GRABBER_RELEASING;\r
- }\r
+ self.grabber_state |= GRABBER_PULLING;\r
}\r
\r
if(self.weapon != WEP_GRABBER)\r