None of those things are possible with the built-in weapon system.
1.) and 3.) Scripted weapons is the only solution. You could have a variety of projectiles for one weapon, each having a different decal and then randomly choose which projectile to shoot. Also, the built-in weapons can't have alternative fire. It doesn't really matter whether you press the fire or the alt-fire button, the action is always the same. Scripted weapons would solve this one too...
2.) As Danimita already said you could use a script to check if the chainsaw is armed and then play a sound. You can also check if the player changes his weapon -> A new weapon is armed -> Play the arming sound:
Code: Select all
{
playerweapon [0]
soundtimer [0]
Spawn[ ()
{
LowLevel("run");
} ]
run[ ()
{
self.ThinkTime = 0.05;
if(soundtimer < 0) // a timer to prevent the sound from overlapping
{
if(self.player_weapon = 1) //if the player has the weapon with index 1 armed
{
PlaySound("idlesound.wav",100000);
}
soundtimer = self.time + 0.5; //play the sound every 0.5 seconds
}
if(playerweapon != self.player_weapon) //if player changes his weapon
{
playerweapon = self.player_weapon;
if(playerweapon = 1)
{
PlaySound("armsound",100000);
}
}
} ]
}
I hope this gets you started.
Pain is only psychological.