Stick Grenades
Author: Mr. PinkSource: https://www.insideqc.com/qctut/qctut-19.shtml
Hello people, in this tutorial were gonna make a Grenade that sticks to walls or enemies, its one of my favs, i saw it somewere and i think it so cool, so i tried to make it, and it works (at least for me). So here is what you have to do:
Step 1
Open Weapons.qc and remplace the GrenadeTouch funtion with this:
void () GlueStick = {
if ( (random () < 0.020) ) { // check for a random number
self.think = GrenadeExplode; //maybe to explode
self.touch = GrenadeExplode;
} else {
self.think = GlueStick; // maybe to Stick
self.touch = GlueStick;
}
if ( ((self.enemy != world) && (self.enemy.health > 1)) ) {
self.origin = self.enemy.origin;
if ( (self.velocity == VEC_ORIGIN) ) {
self.avelocity = VEC_ORIGIN;
}
}
self.nextthink = (time + 0.100);
};
Step 2
Then under the above function insert this:
void () GlueTouch = {
if ( (other == self.owner) ) {
return ;
}
sound (self,CHAN_WEAPON,"misc/outwater.wav",TRUE,ATTN_NORM); // sound to make when it stick
self.think = GlueStick;
self.touch = GlueStick; // go to GlueStick when touching something
self.nextthink = (time + 0.100);
self.velocity = (self.velocity * 0);
self.avelocity = VEC_ORIGIN;
self.enemy = other;
};
Step 3
Now remplace the W_FireGrenade function with this:
void () W_FireGlue = {
local entity missile;
local entity mpuff;
self.ammo_rockets = (self.ammo_rockets - 1);
self.currentammo = (self.ammo_rockets - 1);
sound (self,CHAN_WEAPON,"weapons/grenade.wav",TRUE,ATTN_NORM);
self.punchangle_x = CONTENT_SOLID;
missile = spawn ();
missile.owner = self;
missile.movetype = MOVETYPE_FLYMISSILE; // make the grenade fly
missile.solid = SOLID_BBOX;
makevectors (self.v_angle);
missile.velocity = aim (self,1000);
missile.velocity = (missile.velocity * 1000);
missile.angles = vectoangles (missile.velocity);
missile.nextthink = (time + MOVETYPE_FLY);
missile.think = GrenadeExplode;
missile.touch = GlueTouch;
setmodel (missile,"progs/grenade.mdl");
setsize (missile,VEC_ORIGIN,VEC_ORIGIN);
setorigin (missile,self.origin);
};
Ok thats it... i love it... now go do it.. and tell me if there is any trouble. Cya
HTMLized by Adrian "Mr. Pink" Finol
Tags: tutorial, quakec, qc, insideqc, weapon
Comments