InsideQC
 - Front Page

Tutorials are copyrighted by their author and the Inside3D staff. And may be used in any Quake modification provided that the author and the InsideQC staff are credited. Please direct any comments to the author.


Created By: [SL1CK]-=MERL1N=-
eMail: phillm@netlink.com.au
Difficulty Scale: Medium
Web Page: http://users.netlink.com.au/~phillm


Step 1
Everybody who first gets into QC makes a patch with an unbearable amount of weapons with every weapon model they can find :) But what happens when you have more than 1 axe/knife/sword/hammer/fist ? We dont want nails turning up when we select a knife do we? Just follow these steps to give it no ammo :)

We will make the shotgun have no ammo for this example, but you can use it on any weapon :)

Open up "weapons.qc" and go to the shotgun fire thing "W_FireShotgun"

remove this line :

self.currentammo = self.ammo_cells = self.ammo_cells - 1;

So you wont loose ammo when you fire...

..

Step 2

Go down to "player weapon use" (you should be familiar with this by now) and in "W_SetCurentAmmo" go to the shotgun, which looks like this...

else if (self.weapon == IT_SHOTGUN)

{

self.currentammo = self.ammo_shells;

self.weaponmodel = "progs/v_shot.mdl";

self.weaponframe = 0;

self.items = self.items | IT_SHELLS;

}

Change it to this...

{

self.currentammo = 0; // no ammo

self.weaponmodel = "progs/v_shot.mdl"; // same weapon model

self.weaponframe = 0; // same weaponframe

}

..

Step 3

notice we took out self.items ? you can guess why :) now scroll down to "W_CheckNoAmmo" under the axe bit add in this...

else if (self.weapon == IT_SHOTGUN) // if its the shotgun

return TRUE; // thats ok

..

 Step 4

Right, scroll down a little further to "W_ChangeWeapon", and go to the shotgun bit.

Delete the lines that say...

W_CheckNoAmmo();

am = 1;

So that it looks like the axe above it (but with IT_SHOTGUN :)

..

 Step 5

Under all that there are the cycle weapon functions, find the shotgun in both and delete the lines about the ammo

if (self.ammo_shells < 1) //this one

am = 1; // and this one

Dont forget to do it later in the reveerse cycle commands as well :)

..

Step 6

Thats it for "weapons.qc" save and close and open up "client.qc"

Go down to "PlayerPreThink (3/4 down) and new the end you will see sumthin like this...

if(time > self.attack_finished && self.currentammo == 0 && self.weapon != IT_AXE)

Change it to this...

if(time > self.attack_finished && self.currentammo == 0 && self.weapon != IT_AXE && self.weapon != IT_SHOTGUN)

..

Step 7

OK time out, what the hell is "&&" and that "!=" stuff?

That "&&" means "and", like "||" means or, it says if your weapon is an axe (do sumthing) AND if its a shotgun (do sumthin)

As for the "!=" that basically means "if its not" so, regarding your weapon IF ITS NOT a shotgun/axe (do sumthin), its kinda like an exception statement, youll get used to it.

..

Step 8

That's about it, now go and shoot your shotgun for eternity, and then try it with another weapon (preferably a melee weap :)