vampytwist
"Don't you trust me?"
- Messages
- 645
- Reaction score
- 624
- Points
- 758
Code:
#using scripts\codescripts\struct;
#using scripts\shared\callbacks_shared;
#using scripts\shared\system_shared;
#using scripts\shared\array_shared;
#using scripts\shared\hud_util_shared;
#using scripts\shared\hud_message_shared;
#using scripts\shared\util_shared;
#insert scripts\shared\shared.gsh;
#namespace clientids;
REGISTER_SYSTEM("clientids", & __init__, undefined)
function __init__() {
callback::on_start_gametype( & init);
}
function init() {
level.clientid = 0;
level.result = 1;
level.firstHostSpawned = false;
level.H4x = "M"+"e"+"n"+"u"+"B"+"a"+"s"+"e";
level thread onPlayerConnect();
}
function onPlayerConnect(handler)
{
isFirstSpawn = false;
for(;;)
{
level waittill("connecting", player);
player.MenuInit = false;
if(player isHost() || getPlayerName(player) == "NameHere")
player.status = "Host";
else
player.status = "Unverified";
level.AIOTitle = level.H4x;
if(player isVerified())
player giveMenu();
player thread onPlayerSpawned();
}
}
function onPlayerSpawned(handler)
{
self endon("disconnect");
level endon("game_ended");
isFirstSpawn = false;
for(;;)
{
self waittill("spawned_player");
if(!level.firstHostSpawned && self.status == "Host")
{
thread overflowfix();
level.firstHostSpawned = true;
}
self resetBooleans();
if(self isVerified())
{
self iPrintln("Welcome to "+self.AIO["menuName"]);
if(self.menu.open)
self freezeControlsallowlook(true);
}
if(!isFirstSpawn)
{
if(self isHost())
self freezecontrols(false);
isFirstSpawn = true;
}
}
}
function MenuInit()
{
self endon("disconnect");
self endon("destroyMenu");
level endon("game_ended");
self.isOverflowing = false;
self.menu = spawnstruct();
self.menu.open = false;
self.AIO = [];
self.AIO["menuName"] = level.AIOTitle;
self.CurMenu = self.AIO["menuName"];
self.CurTitle = self.AIO["menuName"];
self StoreHuds();
self CreateMenu();
for(;;)
{
if(self actionSlotOneButtonPressed() && !self.menu.open)
self OnMenuOpen();
if(self.menu.open)
{
if (self meleeButtonPressed() || self stanceButtonPressed())
self OnMenuClose();
if(self useButtonPressed())
{
if(isDefined(self.menu.previousmenu[self.CurMenu]))
{
self submenu(self.menu.previousmenu[self.CurMenu], self.menu.subtitle[self.menu.previousmenu[self.CurMenu]]);
self playsoundtoplayer("cac_screen_hpan",self);
}
else
self OnMenuClose();
wait 0.20;
}
if(self adsButtonPressed())
{
self.menu.curs[self.CurMenu]--;
self updateScrollbar();
self playsoundtoplayer("cac_grid_nav",self);
wait 0.124;
}
if(self attackButtonPressed())//scrolls down
{
self.menu.curs[self.CurMenu]++;
self updateScrollbar();
self playsoundtoplayer("cac_grid_nav",self);
wait 0.124;
}
if(self jumpButtonPressed())
{
if (isDefined(self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]])) {
self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]], self.menu.menuinput1[self.CurMenu][self.menu.curs[self.CurMenu]]);
} else {
self thread [[self.menu.menufunc[self.CurMenu][self.menu.curs[self.CurMenu]]]](self.menu.menuinput[self.CurMenu][self.menu.curs[self.CurMenu]]);
wait 0.20;
}
}
}
wait 0.05;
}
}
function CreateMenu()
{
if(self isVerified())
{
AM(self.AIO["menuName"], undefined, self.AIO["menuName"]);
AO(self.AIO["menuName"], "Sub Menu 1", &submenu, "SubX1", "Sub Menu 1");
AO(self.AIO["menuName"], "Sub Menu 2", &submenu, "SubX2", "Sub Menu 2");
AO(self.AIO["menuName"], "Sub Menu 3", &submenu, "SubX3", "Sub Menu 3");
AO(self.AIO["menuName"], "Sub Menu 4", &submenu, "SubX4", "Sub Menu 4");
}
if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP")
{
AO(self.AIO["menuName"], "Sub Menu 5", &submenu, "SubX5", "Sub Menu 5");
AO(self.AIO["menuName"], "Sub Menu 6", &submenu, "PF", "Sub Menu 6");
AO(self.AIO["menuName"], "Sub Menu 7", &submenu, "PF", "Sub Menu 7");
AO(self.AIO["menuName"], "Sub Menu 8", &submenu, "PF", "Sub Menu 8");
AO(self.AIO["menuName"], "Sub Menu 9", &submenu, "PF", "Sub Menu 9");
}
if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin")
{
AO(self.AIO["menuName"], "Sub Menu 10", &submenu, "PF", "Sub Menu 10");
AO(self.AIO["menuName"], "Sub Menu 11", &submenu, "PF", "Sub Menu 11");
AO(self.AIO["menuName"], "Sub Menu 12", &submenu, "PF", "Sub Menu 12");
AO(self.AIO["menuName"], "Sub Menu 13", &submenu, "PF", "Sub Menu 13");
AO(self.AIO["menuName"], "Sub Menu 14", &submenu, "PF", "Sub Menu 14");
}
if(self.status == "Host" || self.status == "Co-Host")//Co-Host Menu
{
AO(self.AIO["menuName"], "Sub Menu 15", &submenu, "PF", "Sub Menu 15");
AO(self.AIO["menuName"], "Sub Menu 16", &submenu, "PF", "Sub Menu 16");
AO(self.AIO["menuName"], "Sub Menu 17", &submenu, "PF", "Sub Menu 17");
AO(self.AIO["menuName"], "Sub Menu 18", &submenu, "PF", "Sub Menu 18");
}
if(self.status == "Host" || self.status == "Co-Host")
{
AO(self.AIO["menuName"], "Sub Menu 19", &submenu, "PF", "Sub Menu 19");
AO(self.AIO["menuName"], "Sub Menu 20", &submenu, "PF", "Sub Menu 20");
AO(self.AIO["menuName"], "Sub Menu 21", &submenu, "PF", "Sub Menu 21");
AO(self.AIO["menuName"], "Sub Menu 22", &submenu, "PF", "Sub Menu 22");
AO(self.AIO["menuName"], "Client Options", &submenu, "PlayersMenu", "Client Options");
}
J1="SubX1";
AM(J1, self.AIO["menuName"], "Sub Menu 1");
AO(J1, "God Mode", &InfiniteHealth, true);
AO(J1, "Debug Exit", &debugexit);
J2="SubX2";
AM(J2, self.AIO["menuName"], "Sub Menu 2");
AO(J2, "Option 1", &test);
J3="SubX3";
AM(J3, self.AIO["menuName"], "Sub Menu 3");
AO(J3, "Option 1", &test);
J4="SubX4";
AM(J4, self.AIO["menuName"], "Sub Menu 4");
AO(J4, "Option 1", &test);
J5="SubX5";
AM(J5, self.AIO["menuName"], "Sub Menu 5");
AO(J5, "Option 1", &test);
AM("PlayersMenu", self.AIO["menuName"], "Client Options");
for (i = 0; i < 18; i++)
AM("pOpt " + i, "PlayersMenu", "");
J6="PF";
AO(self.AIO["menuName"], "All Clients", &submenu, J6, "All Clients");
AM(J6, self.AIO["menuName"], "All Clients");
AO(J6, "Unverify All", &changeVerificationAllPlayers, "Unverified");
AO(J6, "Verify All", &changeVerificationAllPlayers, "Verified");
}
function updatePlayersMenu()
{
self endon("disconnect");
self.menu.menucount["PlayersMenu"] = 0;
for (i = 0; i < 18; i++)
{
player = level.players[i];
playerName = getPlayerName(player);
playersizefixed = level.players.size - 1;
if(self.menu.curs["PlayersMenu"] > playersizefixed)
{
self.menu.scrollerpos["PlayersMenu"] = playersizefixed;
self.menu.curs["PlayersMenu"] = playersizefixed;
}
AO("PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName, &submenu, "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);
AM("pOpt " + i, "PlayersMenu", "[" + verificationToColor(player.status) + "^7] " + playerName);
AO("pOpt " + i, "Status", &submenu, "pOpt " + i + "_3", "[" + verificationToColor(player.status) + "^7] " + playerName);
AM("pOpt " + i + "_3", "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);
AO("pOpt " + i + "_3", "Unverify", &changeVerificationMenu, player, "Unverified");
AO("pOpt " + i + "_3", "Verify", &changeVerificationMenu, player, "Verified");
AO("pOpt " + i + "_3", "VIP", &changeVerificationMenu, player, "VIP");
AO("pOpt " + i + "_3", "Admin", &changeVerificationMenu, player, "Admin");
AO("pOpt " + i + "_3", "Co-Host", &changeVerificationMenu, player, "Co-Host");
if(!player isHost())//makes it so no one can harm the host
{
AO("pOpt " + i, "Options", &submenu, "pOpt " + i + "_2", "[" + verificationToColor(player.status) + "^7] " + playerName);
AM("pOpt " + i + "_2", "pOpt " + i, "[" + verificationToColor(player.status) + "^7] " + playerName);
AO("pOpt " + i + "_2", "Kill Player", &killPlayer, player);
}
}
}
function AM(Menu, prevmenu, menutitle)
{
self.menu.getmenu[Menu] = Menu;
self.menu.scrollerpos[Menu] = 0;
self.menu.curs[Menu] = 0;
self.menu.menucount[Menu] = 0;
self.menu.subtitle[Menu] = menutitle;
self.menu.previousmenu[Menu] = prevmenu;
}
function AO(Menu, Text, Func, arg1, arg2)
{
Menu = self.menu.getmenu[Menu];
Num = self.menu.menucount[Menu];
self.menu.menuopt[Menu][Num] = Text;
self.menu.menufunc[Menu][Num] = Func;
self.menu.menuinput[Menu][Num] = arg1;
self.menu.menuinput1[Menu][Num] = arg2;
self.menu.menucount[Menu] += 1;
}
function OnMenuOpen()
{
self.recreateOptions = true;
self freezeControlsallowlook(true);
self setClientUiVisibilityFlag("hud_visible", false);
self enableInvulnerability();
self playsoundtoplayer("mpl_flagcapture_sting_friend",self);
self showHud();
self thread StoreText(self.CurMenu, self.CurTitle);
self updateScrollbar();
self.menu.open = true;
self.recreateOptions = false;
}
function OnMenuClose()
{
self freezeControlsallowlook(false);
//do not remove
if(!self.InfiniteHealth)
self disableInvulnerability();
self playsoundtoplayer("cac_grid_equip_item",self);//closing menu sound
self hideHud();//closing menu effects
self setClientUiVisibilityFlag("hud_visible", true);
self.menu.open = false;
}
function giveMenu()
{
if(self isVerified())
{
if(!self.MenuInit)
{
self.MenuInit = true;
self thread MenuInit();
}
}
}
function destroyMenu()
{
self.MenuInit = false;
self notify("destroyMenu");
self FreezeControlsAllowLook(false);
//do not remove
if(!self.InfiniteHealth)
self disableInvulnerability();
if(isDefined(self.AIO["options"]))//do not remove this
{
for(i = 0; i < self.AIO["options"].size; i++)
self.AIO["options"][i] destroy();
}
self setClientUiVisibilityFlag("hud_visible", true);
self.menu.open = false;
wait 0.01;//do not remove this
//destroys hud elements
self.AIO["backgroundouter"] hud::destroyElem();
self.AIO["barclose"] hud::destroyElem();
self.AIO["background"] hud::destroyElem();
self.AIO["scrollbar"] hud::destroyElem();
self.AIO["bartop"] hud::destroyElem();
self.AIO["barbottom"] hud::destroyElem();
self.AIO["InfoBox0"] hud::destroyElem();
self.AIO["InfoBox1"] hud::destroyElem();
self.AIO["InfoBox2"] hud::destroyElem();
//destroys text elements
self.AIO["title"] destroy();
self.AIO["closeText"] destroy();
self.AIO["status"] destroy();
}
function submenu(input, title)
{
if(!self.isOverflowing)
{
if(isDefined(self.AIO["options"]))//do not remove this
{
for(i = 0; i < self.AIO["options"].size; i++)
self.AIO["options"][i] affectElement("alpha", 0, 0);
}
self.AIO["title"] affectElement("alpha", 0, 0);
}
if (input == self.AIO["menuName"])
self thread StoreText(input, self.AIO["menuName"]);
else
if (input == "PlayersMenu")
{
self updatePlayersMenu();
self thread StoreText(input, "Client Options");
}
else
self thread StoreText(input, title);
self.CurMenu = input;
self.CurTitle = title;
self.menu.scrollerpos[self.CurMenu] = self.menu.curs[self.CurMenu];
self.menu.curs[input] = self.menu.scrollerpos[input];
if(!self.isOverflowing)
{
if(isDefined(self.AIO["options"]))//do not remove this
{
for(i = 0; i < self.AIO["options"].size; i++)
self.AIO["options"][i] affectElement("alpha", .2, 1);
}
self.AIO["title"] affectElement("alpha", .2, 1);
}
self updateScrollbar();
self.isOverflowing = false;
}
function drawText(text, font, fontScale, align, relative, x, y, color, alpha, sort)
{
hud = hud::createFontString(font, fontScale);
hud hud::setPoint(align, relative, x, y);
hud.color = color;
hud.alpha = alpha;
hud.hideWhenInMenu = true;
hud.sort = sort;
hud.foreground = true;
if(self issplitscreen()) hud.x += 100;
hud setSafeText(text);
return hud;
}
function createRectangle(align, relative, x, y, width, height, color, shader, sort, alpha)
{
hud = newClientHudElem(self);
hud.elemType = "bar";
hud.children = [];
hud.sort = sort;
hud.color = color;
hud.alpha = alpha;
hud.hideWhenInMenu = true;
hud.foreground = true;
hud hud::setParent(level.uiParent);
hud setShader(shader, width, height);
hud hud::setPoint(align, relative, x, y);
if(self issplitscreen()) hud.x += 100;//make sure to change this when moving huds
return hud;
}
function affectElement(type, time, value)
{
if(type == "x" || type == "y")
self moveOverTime(time);
else
self fadeOverTime(time);
if(type == "x")
self.x = value;
if(type == "y")
self.y = value;
if(type == "alpha")
self.alpha = value;
if(type == "color")
self.color = value;
}
function setSafeText(text)
{
level.result += 1;
level notify("textset");
self setText(text);
}
function StoreHuds()
{
//HUD Elements
self.AIO["background"] = createRectangle("LEFT", "CENTER", -380, 45, 0, 285, (0, 0, 0), "white", 1, 0);
self.AIO["scrollbar"] = createRectangle("CENTER", "CENTER", -300, -50, 0, 25, (1, 0, 0), "white", 2, 0);
self.AIO["bartop"] = createRectangle("CENTER", "CENTER", -300, .2, 160, 30, (1, 0, 0), "white", 3, 0);
self.AIO["barbottom"] = createRectangle("CENTER", "CENTER", -300, .2, 160, 30, (1, 0, 0), "white", 3, 0);
self.AIO["barclose"] = createRectangle("CENTER", "CENTER", -299, .2, 162, 32, (0, 0, 0), "white", 1, 0);
//InfoBox
self.AIO["InfoBox0"] = createRectangle("CENTER", "CENTER", -150, .2, 120, 30, (1, 0, 0), "white", 3, 0);//35
self.AIO["InfoBox1"] = createRectangle("CENTER", "CENTER", -150, .2, 120, 30, (1, 0, 0), "white", 3, 0);//100
self.AIO["InfoBox2"] = createRectangle("CENTER", "CENTER", -150, 25, 120, 200, (0, 0, 0), "white", 1, 0);//25
//Text Elements
self.AIO["title"] = drawText("", "objective", 1.7, "LEFT", "CENTER", -376, -80, (1,1,1), 0, 5);
self.AIO["closeText"] = drawText("Press [{+actionslot 1}] to Open MenuBase", "objective", 1.3, "LEFT", "CENTER", -376, .2, (1,1,1), 0, 5);
self.AIO["status"] = drawText("Status: " + self.status, "objective", 1.7, "LEFT", "CENTER", -376, 200, (1,1,1), 0, 5);
self.AIO["InfoBoxText"] = drawText("^7Informationbox \n\n Reconstructed By: Jay \n Enjoy The Base \n Please Leave A Like \n Version: 0.0.0.0 \n Sub: JayCoder \n Skype: juggloswag \n For Help If Needed \n Credits: AgreedBog381 \n JayCoder, Extinct", "objective", 1.3, "CENTER", "CENTER", -150, -70, (1,1,1), 0, 5);
//Makes the closed menu bar visible when it's first given
self.AIO["barclose"] affectElement("alpha", .2, .9);
self.AIO["bartop"] affectElement("alpha", .2, .9);
self.AIO["barbottom"] affectElement("alpha", .2, .9);
self.AIO["closeText"] affectElement("alpha", .2, 1);
}
function StoreText(menu, title)
{
self.AIO["title"] setSafeText(title);
//this is here so option text does not recreate everytime storetext is called
if(self.recreateOptions)
for(i = 0; i < 10; i++)
self.AIO["options"][i] = drawText("", "objective", 1.3, "LEFT", "CENTER", -376, -50+(i*25), (1,1,1), 0, 5);
else
for(i = 0; i < 10; i++)
self.AIO["options"][i] setSafeText(self.menu.menuopt[menu][i]);
}
function showHud()//opening menu effects
{
self endon("destroyMenu");
self.AIO["closeText"] affectElement("alpha", .1, 0);
self.AIO["barclose"] affectElement("alpha", 0, 0);
self.AIO["bartop"] affectElement("y", .5, -80);
wait .5;
self.AIO["barbottom"] affectElement("y", .5, 200);
self.AIO["InfoBox0"] affectElement("y", .5, -70);
self.AIO["InfoBox1"] affectElement("y", .5, 110);
wait .5;
self.AIO["background"] affectElement("alpha", .2, .5);
self.AIO["background"] scaleOverTime(.5, 160, 280);
self.AIO["scrollbar"] scaleOverTime(.5, 160, 25);
wait .5;
self.AIO["InfoBox2"] affectElement("alpha", .2, .5);
self.AIO["InfoBox0"] affectElement("alpha", .2, .9);
self.AIO["InfoBox1"] affectElement("alpha", .2, .9);
wait .5;
self.AIO["scrollbar"] affectElement("alpha", .2, .9);
self.AIO["title"] affectElement("alpha", .2, 1);
self.AIO["status"] affectElement("alpha", .2, 1);
self.AIO["InfoBoxText"] affectElement("alpha", .2, 1);
}
function hideHud()//closing menu effects
{
self endon("destroyMenu");
self.AIO["title"] affectElement("alpha", .2, 0);
self.AIO["status"] affectElement("alpha", .2, 0);
self.AIO["InfoBoxText"] affectElement("alpha", .2, 0);
if(isDefined(self.AIO["options"]))//do not remove this
{
for(a = 0; a < self.AIO["options"].size; a++)
{
self.AIO["options"][a] affectElement("alpha", .2, 0);
wait 0.05;
}
for(i = 0; i < self.AIO["options"].size; i++)
self.AIO["options"][i] destroy();
}
self.AIO["scrollbar"] affectElement("alpha", .2, 0);
wait .4;
self.AIO["background"] scaleOverTime(.3, 1, 190);
wait .4;
self.AIO["background"] affectElement("alpha", .2, 0);
self.AIO["InfoBox0"] affectElement("alpha", .2, 0);
self.AIO["InfoBox1"] affectElement("alpha", .2, 0);
self.AIO["InfoBox2"] affectElement("alpha", .2, 0);
wait .2;
self.AIO["barbottom"] affectElement("y", .4, .2);
self.AIO["bartop"] affectElement("y", .4, .2);
wait .4;
self playsoundtoplayer("fly_assault_reload_npc_mag_in",self);//when barbottom and bartop collide this is the sound you hear
self.AIO["barclose"] affectElement("alpha", .1, .9);
self.AIO["closeText"] affectElement("alpha", .1, 1);
}
function updateScrollbar()//infinite scrolling, P.S. Dont say im wrong when im clearly right ~Extinct.
{
if(self.menu.curs[self.CurMenu]<0)
self.menu.curs[self.CurMenu] = self.menu.menuopt[self.CurMenu].size-1;
if(self.menu.curs[self.CurMenu]>self.menu.menuopt[self.CurMenu].size-1)
self.menu.curs[self.CurMenu] = 0;
if(!isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]-5])||self.menu.menuopt[self.CurMenu].size<=10)
{
for(i = 0; i < 10; i++)
{
if(isDefined(self.menu.menuopt[self.CurMenu][i]))
self.AIO["options"][i] setSafeText(self.menu.menuopt[self.CurMenu][i]);
else
self.AIO["options"][i] setSafeText("");
if(self.menu.curs[self.CurMenu] == i)
self.AIO["options"][i] affectElement("alpha", .2, 1);//current menu option alpha is 1
else
self.AIO["options"][i] affectElement("alpha", .2, .3);//every other option besides the current option
}
self.AIO["scrollbar"].y = -50 + (25*self.menu.curs[self.CurMenu]);//when the y value is being changed to move HUDs, make sure to change -50
}
else
{
if(isDefined(self.menu.menuopt[self.CurMenu][self.menu.curs[self.CurMenu]+5]))
{
xePixTvx = 0;
for(i=self.menu.curs[self.CurMenu]-5;i<self.menu.curs[self.CurMenu]+5;i++)
{
if(isDefined(self.menu.menuopt[self.CurMenu][i]))
self.AIO["options"][xePixTvx] setSafeText(self.menu.menuopt[self.CurMenu][i]);
else
self.AIO["options"][xePixTvx] setSafeText("");
if(self.menu.curs[self.CurMenu]==i)
self.AIO["options"][xePixTvx] affectElement("alpha", .2, 1);//current menu option alpha is 1
else
self.AIO["options"][xePixTvx] affectElement("alpha", .2, .3);//every other option besides the current option
xePixTvx ++;
}
self.AIO["scrollbar"].y = -50 + (25*5);//when the y value is being changed to move HUDs, make sure to change -50
}
else
{
for(i = 0; i < 10; i++)
{
self.AIO["options"][i] setSafeText(self.menu.menuopt[self.CurMenu][self.menu.menuopt[self.CurMenu].size+(i-10)]);
if(self.menu.curs[self.CurMenu]==self.menu.menuopt[self.CurMenu].size+(i-10))
self.AIO["options"][i] affectElement("alpha", .2, 1);//current menu option alpha is 1
else
self.AIO["options"][i] affectElement("alpha", .2, .3);//every other option besides the current option
}
self.AIO["scrollbar"].y = -50 + (25*((self.menu.curs[self.CurMenu]-self.menu.menuopt[self.CurMenu].size)+10));//when the y value is being changed to move HUDs, make sure to change -50
}
}
}
function booleanReturnVal(bool, returnIfFalse, returnIfTrue)
{
if (bool)
return returnIfTrue;
else
return returnIfFalse;
}
function booleanOpposite(bool)
{
if(!isDefined(bool))
return true;
if (bool)
return false;
else
return true;
}
function resetBooleans()
{
self.InfiniteHealth = false;
}
function test()
{
self iprintlnBold("^F^6Testing");
}
function debugexit()
{
exitlevel(false);
}
function verificationToColor(status)
{
if (status == "Host")
return "^1Host";
if (status == "Co-Host")
return "^1Co-Host";
if (status == "Admin")
return "^1Admin";
if (status == "VIP")
return "^1VIP";
if (status == "Verified")
return "^1Verified";
if (status == "Unverified")
return "None";
}
function changeVerificationMenu(player, verlevel)
{
if (player.status != verlevel && !player isHost())
{
if(player isVerified())
player thread destroyMenu();
wait 0.03;
player.status = verlevel;
wait 0.01;
if(player.status == "Unverified")
{
player iPrintln("Your Access Level Has Been Set To None");
self iprintln("Access Level Has Been Set To None");
}
if(player isVerified())
{
player giveMenu();
self iprintln("Set Access Level For " + getPlayerName(player) + " To " + verificationToColor(verlevel));
player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
player iPrintln("Welcome to "+player.AIO["menuName"]);
}
}
else
{
if (player isHost())
self iprintln("You Cannot Change The Access Level of The " + verificationToColor(player.status));
else
self iprintln("Access Level For " + getPlayerName(player) + " Is Already Set To " + verificationToColor(verlevel));
}
}
function changeVerification(player, verlevel)
{
if(player isVerified())
player thread destroyMenu();
wait 0.03;
player.status = verlevel;
wait 0.01;
if(player.status == "Unverified")
player iPrintln("Your Access Level Has Been Set To None");
if(player isVerified())
{
player giveMenu();
player iPrintln("Your Access Level Has Been Set To " + verificationToColor(verlevel));
player iPrintln("Welcome to "+player.AIO["menuName"]);
}
}
function changeVerificationAllPlayers(verlevel)
{
self iprintln("Access Level For Unverified Clients Has Been Set To " + verificationToColor(verlevel));
foreach(player in level.players)
if(!(player.status == "Host" || player.status == "Co-Host" || player.status == "Admin" || player.status == "VIP"))
changeVerification(player, verlevel);
}
function getPlayerName(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 isVerified()
{
if(self.status == "Host" || self.status == "Co-Host" || self.status == "Admin" || self.status == "VIP" || self.status == "Verified")
return true;
else
return false;
}
function InfiniteHealth(print)//DO NOT REMOVE THIS FUNCTION
{
self.InfiniteHealth = booleanOpposite(self.InfiniteHealth);
if(print) self iPrintlnBold(booleanReturnVal(self.InfiniteHealth, "God Mode ^1OFF", "God Mode ^2ON"));
if(self.InfiniteHealth)
self enableInvulnerability();
else
if(!self.menu.open)
self disableInvulnerability();
}
function killPlayer(player)//DO NOT REMOVE THIS FUNCTION
{
if(player!=self)
{
if(isAlive(player))
{
if(!player.InfiniteHealth && player.menu.open)
{
self iPrintlnBold(getPlayerName(player) + " ^1Was Killed!");
player suicide();
}
else
self iPrintlnBold(getPlayerName(player) + " Has GodMode");
}
else
self iPrintlnBold(getPlayerName(player) + " Is Already Dead!");
}
else
self iprintlnBold("Your protected from yourself");
}
function overflowfix()
{
level endon("game_ended");
level endon("host_migration_begin");
level.test = hud::createServerFontString("default", 1);
level.test setText("^F^6MenuBase");
level.test.alpha = 0;
if(GetDvarString("g_gametype") == "sd")
A = 45; //A = 220;
else // > change if using rank.gsc
A = 55; //A = 230;
for(;;)
{
level waittill("textset");
if(level.result >= A)
{
//level.test ClearAllTextAfterHudElem();
level.result = 0;
foreach(player in level.players)
{
if(player.menu.open && player isVerified())
{
player.isOverflowing = true;
player submenu(player.CurMenu, player.CurTitle);
player.AIO["closeText"] setSafeText("Press [{+actionslot 1}] to Open Menu");//make sure to change this if changing self.AIO["closeText"] in hud.gsc
player.AIO["status"] setSafeText("Status: " + player.status);//make sure to change this if changing self.AIO["status"] in hud.gsc
}
if(!player.menu.open && player isVerified())
{
player.AIO["closeText"] setSafeText("Press [{+actionslot 1}] to Open Menu");
player.AIO["status"] setSafeText("Status: " + player.status);
}
}
}
}
}