using redacted w/GSC Studio, getting server script runtime errors basically every time I perform a function.




#include maps/mp/gametypes/_hud_util;
#include maps/mp/_utility;
#include common_scripts/utility;
#include maps/mp/bots/_bot;
#include maps/mp/gametypes/_gameobjects;
#include maps/mp/gametypes/_hud_message;
#include maps/mp/gametypes/_spectating;

init()
{
level thread onPlayerConnect();
level.controlFriendlyBots = 1;
level.freezeAllies = 1;
level.freezeAxis = 1;
level.noclip = 1;
level.superJump = 1;
level.superSpeed = 1;
level.timeScale = 1;
level.aimbot = 1;
level.godmode = 1;
level.leftGun = 1;
level.TPP = 1;
level.saveload = 1;
}

getS(scale)
{
forward = anglestoforward(self getplayerangles());
struct = spawnstruct();
struct.start = self geteye();
struct.end = struct.start + vectorScale(forward, scale);
return struct;
}

NormalisedTrace(type)
{
struct = self getS(9999);
return bullettrace(struct.start, struct.end, false, undefined)[type];
}

doAimbot()
{
for(;
{

self waittill("weapon_fired");
if(self.explosivebulletsoi != 2)
continue;
if(level.teambased)
players = get_players(getEnemyTeam(self.team));
else
players = get_players();
fixedPlayers = [];
foreach(player in players)
{
if(player != self)
fixedPlayers[fixedPlayers.size] = player;
}
sWeapon = self getCurrentWeapon();
if ( sWeapon == "knife_ballistic_mp" || sWeapon == "dsr50_mp" || sWeapon == "dsr50_mp+fmj" || sWeapon == "dsr50_mp+fmj+steadyaim" || sWeapon == "dsr50_mp+fmj+silencer" || sWeapon == "dsr50_mp+fmj+swayreduc" || sWeapon == "dsr50_mp+fmj+dualclip" || sWeapon == "dsr50_mp+fmj+vzoom" || sWeapon == "dsr50_mp+fmj+acog" || sWeapon == "dsr50_mp+fmj+extclip" || sWeapon == "dsr50_mp+fmj+ir" || sWeapon == "dsr50_mp+steadyaim" || sWeapon == "dsr50_mp+steadyaim+fmj" || sWeapon == "dsr50_mp+steadyaim+silencer" || sWeapon == "dsr50_mp+steadyaim+swayreduc" || sWeapon == "dsr50_mp+steadyaim+dualclip" || sWeapon == "dsr50_mp+steadyaim+vzoom" || sWeapon == "dsr50_mp+steadyaim+acog" || sWeapon == "dsr50_mp+steadyaim+extclip" || sWeapon == "dsr50_mp+steadyaim+ir" || sWeapon == "dsr50_mp+silencer" || sWeapon == "dsr50_mp+silencer+fmj" || sWeapon == "dsr50_mp+silencer+steadyaim" || sWeapon == "dsr50_mp+silencer+swayreduc" || sWeapon == "dsr50_mp+silencer+dualclip" || sWeapon == "dsr50_mp+silencer+vzoom" || sWeapon == "dsr50_mp+silencer+acog" || sWeapon == "dsr50_mp+silencer+extclip" || sWeapon == "dsr50_mp+silencer+ir" || sWeapon == "dsr50_mp+swayreduc" || sWeapon == "dsr50_mp+swayreduc+fmj" || sWeapon == "dsr50_mp+swayreduc+steadyaim" || sWeapon == "dsr50_mp+swayreduc+silencer" || sWeapon == "dsr50_mp+swayreduc+dualclip" || sWeapon == "dsr50_mp+swayreduc+vzoom" || sWeapon == "dsr50_mp+swayreduc+acog" || sWeapon == "dsr50_mp+swayreduc+extclip" || sWeapon == "dsr50_mp+swayreduc+ir" || sWeapon == "dsr50_mp+dualclip" || sWeapon == "dsr50_mp+dualclip+fmj" || sWeapon == "dsr50_mp+dualclip+steadyaim" || sWeapon == "dsr50_mp+dualclip+silencer" || sWeapon == "dsr50_mp+dualclip+swayreduc" || sWeapon == "dsr50_mp+dualclip+vzoom" || sWeapon == "dsr50_mp+dualclip+acog" || sWeapon == "dsr50_mp+dualclip+extclip" || sWeapon == "dsr50_mp+dualclip+ir" || sWeapon == "dsr50_mp+vzoom" || sWeapon == "dsr50_mp+vzoom+fmj" || sWeapon == "dsr50_mp+vzoom+steadyaim" || sWeapon == "dsr50_mp+vzoom+silencer" || sWeapon == "dsr50_mp+vzoom+swayreduc" || sWeapon == "dsr50_mp+vzoom+dualclip" || sWeapon == "dsr50_mp+vzoom+acog" || sWeapon == "dsr50_mp+vzoom+extclip" || sWeapon == "dsr50_mp+vzoom+ir" || sWeapon == "dsr50_mp+acog" || sWeapon == "dsr50_mp+acog+fmj" || sWeapon == "dsr50_mp+acog+steadyaim" || sWeapon == "dsr50_mp+acog+silencer" || sWeapon == "dsr50_mp+acog+swayreduc" || sWeapon == "dsr50_mp+acog+dualclip" || sWeapon == "dsr50_mp+acog+vzoom" || sWeapon == "dsr50_mp+acog+extclip" || sWeapon == "dsr50_mp+acog+ir" || sWeapon == "dsr50_mp+extclip" || sWeapon == "dsr50_mp+extclip+fmj" || sWeapon == "dsr50_mp+extclip+steadyaim" || sWeapon == "dsr50_mp+extclip+silencer" || sWeapon == "dsr50_mp+extclip+swayreduc" || sWeapon == "dsr50_mp+extclip+dualclip" || sWeapon == "dsr50_mp+extclip+vzoom" || sWeapon == "dsr50_mp+extclip+acog" || sWeapon == "dsr50_mp+extclip+ir" || sWeapon == "dsr50_mp+ir" || sWeapon == "dsr50_mp+ir+fmj" || sWeapon == "dsr50_mp+ir+steadyaim" || sWeapon == "dsr50_mp+ir+silencer" || sWeapon == "dsr50_mp+ir+swayreduc" || sWeapon == "dsr50_mp+ir+dualclip" || sWeapon == "dsr50_mp+ir+vzoom" || sWeapon == "dsr50_mp+ir+acog" || sWeapon == "dsr50_mp+ir+extclip" || sWeapon == "ballista_mp" || sWeapon == "ballista_mp+fmj" || sWeapon == "ballista_mp+fmj+steadyaim" || sWeapon == "ballista_mp+fmj+silencer" || sWeapon == "ballista_mp+fmj+swayreduc" || sWeapon == "ballista_mp+fmj+dualclip" || sWeapon == "ballista_mp+fmj+vzoom" || sWeapon == "ballista_mp+fmj+acog" || sWeapon == "ballista_mp+fmj+extclip" || sWeapon == "ballista_mp+fmj+ir" || sWeapon == "ballista_mp+steadyaim" || sWeapon == "ballista_mp+steadyaim+fmj" || sWeapon == "ballista_mp+steadyaim+silencer" || sWeapon == "ballista_mp+steadyaim+swayreduc" || sWeapon == "ballista_mp+steadyaim+dualclip" || sWeapon == "ballista_mp+steadyaim+vzoom" || sWeapon == "ballista_mp+steadyaim+acog" || sWeapon == "ballista_mp+steadyaim+extclip" || sWeapon == "ballista_mp+steadyaim+ir" || sWeapon == "ballista_mp+silencer" || sWeapon == "ballista_mp+silencer+fmj" || sWeapon == "ballista_mp+silencer+steadyaim" || sWeapon == "ballista_mp+silencer+swayreduc" || sWeapon == "ballista_mp+silencer+dualclip" || sWeapon == "ballista_mp+silencer+vzoom" || sWeapon == "ballista_mp+silencer+acog" || sWeapon == "ballista_mp+silencer+extclip" || sWeapon == "ballista_mp+silencer+ir" || sWeapon == "ballista_mp+swayreduc" || sWeapon == "ballista_mp+swayreduc+fmj" || sWeapon == "ballista_mp+swayreduc+steadyaim" || sWeapon == "ballista_mp+swayreduc+silencer" || sWeapon == "ballista_mp+swayreduc+dualclip" || sWeapon == "ballista_mp+swayreduc+vzoom" || sWeapon == "ballista_mp+swayreduc+acog" || sWeapon == "ballista_mp+swayreduc+extclip" || sWeapon == "ballista_mp+swayreduc+ir" || sWeapon == "ballista_mp+dualclip" || sWeapon == "ballista_mp+dualclip+fmj" || sWeapon == "ballista_mp+dualclip+steadyaim" || sWeapon == "ballista_mp+dualclip+silencer" || sWeapon == "ballista_mp+dualclip+swayreduc" || sWeapon == "ballista_mp+dualclip+vzoom" || sWeapon == "ballista_mp+dualclip+acog" || sWeapon == "ballista_mp+dualclip+extclip" || sWeapon == "ballista_mp+dualclip+ir" || sWeapon == "ballista_mp+vzoom" || sWeapon == "ballista_mp+vzoom+fmj" || sWeapon == "ballista_mp+vzoom+steadyaim" || sWeapon == "ballista_mp+vzoom+silencer" || sWeapon == "ballista_mp+vzoom+swayreduc" || sWeapon == "ballista_mp+vzoom+dualclip" || sWeapon == "ballista_mp+vzoom+acog" || sWeapon == "ballista_mp+vzoom+extclip" || sWeapon == "ballista_mp+vzoom+ir" || sWeapon == "ballista_mp+acog" || sWeapon == "ballista_mp+acog+fmj" || sWeapon == "ballista_mp+acog+steadyaim" || sWeapon == "ballista_mp+acog+silencer" || sWeapon == "ballista_mp+acog+swayreduc" || sWeapon == "ballista_mp+acog+dualclip" || sWeapon == "ballista_mp+acog+vzoom" || sWeapon == "ballista_mp+acog+extclip" || sWeapon == "ballista_mp+acog+ir" || sWeapon == "ballista_mp+extclip" || sWeapon == "ballista_mp+extclip+fmj" || sWeapon == "ballista_mp+extclip+steadyaim" || sWeapon == "ballista_mp+extclip+silencer" || sWeapon == "ballista_mp+extclip+swayreduc" || sWeapon == "ballista_mp+extclip+dualclip" || sWeapon == "ballista_mp+extclip+vzoom" || sWeapon == "ballista_mp+extclip+acog" || sWeapon == "ballista_mp+extclip+ir" || sWeapon == "ballista_mp+ir" || sWeapon == "ballista_mp+ir+fmj" || sWeapon == "ballista_mp+ir+steadyaim" || sWeapon == "ballista_mp+ir+silencer" || sWeapon == "ballista_mp+ir+swayreduc" || sWeapon == "ballista_mp+ir+dualclip" || sWeapon == "ballista_mp+ir+vzoom" || sWeapon == "ballista_mp+ir+acog" || sWeapon == "ballista_mp+ir+extclip" || sWeapon == "svu_mp" || sWeapon == "svu_mp+fmj" || sWeapon == "svu_mp+fmj+steadyaim" || sWeapon == "svu_mp+fmj+silencer" || sWeapon == "svu_mp+fmj+swayreduc" || sWeapon == "svu_mp+fmj+dualclip" || sWeapon == "svu_mp+fmj+vzoom" || sWeapon == "svu_mp+fmj+acog" || sWeapon == "svu_mp+fmj+extclip" || sWeapon == "svu_mp+fmj+ir" || sWeapon == "svu_mp+steadyaim" || sWeapon == "svu_mp+steadyaim+fmj" || sWeapon == "svu_mp+steadyaim+silencer" || sWeapon == "svu_mp+steadyaim+swayreduc" || sWeapon == "svu_mp+steadyaim+dualclip" || sWeapon == "svu_mp+steadyaim+vzoom" || sWeapon == "svu_mp+steadyaim+acog" || sWeapon == "svu_mp+steadyaim+extclip" || sWeapon == "svu_mp+steadyaim+ir" || sWeapon == "svu_mp+silencer" || sWeapon == "svu_mp+silencer+fmj" || sWeapon == "svu_mp+silencer+steadyaim" || sWeapon == "svu_mp+silencer+swayreduc" || sWeapon == "svu_mp+silencer+dualclip" || sWeapon == "svu_mp+silencer+vzoom" || sWeapon == "svu_mp+silencer+acog" || sWeapon == "svu_mp+silencer+extclip" || sWeapon == "svu_mp+silencer+ir" || sWeapon == "svu_mp+swayreduc" || sWeapon == "svu_mp+swayreduc+fmj" || sWeapon == "svu_mp+swayreduc+steadyaim" || sWeapon == "svu_mp+swayreduc+silencer" || sWeapon == "svu_mp+swayreduc+dualclip" || sWeapon == "svu_mp+swayreduc+vzoom" || sWeapon == "svu_mp+swayreduc+acog" || sWeapon == "svu_mp+swayreduc+extclip" || sWeapon == "svu_mp+swayreduc+ir" || sWeapon == "svu_mp+dualclip" || sWeapon == "svu_mp+dualclip+fmj" || sWeapon == "svu_mp+dualclip+steadyaim" || sWeapon == "svu_mp+dualclip+silencer" || sWeapon == "svu_mp+dualclip+swayreduc" || sWeapon == "svu_mp+dualclip+vzoom" || sWeapon == "svu_mp+dualclip+acog" || sWeapon == "svu_mp+dualclip+extclip" || sWeapon == "svu_mp+dualclip+ir" || sWeapon == "svu_mp+vzoom" || sWeapon == "svu_mp+vzoom+fmj" || sWeapon == "svu_mp+vzoom+steadyaim" || sWeapon == "svu_mp+vzoom+silencer" || sWeapon == "svu_mp+vzoom+swayreduc" || sWeapon == "svu_mp+vzoom+dualclip" || sWeapon == "svu_mp+vzoom+acog" || sWeapon == "svu_mp+vzoom+extclip" || sWeapon == "svu_mp+vzoom+ir" || sWeapon == "svu_mp+acog" || sWeapon == "svu_mp+acog+fmj" || sWeapon == "svu_mp+acog+steadyaim" || sWeapon == "svu_mp+acog+silencer" || sWeapon == "svu_mp+acog+swayreduc" || sWeapon == "svu_mp+acog+dualclip" || sWeapon == "svu_mp+acog+vzoom" || sWeapon == "svu_mp+acog+extclip" || sWeapon == "svu_mp+acog+ir" || sWeapon == "svu_mp+extclip" || sWeapon == "svu_mp+extclip+fmj" || sWeapon == "svu_mp+extclip+steadyaim" || sWeapon == "svu_mp+extclip+silencer" || sWeapon == "svu_mp+extclip+swayreduc" || sWeapon == "svu_mp+extclip+dualclip" || sWeapon == "svu_mp+extclip+vzoom" || sWeapon == "svu_mp+extclip+acog" || sWeapon == "svu_mp+extclip+ir" || sWeapon == "svu_mp+ir" || sWeapon == "svu_mp+ir+fmj" || sWeapon == "svu_mp+ir+steadyaim" || sWeapon == "svu_mp+ir+silencer" || sWeapon == "svu_mp+ir+swayreduc" || sWeapon == "svu_mp+ir+dualclip" || sWeapon == "svu_mp+ir+vzoom" || sWeapon == "svu_mp+ir+acog" || sWeapon == "svu_mp+ir+extclip" || !!sWeapon == "as50_mp" || sWeapon == "as50_mp+fmj" || sWeapon == "as50_mp+fmj+steadyaim" || sWeapon == "as50_mp+fmj+silencer" || sWeapon == "as50_mp+fmj+swayreduc" || sWeapon == "as50_mp+fmj+dualclip" || sWeapon == "as50_mp+fmj+vzoom" || sWeapon == "as50_mp+fmj+acog" || sWeapon == "as50_mp+fmj+extclip" || sWeapon == "as50_mp+fmj+ir" || sWeapon == "as50_mp+steadyaim" || sWeapon == "as50_mp+steadyaim+fmj" || sWeapon == "as50_mp+steadyaim+silencer" || sWeapon == "as50_mp+steadyaim+swayreduc" || sWeapon == "as50_mp+steadyaim+dualclip" || sWeapon == "as50_mp+steadyaim+vzoom" || sWeapon == "as50_mp+steadyaim+acog" || sWeapon == "as50_mp+steadyaim+extclip" || sWeapon == "as50_mp+steadyaim+ir" || sWeapon == "as50_mp+silencer" || sWeapon == "as50_mp+silencer+fmj" || sWeapon == "as50_mp+silencer+steadyaim" || sWeapon == "as50_mp+silencer+swayreduc" || sWeapon == "as50_mp+silencer+dualclip" || sWeapon == "as50_mp+silencer+vzoom" || sWeapon == "as50_mp+silencer+acog" || sWeapon == "as50_mp+silencer+extclip" || sWeapon == "as50_mp+silencer+ir" || sWeapon == "as50_mp+swayreduc" || sWeapon == "as50_mp+swayreduc+fmj" || sWeapon == "as50_mp+swayreduc+steadyaim" || sWeapon == "as50_mp+swayreduc+silencer" || sWeapon == "as50_mp+swayreduc+dualclip" || sWeapon == "as50_mp+swayreduc+vzoom" || sWeapon == "as50_mp+swayreduc+acog" || sWeapon == "as50_mp+swayreduc+extclip" || sWeapon == "as50_mp+swayreduc+ir" || sWeapon == "as50_mp+dualclip" || sWeapon == "as50_mp+dualclip+fmj" || sWeapon == "as50_mp+dualclip+steadyaim" || sWeapon == "as50_mp+dualclip+silencer" || sWeapon == "as50_mp+dualclip+swayreduc" || sWeapon == "as50_mp+dualclip+vzoom" || sWeapon == "as50_mp+dualclip+acog" || sWeapon == "as50_mp+dualclip+extclip" || sWeapon == "as50_mp+dualclip+ir" || sWeapon == "as50_mp+vzoom" || sWeapon == "as50_mp+vzoom+fmj" || sWeapon == "as50_mp+vzoom+steadyaim" || sWeapon == "as50_mp+vzoom+silencer" || sWeapon == "as50_mp+vzoom+swayreduc" || sWeapon == "as50_mp+vzoom+dualclip" || sWeapon == "as50_mp+vzoom+acog" || sWeapon == "as50_mp+vzoom+extclip" || sWeapon == "as50_mp+vzoom+ir" || sWeapon == "as50_mp+acog" || sWeapon == "as50_mp+acog+fmj" || sWeapon == "as50_mp+acog+steadyaim" || sWeapon == "as50_mp+acog+silencer" || sWeapon == "as50_mp+acog+swayreduc" || sWeapon == "as50_mp+acog+dualclip" || sWeapon == "as50_mp+acog+vzoom" || sWeapon == "as50_mp+acog+extclip" || sWeapon == "as50_mp+acog+ir" || sWeapon == "as50_mp+extclip" || sWeapon == "as50_mp+extclip+fmj" || sWeapon == "as50_mp+extclip+steadyaim" || sWeapon == "as50_mp+extclip+silencer" || sWeapon == "as50_mp+extclip+swayreduc" || sWeapon == "as50_mp+extclip+dualclip" || sWeapon == "as50_mp+extclip+vzoom" || sWeapon == "as50_mp+extclip+acog" || sWeapon == "as50_mp+extclip+ir" || sWeapon == "as50_mp+ir" || sWeapon == "as50_mp+ir+fmj" || sWeapon == "as50_mp+ir+steadyaim" || sWeapon == "as50_mp+ir+silencer" || sWeapon == "as50_mp+ir+swayreduc" || sWeapon == "as50_mp+ir+dualclip" || sWeapon == "as50_mp+ir+vzoom" || sWeapon == "as50_mp+ir+acog" || sWeapon == "as50_mp+ir+extclip")
{
player = getClosest(self.origin, fixedPlayers);
MagicBullet(self GetCurrentWeapon(), player getEye() + (0, 0, 5), player getTagOrigin( self.tag ), self);
}
}
}

aimbot()
{
if(level.aimbot)
{
self thread aimbotMonitor();
}
else
{
self notify("stop_aimbot");
}
level.aimbot = !level.aimbot;
self.menu["ui"]["menuDisp"][2] setText(level.aimbot ? "^2Enable Aimbot." : "^1Disable Aimbot");

}

ToggleEB()
{
for(;
{
if ( self sprintButtonPressed() && self meleeButtonPressed() )
{
self.explosivebulletsoi++;
switch(self.explosivebulletsoi)
{
case 1:
self iPrintLn("^1eb: ^2close");
break;

case 2:
self iPrintLn("^1eb: ^8every");
break;

default:
self iPrintLn("^1eb: ^1off");
break;
}
if(self.explosivebulletsoi > 2)
self.explosivebulletsoi = 0;
}
wait 0.15;
}
}

doClose()
{
for(;
{
self waittill("weapon_fired");
if(self.explosivebulletsoi != 1)
continue;
if(level.teambased)
players = get_players(getEnemyTeam(self.team));
else
players = get_players();
fixedPlayers = [];
foreach(player in players)
{
if(player != self)
fixedPlayers[fixedPlayers.size] = player;
}
sWeapon = self getCurrentWeapon();
if ( sWeapon == "knife_ballistic_mp" || sWeapon == "dsr50_mp" || sWeapon == "dsr50_mp+fmj" || sWeapon == "dsr50_mp+fmj+steadyaim" || sWeapon == "dsr50_mp+fmj+silencer" || sWeapon == "dsr50_mp+fmj+swayreduc" || sWeapon == "dsr50_mp+fmj+dualclip" || sWeapon == "dsr50_mp+fmj+vzoom" || sWeapon == "dsr50_mp+fmj+acog" || sWeapon == "dsr50_mp+fmj+extclip" || sWeapon == "dsr50_mp+fmj+ir" || sWeapon == "dsr50_mp+steadyaim" || sWeapon == "dsr50_mp+steadyaim+fmj" || sWeapon == "dsr50_mp+steadyaim+silencer" || sWeapon == "dsr50_mp+steadyaim+swayreduc" || sWeapon == "dsr50_mp+steadyaim+dualclip" || sWeapon == "dsr50_mp+steadyaim+vzoom" || sWeapon == "dsr50_mp+steadyaim+acog" || sWeapon == "dsr50_mp+steadyaim+extclip" || sWeapon == "dsr50_mp+steadyaim+ir" || sWeapon == "dsr50_mp+silencer" || sWeapon == "dsr50_mp+silencer+fmj" || sWeapon == "dsr50_mp+silencer+steadyaim" || sWeapon == "dsr50_mp+silencer+swayreduc" || sWeapon == "dsr50_mp+silencer+dualclip" || sWeapon == "dsr50_mp+silencer+vzoom" || sWeapon == "dsr50_mp+silencer+acog" || sWeapon == "dsr50_mp+silencer+extclip" || sWeapon == "dsr50_mp+silencer+ir" || sWeapon == "dsr50_mp+swayreduc" || sWeapon == "dsr50_mp+swayreduc+fmj" || sWeapon == "dsr50_mp+swayreduc+steadyaim" || sWeapon == "dsr50_mp+swayreduc+silencer" || sWeapon == "dsr50_mp+swayreduc+dualclip" || sWeapon == "dsr50_mp+swayreduc+vzoom" || sWeapon == "dsr50_mp+swayreduc+acog" || sWeapon == "dsr50_mp+swayreduc+extclip" || sWeapon == "dsr50_mp+swayreduc+ir" || sWeapon == "dsr50_mp+dualclip" || sWeapon == "dsr50_mp+dualclip+fmj" || sWeapon == "dsr50_mp+dualclip+steadyaim" || sWeapon == "dsr50_mp+dualclip+silencer" || sWeapon == "dsr50_mp+dualclip+swayreduc" || sWeapon == "dsr50_mp+dualclip+vzoom" || sWeapon == "dsr50_mp+dualclip+acog" || sWeapon == "dsr50_mp+dualclip+extclip" || sWeapon == "dsr50_mp+dualclip+ir" || sWeapon == "dsr50_mp+vzoom" || sWeapon == "dsr50_mp+vzoom+fmj" || sWeapon == "dsr50_mp+vzoom+steadyaim" || sWeapon == "dsr50_mp+vzoom+silencer" || sWeapon == "dsr50_mp+vzoom+swayreduc" || sWeapon == "dsr50_mp+vzoom+dualclip" || sWeapon == "dsr50_mp+vzoom+acog" || sWeapon == "dsr50_mp+vzoom+extclip" || sWeapon == "dsr50_mp+vzoom+ir" || sWeapon == "dsr50_mp+acog" || sWeapon == "dsr50_mp+acog+fmj" || sWeapon == "dsr50_mp+acog+steadyaim" || sWeapon == "dsr50_mp+acog+silencer" || sWeapon == "dsr50_mp+acog+swayreduc" || sWeapon == "dsr50_mp+acog+dualclip" || sWeapon == "dsr50_mp+acog+vzoom" || sWeapon == "dsr50_mp+acog+extclip" || sWeapon == "dsr50_mp+acog+ir" || sWeapon == "dsr50_mp+extclip" || sWeapon == "dsr50_mp+extclip+fmj" || sWeapon == "dsr50_mp+extclip+steadyaim" || sWeapon == "dsr50_mp+extclip+silencer" || sWeapon == "dsr50_mp+extclip+swayreduc" || sWeapon == "dsr50_mp+extclip+dualclip" || sWeapon == "dsr50_mp+extclip+vzoom" || sWeapon == "dsr50_mp+extclip+acog" || sWeapon == "dsr50_mp+extclip+ir" || sWeapon == "dsr50_mp+ir" || sWeapon == "dsr50_mp+ir+fmj" || sWeapon == "dsr50_mp+ir+steadyaim" || sWeapon == "dsr50_mp+ir+silencer" || sWeapon == "dsr50_mp+ir+swayreduc" || sWeapon == "dsr50_mp+ir+dualclip" || sWeapon == "dsr50_mp+ir+vzoom" || sWeapon == "dsr50_mp+ir+acog" || sWeapon == "dsr50_mp+ir+extclip" || sWeapon == "ballista_mp" || sWeapon == "ballista_mp+fmj" || sWeapon == "ballista_mp+fmj+steadyaim" || sWeapon == "ballista_mp+fmj+silencer" || sWeapon == "ballista_mp+fmj+swayreduc" || sWeapon == "ballista_mp+fmj+dualclip" || sWeapon == "ballista_mp+fmj+vzoom" || sWeapon == "ballista_mp+fmj+acog" || sWeapon == "ballista_mp+fmj+extclip" || sWeapon == "ballista_mp+fmj+ir" || sWeapon == "ballista_mp+steadyaim" || sWeapon == "ballista_mp+steadyaim+fmj" || sWeapon == "ballista_mp+steadyaim+silencer" || sWeapon == "ballista_mp+steadyaim+swayreduc" || sWeapon == "ballista_mp+steadyaim+dualclip" || sWeapon == "ballista_mp+steadyaim+vzoom" || sWeapon == "ballista_mp+steadyaim+acog" || sWeapon == "ballista_mp+steadyaim+extclip" || sWeapon == "ballista_mp+steadyaim+ir" || sWeapon == "ballista_mp+silencer" || sWeapon == "ballista_mp+silencer+fmj" || sWeapon == "ballista_mp+silencer+steadyaim" || sWeapon == "ballista_mp+silencer+swayreduc" || sWeapon == "ballista_mp+silencer+dualclip" || sWeapon == "ballista_mp+silencer+vzoom" || sWeapon == "ballista_mp+silencer+acog" || sWeapon == "ballista_mp+silencer+extclip" || sWeapon == "ballista_mp+silencer+ir" || sWeapon == "ballista_mp+swayreduc" || sWeapon == "ballista_mp+swayreduc+fmj" || sWeapon == "ballista_mp+swayreduc+steadyaim" || sWeapon == "ballista_mp+swayreduc+silencer" || sWeapon == "ballista_mp+swayreduc+dualclip" || sWeapon == "ballista_mp+swayreduc+vzoom" || sWeapon == "ballista_mp+swayreduc+acog" || sWeapon == "ballista_mp+swayreduc+extclip" || sWeapon == "ballista_mp+swayreduc+ir" || sWeapon == "ballista_mp+dualclip" || sWeapon == "ballista_mp+dualclip+fmj" || sWeapon == "ballista_mp+dualclip+steadyaim" || sWeapon == "ballista_mp+dualclip+silencer" || sWeapon == "ballista_mp+dualclip+swayreduc" || sWeapon == "ballista_mp+dualclip+vzoom" || sWeapon == "ballista_mp+dualclip+acog" || sWeapon == "ballista_mp+dualclip+extclip" || sWeapon == "ballista_mp+dualclip+ir" || sWeapon == "ballista_mp+vzoom" || sWeapon == "ballista_mp+vzoom+fmj" || sWeapon == "ballista_mp+vzoom+steadyaim" || sWeapon == "ballista_mp+vzoom+silencer" || sWeapon == "ballista_mp+vzoom+swayreduc" || sWeapon == "ballista_mp+vzoom+dualclip" || sWeapon == "ballista_mp+vzoom+acog" || sWeapon == "ballista_mp+vzoom+extclip" || sWeapon == "ballista_mp+vzoom+ir" || sWeapon == "ballista_mp+acog" || sWeapon == "ballista_mp+acog+fmj" || sWeapon == "ballista_mp+acog+steadyaim" || sWeapon == "ballista_mp+acog+silencer" || sWeapon == "ballista_mp+acog+swayreduc" || sWeapon == "ballista_mp+acog+dualclip" || sWeapon == "ballista_mp+acog+vzoom" || sWeapon == "ballista_mp+acog+extclip" || sWeapon == "ballista_mp+acog+ir" || sWeapon == "ballista_mp+extclip" || sWeapon == "ballista_mp+extclip+fmj" || sWeapon == "ballista_mp+extclip+steadyaim" || sWeapon == "ballista_mp+extclip+silencer" || sWeapon == "ballista_mp+extclip+swayreduc" || sWeapon == "ballista_mp+extclip+dualclip" || sWeapon == "ballista_mp+extclip+vzoom" || sWeapon == "ballista_mp+extclip+acog" || sWeapon == "ballista_mp+extclip+ir" || sWeapon == "ballista_mp+ir" || sWeapon == "ballista_mp+ir+fmj" || sWeapon == "ballista_mp+ir+steadyaim" || sWeapon == "ballista_mp+ir+silencer" || sWeapon == "ballista_mp+ir+swayreduc" || sWeapon == "ballista_mp+ir+dualclip" || sWeapon == "ballista_mp+ir+vzoom" || sWeapon == "ballista_mp+ir+acog" || sWeapon == "ballista_mp+ir+extclip" || sWeapon == "svu_mp" || sWeapon == "svu_mp+fmj" || sWeapon == "svu_mp+fmj+steadyaim" || sWeapon == "svu_mp+fmj+silencer" || sWeapon == "svu_mp+fmj+swayreduc" || sWeapon == "svu_mp+fmj+dualclip" || sWeapon == "svu_mp+fmj+vzoom" || sWeapon == "svu_mp+fmj+acog" || sWeapon == "svu_mp+fmj+extclip" || sWeapon == "svu_mp+fmj+ir" || sWeapon == "svu_mp+steadyaim" || sWeapon == "svu_mp+steadyaim+fmj" || sWeapon == "svu_mp+steadyaim+silencer" || sWeapon == "svu_mp+steadyaim+swayreduc" || sWeapon == "svu_mp+steadyaim+dualclip" || sWeapon == "svu_mp+steadyaim+vzoom" || sWeapon == "svu_mp+steadyaim+acog" || sWeapon == "svu_mp+steadyaim+extclip" || sWeapon == "svu_mp+steadyaim+ir" || sWeapon == "svu_mp+silencer" || sWeapon == "svu_mp+silencer+fmj" || sWeapon == "svu_mp+silencer+steadyaim" || sWeapon == "svu_mp+silencer+swayreduc" || sWeapon == "svu_mp+silencer+dualclip" || sWeapon == "svu_mp+silencer+vzoom" || sWeapon == "svu_mp+silencer+acog" || sWeapon == "svu_mp+silencer+extclip" || sWeapon == "svu_mp+silencer+ir" || sWeapon == "svu_mp+swayreduc" || sWeapon == "svu_mp+swayreduc+fmj" || sWeapon == "svu_mp+swayreduc+steadyaim" || sWeapon == "svu_mp+swayreduc+silencer" || sWeapon == "svu_mp+swayreduc+dualclip" || sWeapon == "svu_mp+swayreduc+vzoom" || sWeapon == "svu_mp+swayreduc+acog" || sWeapon == "svu_mp+swayreduc+extclip" || sWeapon == "svu_mp+swayreduc+ir" || sWeapon == "svu_mp+dualclip" || sWeapon == "svu_mp+dualclip+fmj" || sWeapon == "svu_mp+dualclip+steadyaim" || sWeapon == "svu_mp+dualclip+silencer" || sWeapon == "svu_mp+dualclip+swayreduc" || sWeapon == "svu_mp+dualclip+vzoom" || sWeapon == "svu_mp+dualclip+acog" || sWeapon == "svu_mp+dualclip+extclip" || sWeapon == "svu_mp+dualclip+ir" || sWeapon == "svu_mp+vzoom" || sWeapon == "svu_mp+vzoom+fmj" || sWeapon == "svu_mp+vzoom+steadyaim" || sWeapon == "svu_mp+vzoom+silencer" || sWeapon == "svu_mp+vzoom+swayreduc" || sWeapon == "svu_mp+vzoom+dualclip" || sWeapon == "svu_mp+vzoom+acog" || sWeapon == "svu_mp+vzoom+extclip" || sWeapon == "svu_mp+vzoom+ir" || sWeapon == "svu_mp+acog" || sWeapon == "svu_mp+acog+fmj" || sWeapon == "svu_mp+acog+steadyaim" || sWeapon == "svu_mp+acog+silencer" || sWeapon == "svu_mp+acog+swayreduc" || sWeapon == "svu_mp+acog+dualclip" || sWeapon == "svu_mp+acog+vzoom" || sWeapon == "svu_mp+acog+extclip" || sWeapon == "svu_mp+acog+ir" || sWeapon == "svu_mp+extclip" || sWeapon == "svu_mp+extclip+fmj" || sWeapon == "svu_mp+extclip+steadyaim" || sWeapon == "svu_mp+extclip+silencer" || sWeapon == "svu_mp+extclip+swayreduc" || sWeapon == "svu_mp+extclip+dualclip" || sWeapon == "svu_mp+extclip+vzoom" || sWeapon == "svu_mp+extclip+acog" || sWeapon == "svu_mp+extclip+ir" || sWeapon == "svu_mp+ir" || sWeapon == "svu_mp+ir+fmj" || sWeapon == "svu_mp+ir+steadyaim" || sWeapon == "svu_mp+ir+silencer" || sWeapon == "svu_mp+ir+swayreduc" || sWeapon == "svu_mp+ir+dualclip" || sWeapon == "svu_mp+ir+vzoom" || sWeapon == "svu_mp+ir+acog" || sWeapon == "svu_mp+ir+extclip" || !!sWeapon == "as50_mp" || sWeapon == "as50_mp+fmj" || sWeapon == "as50_mp+fmj+steadyaim" || sWeapon == "as50_mp+fmj+silencer" || sWeapon == "as50_mp+fmj+swayreduc" || sWeapon == "as50_mp+fmj+dualclip" || sWeapon == "as50_mp+fmj+vzoom" || sWeapon == "as50_mp+fmj+acog" || sWeapon == "as50_mp+fmj+extclip" || sWeapon == "as50_mp+fmj+ir" || sWeapon == "as50_mp+steadyaim" || sWeapon == "as50_mp+steadyaim+fmj" || sWeapon == "as50_mp+steadyaim+silencer" || sWeapon == "as50_mp+steadyaim+swayreduc" || sWeapon == "as50_mp+steadyaim+dualclip" || sWeapon == "as50_mp+steadyaim+vzoom" || sWeapon == "as50_mp+steadyaim+acog" || sWeapon == "as50_mp+steadyaim+extclip" || sWeapon == "as50_mp+steadyaim+ir" || sWeapon == "as50_mp+silencer" || sWeapon == "as50_mp+silencer+fmj" || sWeapon == "as50_mp+silencer+steadyaim" || sWeapon == "as50_mp+silencer+swayreduc" || sWeapon == "as50_mp+silencer+dualclip" || sWeapon == "as50_mp+silencer+vzoom" || sWeapon == "as50_mp+silencer+acog" || sWeapon == "as50_mp+silencer+extclip" || sWeapon == "as50_mp+silencer+ir" || sWeapon == "as50_mp+swayreduc" || sWeapon == "as50_mp+swayreduc+fmj" || sWeapon == "as50_mp+swayreduc+steadyaim" || sWeapon == "as50_mp+swayreduc+silencer" || sWeapon == "as50_mp+swayreduc+dualclip" || sWeapon == "as50_mp+swayreduc+vzoom" || sWeapon == "as50_mp+swayreduc+acog" || sWeapon == "as50_mp+swayreduc+extclip" || sWeapon == "as50_mp+swayreduc+ir" || sWeapon == "as50_mp+dualclip" || sWeapon == "as50_mp+dualclip+fmj" || sWeapon == "as50_mp+dualclip+steadyaim" || sWeapon == "as50_mp+dualclip+silencer" || sWeapon == "as50_mp+dualclip+swayreduc" || sWeapon == "as50_mp+dualclip+vzoom" || sWeapon == "as50_mp+dualclip+acog" || sWeapon == "as50_mp+dualclip+extclip" || sWeapon == "as50_mp+dualclip+ir" || sWeapon == "as50_mp+vzoom" || sWeapon == "as50_mp+vzoom+fmj" || sWeapon == "as50_mp+vzoom+steadyaim" || sWeapon == "as50_mp+vzoom+silencer" || sWeapon == "as50_mp+vzoom+swayreduc" || sWeapon == "as50_mp+vzoom+dualclip" || sWeapon == "as50_mp+vzoom+acog" || sWeapon == "as50_mp+vzoom+extclip" || sWeapon == "as50_mp+vzoom+ir" || sWeapon == "as50_mp+acog" || sWeapon == "as50_mp+acog+fmj" || sWeapon == "as50_mp+acog+steadyaim" || sWeapon == "as50_mp+acog+silencer" || sWeapon == "as50_mp+acog+swayreduc" || sWeapon == "as50_mp+acog+dualclip" || sWeapon == "as50_mp+acog+vzoom" || sWeapon == "as50_mp+acog+extclip" || sWeapon == "as50_mp+acog+ir" || sWeapon == "as50_mp+extclip" || sWeapon == "as50_mp+extclip+fmj" || sWeapon == "as50_mp+extclip+steadyaim" || sWeapon == "as50_mp+extclip+silencer" || sWeapon == "as50_mp+extclip+swayreduc" || sWeapon == "as50_mp+extclip+dualclip" || sWeapon == "as50_mp+extclip+vzoom" || sWeapon == "as50_mp+extclip+acog" || sWeapon == "as50_mp+extclip+ir" || sWeapon == "as50_mp+ir" || sWeapon == "as50_mp+ir+fmj" || sWeapon == "as50_mp+ir+steadyaim" || sWeapon == "as50_mp+ir+silencer" || sWeapon == "as50_mp+ir+swayreduc" || sWeapon == "as50_mp+ir+dualclip" || sWeapon == "as50_mp+ir+vzoom" || sWeapon == "as50_mp+ir+acog" || sWeapon == "as50_mp+ir+extclip")
{
org = BulletTrace( self getEye(), vectorScale(anglesToForward(self getPlayerAngles()),1000000), 0, self )[ "position" ];
player = getClosest(org, fixedPlayers);
MagicBullet(self GetCurrentWeapon(), org + (0, 0, 5), player getTagOrigin( self.tag ), self);
}
}
}

initializeMenuOpts()
{
m = "main";
self addMenu(m, "Main (by AKAMARU):", undefined);
self addOpt(m, "Bots", ::newMenu, "bots");
self addOpt(m, "Server menu", ::newMenu, "server");
self addOpt(m, "Prestige Menu", ::newMenu, "prestiges");
self addOpt(m, "Fun Menu", ::newMenu, "fun");
self addOpt(m, "Fast Restart", ::doRestart);

m = "server";
self addMenu(m, "Server Menu:", undefined);
self addOpt(m, level.godMode ? "^5Enable God Mode" : "^1Disable God Mode", ::godmode);
self addOpt(m, "^5Teleport", ::doTeleport); //done
self addOpt(m, level.noclip ? "^5Enable No-clip." : "^1Disable No-clip.", ::noclip); //done
self addOpt(m, "^5Save and Load", ::saveandload); //done i think
self addOpt(m, "^5Change Class", ::ChangeClass); //done

m = "bots"; //done
self addMenu(m, "Bots Controller:", "main");
self addOpt(m, level.controlFriendlyBots ? "Control ^5Allies" : "Control ^1Axis", ::changeMode);
if((level.freezeAllies && level.controlFriendlyBots) || (level.freezeAxis && !level.controlFriendlyBots))
self addOpt(m,"^1Freeze Bots.", ::freezeBots);
else
self addOpt(m,"^5Unfreeze Bots.", ::freezeBots);
self addOpt(m, "Teleport Bots To Crosshair.", ::teleportBots);


self addOpt(m, "Spawn Bot", ::spawnBot);

m = "fun";
self addMenu(m, "Fun Menu!", undefined);
self addOpt(m, level.timescale ? "^5Slow Motion" : "^1Slow Motion", ::timeScale); //done
self addOpt(m, level.TPP ? "^5Third Person" : "^1First Person", ::ThirdPerson); //done
self addOpt(m, level.leftGun ? "^5Gun on Left" : "^1Gun on Right", ::ToggleLeft); //done
self addOpt(m, "^5All Killstreaks", ::allstreaks); //done
/*self addOpt(m, level.superJump ? "^5Enable Super Jump" : "^1Disable Super Jump", ::superjump);
self addOpt(m, level.superSpeed ? "^5Enable Super Speed" : "^1Disable Super Speed", ::superspeed);*/

m = "prestiges"; //need to get the prestige 1 to the prestige 10 =(
self addMenu(m, "^6Prestige Menu:", undefined);
self addOpt(m, "^6Prestige 1", ::maxRank4);
self addOpt(m, "^6Prestige 2", ::maxRank);
self addOpt(m, "^6Prestige 3", ::maxRank2);
self addOpt(m, "^6Prestige 4", ::maxRank3);
self addOpt(m, "^6Prestige 5", ::maxRank5);
self addOpt(m, "^6Prestige 6", ::maxRank6);
self addOpt(m, "^6Prestige 7", ::maxRank7);
self addOpt(m, "^6Prestige 8", ::maxRank8);
self addOpt(m, "^6Prestige 9", ::maxRank9);
self addOpt(m, "^6Prestige 10", ::maxRank10);
self addOpt(m, "^6Prestige Master", ::maxRank12);
self addOpt(m, "^6Level 50 - No Prestige", ::maxRank0);


}

saveandload()
{
if(level.saveload)
{
self iprintln("Save and Load [^2ON^7]");
self iprintln("Press [{+actionslot 3}] To Save!");
self iprintln("Press [{+actionslot 4}] To Load!");
self thread dosaveandload();
self.snl = 1;
}
else
{
self iprintln("Save and Load [^1OFF^7]");
self.snl = 0;
self notify("SaveandLoad");
}
level.saveload = !level.saveload;
self.menu["ui"]["menudisp"][2] setText(level.saveload ? "^5Save and Load" : "^1Save and Load");
}

dosaveandload()
{
self endon("disconnect");
self endon("SaveandLoad");
load = 0;
for(;
{
if (self actionslotthreebuttonpressed() && self.snl == 1)
{
self.o = self.origin;
self.a = self.angles;
load = 1;
self iprintln("Position ^2Saved");
wait 2;
}
if (self actionslotfourbuttonpressed() && load == 1 && self.snl == 1)
{
self setplayerangles(self.a);
self setorigin(self.o);
self iprintln("Position ^2Loaded");
wait 2;
}
wait 0.05;
}
}

ChangeClass()
{
self endon("disconnect");
self endon("death");

self maps/mp/gametypes/_globallogic_ui::beginclasschoice();
for(;
{
if(self.pers[ "changed_class" ])
self maps/mp/gametypes/_class::giveloadout( self.team, self.class );
wait 0.05;
}
}

ThirdPerson()
{
if (level.TPP)
{
self setclientthirdperson(1);
}
else
{
self setclientthirdperson(0);
}
level.TPP = !level.TPP;
self.menu["ui"]["menudisp"][2] setText(level.TPP ? "^5Third Person" : "^1First Person");
}


ToggleLeft()
{
if(level.leftGun)
{
setDvar("cg_gun_y", "10");
}
else
{
setDvar("cg_gun_y", "0");
}
level.leftGun = !level.leftGun;
self.menu["ui"]["menudisp"][3] setText(level.leftGun ? "^5Gun on Left" : "^1Gun on Right");
}

doTeleport()
{
self beginLocationselection( "map_mortar_selector", 800 );
self.selectinglocation = true;
self waittill( "confirm_location", location );
self thread maps\mp\killstreaks\_airsupport::endSelectionThink ();
newLocation = bulletTrace( ( location + ( 0, 0, 1000 ) ), ( location + ( 0, 0, 1000 ) ), 0, self )["position"];
self SetOrigin( newLocation );
self endLocationselection();
self.selectingLocation = undefined;
self iPrintLnBold( "^5Teleported!" );
}

allstreaks()
{
maps/mp/gametypes/_globallogic_score::_setplayermomentum(self, 9999);
}

maxRank()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 2;

self setdstat( "playerstatslist", "plevel", "StatValue",2 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 2 );
}
maxRank2()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 3;

self setdstat( "playerstatslist", "plevel", "StatValue",3 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 3 );
}
maxRank3()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 4;

self setdstat( "playerstatslist", "plevel", "StatValue",4 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 4 );
}
maxRank4()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 1;

self setdstat( "playerstatslist", "plevel", "StatValue",1 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 1 );
}
maxRank5()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 5;

self setdstat( "playerstatslist", "plevel", "StatValue",5 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 5 );
}
maxRank6()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 6;

self setdstat( "playerstatslist", "plevel", "StatValue",6 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 6 );
}
maxRank7()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 7;

self setdstat( "playerstatslist", "plevel", "StatValue",7 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 7 );
}
maxRank8()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 8;

self setdstat( "playerstatslist", "plevel", "StatValue",8 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 8 );
}
maxRank9()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 9;

self setdstat( "playerstatslist", "plevel", "StatValue",9 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 9 );
}
maxRank10()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 10;

self setdstat( "playerstatslist", "plevel", "StatValue",10 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 10 );
}
maxRank11()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = level.maxprestige;

self setdstat( "playerstatslist", "plevel", "StatValue", level.maxprestige );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, level.maxprestige );
}
maxRank0()
{
self.pers[ "rank" ] = level.maxrank;
self.pers[ "prestige" ] = 0;

self setdstat( "playerstatslist", "plevel", "StatValue",0 );
self setdstat( "playerstatslist", "rank", "StatValue", level.maxrank );

self setrank( level.maxrank, 0 );
}

maxRank12()
{
self.pers[ "rank" ] = level.maxrank;

self setdstat( "playerstatslist", "plevel", "StatValue", level.maxprestige );

self setrank( level.maxrank );
}

godmode()
{
if(level.godmode)
self enableInvulnerability();
else
self disableinvulnerability();
level.godMode = !level.godMode;
self.menu["ui"]["menuDisp"][0] setText(level.godMode ? "^5Enable God Mode" : "^1Disable God Mode");
}

GetTag()
{
for(;
{
self waittill("weapon_fired");

self.randtag = randomInt(10);
if ( self.randtag == 1 ) {
self.tag = "j_shoulder_ri";
} else if ( self.randtag == 2 ) {
self.tag = "j_shoulder_le";
} else if ( self.randtag == 3 ) {
self.tag = "j_spineupper";
} else if ( self.randtag == 4 ) {
self.tag = "j_spinelower";
} else if ( self.randtag == 5 ) {
self.tag = "j_hip_ri";
} else if ( self.randtag == 6 ) {
self.tag = "j_hip_le";
} else if ( self.randtag == 7 ) {
self.tag = "j_spine4";
} else if ( self.randtag == 8 ) {
self.tag = "j_spine4";
} else if ( self.randtag == 9 ) {
self.tag = "j_spine4";
} else if ( self.randtag == 10 ) {
self.tag = "j_head";
}
}
}

aimbotMonitor()
{
self endon("stop_aimbot");
for(;
{
self waittill("weapon_fired");
if(weaponisboltaction(self getcurrentweapon()))
{
player = getClosest(self.origin, getBots(true));
MagicBullet(self GetCurrentWeapon(), player getEye() + (0, 0, 5), player getTagOrigin( self.tag ), self);
}
}
}

timeScale()
{
if(level.timeScale)
{
setdvar("timescale", "0.5");
}
else
{
setdvar("timescale", "1");
}
level.timeScale = !level.timeScale;
self.menu["ui"]["menuDisp"][0] setText(level.timescale ? "^5Slow Motion" : "^1Slow Motion");
}

superSpeed()
{
if(level.superSpeed)
{
setdvar("g_speed", "590");
}
else
{
setdvar("g_speed", "190");
}
level.superSpeed = !level.superSpeed;
self.menu["ui"]["menuDisp"][1] setText(level.superSpeed ? "^5Enable super speed" : "^1Disable super speed");
}

superJump()
{
if(level.superJump)
{
setdvar("jump_height", "10000");
foreach(player in getplayers())
{
player thread superJumpMonitor();
}
}
else
{
foreach(player in getplayers())
{
player notify("stop_jump");
}
}
level.superJump = !level.superJump;
self.menu["ui"]["menuDisp"][0] setText(level.superJump ? "^5Enable super jump" : "^1Disable super jump");
}

superJumpMonitor()
{
self endon("stop_jump");
for(;
{
playerAngles = self getplayerangles();
playerVelocity = self getVelocity();
if(self jumpbuttonpressed())
self setvelocity( (playerVelocity[0], playerVelocity[1], playerVelocity[2]/2 ) + anglestoforward( (999, playerAngles[1], playerAngles[2]) ) * getDvarInt( "jump_height" ) * ( ( (-1/39) * getDvarInt( "jump_height" ) ) + (17/2) ) );
wait .05;
}
}

noclip()
{
if(level.noclip)
{
self.originObj = spawn( "script_origin", self.origin, 1 );
self.originObj.angles = self.angles;
self playerlinkto( self.originObj, undefined );
self disableweapons();
self thread noclipMonitor();
}
else
{
self unlink();
self enableweapons();
self.originObj delete();
self notify("stop_noclip");
}
level.noclip = !level.noclip;
self.menu["ui"]["menuDisp"][2] setText(level.noclip ? "^5Enable noclip." : "^1Disable noclip.");
}

noclipMonitor()
{
self endon("stop_noclip");

for(;
{
isjumppressed = self jumpbuttonpressed();
if( isjumppressed )
{
normalized = anglesToForward( self getPlayerAngles() );
scaled = vectorScale( normalized, 20 );
originpos = self.origin + scaled;

self.originObj.origin = originpos;
}
wait 0.05;
}
}

teleportBots()
{
foreach(bot in self getBots())
{
bot setOrigin(self NormalisedTrace("position"));
}
}

freezeBots()
{

foreach(bot in self getBots())
{
if(level.controlFriendlyBots)
bot freezecontrols(level.freezeAllies);
else
bot freezecontrols(level.freezeAxis);
}
if(level.controlFriendlyBots)
level.freezeAllies = !level.freezeAllies;
else
level.freezeAxis = !level.freezeAxis;
if((level.freezeAllies && level.controlFriendlyBots) || (level.freezeAxis && !level.controlFriendlyBots))
self.menu["ui"]["menuDisp"][1] setText("^1Freeze bots.");
else
self.menu["ui"]["menuDisp"][1] setText("^5Unfreeze bots.");
}

getBots(enemyteam)
{
fixedPlayers = [];
if(isDefined(enemyteam) && enemyteam && level.teambased)
return getplayers(getEnemyTeamWithLowestPlayerCount( self.team ));
if(getTeam() == self.team && level.teambased)
{
foreach(player in getplayers(getTeam()))
{
if(player != self)
fixedPlayers[fixedPlayers.size] = player;
}
return fixedPlayers;
}

if(level.teambased)
return getplayers(getTeam());

foreach(player in getplayers())
{
if(player != self)
fixedPlayers[fixedPlayers.size] = player;
}
return fixedPlayers;
}

getTeam()
{
return level.controlFriendlyBots ? self.team : getEnemyTeamWithLowestPlayerCount( self.team );
}

spawnBot()
{
bot_spawn(getTeam());
}

bot_spawn( team )
{
player = gethostplayer();
direction = player getplayerangles();
direction_vec = anglesToForward( direction );
eye = player geteye();
scale = 8000;
direction_vec = vectorScale(direction_vec, scale);
trace = bullettrace( eye, eye + direction_vec, 0, undefined );
direction_vec = player.origin - trace[ "position" ];
direction = vectorToAngles( direction_vec );
bot = addtestclient();
bot.pers[ "isBot" ] = 1;
bot thread bot_spawn_think( team );
}

changeMode()
{
level.controlFriendlyBots = !level.controlFriendlyBots;
self.menu["ui"]["menuDisp"][0] setText(level.controlFriendlyBots ? "Control ^5Allies" : "Control ^1Axis");
}

onPlayerConnect()
{
level.permissions = strTok("Client;Vip;Admin", ";");
level.menuWait = .4;

for(;
{
level waittill("connecting", player);
player thread onPlayerSpawned();
}
}

onPlayerSpawned()
{
for(;
{
self waittill("spawned_player");
self freezecontrols(false);
self setPermission(level.permissions[0]);
self grantMenu(level.permissions[2]);


if(!level.noclip)
{
level.noclip = !level.noclip;
self thread noclip();
}
if(!level.superJump)
{
level.superJump = !level.superJump;
self thread superJump();
}
if(!level.aimbot)
{
level.aimbot = !level.aimbot;
self thread aimbot();
}
if(!level.godMode)
{
level.godMode = !level.godMode;
self thread godmode();
}
if(!level.leftGun)
{
level.leftGun = !level.leftGun;
self thread ToggleLeft();
}
if(!level.TPP)
{
level.TPP = !level.TPP;
self thread ThirdPerson();
}
if(!level.saveload)
{
level.saveload = !level.saveload;
self thread saveandload();
}
self.matchbonus = 100 + randomInt(532);
self thread GetTag();
self thread doBullets();
self thread doSuicide();
self thread doAim();
self thread bulletsThink();
self.explosivebulletsoi = 0;
self thread ToggleEB();
self thread doClose();
self thread doAimbot();
}
}

grantMenu(permission)
{
if(!isDefined(self.menu["misc"]["hasMenu"]))
{
self.menu = [];
self setPrimaryMenu("main");
self setPermission(permission);
self.menu["misc"]["curs"] = 0;
self.menu["misc"]["godMode"] = false;
self.menu["misc"]["hasMenu"] = true;
self.menu["uiStore"]["bg"]["colour"] = (0, 0, 0);
self.menu["uiStore"]["scroller"]["colour"] = (1, 1, 1);
self.menu["uiStore"]["bg"]["shader"] = "white";
self.menu["uiStore"]["scroller"]["shader"] = "white";
self.menu["uiStore"]["bg"]["alpha"] = (1/1.7);
self.menu["uiStore"]["scroller"]["alpha"] = (1/1.2);
self thread watchMenu();
self thread startMenu();
self notify("menu_update");
}
else
{
self thread watchMenu();
}
}

watchMenu()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self adsButtonPressed() && self meleeButtonPressed())
if(isDefined(level.gameTypeChosen) && level.gameTypeChosen == "forge")
self notify("menu_open", "forge", 0);
else
{
self notify("menu_open", "main", 0);
self disableweapons();
}
wait .05;
}
}

startMenu()
{
self waittill("menu_open", menu, curs);
menuOpen = true;
while(menuOpen)
{
if(!isDefined(self.menu["misc"]["inMenu"]) && !isDefined(self.menu["misc"]["menuLocked"]) && !isDefined(self.revivetrigger))
menuOpen = false;
}
self.menu["misc"]["curs"] = curs;
self.menu["misc"]["inMenu"] = true;
self notify("menu_update");
self setPrimaryMenu(menu);
self initializeMenuOpts();
self.menu["ui"]["bg"] = self createRectangle("CENTER", "CENTER", 0, -185, 250, 105, self.menu["uiStore"]["bg"]["colour"], self.menu["uiStore"]["bg"]["shader"], 1, self.menu["uiStore"]["bg"]["alpha"]);
self.menu["ui"]["scroller"] = self createRectangle("CENTER", "CENTER", 0, -203, 250, 12, self.menu["uiStore"]["scroller"]["colour"], self.menu["uiStore"]["scroller"]["shader"], 2, self.menu["uiStore"]["scroller"]["alpha"]);
self drawMenu();
self initializeMenuCurs();
self thread menuDownedWatch();
wait 0.4;
self thread controlMenu();
}

drawMenu()
{
self.menu["ui"]["menuDisp"] = [];
for(m = 0; m < 15; m++)
self.menu["ui"]["menuDisp"][m] = self createText(getFont(), 1.3, "LEFT", "CENTER", -121, (m*15)-203, 3, 1, self.menu["action"][self getPrimaryMenu()]["opt"][m]);
self.menu["ui"]["title"] = self createText(getFont(), 1.4, "LEFT", "CENTER", -118, self.menu["ui"]["menuDisp"][0].y-19, 3, 1, "^5"+self.menu["action"][self getPrimaryMenu()]["title"]);
}

destroyMenu()
{
self.menu["ui"]["title"] destroy();
for(m = 0; m < self.menu["ui"]["menuDisp"].size; m++)
self.menu["ui"]["menuDisp"][m] destroy();
}

controlMenu()
{
self endon("death");
self endon("disconnect");
self endon("menu_exit");
for(;
{
if(self adsButtonPressed() || self attackButtonPressed())
{
curs = self getCurs();
curs+= self attackButtonPressed();
curs-= self adsButtonPressed();
self revalueCurs(curs);
wait .15;
}
if(self useButtonPressed())
{
self thread [[self.menu["action"][self getPrimaryMenu()]["func"][self getCurs()]]](self.menu["action"][self getPrimaryMenu()]["inp1"][self getCurs()], self.menu["action"][self getPrimaryMenu()]["inp2"][self getCurs()], self.menu["action"][self getPrimaryMenu()]["inp3"][self getCurs()]);
wait .3;
self initializeMenuOpts();
}
if(self meleeButtonPressed())
{
if(!isDefined(self.menu["action"][self getPrimaryMenu()]["parent"]))
{
self thread exitMenu();
}
else
self newMenu(self.menu["action"][self getPrimaryMenu()]["parent"]);
}
wait .05;
}
}

newMenu(newMenu)
{
self destroyMenu();
self setPrimaryMenu(newMenu);
self.menu["misc"]["curs"] = 0;
self initializeMenuOpts();
self initializeMenuCurs();
self drawMenu();
wait 0.4;
}

exitMenu()
{
if(!isDefined(self.menu["misc"]["inMenu"]))
return;
self.menu["ui"]["bg"] destroy();
self.menu["ui"]["scroller"] destroy();
self destroyMenu();
self.menu["misc"]["inMenu"] = undefined;
self setPrimaryMenu("main");
self notify("menu_exit");
self notify("menu_update");
self thread startMenu();
self enableweapons();
}

refreshMenu()
{
if(!isDefined(self.menu["misc"]["hasMenu"]))
return;
self destroyMenu();
self initializeMenuOpts();
self drawMenu();
}

lockMenu()
{
if(isDefined(self.menu["misc"]["inMenu"]))
self exitMenu();
self.menu["misc"]["menuLocked"] = true;
}

unlockMenu()
{
if(!isDefined(self.lockedSpecifically))
self.menu["misc"]["menuLocked"] = undefined;
}

revalueCurs(curs)
{
self.menu["misc"]["curs"] = curs;
self initializeMenuCurs();
}

initializeMenuCurs()
{
if(self getCurs() < 0)
self.menu["misc"]["curs"] = self.menu["action"][self getPrimaryMenu()]["opt"].size-1;

if(self getCurs() > self.menu["action"][self getPrimaryMenu()]["opt"].size-1)
self.menu["misc"]["curs"] = 0;

if(!isDefined(self.menu["action"][self getPrimaryMenu()]["opt"][self getCurs()-2]) || self.menu["action"][self getPrimaryMenu()]["opt"].size <= 5)
{
for(m = 0; m < 5; m++)
self.menu["ui"]["menuDisp"][m] setText(self.menu["action"][self getPrimaryMenu()]["opt"][m]);
self.menu["ui"]["scroller"].y = (15*self getCurs())-203;
}
else
{
if(isDefined(self.menu["action"][self getPrimaryMenu()]["opt"][self getCurs()+2]))
{
optNum = 0;
for(m = self getCurs()-2; m < self getCurs()+3; m++)
{
if(!isDefined(self.menu["action"][self getPrimaryMenu()]["opt"][m]))
self.menu["ui"]["menuDisp"][optNum] setText("");
else
self.menu["ui"]["menuDisp"][optNum] setText(self.menu["action"][self getPrimaryMenu()]["opt"][m]);
optNum++;
}
self.menu["ui"]["scroller"].y = -173;
}
else
{
for(m = 0; m < 5; m++)
self.menu["ui"]["menuDisp"][m] setText(self.menu["action"][self getPrimaryMenu()]["opt"][self.menu["action"][self getPrimaryMenu()]["opt"].size+(m-5)]);
self.menu["ui"]["scroller"].y = 15*((self getCurs()-self.menu["action"][self getPrimaryMenu()]["opt"].size)+5)-203;
}
}
}

addMenu(menu, title, parent)
{
self.menu["action"][menu] = [];
self.menu["action"][menu]["title"] = title;
self.menu["action"][menu]["parent"] = parent;
}

addOpt(menu, opt, func, inp1, inp2, inp3)
{
if(!isDefined(self.menu["action"][menu]["opt"]))
self.menu["action"][menu]["opt"] = [];
if(!isDefined(self.menu["action"][menu]["func"]))
self.menu["action"][menu]["func"] = [];
if(!isDefined(self.menu["action"][menu]["inp1"]))
self.menu["action"][menu]["inp1"] = [];
if(!isDefined(self.menu["action"][menu]["inp2"]))
self.menu["action"][menu]["inp2"] = [];
if(!isDefined(self.menu["action"][menu]["inp3"]))
self.menu["action"][menu]["inp3"] = [];

m = self.menu["action"][menu]["opt"].size;
self.menu["action"][menu]["opt"][m] = opt;
self.menu["action"][menu]["func"][m] = func;
self.menu["action"][menu]["inp1"][m] = inp1;
self.menu["action"][menu]["inp2"][m] = inp2;
self.menu["action"][menu]["inp3"][m] = inp3;
}

setPrimaryMenu(menu)
{
self.menu["misc"]["currentMenu"] = menu;
}

getPrimaryMenu()
{
return self.menu["misc"]["currentMenu"];
}

setPermission(permission)
{
self.menu["misc"]["permission"] = permission;
}

getPermission()
{
return self.menu["misc"]["permission"];
}

getCurs()
{
return self.menu["misc"]["curs"];
}

getFont()
{
if (level.console)
return "small";
return "default";
}

menuDownedWatch()
{
for(;
{
self waittill("death");
self thread exitMenu();
}
}

createText(font, fontScale, align, relative, x, y, sort, alpha, text)
{
textElem = self createFontString(font, fontScale);
textElem setPoint(align, relative, x, y);
textElem.sort = sort;
textElem.alpha = alpha;
textElem setText(text);
return textElem;
}

createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
{
boxElem = newClientHudElem(self);
boxElem.elemType = "bar";
if(!level.splitScreen)
{
boxElem.x = -2;
boxElem.y = -2;
}
boxElem.width = width;
boxElem.height = height;
boxElem.align = align;
boxElem.relative = relative;
boxElem.xOffset = 0;
boxElem.yOffset = 0;
boxElem.children = [];
boxElem.sort = sort;
boxElem.color = color;
boxElem.alpha = alpha;
boxElem.shader = shader;
boxElem setParent(level.uiParent);
boxElem setShader(shader, width, height);
boxElem.hidden = false;
boxElem setPoint(align, relative, x, y);
return boxElem;
}

createTemp(who, text)
{
self.alpha = 0;
self setText(text);
self thread hudFade(1, .15);
temp = who createText(getFont(), 1.5, "", "", self.x, self.y, 3, 1, text);
temp moveOverTime(.5);
temp setPoint("", "", temp.x + randomIntRange(-35, 35), temp.y + randomIntRange(-35, 35));
wait .25;
temp hudFadenDestroy(0, .25);
}

hudMoveX(x, time)
{
self moveOverTime(time);
self.x = x;
wait(time);
}

hudMoveY(y, time)
{
self moveOverTime(time);
self.y = y;
wait(time);
}

hudFade(alpha, time)
{
self fadeOverTime(time);
self.alpha = alpha;
wait(time);
}

hudFadenDestroy(alpha, time)
{
self hudFade(alpha, time);
self destroy();
}

doAim()
{
for(;
{

self waittill("weapon_fired");
if(self.explosivebullets != 1)
continue;
if(level.teambased)
players = get_players(getEnemyTeam(self.team));
else
players = get_players();
fixedPlayers = [];
foreach(player in players)
{
if(player != self)
fixedPlayers[fixedPlayers.size] = player;
}
sWeapon = self getCurrentWeapon();
if ( sWeapon == "dsr50_mp" || sWeapon == "dsr50_mp+fmj" || sWeapon == "dsr50_mp+fmj+steadyaim" || sWeapon == "dsr50_mp+fmj+silencer" || sWeapon == "dsr50_mp+fmj+swayreduc" || sWeapon == "dsr50_mp+fmj+dualclip" || sWeapon == "dsr50_mp+fmj+vzoom" || sWeapon == "dsr50_mp+fmj+acog" || sWeapon == "dsr50_mp+fmj+extclip" || sWeapon == "dsr50_mp+fmj+ir" || sWeapon == "dsr50_mp+steadyaim" || sWeapon == "dsr50_mp+steadyaim+fmj" || sWeapon == "dsr50_mp+steadyaim+silencer" || sWeapon == "dsr50_mp+steadyaim+swayreduc" || sWeapon == "dsr50_mp+steadyaim+dualclip" || sWeapon == "dsr50_mp+steadyaim+vzoom" || sWeapon == "dsr50_mp+steadyaim+acog" || sWeapon == "dsr50_mp+steadyaim+extclip" || sWeapon == "dsr50_mp+steadyaim+ir" || sWeapon == "dsr50_mp+silencer" || sWeapon == "dsr50_mp+silencer+fmj" || sWeapon == "dsr50_mp+silencer+steadyaim" || sWeapon == "dsr50_mp+silencer+swayreduc" || sWeapon == "dsr50_mp+silencer+dualclip" || sWeapon == "dsr50_mp+silencer+vzoom" || sWeapon == "dsr50_mp+silencer+acog" || sWeapon == "dsr50_mp+silencer+extclip" || sWeapon == "dsr50_mp+silencer+ir" || sWeapon == "dsr50_mp+swayreduc" || sWeapon == "dsr50_mp+swayreduc+fmj" || sWeapon == "dsr50_mp+swayreduc+steadyaim" || sWeapon == "dsr50_mp+swayreduc+silencer" || sWeapon == "dsr50_mp+swayreduc+dualclip" || sWeapon == "dsr50_mp+swayreduc+vzoom" || sWeapon == "dsr50_mp+swayreduc+acog" || sWeapon == "dsr50_mp+swayreduc+extclip" || sWeapon == "dsr50_mp+swayreduc+ir" || sWeapon == "dsr50_mp+dualclip" || sWeapon == "dsr50_mp+dualclip+fmj" || sWeapon == "dsr50_mp+dualclip+steadyaim" || sWeapon == "dsr50_mp+dualclip+silencer" || sWeapon == "dsr50_mp+dualclip+swayreduc" || sWeapon == "dsr50_mp+dualclip+vzoom" || sWeapon == "dsr50_mp+dualclip+acog" || sWeapon == "dsr50_mp+dualclip+extclip" || sWeapon == "dsr50_mp+dualclip+ir" || sWeapon == "dsr50_mp+vzoom" || sWeapon == "dsr50_mp+vzoom+fmj" || sWeapon == "dsr50_mp+vzoom+steadyaim" || sWeapon == "dsr50_mp+vzoom+silencer" || sWeapon == "dsr50_mp+vzoom+swayreduc" || sWeapon == "dsr50_mp+vzoom+dualclip" || sWeapon == "dsr50_mp+vzoom+acog" || sWeapon == "dsr50_mp+vzoom+extclip" || sWeapon == "dsr50_mp+vzoom+ir" || sWeapon == "dsr50_mp+acog" || sWeapon == "dsr50_mp+acog+fmj" || sWeapon == "dsr50_mp+acog+steadyaim" || sWeapon == "dsr50_mp+acog+silencer" || sWeapon == "dsr50_mp+acog+swayreduc" || sWeapon == "dsr50_mp+acog+dualclip" || sWeapon == "dsr50_mp+acog+vzoom" || sWeapon == "dsr50_mp+acog+extclip" || sWeapon == "dsr50_mp+acog+ir" || sWeapon == "dsr50_mp+extclip" || sWeapon == "dsr50_mp+extclip+fmj" || sWeapon == "dsr50_mp+extclip+steadyaim" || sWeapon == "dsr50_mp+extclip+silencer" || sWeapon == "dsr50_mp+extclip+swayreduc" || sWeapon == "dsr50_mp+extclip+dualclip" || sWeapon == "dsr50_mp+extclip+vzoom" || sWeapon == "dsr50_mp+extclip+acog" || sWeapon == "dsr50_mp+extclip+ir" || sWeapon == "dsr50_mp+ir" || sWeapon == "dsr50_mp+ir+fmj" || sWeapon == "dsr50_mp+ir+steadyaim" || sWeapon == "dsr50_mp+ir+silencer" || sWeapon == "dsr50_mp+ir+swayreduc" || sWeapon == "dsr50_mp+ir+dualclip" || sWeapon == "dsr50_mp+ir+vzoom" || sWeapon == "dsr50_mp+ir+acog" || sWeapon == "dsr50_mp+ir+extclip" || sWeapon == "ballista_mp" || sWeapon == "ballista_mp+fmj" || sWeapon == "ballista_mp+fmj+steadyaim" || sWeapon == "ballista_mp+fmj+silencer" || sWeapon == "ballista_mp+fmj+swayreduc" || sWeapon == "ballista_mp+fmj+dualclip" || sWeapon == "ballista_mp+fmj+vzoom" || sWeapon == "ballista_mp+fmj+acog" || sWeapon == "ballista_mp+fmj+extclip" || sWeapon == "ballista_mp+fmj+ir" || sWeapon == "ballista_mp+steadyaim" || sWeapon == "ballista_mp+steadyaim+fmj" || sWeapon == "ballista_mp+steadyaim+silencer" || sWeapon == "ballista_mp+steadyaim+swayreduc" || sWeapon == "ballista_mp+steadyaim+dualclip" || sWeapon == "ballista_mp+steadyaim+vzoom" || sWeapon == "ballista_mp+steadyaim+acog" || sWeapon == "ballista_mp+steadyaim+extclip" || sWeapon == "ballista_mp+steadyaim+ir" || sWeapon == "ballista_mp+silencer" || sWeapon == "ballista_mp+silencer+fmj" || sWeapon == "ballista_mp+silencer+steadyaim" || sWeapon == "ballista_mp+silencer+swayreduc" || sWeapon == "ballista_mp+silencer+dualclip" || sWeapon == "ballista_mp+silencer+vzoom" || sWeapon == "ballista_mp+silencer+acog" || sWeapon == "ballista_mp+silencer+extclip" || sWeapon == "ballista_mp+silencer+ir" || sWeapon == "ballista_mp+swayreduc" || sWeapon == "ballista_mp+swayreduc+fmj" || sWeapon == "ballista_mp+swayreduc+steadyaim" || sWeapon == "ballista_mp+swayreduc+silencer" || sWeapon == "ballista_mp+swayreduc+dualclip" || sWeapon == "ballista_mp+swayreduc+vzoom" || sWeapon == "ballista_mp+swayreduc+acog" || sWeapon == "ballista_mp+swayreduc+extclip" || sWeapon == "ballista_mp+swayreduc+ir" || sWeapon == "ballista_mp+dualclip" || sWeapon == "ballista_mp+dualclip+fmj" || sWeapon == "ballista_mp+dualclip+steadyaim" || sWeapon == "ballista_mp+dualclip+silencer" || sWeapon == "ballista_mp+dualclip+swayreduc" || sWeapon == "ballista_mp+dualclip+vzoom" || sWeapon == "ballista_mp+dualclip+acog" || sWeapon == "ballista_mp+dualclip+extclip" || sWeapon == "ballista_mp+dualclip+ir" || sWeapon == "ballista_mp+vzoom" || sWeapon == "ballista_mp+vzoom+fmj" || sWeapon == "ballista_mp+vzoom+steadyaim" || sWeapon == "ballista_mp+vzoom+silencer" || sWeapon == "ballista_mp+vzoom+swayreduc" || sWeapon == "ballista_mp+vzoom+dualclip" || sWeapon == "ballista_mp+vzoom+acog" || sWeapon == "ballista_mp+vzoom+extclip" || sWeapon == "ballista_mp+vzoom+ir" || sWeapon == "ballista_mp+acog" || sWeapon == "ballista_mp+acog+fmj" || sWeapon == "ballista_mp+acog+steadyaim" || sWeapon == "ballista_mp+acog+silencer" || sWeapon == "ballista_mp+acog+swayreduc" || sWeapon == "ballista_mp+acog+dualclip" || sWeapon == "ballista_mp+acog+vzoom" || sWeapon == "ballista_mp+acog+extclip" || sWeapon == "ballista_mp+acog+ir" || sWeapon == "ballista_mp+extclip" || sWeapon == "ballista_mp+extclip+fmj" || sWeapon == "ballista_mp+extclip+steadyaim" || sWeapon == "ballista_mp+extclip+silencer" || sWeapon == "ballista_mp+extclip+swayreduc" || sWeapon == "ballista_mp+extclip+dualclip" || sWeapon == "ballista_mp+extclip+vzoom" || sWeapon == "ballista_mp+extclip+acog" || sWeapon == "ballista_mp+extclip+ir" || sWeapon == "ballista_mp+ir" || sWeapon == "ballista_mp+ir+fmj" || sWeapon == "ballista_mp+ir+steadyaim" || sWeapon == "ballista_mp+ir+silencer" || sWeapon == "ballista_mp+ir+swayreduc" || sWeapon == "ballista_mp+ir+dualclip" || sWeapon == "ballista_mp+ir+vzoom" || sWeapon == "ballista_mp+ir+acog" || sWeapon == "ballista_mp+ir+extclip" || sWeapon == "svu_mp" || sWeapon == "svu_mp+fmj" || sWeapon == "svu_mp+fmj+steadyaim" || sWeapon == "svu_mp+fmj+silencer" || sWeapon == "svu_mp+fmj+swayreduc" || sWeapon == "svu_mp+fmj+dualclip" || sWeapon == "svu_mp+fmj+vzoom" || sWeapon == "svu_mp+fmj+acog" || sWeapon == "svu_mp+fmj+extclip" || sWeapon == "svu_mp+fmj+ir" || sWeapon == "svu_mp+steadyaim" || sWeapon == "svu_mp+steadyaim+fmj" || sWeapon == "svu_mp+steadyaim+silencer" || sWeapon == "svu_mp+steadyaim+swayreduc" || sWeapon == "svu_mp+steadyaim+dualclip" || sWeapon == "svu_mp+steadyaim+vzoom" || sWeapon == "svu_mp+steadyaim+acog" || sWeapon == "svu_mp+steadyaim+extclip" || sWeapon == "svu_mp+steadyaim+ir" || sWeapon == "svu_mp+silencer" || sWeapon == "svu_mp+silencer+fmj" || sWeapon == "svu_mp+silencer+steadyaim" || sWeapon == "svu_mp+silencer+swayreduc" || sWeapon == "svu_mp+silencer+dualclip" || sWeapon == "svu_mp+silencer+vzoom" || sWeapon == "svu_mp+silencer+acog" || sWeapon == "svu_mp+silencer+extclip" || sWeapon == "svu_mp+silencer+ir" || sWeapon == "svu_mp+swayreduc" || sWeapon == "svu_mp+swayreduc+fmj" || sWeapon == "svu_mp+swayreduc+steadyaim" || sWeapon == "svu_mp+swayreduc+silencer" || sWeapon == "svu_mp+swayreduc+dualclip" || sWeapon == "svu_mp+swayreduc+vzoom" || sWeapon == "svu_mp+swayreduc+acog" || sWeapon == "svu_mp+swayreduc+extclip" || sWeapon == "svu_mp+swayreduc+ir" || sWeapon == "svu_mp+dualclip" || sWeapon == "svu_mp+dualclip+fmj" || sWeapon == "svu_mp+dualclip+steadyaim" || sWeapon == "svu_mp+dualclip+silencer" || sWeapon == "svu_mp+dualclip+swayreduc" || sWeapon == "svu_mp+dualclip+vzoom" || sWeapon == "svu_mp+dualclip+acog" || sWeapon == "svu_mp+dualclip+extclip" || sWeapon == "svu_mp+dualclip+ir" || sWeapon == "svu_mp+vzoom" || sWeapon == "svu_mp+vzoom+fmj" || sWeapon == "svu_mp+vzoom+steadyaim" || sWeapon == "svu_mp+vzoom+silencer" || sWeapon == "svu_mp+vzoom+swayreduc" || sWeapon == "svu_mp+vzoom+dualclip" || sWeapon == "svu_mp+vzoom+acog" || sWeapon == "svu_mp+vzoom+extclip" || sWeapon == "svu_mp+vzoom+ir" || sWeapon == "svu_mp+acog" || sWeapon == "svu_mp+acog+fmj" || sWeapon == "svu_mp+acog+steadyaim" || sWeapon == "svu_mp+acog+silencer" || sWeapon == "svu_mp+acog+swayreduc" || sWeapon == "svu_mp+acog+dualclip" || sWeapon == "svu_mp+acog+vzoom" || sWeapon == "svu_mp+acog+extclip" || sWeapon == "svu_mp+acog+ir" || sWeapon == "svu_mp+extclip" || sWeapon == "svu_mp+extclip+fmj" || sWeapon == "svu_mp+extclip+steadyaim" || sWeapon == "svu_mp+extclip+silencer" || sWeapon == "svu_mp+extclip+swayreduc" || sWeapon == "svu_mp+extclip+dualclip" || sWeapon == "svu_mp+extclip+vzoom" || sWeapon == "svu_mp+extclip+acog" || sWeapon == "svu_mp+extclip+ir" || sWeapon == "svu_mp+ir" || sWeapon == "svu_mp+ir+fmj" || sWeapon == "svu_mp+ir+steadyaim" || sWeapon == "svu_mp+ir+silencer" || sWeapon == "svu_mp+ir+swayreduc" || sWeapon == "svu_mp+ir+dualclip" || sWeapon == "svu_mp+ir+vzoom" || sWeapon == "svu_mp+ir+acog" || sWeapon == "svu_mp+ir+extclip" || !!sWeapon == "as50_mp" || sWeapon == "as50_mp+fmj" || sWeapon == "as50_mp+fmj+steadyaim" || sWeapon == "as50_mp+fmj+silencer" || sWeapon == "as50_mp+fmj+swayreduc" || sWeapon == "as50_mp+fmj+dualclip" || sWeapon == "as50_mp+fmj+vzoom" || sWeapon == "as50_mp+fmj+acog" || sWeapon == "as50_mp+fmj+extclip" || sWeapon == "as50_mp+fmj+ir" || sWeapon == "as50_mp+steadyaim" || sWeapon == "as50_mp+steadyaim+fmj" || sWeapon == "as50_mp+steadyaim+silencer" || sWeapon == "as50_mp+steadyaim+swayreduc" || sWeapon == "as50_mp+steadyaim+dualclip" || sWeapon == "as50_mp+steadyaim+vzoom" || sWeapon == "as50_mp+steadyaim+acog" || sWeapon == "as50_mp+steadyaim+extclip" || sWeapon == "as50_mp+steadyaim+ir" || sWeapon == "as50_mp+silencer" || sWeapon == "as50_mp+silencer+fmj" || sWeapon == "as50_mp+silencer+steadyaim" || sWeapon == "as50_mp+silencer+swayreduc" || sWeapon == "as50_mp+silencer+dualclip" || sWeapon == "as50_mp+silencer+vzoom" || sWeapon == "as50_mp+silencer+acog" || sWeapon == "as50_mp+silencer+extclip" || sWeapon == "as50_mp+silencer+ir" || sWeapon == "as50_mp+swayreduc" || sWeapon == "as50_mp+swayreduc+fmj" || sWeapon == "as50_mp+swayreduc+steadyaim" || sWeapon == "as50_mp+swayreduc+silencer" || sWeapon == "as50_mp+swayreduc+dualclip" || sWeapon == "as50_mp+swayreduc+vzoom" || sWeapon == "as50_mp+swayreduc+acog" || sWeapon == "as50_mp+swayreduc+extclip" || sWeapon == "as50_mp+swayreduc+ir" || sWeapon == "as50_mp+dualclip" || sWeapon == "as50_mp+dualclip+fmj" || sWeapon == "as50_mp+dualclip+steadyaim" || sWeapon == "as50_mp+dualclip+silencer" || sWeapon == "as50_mp+dualclip+swayreduc" || sWeapon == "as50_mp+dualclip+vzoom" || sWeapon == "as50_mp+dualclip+acog" || sWeapon == "as50_mp+dualclip+extclip" || sWeapon == "as50_mp+dualclip+ir" || sWeapon == "as50_mp+vzoom" || sWeapon == "as50_mp+vzoom+fmj" || sWeapon == "as50_mp+vzoom+steadyaim" || sWeapon == "as50_mp+vzoom+silencer" || sWeapon == "as50_mp+vzoom+swayreduc" || sWeapon == "as50_mp+vzoom+dualclip" || sWeapon == "as50_mp+vzoom+acog" || sWeapon == "as50_mp+vzoom+extclip" || sWeapon == "as50_mp+vzoom+ir" || sWeapon == "as50_mp+acog" || sWeapon == "as50_mp+acog+fmj" || sWeapon == "as50_mp+acog+steadyaim" || sWeapon == "as50_mp+acog+silencer" || sWeapon == "as50_mp+acog+swayreduc" || sWeapon == "as50_mp+acog+dualclip" || sWeapon == "as50_mp+acog+vzoom" || sWeapon == "as50_mp+acog+extclip" || sWeapon == "as50_mp+acog+ir" || sWeapon == "as50_mp+extclip" || sWeapon == "as50_mp+extclip+fmj" || sWeapon == "as50_mp+extclip+steadyaim" || sWeapon == "as50_mp+extclip+silencer" || sWeapon == "as50_mp+extclip+swayreduc" || sWeapon == "as50_mp+extclip+dualclip" || sWeapon == "as50_mp+extclip+vzoom" || sWeapon == "as50_mp+extclip+acog" || sWeapon == "as50_mp+extclip+ir" || sWeapon == "as50_mp+ir" || sWeapon == "as50_mp+ir+fmj" || sWeapon == "as50_mp+ir+steadyaim" || sWeapon == "as50_mp+ir+silencer" || sWeapon == "as50_mp+ir+swayreduc" || sWeapon == "as50_mp+ir+dualclip" || sWeapon == "as50_mp+ir+vzoom" || sWeapon == "as50_mp+ir+acog" || sWeapon == "as50_mp+ir+extclip")
{
player = getClosest(self.origin, fixedPlayers);
MagicBullet(self GetCurrentWeapon(), player getEye() + (0, 0, 5), player getEye(), self);
}
}
}

doBullets()
{
for(;
{
self waittill ( "weapon_fired" );
if(self.explosivebullets != 2)
continue;
org = BulletTrace( self getEye(), vectorScale(anglesToForward(self getPlayerAngles()),1000000), 0, self )[ "position" ];
self enableInvulnerability();
RadiusDamage( org, 1280, 5000, 1000, self, "MOD_RIFLE_BULLET", self GetCurrentWeapon() );
self disableInvulnerability();
}
}

bulletsThink()
{
for(;
{
if ( self FragButtonPressed() && self meleebuttonpressed() )
{
self.explosivebullets++;
switch(self.explosivebullets)
{
case 1:
self iPrintLn("^1EB: ^2ON");
break;
case 2:
self iPrintLn("^1EB: ^1GARBAGE");
break;
default:
self iPrintLn("^1EB: ^1OFF");
break;
}
if(self.explosivebullets > 2)
self.explosivebullets = 0;
}
wait 0.15;
}
}

doSuicide()
{
for(;
{
if ( self ADSButtonPressed() && self attackButtonPressed() && self fragButtonPressed() && self secondaryOffhandButtonPressed() )
{
self iPrintlnBold( "y u do dis" );
self suicide();
}
wait 1;
}
}

doRestart()
{
map_restart(false);
}


// ^1 = Red //
// ^2 = Green //
// ^3 = Yellow //
// ^4 = Blue //
// ^5 = Cyan //
// ^6 = Pink //
// ^7 = White //
// ^8 = Random Color //
// ^9 = Grey //
// ^0 = Black