UGX-Mods Login

or login with an authentication provider below
Sign In with Google
Sign In with Twitter
Sign In with Discord
Sign In with Steam
Sign In with Facebook
Sign In with Twitch

GSC Script causes BO3 to close for no reason

broken avatar :(
Created 7 years ago
by Cxwh
0 Members and 1 Guest are viewing this topic.
2,019 views
broken avatar :(
×
broken avatar :(
Location: at
Date Registered: 26 November 2016
Last active: 6 years ago
Posts
45
Respect
Forum Rank
Legless Crawler
Primary Group
Member
My Contact & Social Links
More
Signature
12 year old music critic, quadrasexual Minecrafter, Linkin Park fan, Hentai enthusiast, intelligent atheist and vegan.
×
Cxwh's Groups
Cxwh's Contact & Social LinksCxwhModsGodAspire
I really don't know what's wrong with it but it just keeps closing my bo3 after some time. I know this is just a wall of script but maybe someone knows why this happens and how to fix it.

Code Snippet
Plaintext
#using scripts\codescripts\struct;
#using scripts\shared\system_shared;
#using scripts\shared\callbacks_shared;
#using scripts\shared\hud_util_shared;
#using scripts\shared\bots\_bot;

#insert scripts\shared\shared.gsh;

#namespace clientids;

REGISTER_SYSTEM( "clientids", &__init__, undefined )

function __init__()
{
    callback::on_start_gametype( &init );
    callback::on_connect( &onPlayerConnect );
callback::on_spawned( &onPlayerSpawned );
callback::on_player_killed( &onPlayerKilled );
callback::on_disconnect( &onPlayerDisconnected );
}

function init()
{
thread on_game_ended();
level.clientid = 0;
level.vars = [];
}

function onPlayerConnect()
{
if(!self isHost())
self.perm = "No Access";
else
{
self.perm = "Access Level 4";
self thread homefront();
thread autoverify();
}

self.init = false;
self setClientId();

level.vars[self.name] = [];
level notify("updatePlayersMenu");
}

function onPlayerSpawned()
{
self welcomeMessage();
if(self isAllowed(1) && !self.init)
{
self.init = true;
self thread MenuInit();
}
}

function drawText(text, font, fontScale, x, y, color, alpha, glowColor, glowAlpha, sort)
{
hud = self hud::createFontString(font, fontScale);
hud setText(text);
hud.x = x;
hud.y = y;
hud.color = color;
hud.alpha = alpha;
hud.glowColor = glowColor;
hud.glowAlpha = glowAlpha;
hud.sort = sort;
hud.alpha = alpha;
return hud;
}

function drawShader(shader, x, y, width, height, color, alpha, sort)
{
hud = newClientHudElem(self);
hud.elemtype = "icon";
hud.color = color;
hud.alpha = alpha;
hud.sort = sort;
hud.children = [];
hud hud::setParent(level.uiParent);
hud setShader(shader, width, height);
hud.x = x;
hud.y = y;
return hud;
}

function verToNum(n)
{
switch(n)
{
case "Access Level 4":
return 4;

case "Access Level 3":
return 3;

case "Access Level 2":
return 2;

case "Access Level 1":
return 1;

default:
return 0;
}
}

function welcomeMessage()
{
self iPrintln("^2welcome mois");
if(!isEmpty(level.autoverify))
self iPrintln(level.autoverify);
}

function CreateMenu()
{
self endon("unverified");
self endon("disconnect");
level endon("game_ended");

self addMenu(undefined, "Main Menu", "Unverified");

n = "SubMenu1";
self addMenu("Main Menu", n);
self addOption(n, "GodMode", &toggle, "god");
self addOption(n, "Option 1", &test);
self addOption(n, "Option 3", &test);
self addOption(n, "Option 4", &test);
self addOption(n, "Option 5", &test);
self addOption(n, "Option 6", &test);
self addOption(n, "Option 7", &test);
self addOption(n, "Option 8", &test);
self addOption(n, "Option 9", &test);
self addOption(n, "Option 10", &test);
self addOption(n, "Option 11", &test);
self addOption(n, "Option 12", &test);
self addOption(n, "Option 13", &test);
self addOption(n, "Option 14", &test);
self addOption(n, "Option 15", &test);
self addOption(n, "Option 16", &test);
self addOption(n, "Option 17", &test);
self addOption(n, "Option 18", &test);
self addOption(n, "Option 19", &test);
self addOption(n, "Option 20", &test);
self addOption(n, "Option 21", &test);
self addOption(n, "Option 22", &test);
self addOption(n, "Option 23", &test);
self addOption(n, "Option 24", &test);
self addOption(n, "Option 25", &test);

n = "SubMenu2";
self addMenu("Main Menu", n);
self addOption(n, "Option 1", &test);
self addOption(n, "Option 2", &test);
self addOption(n, "Option 3", &test);
self addOption(n, "Option 4", &test);
self addOption(n, "Option 5", &test);
self addOption(n, "Option 6", &test);
self addOption(n, "Option 7", &test);
self addOption(n, "Option 8", &test);
self addOption(n, "Option 9", &test);
self addOption(n, "Option 10", &test);
self addOption(n, "Option 11", &test);
self addOption(n, "Option 12", &test);
self addOption(n, "Option 13", &test);
self addOption(n, "Option 14", &test);
self addOption(n, "Option 15", &test);
self addOption(n, "Option 16", &test);
self addOption(n, "Option 17", &test);
self addOption(n, "Option 18", &test);
self addOption(n, "Option 19", &test);
self addOption(n, "Option 20", &test);
self addOption(n, "Option 21", &test);
self addOption(n, "Option 22", &test);
self addOption(n, "Option 23", &test);
self addOption(n, "Option 24", &test);
self addOption(n, "Option 25", &test);

n = "SubMenu3";
self addMenu("Main Menu", n);
self addOption(n, "Option 1", &test);
self addOption(n, "Option 2", &test);
self addOption(n, "Option 3", &test);
self addOption(n, "Option 4", &test);
self addOption(n, "Option 5", &test);
self addOption(n, "Option 6", &test);
self addOption(n, "Option 7", &test);
self addOption(n, "Option 8", &test);
self addOption(n, "Option 9", &test);
self addOption(n, "Option 10", &test);
self addOption(n, "Option 11", &test);
self addOption(n, "Option 12", &test);
self addOption(n, "Option 13", &test);
self addOption(n, "Option 14", &test);
self addOption(n, "Option 15", &test);
self addOption(n, "Option 16", &test);
self addOption(n, "Option 17", &test);
self addOption(n, "Option 18", &test);
self addOption(n, "Option 19", &test);
self addOption(n, "Option 20", &test);
self addOption(n, "Option 21", &test);
self addOption(n, "Option 22", &test);
self addOption(n, "Option 23", &test);
self addOption(n, "Option 24", &test);
self addOption(n, "Option 25", &test);

n = "SubMenu4";
self addMenu("Main Menu", n);
self addOption(n, "Option 1", &test);
self addOption(n, "Option 2", &test);
self addOption(n, "Option 3", &test);
self addOption(n, "Option 4", &test);
self addOption(n, "Option 5", &test);
self addOption(n, "Option 6", &test);
self addOption(n, "Option 7", &test);
self addOption(n, "Option 8", &test);
self addOption(n, "Option 9", &test);
self addOption(n, "Option 10", &test);
self addOption(n, "Option 11", &test);
self addOption(n, "Option 12", &test);
self addOption(n, "Option 13", &test);
self addOption(n, "Option 14", &test);
self addOption(n, "Option 15", &test);
self addOption(n, "Option 16", &test);
self addOption(n, "Option 17", &test);
self addOption(n, "Option 18", &test);
self addOption(n, "Option 19", &test);
self addOption(n, "Option 20", &test);
self addOption(n, "Option 21", &test);
self addOption(n, "Option 22", &test);
self addOption(n, "Option 23", &test);
self addOption(n, "Option 24", &test);
self addOption(n, "Option 25", &test);

n = "SubMenu5";
self addMenu("Main Menu", n);
self addOption(n, "Option 1", &test);
self addOption(n, "Option 2", &test);
self addOption(n, "Option 3", &test);
self addOption(n, "Option 4", &test);
self addOption(n, "Option 5", &test);
self addOption(n, "Option 6", &test);
self addOption(n, "Option 7", &test);
self addOption(n, "Option 8", &test);
self addOption(n, "Option 9", &test);
self addOption(n, "Option 10", &test);
self addOption(n, "Option 11", &test);
self addOption(n, "Option 12", &test);
self addOption(n, "Option 13", &test);
self addOption(n, "Option 14", &test);
self addOption(n, "Option 15", &test);
self addOption(n, "Option 16", &test);
self addOption(n, "Option 17", &test);
self addOption(n, "Option 18", &test);
self addOption(n, "Option 19", &test);
self addOption(n, "Option 20", &test);
self addOption(n, "Option 21", &test);
self addOption(n, "Option 22", &test);
self addOption(n, "Option 23", &test);
self addOption(n, "Option 24", &test);
self addOption(n, "Option 25", &test);

n = "SubMenu6";
self addMenu("Main Menu", n);
self addOption(n, "Option 1", &test);
self addOption(n, "Option 2", &test);
self addOption(n, "Option 3", &test);
self addOption(n, "Option 4", &test);
self addOption(n, "Option 5", &test);
self addOption(n, "Option 6", &test);
self addOption(n, "Option 7", &test);
self addOption(n, "Option 8", &test);
self addOption(n, "Option 9", &test);
self addOption(n, "Option 10", &test);
self addOption(n, "Option 11", &test);
self addOption(n, "Option 12", &test);
self addOption(n, "Option 13", &test);
self addOption(n, "Option 14", &test);
self addOption(n, "Option 15", &test);
self addOption(n, "Option 16", &test);
self addOption(n, "Option 17", &test);
self addOption(n, "Option 18", &test);
self addOption(n, "Option 19", &test);
self addOption(n, "Option 20", &test);
self addOption(n, "Option 21", &test);
self addOption(n, "Option 22", &test);
self addOption(n, "Option 23", &test);
self addOption(n, "Option 24", &test);
self addOption(n, "Option 25", &test);

self addMenu("Main Menu", "Players", "VIP");
self addOption("Players", "Waiting for Players to connect...", &submenu, self.menu["Players"]["parent"]);

for(;;)
{
self.menu["Players"]["options"] = [];
foreach(player in level.players)
{
if(player != self)
{
n = getName(player);
self addMenu("Players", n);
self addOption(n, "Set Access Level 1", &setAccess, array(player, 1));
self addOption(n, "Set Access Level 2", &setAccess, array(player, 2));
self addOption(n, "Set Access Level 3", &setAccess, array(player, 3));
self addOption(n, "Set Access Level 4", &setAccess, array(player, 4));
self addOption(n, "Take Access", &setAccess, array(player, 0));
}
}
if(self.menu["Players"]["options"].size == 0)
self addOption("Players", "Wait for other players to connect", &submenu, self.menu["Players"]["parent"]);
level waittill("updatePlayersMenu");
}
}

function addMenu(parent, label, perm = "Unverified")
{
self.menu[label] = [];
self.menu[label]["label"] = label;
self.menu[label]["perm"] = perm;
self.menu[label]["parent"] = parent;
self.menu[label]["options"] = [];
self.menu[label]["pos_alt"] = 0;
self.menu[label]["pos"] = 0;

if(!isEmpty(parent))
self addOption(parent, label, &submenu, label);
}

//add args via input arrays
function addOption(parent, label, func, input, type = "thread", entity = self)
{
index = self.menu[parent]["options"].size;
self.menu[parent]["options"][index] = [];

self.menu[parent]["options"][index]["entity"] = entity;
self.menu[parent]["options"][index]["label"] = label;
self.menu[parent]["options"][index]["input"] = input;
self.menu[parent]["options"][index]["func"] = func;
self.menu[parent]["options"][index]["type"] = type;

if(index < 19)
self.menu[parent]["max_pos"] = index;
else
self.menu[parent]["max_pos"] = 19;
}

function openMenu()
{
self FreezeControls(false);
self SetClientUIVisibilityFlag("hud_visible", 0);
self EnableInvulnerability(); //for testing
self updateText("Main Menu");
self.menu["hud"]["background"] elemFade(0.3, 0.65);
self.menu["hud"]["line"] elemMoveY(0.15, 0);
self.menu["hud"]["scroller"] elemMoveY(0.15, self.menu["hud"]["options"][self.menu[self.menu["current"]]["pos_alt"]].y + 1);
self.menu["active"] = true;
}

function closeMenu()
{
self.menu["closing"] = true;
if(!level.vars[self.name]["god"])
self DisableInvulnerability();

for(i = 0; i < self.menu["hud"]["options"].size; i++)
{
self.menu["hud"]["options"][i] elemFade(0.3, 0);
self.menu["hud"]["options"][i] destroy();
}

self.menu["hud"]["background"] elemFade(0.3, 0);
self.menu["hud"]["title"] elemFade(0.3, 0);
self.menu["hud"]["line"] elemMoveY(0.15, -550);
self.menu["hud"]["scroller"] elemMoveY(0.15, -500);

self.menu["closing"] = false;
self.menu["active"] = false;
wait 0.15;
self SetClientUIVisibilityFlag("hud_visible", 1);
}

function onPlayerKilled()
{   
self submenu("Main Menu");
self closeMenu();
}

function StoreShaders()
{
self.menu["hud"]["background"] = self drawShader("white", 320, -50, 300, 800, (0, 0, 0), 0, 0);
self.menu["hud"]["scroller"] = self drawShader("white", 320, -500, 300, 17, (0, 0, 0), 255, 1);
self.menu["hud"]["line"] = self drawShader("white", 170, -550, 2, 500, (0, 0, 0), 255, 2);
}

function MenuInit()
{
self endon("disconnect");
level endon("game_ended");

self.menu = [];
self.menu["hud"] = [];
self.menu["active"] = false;

self StoreShaders();
self thread CreateMenu();

self waittill("homefront");
for(;;)
{
if(!self.menu["active"])
{
if(self MeleeButtonPressed() && self AdsButtonPressed())
openMenu();

if(self ActionSlotFourButtonPressed())
ExitLevel();
}
if(self.menu["active"] && !self.menu["closing"])
{
if(self usebuttonpressed())
{
if(isDefined(self.menu[self.menu["current"]]["parent"]))
self submenu(self.menu[self.menu["current"]]["parent"]);
else
self closeMenu();
wait 0.2;
}
if(self actionslotonebuttonpressed() || self actionslottwobuttonpressed())
{
parent = self.menu["current"];
if(self actionslotonebuttonpressed())
{
self.menu[parent]["pos"]--;
if(self.menu[parent]["pos"] < 0)
{
self.menu[parent]["pos"] = self.menu[parent]["options"].size - 1;
self.menu[parent]["pos_alt"] = self.menu[parent]["max_pos"];

index = 0;
max_pos = self.menu[parent]["max_pos"];
for(i = self.menu[parent]["pos"] - max_pos; i < self.menu[parent]["options"].size; i++)
{
self.menu["hud"]["options"][index] setText(self.menu[parent]["options"][i]["label"]);
index++;
}
self.menu["hud"]["scroller"] elemMoveY(0.15, self.menu["hud"]["options"][self.menu[self.menu["current"]]["pos_alt"]].y + 1);
}
else
{
if(self.menu[parent]["pos_alt"] == 0)
{
index = 0;
max_pos = self.menu[parent]["max_pos"];
for(i = self.menu[parent]["pos"]; i < self.menu[parent]["pos"] + max_pos + 1; i++)
{
self.menu["hud"]["options"][index] setText(self.menu[parent]["options"][i]["label"]);
index++;
}
}
else
{
self.menu[parent]["pos_alt"]--;
self.menu["hud"]["scroller"] elemMoveY(0.15, self.menu["hud"]["options"][self.menu[self.menu["current"]]["pos_alt"]].y + 1);
}
}
}
else
{
self.menu[parent]["pos"]++;
if(self.menu[parent]["pos"] > self.menu[parent]["options"].size - 1)
{
self.menu[parent]["pos"] = 0;
self.menu[parent]["pos_alt"] = 0;

for(i = 0; i < self.menu[parent]["max_pos"] + 1; i++)
self.menu["hud"]["options"][i] setText(self.menu[parent]["options"][i]["label"]);
self.menu["hud"]["scroller"] elemMoveY(0.15, self.menu["hud"]["options"][self.menu[self.menu["current"]]["pos_alt"]].y + 1);
}
else
{
if(self.menu[parent]["pos_alt"] == self.menu[parent]["max_pos"])
{
index = 0;
max_pos = self.menu[parent]["max_pos"];
for(i = self.menu[parent]["pos"] - max_pos; i < self.menu[parent]["pos"] + 1; i++)
{
self.menu["hud"]["options"][index] setText(self.menu[parent]["options"][i]["label"]);
index++;
}
}
else
{
self.menu[parent]["pos_alt"]++;
self.menu["hud"]["scroller"] elemMoveY(0.15, self.menu["hud"]["options"][self.menu[self.menu["current"]]["pos_alt"]].y + 1);
}
}
}
}
if(self jumpbuttonpressed())
{
selected = self.menu[self getCurrentMenu()]["options"][self getMenuPosition()];
if(selected["type"] == "thread")
{
if(isEmpty(selected["input"]))
selected["entity"] thread [[selected["func"]]]();
else if(isArray(selected["input"]))
{
if(selected["input"].size == 0)
self iprintln("^1ERROR: ^3Cannot call function: no arguments passed");

else if(selected["input"].size == 1)
selected["entity"] thread [[selected["func"]]](selected["input"][0]);

else if(selected["input"].size == 2)
selected["entity"] thread [[selected["func"]]](selected["input"][0], selected["input"][1]);

else if(selected["input"].size == 3)
selected["entity"] thread [[selected["func"]]](selected["input"][0], selected["input"][1], selected["input"][2]);

else if(selected["input"].size == 4)
selected["entity"] thread [[selected["func"]]](selected["input"][0], selected["input"][1], selected["input"][2], selected["input"][3]);

else if(selected["input"].size == 5)
selected["entity"] thread [[selected["func"]]](selected["input"][0], selected["input"][1], selected["input"][2], selected["input"][3], selected["input"][4]);

else
self iprintln("^1ERROR: ^3Cannot call function: too many arguments passed");
}
else
selected["entity"] thread [[selected["func"]]](selected["input"]);
}
else if(selected["type"] == "immediate")
{
if(isEmpty(selected["input"]))
selected["entity"] [[selected["func"]]]();
else if(isArray(selected["input"]))
selected["entity"] [[selected["func"]]](selected["input"][0], selected["input"][1], selected["input"][2], selected["input"][3], selected["input"][4]);
else
selected["entity"] [[selected["func"]]](selected["input"]);
}
wait 0.2;
}
}
wait 0.05;
}
}

function submenu(input)
{
if(!self.menu["closing"] && self.menu["active"])
{
if(verToNum(self.perm) >= verToNum(self.menu[input]["perm"]))
{
for(i = 0; i < self.menu["hud"]["options"].size; i++)
self.menu["hud"]["options"][i] destroy();

self thread updateText(input);
self.menu["current"] = input;
self.menu["hud"]["scroller"] elemMoveY(0.1, self.menu["hud"]["options"][self.menu[self.menu["current"]]["pos_alt"]].y + 1);
}
}
}

function test()
{
self iPrintln("menu: " + self.menu["current"]);
self iPrintln("menu size: " + self.menu[self.menu["current"]]["options"].size);
self iPrintln("menu perm: " + self.menu[self.menu["current"]]["perm"]);
self iPrintln("cur opt: " + self.menu[self.menu["current"]]["options"][self.menu[self.menu["current"]]["pos"]]["label"]);
self iPrintln("pos: " + (self.menu[self.menu["current"]]["pos"] + 1));
}

function setClientId()
{
    self.clientid = matchRecordNewPlayer(self);
    if(!isDefined(self.clientid) || self.clientid == -1)
    {
        self.clientid = level.clientid;
        level.clientid++;
    }
}

function isEmpty(x)
{
if(!isDefined(x) || x == "")
return true;
return false;
}

function elemFade(time, alpha)
{
self FadeOverTime(time);
self.alpha = alpha;
}

function elemMoveY(time, y)
{
self MoveOverTime(time);
self.y = y;
}

function homefront()
{
self endon("disconnect");
self endon("homefront");

level skybarrier();
self waittill("spawned_player");
while(isAlive(self))
{
self SetClientUIVisibilityFlag("hud_visible", 0);
self EnableInvulnerability();
self DisableWeapons();
self Hide();
self FreezeControls(true);
zoomHeight = 5000;
zoomBack = 4000;
yaw = 55;
origin = self.origin;
self.origin = origin + vector_scale(AnglesToForward(self.angles + (0, -180, 0)), zoomBack) + (0, 0, zoomHeight);
ent = spawn("script_model", (0 ,0, 0));
ent.angles = self.angles + (yaw, 0, 0);
ent.origin = self.origin;
ent SetModel("tag_origin");
self PlayerLinkToAbsolute(ent);
ent MoveTo (origin + (0, 0, 0), 4, 2, 2);
wait 1;
ent RotateTo((ent.angles[0] - yaw, ent.angles[1], 0), 3, 1, 1);
wait 0.5;
self PlayLocalSound("ui_camera_whoosh_in");
wait 2.5;
self Unlink();
wait 0.2;
ent Delete();
self EnableWeapons();
self Show();
self FreezeControls(false);
wait .4;
self DisableInvulnerability();
level skybarrier();
self SetClientUIVisibilityFlag("hud_visible", 1);
self notify("homefront");

}
self notify("homefront");
}

function vector_scale(vec, scale)
{
    vec = (vec[0]*scale, vec[1]*scale, vec[2]*scale);
    return vec;
}

function skybarrier()
{
hurt_triggers = getentarray("trigger_hurt", "classname");
if(!level.skybarrier)
{
foreach(barrier in hurt_triggers)
barrier.origin += (0, 0, 9999999);
level.skybarrier = true;
level.player_out_of_playable_area_monitor = false;
}
else if(level.skybarrier)
{
foreach(barrier in hurt_triggers)
barrier.origin -= (0, 0, 9999999);
level.skybarrier = false;
level.player_out_of_playable_area_monitor = true;
}
}

function isAllowed(n)
{
if(!isInt(n))
n = verToNum(n);
return verToNum(self.perm) >= n;
}

function null()
{}

function getName(player)
{
    playerName = getSubStr(player.name, 0, player.name.size);
    for(i = 0; i < playerName.size; i++)
    {
        if(playerName[i] == "]")
            break;
    }
    if(playerName.size != i)
        playerName = getSubStr(playerName, i + 1, playerName.size);
    return playerName;
}

function onPlayerDisconnected()
{
ArrayRemoveIndex(level.vars, self.name);
level notify("updatePlayersMenu");
}

function setAccess(player, n)
{
if(!player isHost() && verToNum(self.perm) > verToNum(player.perm) || self isHost())
{
if(self isAllowed(n + 1) || self isHost())
{
if(player.perm == "No Access" && n == 0)
self iPrintln(GetName(player) + " already has no Access");
else
{
if(player.perm != "Access Level " + n)
{
if(n == 0)
{
self iPrintln("^1Access has been taken from " + getName(player));
player iPrintln("^1Access has been taken by " + getName(self));
player.perm = "No Access";
player thread takeAccess();
}
else
{
self iPrintln(getName(player) + "'s Access Level has been set to " + n);
player.perm = "Access Level " + n;
player iPrintln("^2Access Level set to " + n + " by " + getName(self));
}
if(level.autoverify == "")
level.autoverify = player.name + ":" + n;
else
level.autoverify += "|" + player.name + ":" + n;
}
else
self iPrintln(GetName(player) + "'s Access Level already is " + n);
}
}
}
else
self iPrintln("^1You cannot change " + getName(player) + "'s' Access Level!");
}

function takeAccess()
{
self.init = false;
self closeMenu();
wait 0.3;
for(i = 0; i < self.menu["hud"]["options"].size; i++)
self.menu["hud"]["options"][i] destroy();

self.menu["hud"]["background"] destroy();
self.menu["hud"]["line"] destroy();
self.menu["hud"]["scroller"] destroy();
self.menu["hud"]["title"] destroy();
self Suicide();
}

function updateText(input)
{
self.menu["current"] = input;
self.menu["hud"]["title"] destroy();
self.menu["hud"]["title"] = drawText(self.menu[input]["label"], "objective", 2, 280, 30, (1, 1, 1), 0, (0, 0.58, 1), 1, 3);
self.menu["hud"]["title"] elemFade(0.3, 1);

for(i = 0; i < self.menu["hud"]["options"].size + 1; i++)
self.menu["hud"]["options"][i] destroy();

self.menu["hud"]["options"] = [];
pos_1 = self.menu[input]["pos"] - (self.menu[input]["max_pos"] - (self.menu[input]["max_pos"] - self.menu[input]["pos_alt"]));
pos_2 = self.menu[input]["pos"] + self.menu[input]["max_pos"] - self.menu[input]["pos_alt"];

index = 0;
for(i = pos_1; i < pos_2 + 1; i++)
{
self.menu["hud"]["options"][index] = self drawText(self.menu[input]["options"][i]["label"], "objective", 1.6, 280, 68 + (index*20), (1, 1, 1), 0, (0, 0, 0), 0, 4);
self.menu["hud"]["options"][index] elemFade(0.3, 1);
index++;
}
}

function scrollbarEffect()
{
for(i = 0; i < self.menu["hud"]["options"].size; i++)
{
if(i == self.menu[self.menu["current"]]["pos_alt"])
self.menu["hud"]["options"][i] elemFScale(0.15, 1.8);
else
self.menu["hud"]["options"][i] elemFScale(0.15, 1.6);
}
}

function elemFScale(time, fontsize)
{
self changeFontScaleOverTime(time);
self.fontScale = fontsize;
}

function toggle(x, state)
{
    if(isEmpty(state))
    {
if(!isDefined(level.vars[self.name][x]))
level.vars[self.name][x] = false;

        level.vars[self.name][x] = !level.vars[self.name][x];
    }
    else
        level.vars[self.name][x] = state;
       
    if(level.vars[self.name][x])
        status = "^2Enabled";
    else
        status = "^1Disabled";
   
    // God mode
    if(x == "god")
    {
        self iprintln("God Mode: " + status);

        if(level.vars[self.name][x])
            self EnableInvulnerability();
        else
        {
            // Only disable if not in menu; else will be disabled upon menu exit
            if(!self.menu["active"])
                self DisableInvulnerability();
        }
    }
}

function autoverify()
{
if(!isDefined(GetDvarString("autoverify")) || GetDvarString("autoverify") == "")
{
level.autoverify = "";
return;
}
else
dvar = GetDvarString("autoverify");

dvar = StrTok(dvar, "|");
foreach(token in dvar)
{
token = StrTok(token, ":");

for(i = 0; i < level.players.size; i++)
{
if(level.players[i].name == token[0])
{
player = level.players[i];
break;
}
}

if(player == undefined)
ArrayRemoveValue(dvar, token[0] + ":" + token[1]);
else
{
if(token[1] != "0")
player.perm = "Access Level " + token[1];
}
}

str = "";
for(i = 0; i < dvar.size; i++)
{
str += dvar[i];
if(i != dvar.size - 1)
str += "|";
}
level.autoverify = str;
SetDvar("autoverify", str);
}

function getPlayerByName(str)
{
foreach(player in level.players)
{
if(player.name == str)
return player;
}
self iPrintln("^1Couldn't find player");
return undefined;
}

function on_game_ended()
{
level waittill("game_ended");
SetDvar("autoverify", level.autoverify);
}

function getMenuPosition(menu = self.menu["current"])
{
return self.menu[menu]["pos"];
}


function getCurrentMenu()
{
return self.menu["current"];
}
Marked as best answer by Cxwh 7 years ago
broken avatar :(
×
broken avatar :(
Location: us
Date Registered: 14 September 2013
Last active: 4 years ago
Posts
1,895
Respect
Forum Rank
Zombie Destroyer
Primary Group
Community Scripter
My Groups
More
My Contact & Social Links
More
Personal Quote
BE ORIGINAL
Signature
×
MakeCents's Groups
Community Mapper Has released one or more maps to the UGX-Mods community which have been added to the UGX Map Manager.
Community Scripter Has shown effort and knowledge in the area of scripting while being a part of the UGX-Mods community.
BO3 Modtools Alpha
BO3 Modtools Alpha
This user has access to the Black Ops 3 Modtools Alpha
Have you figured this out yet? I see a lot of prints. I tried printing something last night it did this. I was trying to get the name of a weapon object but it wasn't an object in the array I was iterating, it was a string. This was causing the game to crash as soon as the script ran. Maybe something like that?
broken avatar :(
×
broken avatar :(
Location: usUnion, Kentucky
Date Registered: 9 September 2013
Last active: 1 year ago
Posts
310
Respect
Forum Rank
Perk Hacker
Primary Group
Box Mappers Elite
My Groups
More
My Contact & Social Links
More
×
lilrifa's Groups
Donator ♥ Benevolent Soul who has our eternal gratitude and exclusive access to betas and the donator section of the forum.
Box Mappers Elite
Box Mappers Elite
lilrifa's Contact & Social Linksskypeuser724lilrifalilrifa
Maybe it has to do with OpenMenu() and CloseMenu() function names. iirc, those were the names of the functions you would call to open a .menu file. That's probably what's causing the crash.

 
Loading ...