Created By:

MrCool

 

eMail

mrcool101@hotmail.com

 

Difficulty Scale

Easy

 

 

 

 

Here's a Small Tutorial that will make the grenade launcher shoot 2 grenades side by side and also takes off the correct amount of ammo. Also Makes them stronger but the downside is it takes 5 seconds to blow up.

You will need Visual C++ for this is what i used to do this

Step 1
Open up p_weapon.c and scroll down until you see "void weapon_grenadelauncher_fire (edict_t *ent)" Delete that code and replace it with this one. Then Compile the DLL and run it get the Grenade Launcher and Blow the hell out of monsters.

 
void weapon_grenadelauncher_fire (edict_t *ent) 
      { 
vec3_t offset; 
vec3_t forward, right; 
vec3_t start; 
int damage = 120; 
float radius; 
radius = damage+=200; 
if (is_quad) 
    damage *= 4; 
VectorSet(offset, 8, 8, ent->viewheight-8); 
AngleVectors (ent->client->v_angle, forward, right, NULL); 
P_ProjectSource (ent->client, ent->s.origin, offset, forward, right, start); 
VectorScale (forward, -2, ent->client->kick_origin); 
ent->client->kick_angles[0] = -1; 
fire_grenade (ent, start, forward, damage, 600, 5, radius); 
VectorSet(offset, 8, 20, ent->viewheight-8); 
AngleVectors (ent->client->v_angle, forward, right, NULL); 
P_ProjectSource (ent->client, ent->s.origin, offset, forward, right, start); 
VectorScale (forward, -2, ent->client->kick_origin); 
ent->client->kick_angles[0] = -1; 
fire_grenade (ent, start, forward, damage, 600, 5, radius); 
gi.WriteByte (svc_muzzleflash); 
gi.WriteShort (ent-g_edicts); 
gi.WriteByte (MZ_GRENADE | is_silenced); 
gi.multicast (ent->s.origin, MULTICAST_PVS); 
ent->client->ps.gunframe++; 
PlayerNoise(ent, start, PNOISE_WEAPON); 
ent->client->pers.inventory[ent->client->ammo_index] -= ent->client->pers.weapon->quantity;
ent->client->pers.inventory[ent->client->ammo_index] -= ent->client->pers.weapon->quantity; 
      } 
 
 

 Ending


Now here's what i did: 
 
To do more damage i just edited this line:
 
radius = damage+=200; 
 
To change the damage just change the 200 to what ever you want it to be.
 
To Make them come out side by side i just edited this section:
 
VectorSet(offset, 8, 8, ent->viewheight-8); 
 
AngleVectors (ent->client->v_angle, forward, right, NULL); 
 
P_ProjectSource (ent->client, ent->s.origin, offset, forward, right, start);
 
VectorScale (forward, -2, ent->client->kick_origin); 
 
ent->client->kick_angles[0] = -1;
 
fire_grenade (ent, start, forward, damage, 600, 5, radius);
 
I basicly double that code one after another. Then you need to edit the line:
 
VectorSet(offset, 8, 8, ent->viewheight-8);
 
Now for the first grenade you leave it the same but for the second grenade change the SECOND 8 to about 20.
 
Now for The CurrentAmmo:
 
I just added an extra line instead of the just 1 now there will be 2 lines of this:
 
ent->client->pers.inventory[ent->client->ammo_index] -= ent->client->pers.weapon->quantity;
 
 

 

HTMLized by Adrian "Mr. Pink" Finol