Originally posted by master131:
[php]
onPlayerSpawned()
{
self endon("disconnect");
self thread fixAmmo();
for(;

{
self waittill("spawned_player");
self takeAllWeapons();
self giveWeapon("rpd_acog_silencer_mp", 0, false);
self setWeaponAmmoStock("rpd_acog_silencer_mp", 4); //Crossbow
self setWeaponAmmoClip("rpd_acog_silencer_mp", 1);
self thread doMonitor();
}
}
doMonitor()
{
self endon("disconenct");
self endon("death");
for(;

{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "rpd_acog_silencer_mp")
self thread doArrow();
else
{
self setClientDvar("perk_weapReloadMultiplier", 1);
self setClientDvar( "lowAmmoWarningColor1", "0.701961 0.701961 0.701961 0.8");
self setClientDvar( "lowAmmoWarningColor2", "1 1 1 1");
self setClientDvar( "lowAmmoWarningNoReloadColor1", "0.701961 0.701961 0.301961 0.701961");
self setClientDvar( "lowAmmoWarningNoReloadColor2", "0.701961 0.701961 0.301961 1");
}
}
}
fixAmmo()
{
self endon("disconnect");
while(1)
{
ammo = self getWeaponAmmoClip("rpd_acog_silencer_mp");
if(ammo > 1)
{
ammo--;
self setWeaponAmmoStock("rpd_acog_silencer_mp", ammo);
self setWeaponAmmoClip("rpd_acog_silencer_mp", 1);
}
wait 0.001;
}
}
doArrow()
{
self setClientDvar("perk_weapReloadMultiplier", 0.3);
self setClientDvar( "lowAmmoWarningColor1", "0 0 0 0");
self setClientDvar( "lowAmmoWarningColor2", "0 0 0 0");
self setClientDvar( "lowAmmoWarningNoReloadColor1", "0 0 0 0");
self setClientDvar( "lowAmmoWarningNoReloadColor2", "0 0 0 0");
forward = self getTagOrigin("j_head");
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
self.Crosshair = BulletTrace( forward, end, 0, self )[ "position" ];
self.apple=spawn("script_model", self getTagOrigin("tag_weapon_right"));
self.apple setmodel("weapon_light_stick_tactical_bombsquad");
self.apple.angles = self.angles;
self.apple.owner = self.name;
self.apple thread findVictim();
self.apple moveTo(self.Crosshair, (distance(self.origin, self.Crosshair) / 10000));
self.apple.angles = self.angles;
self thread doBeep(0.3);
}
findVictim()
{
while(1)
{
foreach(player in level.players)
{
if(!isAlive(player))
continue;
if(distance(self.origin, player.origin) < 75)
{
myVictim = player;
if(myVictim.name != self.owner)
self moveTo(((myVictim.origin[0],myVictim.origin[1],0)+(0,0,self.origin[2])), 0.1);
}
}
wait 0.000001;
}
}
doBeep(maxtime)
{
self.apple playSound( "ui_mp_timer_countdown" );
wait(maxtime);
self.apple playSound( "ui_mp_timer_countdown" );
wait(maxtime);
for(i = maxtime; i > 0; i-=0.1)
{
self.apple playSound( "ui_mp_timer_countdown" );
wait(i);
self.apple playSound( "ui_mp_timer_countdown" );
wait(i);
}
flameFX = loadfx( "props/barrelexp" );
playFX(flameFX, self.apple.origin);
RadiusDamage(self.apple.origin,200,200,200,self);
self.apple playsound( "detpack_explo_default" );
self.apple.dead = true;
self.apple delete();
}
getCursorPos()
{
forward = self getTagOrigin("j_head");
end = self thread vector_scal(anglestoforward(self getPlayerAngles()),1000000);
Crosshair = BulletTrace( forward, end, 0, self )[ "position" ];
return Crosshair;
}
vector_scal(vec, scale)
{
vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale);
return vec;
}
[/php]