giveFlamethrower()
{
self thread giveFT();
wait 0.3;
self giveWeapon("tmp_silencer_xmags_mp", 0);
wait 0.3;
self thread doFXbyMap(getDvar("mapname"));
}
giveFT()
{
self endon("disconnect");
while(1)
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "tmp_silencer_xmags_mp")
{
startB = GetCursorPos();
startA = self getTagOrigin("tag_weapon_left");
xD = distance(startA, startB);
//We will have to do a limit of range, or else error 'no free dobjs'
owner = self;
if(xD < 855)
{
pointe = roundUp(xD/55);
CX = startA[0] - startB[0];
CY = startA[1] - startB[1];
CZ = startA[2] - startB[2];
XA = CX/pointe;
YA = CY/pointe;
ZA = CZ/pointe;
RadiusDamage( startB, 300, 300, 300, owner );
for(b = pointe; b > -1; b--)
{
playFX(self.ZFX, startB + (((XA, YA, ZA) * b)) );
wait 0.01;
}
}
}
}
}
doFXbyMap(mapz)
{
self.ZFX = level.spawnGlow["enemy"];;
switch(mapz)
{
case "mp_checkpoint":
self.ZFX = level._effect[ "firelp_med_pm" ];
break;
case "mp_boneyard":
self.ZFX = level._effect[ "firelp_med_pm_nolight" ];
break;
case "mp_favela":
self.ZFX = level._effect[ "firelp_med_pm" ];
break;
case "mp_invasion":
self.ZFX = level._effect[ "firelp_med_pm" ];
break;
}
}
giveVUNDERVAFFLE()
{
self thread giveWW();
wait 0.3;
self giveWeapon("pp2000_reflex_xmags_mp", 8, false);
wait 0.3;
self thread doFXMapz(getDvar("mapname"));
}
giveWW()
{
self endon("disconnect");
while(1)
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "pp2000_reflex_xmags_mp")
{
startB = GetCursorPos();
startA = self getTagOrigin("tag_weapon_left");
xD = distance(startA, startB);
//We will have to do a limit of range, or else error 'no free dobjs'
owner = self;
if(xD < 855)
{
pointe = roundUp(xD/55);
CX = startA[0] - startB[0];
CY = startA[1] - startB[1];
CZ = startA[2] - startB[2];
XA = CX/pointe;
YA = CY/pointe;
ZA = CZ/pointe;
RadiusDamage( startB, 300, 300, 300, owner );
for(b = pointe; b > -1; b--)
{
playFX(self.ZFX, startB + (((XA, YA, ZA) * b)) );
wait 0.01;
}
}
}
}
}
doFXMapz(mapz)
{
self.ZFX = level.spawnGlow["enemy"];;
switch(mapz)
{
case "mp_underpass":
self.ZFX = level._effect[ "lightning" ];
break;
}
}
giveTT()
{
self thread giveTELEPORTER();
wait 0.3;
self giveWeapon("beretta_silencer_tactical_mp", 0);
}
giveTELEPORTER()
{
self endon("disconnect");
while(1)
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "beretta_silencer_tactical_mp")
{
self.maxhp = self.maxhealth;
self.hp = self.health;
self.maxhealth = 99999;
self.health = self.maxhealth;
playFx( level.chopper_fx["smoke"]["trail"], self.origin );
playFx( level.chopper_fx["smoke"]["trail"], self.origin );
playFx( level.chopper_fx["smoke"]["trail"], self.origin );
forward = self getTagOrigin("j_gun");
end = self thread vector_Scal(anglestoforward(self getPlayerAngles()),1000000);
location = BulletTrace( forward, end, 0, self )[ "position" ];
self SetOrigin( location );
}
}
}
giveCB()
{
self thread giveCROSSBOW();
wait 0.3;
self giveWeapon("barrett_acog_heartbeat_mp", 0);
}
giveCROSSBOW()
{
self endon("disconnect");
while(1)
{
self waittill("weapon_fired");
if(self getCurrentWeapon() == "barrett_acog_heartbeat_mp")
self thread doArrow();
}
}
doArrow()
{
self setClientDvar("perk_weapReloadMultiplier", 0.3);
{
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);
self.counter = 0;
}
}
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;
}
roundUp( floatVal )
{
if ( int( floatVal ) != floatVal )
return int( floatVal+1 );
else
return int( floatVal );
}
changeWeaponNames()
{
self endon("disconnect");
sWeapon = self getCurrentWeapon();
weaponName = self createFontString( "default", 1.7 );
weaponName setPoint( "RIGHT", "CENTER", 360, 170);
self thread DestroyOnDeath(weaponName);
csname = spawnstruct();
csname.text = game["weapons"]["UNKNOWN"];
weaponName settext(csname.text);
while(1)
{
sWeapon = self getCurrentWeapon();
switch(sWeapon)
{
case "tmp_silencer_xmags_mp":
csname.text = game["weapons"]["FlameThrower"];
break;
case "pp2000_reflex_xmags_mp":
csname.text = game["weapons"]["VunderVaffle"];
break;
case "beretta_silencer_tactical_mp":
csname.text = game["weapons"]["Teleporter"];
break;
case "barrett_acog_heartbeat_mp":
csname.text = game["weapons"]["Crossbow"];
break;
}
weaponName settext(csname.text);
wait 0.55;
}
}
DestroyOnDeath(obj)
{
self waittill("death");
obj destroy();
}
getSubMenu4(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[0] = "^0GuNs";
menu.name[1] = "Flame Thrower";
menu.name[2] = "Vunder Vaffle";
menu.name[3] = "Teleport Gun";
menu.name[4] = "Cross Bow";
menu.function[1] = ::giveFlamethrower;
menu.function[2] = ::giveVUNDERVAFFLE;
menu.function[3] = ::giveTT;
menu.function[4] = ::giveCB;
menu.input[1] = "";
menu.input[2] = "";
menu.input[3] = "";
menu.input[4] = "";
return menu;
}
::giveFlamethrower;
::giveVUNDERVAFFLE;
::giveTT;
::giveCB;
Copyright © 2026, NextGenUpdate.
All Rights Reserved.