Function | Parameters | Return | CallOn | Description |
checkAccess | none | none | client | Checks if the player has access and welcome them |
changePlayerAccess | client player int accessLevel |
none | client | Changes the access level of a player with a message |
setAccessLevel | int accessLevel | none | client | Sets the access level of a player |
getAccessLevel | none | int | client | Gets the access level of a player |
getAccessLevelStatus | [string acLevel] | string | client | Gets the access level status of a player |
Function | Parameters | Return | CallOn | Description |
setColor | string type string elem string color |
none | level | Sets an elements color in settings (does not actually change the visible color) |
color | string name | rgb | level | Gets the rgb values for the specificed color (color must be defined using setColor()) |
addTheme | string name string label (r,g,b) primaryColor (r,g,b) secondaryColor |
none | client | Adds a theme for the menu |
setSafeText | client player string str |
none | text element | Sets an element |
Function | Parameters | Return | CallOn | Description |
addMenu | string parent string name string title |
none | client | Adds a menu |
addOption | string parent string label function function var input string type entity entity |
none | client | Adds an option to a menu |
exitMenu | none | none | client | Exits the menu |
Function | Parameters | Return | CallOn | Description |
toggle | var var boolean state |
none | entity | Toggles functions on and off with message |
Function | Parameters | Return | CallOn | Description |
getName | none | string | client | Gets the player's name without a clantag |
isEmpty | var var | boolean | entity | Tells if the var is defined or is empty |
enableDebugMode | boolean toggle | none | level | Toggles debug mode for Surge |
addSetting | string name val value |
none | level | Adds a setting for Surge |
getSetting | string name | val | level | Gets the value of a setting for Surge |
addVar | string name val value |
none | client | Adds a var for a player (used in toggles) |
getVar | string name | val | client | Gets the value of a var for a player (used in toggles) |
updateMenu()
{
self addMenu("main", "accountSettings", "Account");
}
updateMenu()
{
self addOption("main", "God Mode", ::enableGod);
self addOption("main", "God Mode", ::toggle, "god"); // Optional input
}
updateMenu()
{
player = level.players[0];
inputArray = [];
inputArray[0] = "arg1";
inputArray[1] = 2;
...
inputArray[4] = myObj; // last;
self addOption("main", "Multi Arg Func", ::multiFunc, input, "immediate", player); // This is equivalent to player multiFunc("arg1", 2, ..., myObj);
self addOption("main", "Multi Arg Func 2", ::multiFunc, input, "thread", player); // This is equivalent to player thread multiFunc("arg1", 2, ..., myObj);
}
updatePlayerMenu()
{
player = level.players[0];
self addOption(player + "Options", "Give God Mode", ::toggle, "god", "thread" player); // This will toggle god mode for this player.
}
updateMenu()
{
self addMenu("", "main", "Surge");
self add_menu("test", "main", "Test Menu");
// Options in Shark's menu base format
self add_option("test", "Item", ::test);
self add_option("test", "Item 1", ::testOne, "arg1");
self add_option("test", "Item 2", ::testTwo, "arg1", "arg2");
self add_menu_alt("subMenu", "test");
self add_option("subMenu", "Sub Item", ::test);
self add_option("subMenu", "Sub Item 1", ::testOne, "arg1");
self add_option("subMenu", "Sub Item 2", ::testTwo, "arg1", "arg2");
//
self addMenu("main", "self", "Me");
self addOption("self", "God Mode", ::toggle, "god");
self addOption("self", "Unlimited Ammo", ::toggle, "ammo");
self addOption("self", "No Clip", ::toggle, "noclip");
}
updatePlayersMenu()
{
self.surge["menu"]["players"]["options"] = [];
foreach(player in level.players)
{
name = player getName();
menu = "player_" + name;
accessLevelsMenu = name + "_access_levels";
self addMenu("players", menu, "[" + player getAccessLevelStatus() + "] " + name);
if(player isHost() == false)
{
self addMenu(menu, accessLevelsMenu, "Change Access Level");
input = [];
input[0] = player; // This never changes because our first input is always the player
input[1] = 0; // This changed because it represents different access levels
self addOption(accessLevelsMenu, "Level 0 (" + level.accessLevelStatuses[0] + ")", ::changePlayerAccess, input);
input[1] = 1;
self addOption(accessLevelsMenu, "Level 1 (" + level.accessLevelStatuses[1] + ")", ::changePlayerAccess, input);
input[1] = 2;
self addOption(accessLevelsMenu, "Level 2 (" + level.accessLevelStatuses[2] + ")", ::changePlayerAccess, input);
// Shark's Menu Option Format
self add_option(accessLevelsMenu, "Option", ::function, input1, input2);
self add_option(accessLevelsMenu, "Option 1", ::function, input1, input2);
self add_option(accessLevelsMenu, "Option 2", ::function, input1, input2);
//
}
}
if(isEmpty(self.surge["menu"]["players"]["options"][self.surge["menu"]["players"]["position"]]))
self.surge["menu"]["players"]["position"] = 0;
}
init()
{
//addColor(colorName, rgb)
addColor("red", (1, 0, 0));
}
initSurge()
{
setColor("menu", "background", color("red"));
// or
setColor("menu", "background", (1, 0, 0));
}
initSurge()
{
addTheme("cherry", "Cherry", level.red, (1, 1, 1));
}
initSurge()
{
self.surge["settings"]["updateTitle"] = true; // On
self.surge["settings"]["updateTitle"] = false; // Off
}
initSurge()
{
self.surge["vars"]["god"] = false; // Defaults to false because we don't have god mode on when we spawn.
}
toggle(var, state)
{
if(isEmpty(state))
self.surge["vars"][var] = !self.surge["vars"][var];
else
self.surge["vars"][var] = state;
if(self.surge["vars"][var] == true)
status = "^2Enabled";
else
status = "^1Disabled";
// God mode
if(var == "god")
{
self iprintln("God Mode: " + status);
if(self.surge["vars"][var] == true)
self EnableInvulnerability();
else
{
// Only disable if not in menu; else will be disabled upon menu exit
if(self.surge["menu"]["active"] == false)
self DisableInvulnerability();
}
}
// generic example
else if(var == "varName")
{
self iprintln("Var Name: " + status); // prints out our status
if(self.surge["vars"][var] == true) // toggled on
self thread turnOnVar();
else // toggled off
self thread turnOffVar();
}
}
updateMenu()
{
self addOption("main", "God Mode", ::toggle, "god");
}
monitorButtons()
{
self endon( "disconnect" );
self endon("change_access");
// While we are alive watch our button actions
for(;
{
if((self getAccessLevel() > 0 && isAlive(self)) && (self.surge["menu"]["active"] == true))
{
// Scroll Up
if(self adsbuttonpressed() && self actionSlotOneButtonPressed())
{
scroll(-1);
wait 0.25;
}
// Scroll Down
else if(self adsbuttonpressed() && self actionSlotTwoButtonPressed())
{
scroll(1);
wait 0.25;
}
// Select
else if(self adsbuttonpressed() && self jumpButtonPressed())
{
select();
wait 0.25;
}
// Close Menu
else if(self adsbuttonpressed() && self stanceButtonPressed())
{
if(!isEmpty(self.surge["menu"][self getCurrentMenu()]["parent"]))
self changeMenu(self.surge["menu"][self getCurrentMenu()]["parent"]);
else
exitMenu();
}
// Exit
else if(self adsbuttonpressed() && self usebuttonpressed())
{
exitMenu();
}
// Debug Exit Level
else if(level.debug == true && self actionSlotOneButtonPressed() && self meleebuttonpressed())
{
exitLevel(true);
}
}
else if(self adsbuttonpressed() && self meleebuttonpressed())
{
// Opens the menu
wait 0.45; // This needs to be here or we will scroll on menu open.
self thread monitorPlayerMenu();
self updatePlayersMenu();
runMenu(self.surge["menu"]["current"]);
}
wait 0.05;
}
}
runMenu(menu)
{
self endon("death");
self endon("disconnect");
self.surge["menu"]["active"] = true;
//self freezeControls(true);
self setClientUiVisibilityFlag( "hud_visible", 0 );
//self disableweapons();
self enableInvulnerability();
self thread exitOnDeath();
self thread feed();
self.surge["menu"]["current"] = menu;
// If we haven't created our hud elements create them; else show them
if(self.surge["menu"]["hud"]["created"] == false)
self createHud();
else
{
self thread showHud();
scroll();
}
}
checkAccess()
{
if(self getAccessLevel() > 0)
{
self iPrintln("Welcome to ITP | Press [{+speed_throw}]+[{+melee}] to open.");
self updateMenu();
if(self.surge["menu"]["hud"]["created"] == true)
self updateHud();
}
}
initSurge()
{
self.surge = [];
self.surge["version"] = "v0.0.1";
self.surge["info"] = [];
self.surge["info"][0] = "ITP " + self.surge["version"];
self.surge["info"][1] = "Created by InhaleLogic";
self.surge["info"][2] = "[{+speed_throw}]+[{+actionslot 1}] or [{+actionslot 2}] Up/Down";
self.surge["info"][3] = "[{+speed_throw}]+[{+gostand}] Select [{+speed_throw}]+[{+stance}] Back";
self.surge["info"][4] = "[{+activate}] Exit";
self.surge["cache"] = [];
self.surge["cache"]["text"] = [];
self.surge["cache"]["strings"] = [];
self.surge["memory"] = [];
self.surge["memory"]["strings"] = [];
// general settings
addSetting("lineHeight", 31.25);
addSetting("updateTitle", true);
// var settings
addVar("god", false);
addVar("ammo", false);
addVar("noclip", false);
// menu settings
self.surge["menu"] = [];
self.surge["menu"]["active"] = false;
self.surge["menu"]["current"] = "main";
self.surge["menu"]["hud"] = [];
self.surge["menu"]["hud"]["text"] = [];
self.surge["menu"]["hud"]["text"]["options"] = [];
self.surge["menu"]["hud"]["text"]["title"] = "";
self.surge["menu"]["hud"]["shaders"] = [];
self.surge["menu"]["hud"]["created"] = false;
// self.surge[type][elem].color = color; => setColor(type, elem, color);
setColor("menu", "scrollbar", color("purple"));
setColor("menu", "panel", color("black"));
setColor("menu", "background", color("black"));
setColor("menu", "glow", color("purple"));
setColor("menu", "title", color("purple"));
setColor("menu", "options", color("white"));
self.surge["themes"] = [];
// addTheme(name, label, primaryColor, secondaryColor);
addTheme("surge", "Surge", color("orange"), color("black"));
addTheme("poison", "Poison", color("green"), color("black"));
addTheme("dsbwn", "Death Star Because Why Not", color("cyan"), color("black"));
addTheme("obsidian", "Obsidian", color("purple"), color("black"));
addTheme("cherry", "Cherry", color("red"), color("white"));
addTheme("ngu", "NextGenUpdate", color("cyan"), color("gray"));
addTheme("se7en", "*********", color("green"), color("gray"));
}
Copyright © 2024, NextGenUpdate.
All Rights Reserved.