Silencer

InsideQC tutorials kleskby 0 623
Author: Marius
Source: https://www.insideqc.com/qctut/qctut-63.shtml

In this tutorial I'll show you how to add a simple but cool Silencer for both of the Nailguns. It is very easy to add and quite fun to play with, also this would be great in a multiplayer patch... You will need silencer.zip which contains one wave file Silencer.wav which must be placed in the weapons folder within the Sound folder as follows:

\Quake\Mymod\Sound\Weapons\silencer.wav

Note: Mymod is the directory of this modification.

Step 1

Open up Defs.qc and scroll to the very bottom. Then add the following varibles:

//Silencer
.float silencer_on;

The above does not need to be at the bottom but it is easy and will not interfere with anything that might cause errors.

Step 2

Ok open up Weapons.qc and scroll to the ImpulseCommands function. Once there paste the following code above the QuadCheat impulse.

if (self.impulse == 15)
{
        if (self.silencer_on == FALSE)
        {
            self.silencer_on = TRUE;
            centerprint (self, "Silencer Acivated\n");
        }
        else if (self.silencer_on == TRUE)
        {
            self.silencer_on = FALSE;
            centerprint (self, "Silencer Deacivated\n");
        }
}

When you've finished there scroll up to the function W_Precache. At the bottom of that function paste:

precache_sound ("weapons/silencer.wav");

Once that is done save and go onto Step 3.

Step 3

Still in Weapons.qc find the functions W_FireSpikes & W_FireSuperSpikes. Found them? If you have find the sound for each weapon. For the Super Spikes replace:

sound (self, CHAN_WEAPON, "weapons/spike2.wav", 1, ATTN_NORM);

With the following:

if (self.silencer_on == TRUE)
sound (self, CHAN_WEAPON, "weapons/silencer.wav", 1, ATTN_NORM);
else sound (self, CHAN_WEAPON, "weapons/spike2.wav", 1, ATTN_NORM);

For the normal spikes replace:

sound (self, CHAN_WEAPON, "weapons/rocket1i.wav", 1, ATTN_NORM);

With the following:

if (self.silencer_on == TRUE)
sound (self, CHAN_WEAPON, "weapons/silencer.wav", 1, ATTN_NORM);
else sound (self, CHAN_WEAPON, "weapons/rocket1i.wav", 1, ATTN_NORM);

Step 4

Once done there close Weapons.qc and open Client.qc. Scroll down to the PutClientInServer function. When you have found that function scroll about half way through it till you find W_SetCurrentAmmo(); Then above that paste:

self.silencer_on = FALSE;

The above line turns the silencer off when entering the server, so when you die and respawn or start a new level the silencer is automatically off.

Step 5

Open up Player.qc. Find the functions Player_Nail1 and Player_Nail2. Once you have found them delete the following line from each:

SuperDamageSound();

That was the last part of code to be modified. All thats left is Step 6...

Step 6

Save and Compile. Pretty simple wasn't it? Have fun playing with your 'new toy'...



Tags: tutorial, quakec, qc, insideqc, weapon

Comments


captcha


No comments yet. Be the first!
Owned by kleskby#1837
Close

You have no new notifications.

SHOUTBOX
Open chat to load…
Log in to chat