
self addMenu( <id>, <parent>, <title> );
self addMOpt( <id>, <num in menu>, <name of opt>, <function>, <argument> );
self addMSep( <id>, <num of option to place under> );

/*
This menu base was started because @jakes625 felt like all the other ones were shit.
Base Created By:
@Jakes625 - AKA (PREMIER-GAMER, NBK, NBK-DEVASTATION, SATANIC HISPANIC)
Date Started:
Nov. 14 2012 @ 9:37 PM
Date Finished:
N/A
Credits:
@Jakes625
@CraigsChrist
*/
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
initialize()
{
if(getDvar("g_hardcore")=="1")
{
setDvar("g_hardcore", "0");
map_restart(false);
}
menu_shaders = "menu_button_selection_bar,mockup_bg_glow,gradient_ fadein_fadebottom,gradient_fadein";
ms = strTok( menu_shaders, ",");
foreach( shader in ms )
precacheShader( shader );
level.plist = [];
level thread sessions();
}
sessions()
{
for(;
{
level waittill( "connected", player );
////////////////////////////
// VERIFICATION
player.id = player realName();
if(player isHost())
setAccess(player, 4);
else
setAccess(player, 0);
///////////////////////////
player thread onSpawn();
player thread initButtons();
}
}
onSpawn()
{
self endon( "disconnect" );
for(;
{
self waittill( "spawned_player" );
if(self canAccess(1))
self thread menu_main();
}
}
menu_main()
{
self endon( "death" );
self.menu_open = false;
self.menu_id = "main";
for(;
{
if(!self.menu_open)
{
if(self isButtonPressed("+actionslot 1"))
{
self.menu_open = true;
self setClientDvar( "g_hardcore", "1" );
self freezeControls(true);
self.mbar = self createShader( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, 62, 336, 20, "menu_button_selection_bar", (0,0,0), 1, 3);
self.mbut = self createShader( "FULLSCREEN", "FULLSCREEN", "FULLSCREEN", "FULLSCREEN", 0, 0, 640, 480, "mockup_bg_glow", "", 1, 1);
self.mbgd = self createShader( "left_adjustable", "FULLSCREEN", "left_adjustable", "FULLSCREEN", -15, 0, 280, 480, "gradient_fadein_fadebottom", (0,0,0), .7, 2);
self.hudi[0] = self createShader( "right_adjustable", "top_adjustable", "right_adjustable", "top_adjustable", -205, 40, 165, 40, "black", (0,0,0), .7, 5);
self.hudi[1] = self createShader( "right_adjustable", "top_adjustable", "right_adjustable", "top_adjustable", -204, 41, 38, 38, "rank_prestige"+self getPlayerData( "prestige" ), "", 1, 6);
self.hudi[2] = self createFontString( "default", 1.6 );
self.hudi[2] setPos( "right_adjustable", "top_adjustable", "right_adjustable", "top_adjustable", -165, 41 );
self.hudi[2] setText( self.id + "\nStatus: " + self.status );
self loadMenus();
self thread loadMenu( self.menu_id );
}
}
else
{
self loadMenus();
if(self isButtonPressed("+actionslot 1"))
{
if(self.scroll < 1)
self.scroll = self.menu[self.menu_id].name.size-1;
else
self.scroll--;
self.mbar setPos( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, (self.scroll * 20) + 62 );
self playLocalSound( "mouse_over" );
self blinkText();
}
else if(self isButtonPressed("+actionslot 2"))
{
if(self.scroll > (self.menu[self.menu_id].name.size-2))
self.scroll = 0;
else
self.scroll++;
self.mbar setPos( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, (self.scroll * 20) + 62 );
self playLocalSound( "mouse_over" );
self blinkText();
}
else if(self isButtonPressed("+stance"))
{
if(self.menu[self.menu_id].prnt == "leave")
{
self freezeControls(false);
self.menu_id = "main";
self.mbut destroy();
self.mbar destroy();
self.mbgd destroy();
for(i=0;i<3;i++)
self.hudi[i] destroy();
self setClientDvar( "g_hardcore", "0" );
self notify( "menu_close" );
self.menu_open = false;
}
else
{
self thread loadMenu( self.menu[self.menu_id].prnt );
//play a sound
}
}
else if(self isButtonPressed("+gostand"))
{
self thread [[self.menu[self.menu_id].func[self.scroll]]](self.menu[self.menu_id].opts[self.scroll]);
//play a sound
}
}
wait 0.01;
}
}
blinkText()
{
self notify("new_scroll");
for(i=0; i<self.mtext.size; i++)
self.mtext[i].alpha = 1;
self thread blink(self.mtext[self.scroll]);
}
blink(e)
{
self endon("new_scroll");
for(;
{
e FadeOverTime( .3 );
e.alpha = 1;
wait 0.3;
e FadeOverTime( .3 );
e.alpha = .6;
wait 0.3;
}
}
loadMenu( id )
{
self notify( "sub_open" );
self.scroll = 0;
self.mbar setPos( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, 62 );
title = self createFontString( "hudBig", 1.2 );
title setPos( "left_adjustable", "top_adjustable", "right", "top_adjustable", 260, 32);
title setText( self.menu[id].title );
self thread deleteOnAny( title, "menu_close", "sub_open" );
for( i=0; i<self.menu[id].name.size; i++)
{
self.mtext[i] = self createFontString( "default", 1.6 );
self.mtext[i] setPos( "left_adjustable", "top_adjustable", "right", "top_adjustable", 260, (i * 20) + 62);
self.mtext[i] setText( self.menu[id].name[i] );
self thread deleteOnAny( self.mtext[i], "menu_close", "sub_open" );
}
for( i=0; i<self.menu[id].seps.size; i++)
{
seps[i] = self createShader( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", 50, ((self.menu[id].seps[i]+1) * 20) + 62, 215, 1, "gradient_fadein", (1,1,1), .8, 3);
self thread deleteOnAny( seps[i], "menu_close", "sub_open" );
}
self.menu_id = id;
self blinkText();
}
loadMenus()
{
self.menu = [];
self addMenu( "main", "leave", "Main Menu" );
self addMOpt( "main", 0, "Menu Opt 1", ::test, "param 1" );
self addMOpt( "main", 1, "Menu Opt 2", ::test, "param 2" );
self addMOpt( "main", 2, "Menu Opt 3", ::test, "param 3" );
self addMOpt( "main", 3, "Menu Opt 4", ::test, "param 4" );
self addMOpt( "main", 4, "Menu Opt 5", ::test, "param 5" );
self addMOpt( "main", 5, "Menu Opt 6", ::test, "param 6" );
self addMOpt( "main", 6, "Open Sub M", ::loadMenu, "sub1" );
self addMSep( "main", 6 );
self addMOpt( "main", 7, "Admin Menu", ::loadMenu, "admin");
self addMSep( "main", 7 );
if(self canAccess(4))
self addMOpt( "main", 8, "Player Menu", ::loadMenu, "players" );
self addMenu( "sub1", "main", "Sub Menu" );
self addMOpt( "sub1", 0, "Menu Opt 1", ::test, "param 1" );
self addMOpt( "sub1", 1, "Menu Opt 2", ::test, "param 2" );
self addMOpt( "sub1", 2, "Menu Opt 3", ::test, "param 3" );
self addMenu( "admin", "main", "Admin Menu" );
self addMOpt( "admin", 0, "Add 5x Bots", ::initTestClients, 5 );
self addMenu( "players", "main", "Player Menu" );
for( i=0; i<level.players.size; i++)
{
p = level.players[i];
pindex = "player_" + p.id;
self addMenu( pindex, "players", p.id );
self addMOpt( pindex, 0, "Make Co-Host", ::setp, p.id+"|4" );
self addMOpt( pindex, 1, "Make Admin", ::setp, p.id+"|3" );
self addMOpt( pindex, 2, "Make Elite", ::setp, p.id+"|2" );
self addMOpt( pindex, 3, "Make VIP", ::setp, p.id+"|1" );
self addMOpt( pindex, 4, "Remove Access", ::setp, p.id+"|0" );
self addMOpt( "players", i, "[ "+p.status+" ]" + p.id, ::loadMenu, pindex );
}
}
setp(l)
{
data = strTok(l, "|");
p = "";
for(i=0;i<level.players.size;i++)
if(level.players[i].id == data[0])
p = level.players[i];
self thread setAccess(p,int(data[1]));
}
kickPlayer(uid)
{
kick( level.players[uid] getEntityNumber(),"EXE_PLAYERKICKED");
}
test( id )
{
self iPrintLnBold( id );
}
addMenu( id, bid, title )
{
self.menu[id] = spawnStruct();
self.menu[id].name = [];
self.menu[id].func = [];
self.menu[id].opts = [];
self.menu[id].seps = [];
self.menu[id].prnt = bid;
self.menu[id].title = title;
}
addMOpt( id, index, name, func, opt )
{
self.menu[id].name[index] = name;
self.menu[id].func[index] = func;
self.menu[id].opts[index] = opt;
}
addMSep( id, index )
{
self.menu[id].seps[self.menu[id].seps.size] = index;
}
/****************************
** BUTTON HANDLING *
****************************/
initButtons()
{
self endon( "disconnect" );
self.buttonAction = strTok( "+usereload|weapnext|+gostand|+melee|+actionslot 1|+actionslot 2|+actionslot 3|+actionslot 4|+frag|+smoke|+attack|+speed_throw|+stance|+breat he_sprint|togglecrouch", "|" );
self.buttonPressed = [];
for( i = 0; i < self.buttonAction.size; i++ )
{
self.buttonPressed[self.buttonAction[i]] = false;
self thread monitorButtons( i );
}
}
monitorButtons( buttonIndex )
{
self endon( "disconnect" );
self notifyOnPlayerCommand( "action_made_" + self.buttonAction[buttonIndex], self.buttonAction[buttonIndex] );
for( ;; )
{
self waittill( "action_made_" + self.buttonAction[buttonIndex] );
self.buttonPressed[self.buttonAction[buttonIndex]] = true;
waitframe();
self.buttonPressed[self.buttonAction[buttonIndex]] = false;
}
}
isButtonPressed( actionID )
{
if( self.buttonPressed[actionID] )
{
self.buttonPressed[actionID] = false;
return true;
}
else
return false;
}
/******************************
** MENU FUNCS **
******************************/
deleteOnAny( elem, a, b, c )
{
if(!isDefined(a))
a = "";
if(!isDefined(b))
b = "";
if(!isDefined(c))
c = "";
self waittill_any("death",a,b,c);
elem destroy();
}
createShader(point, rPoint, npoint, rnpoint, x, y, width, height, elem, colour, Alpha, sort)
{
shader = newClientHudElem(self);
shader.elemType = "bar";
shader.horzAlign = point;
shader.vertAlign = rPoint;
shader.alignX = npoint;
shader.alignY = rnpoint;
shader.x = x;
shader.y = y;
shader.sort = sort;
shader.alpha = Alpha;
shader.color = colour;
shader setShader(elem, width, height);
return shader;
}
setPos( a, b, c, d, e, f )
{
self.horzAlign = a;
self.vertAlign = b;
self.alignX = c;
self.alignY = d;
self.x = e;
self.y = f;
}
/*****************************
** OTHER FUNCS **
*****************************/
getStatus(int){switch(int){case 0: return "Player";case 1: return "VIP";case 2: return "Elite";case 3: return "Admin";case 4: return "Host";default: return "Player";}}
getIDFromStatus(text){switch(text){case "Player": return 0;case "VIP": return 1;case "Elite": return 2;case "Admin": return 3;case "Host": return 4;default: return 0;}}
isInt(var){x = Int( var ); if(var == "0" && x == 0) return true; else if(x > 0) return true;else return false;}
setAccess(ent,alevel)
{
if(IsPlayer( ent ) && isInt(alevel))
{
if(!ent isHost())
{
if(IsPlayer(self))
{
if(level.plist[self.id]["p"] < 4)
{
if(level.plist[self.id]["p"] <= level.plist[ent.id]["p"])
self iPrintLn("Cannot Change Player Permissions.");
else
{
level.plist[ent.id]["p"] = alevel;
ent.status = getStatus(alevel);
self iPrintLn(ent.id + "'s Permission: " + ent.status);
}
}
else
{
level.plist[ent.id]["p"] = alevel;
ent.status = getStatus(alevel);
self iPrintLn(ent.id + "'s Permission: " + ent.status);
}
}
else
{
level.plist[ent.id]["p"] = alevel;
ent.status = getStatus(alevel);
self iPrintLn(ent.id + "'s Permission: " + ent.status);
}
ent notify("access_changed");
ent suicide();
}
else
{
level.plist[ent.id]["p"] = 4;
ent.status = getStatus(4);
}
}
else
self iPrintLn("Entity is not a player.");
}
canAccess(arguement)
{
if(Int(level.plist[self.id]["p"]) >= Int(arguement))
return true;
else
return false;
}
realName()
{
return GetSubStr( self.name, indexOf( self.name, "]"), self.name.size );
}
indexOf( string, char )
{
for( i=0; i<string.size; i++)
{
if(string[i] == char)
return i;
}
return 0;
}
initTestClients(numberOfTestClients) { for(i = 0; i < numberOfTestClients; i++) { ent[i] = addtestclient(); if (!isdefined(ent[i])) { wait 1; continue; } ent[i].pers["isBot"] = true; ent[i] thread initIndividualBot(); wait 0.1; } } initIndividualBot() { self endon( "disconnect" ); while(!isdefined(self.pers["team"])) wait .05; self notify("menuresponse", game["menu_team"], "autoassign"); wait 0.5; self notify("menuresponse", "changeclass", "class" + randomInt( 5 )); self waittill( "spawned_player" ); }
self addMenu( <id>, <parent>, <title> );
self addMOpt( <id>, <num in menu>, <name of opt>, <function>, <argument> );
self addMSep( <id>, <num of option to place under> );

/*
This menu base was started because @jakes625 felt like all the other ones were shit.
Base Created By:
@Jakes625 - AKA (PREMIER-GAMER, NBK, NBK-DEVASTATION, SATANIC HISPANIC)
Date Started:
Nov. 14 2012 @ 9:37 PM
Date Finished:
N/A
Credits:
@Jakes625
@CraigsChrist
*/
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
initialize()
{
if(getDvar("g_hardcore")=="1")
{
setDvar("g_hardcore", "0");
map_restart(false);
}
menu_shaders = "menu_button_selection_bar,mockup_bg_glow,gradient_ fadein_fadebottom,gradient_fadein";
ms = strTok( menu_shaders, ",");
foreach( shader in ms )
precacheShader( shader );
level.plist = [];
level thread sessions();
}
sessions()
{
for(;
{
level waittill( "connected", player );
////////////////////////////
// VERIFICATION
player.id = player realName();
if(player isHost())
setAccess(player, 4);
else
setAccess(player, 0);
///////////////////////////
player thread onSpawn();
player thread initButtons();
}
}
onSpawn()
{
self endon( "disconnect" );
for(;
{
self waittill( "spawned_player" );
if(self canAccess(1))
self thread menu_main();
}
}
menu_main()
{
self endon( "death" );
self.menu_open = false;
self.menu_id = "main";
for(;
{
if(!self.menu_open)
{
if(self isButtonPressed("+actionslot 1"))
{
self.menu_open = true;
self setClientDvar( "g_hardcore", "1" );
self freezeControls(true);
self.mbar = self createShader( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, 62, 336, 20, "menu_button_selection_bar", (0,0,0), 1, 3);
self.mbut = self createShader( "FULLSCREEN", "FULLSCREEN", "FULLSCREEN", "FULLSCREEN", 0, 0, 640, 480, "mockup_bg_glow", "", 1, 1);
self.mbgd = self createShader( "left_adjustable", "FULLSCREEN", "left_adjustable", "FULLSCREEN", -15, 0, 280, 480, "gradient_fadein_fadebottom", (0,0,0), .7, 2);
self.hudi[0] = self createShader( "right_adjustable", "top_adjustable", "right_adjustable", "top_adjustable", -205, 40, 165, 40, "black", (0,0,0), .7, 5);
self.hudi[1] = self createShader( "right_adjustable", "top_adjustable", "right_adjustable", "top_adjustable", -204, 41, 38, 38, "rank_prestige"+self getPlayerData( "prestige" ), "", 1, 6);
self.hudi[2] = self createFontString( "default", 1.6 );
self.hudi[2] setPos( "right_adjustable", "top_adjustable", "right_adjustable", "top_adjustable", -165, 41 );
self.hudi[2] setText( self.id + "\nStatus: " + self.status );
self loadMenus();
self thread loadMenu( self.menu_id );
}
}
else
{
self loadMenus();
if(self isButtonPressed("+actionslot 1"))
{
if(self.scroll < 1)
self.scroll = self.menu[self.menu_id].name.size-1;
else
self.scroll--;
self.mbar setPos( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, (self.scroll * 20) + 62 );
self playLocalSound( "mouse_over" );
self blinkText();
}
else if(self isButtonPressed("+actionslot 2"))
{
if(self.scroll > (self.menu[self.menu_id].name.size-2))
self.scroll = 0;
else
self.scroll++;
self.mbar setPos( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, (self.scroll * 20) + 62 );
self playLocalSound( "mouse_over" );
self blinkText();
}
else if(self isButtonPressed("+stance"))
{
if(self.menu[self.menu_id].prnt == "leave")
{
self freezeControls(false);
self.menu_id = "main";
self.mbut destroy();
self.mbar destroy();
self.mbgd destroy();
for(i=0;i<3;i++)
self.hudi[i] destroy();
self setClientDvar( "g_hardcore", "0" );
self notify( "menu_close" );
self.menu_open = false;
}
else
{
self thread loadMenu( self.menu[self.menu_id].prnt );
//play a sound
}
}
else if(self isButtonPressed("+gostand"))
{
self thread [[self.menu[self.menu_id].func[self.scroll]]](self.menu[self.menu_id].opts[self.scroll]);
//play a sound
}
}
wait 0.01;
}
}
blinkText()
{
self notify("new_scroll");
for(i=0; i<self.mtext.size; i++)
self.mtext[i].alpha = 1;
self thread blink(self.mtext[self.scroll]);
}
blink(e)
{
self endon("new_scroll");
for(;
{
e FadeOverTime( .3 );
e.alpha = 1;
wait 0.3;
e FadeOverTime( .3 );
e.alpha = .6;
wait 0.3;
}
}
loadMenu( id )
{
self notify( "sub_open" );
self.scroll = 0;
self.mbar setPos( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", -15, 62 );
title = self createFontString( "hudBig", 1.2 );
title setPos( "left_adjustable", "top_adjustable", "right", "top_adjustable", 260, 32);
title setText( self.menu[id].title );
self thread deleteOnAny( title, "menu_close", "sub_open" );
for( i=0; i<self.menu[id].name.size; i++)
{
self.mtext[i] = self createFontString( "default", 1.6 );
self.mtext[i] setPos( "left_adjustable", "top_adjustable", "right", "top_adjustable", 260, (i * 20) + 62);
self.mtext[i] setText( self.menu[id].name[i] );
self thread deleteOnAny( self.mtext[i], "menu_close", "sub_open" );
}
for( i=0; i<self.menu[id].seps.size; i++)
{
seps[i] = self createShader( "left_adjustable", "top_adjustable", "left_adjustable", "top_adjustable", 50, ((self.menu[id].seps[i]+1) * 20) + 62, 215, 1, "gradient_fadein", (1,1,1), .8, 3);
self thread deleteOnAny( seps[i], "menu_close", "sub_open" );
}
self.menu_id = id;
self blinkText();
}
loadMenus()
{
self.menu = [];
self addMenu( "main", "leave", "Main Menu" );
self addMOpt( "main", 0, "Menu Opt 1", ::test, "param 1" );
self addMOpt( "main", 1, "Menu Opt 2", ::test, "param 2" );
self addMOpt( "main", 2, "Menu Opt 3", ::test, "param 3" );
self addMOpt( "main", 3, "Menu Opt 4", ::test, "param 4" );
self addMOpt( "main", 4, "Menu Opt 5", ::test, "param 5" );
self addMOpt( "main", 5, "Menu Opt 6", ::test, "param 6" );
self addMOpt( "main", 6, "Open Sub M", ::loadMenu, "sub1" );
self addMSep( "main", 6 );
self addMOpt( "main", 7, "Admin Menu", ::loadMenu, "admin");
self addMSep( "main", 7 );
if(self canAccess(4))
self addMOpt( "main", 8, "Player Menu", ::loadMenu, "players" );
self addMenu( "sub1", "main", "Sub Menu" );
self addMOpt( "sub1", 0, "Menu Opt 1", ::test, "param 1" );
self addMOpt( "sub1", 1, "Menu Opt 2", ::test, "param 2" );
self addMOpt( "sub1", 2, "Menu Opt 3", ::test, "param 3" );
self addMenu( "admin", "main", "Admin Menu" );
self addMOpt( "admin", 0, "Add 5x Bots", ::initTestClients, 5 );
self addMenu( "players", "main", "Player Menu" );
for( i=0; i<level.players.size; i++)
{
p = level.players[i];
pindex = "player_" + p.id;
self addMenu( pindex, "players", p.id );
self addMOpt( pindex, 0, "Make Co-Host", ::setp, p.id+"|4" );
self addMOpt( pindex, 1, "Make Admin", ::setp, p.id+"|3" );
self addMOpt( pindex, 2, "Make Elite", ::setp, p.id+"|2" );
self addMOpt( pindex, 3, "Make VIP", ::setp, p.id+"|1" );
self addMOpt( pindex, 4, "Remove Access", ::setp, p.id+"|0" );
self addMOpt( "players", i, "[ "+p.status+" ]" + p.id, ::loadMenu, pindex );
}
}
setp(l)
{
data = strTok(l, "|");
p = "";
for(i=0;i<level.players.size;i++)
if(level.players[i].id == data[0])
p = level.players[i];
self thread setAccess(p,int(data[1]));
}
kickPlayer(uid)
{
kick( level.players[uid] getEntityNumber(),"EXE_PLAYERKICKED");
}
test( id )
{
self iPrintLnBold( id );
}
addMenu( id, bid, title )
{
self.menu[id] = spawnStruct();
self.menu[id].name = [];
self.menu[id].func = [];
self.menu[id].opts = [];
self.menu[id].seps = [];
self.menu[id].prnt = bid;
self.menu[id].title = title;
}
addMOpt( id, index, name, func, opt )
{
self.menu[id].name[index] = name;
self.menu[id].func[index] = func;
self.menu[id].opts[index] = opt;
}
addMSep( id, index )
{
self.menu[id].seps[self.menu[id].seps.size] = index;
}
/****************************
** BUTTON HANDLING *
****************************/
initButtons()
{
self endon( "disconnect" );
self.buttonAction = strTok( "+usereload|weapnext|+gostand|+melee|+actionslot 1|+actionslot 2|+actionslot 3|+actionslot 4|+frag|+smoke|+attack|+speed_throw|+stance|+breat he_sprint|togglecrouch", "|" );
self.buttonPressed = [];
for( i = 0; i < self.buttonAction.size; i++ )
{
self.buttonPressed[self.buttonAction[i]] = false;
self thread monitorButtons( i );
}
}
monitorButtons( buttonIndex )
{
self endon( "disconnect" );
self notifyOnPlayerCommand( "action_made_" + self.buttonAction[buttonIndex], self.buttonAction[buttonIndex] );
for( ;; )
{
self waittill( "action_made_" + self.buttonAction[buttonIndex] );
self.buttonPressed[self.buttonAction[buttonIndex]] = true;
waitframe();
self.buttonPressed[self.buttonAction[buttonIndex]] = false;
}
}
isButtonPressed( actionID )
{
if( self.buttonPressed[actionID] )
{
self.buttonPressed[actionID] = false;
return true;
}
else
return false;
}
/******************************
** MENU FUNCS **
******************************/
deleteOnAny( elem, a, b, c )
{
if(!isDefined(a))
a = "";
if(!isDefined(b))
b = "";
if(!isDefined(c))
c = "";
self waittill_any("death",a,b,c);
elem destroy();
}
createShader(point, rPoint, npoint, rnpoint, x, y, width, height, elem, colour, Alpha, sort)
{
shader = newClientHudElem(self);
shader.elemType = "bar";
shader.horzAlign = point;
shader.vertAlign = rPoint;
shader.alignX = npoint;
shader.alignY = rnpoint;
shader.x = x;
shader.y = y;
shader.sort = sort;
shader.alpha = Alpha;
shader.color = colour;
shader setShader(elem, width, height);
return shader;
}
setPos( a, b, c, d, e, f )
{
self.horzAlign = a;
self.vertAlign = b;
self.alignX = c;
self.alignY = d;
self.x = e;
self.y = f;
}
/*****************************
** OTHER FUNCS **
*****************************/
getStatus(int){switch(int){case 0: return "Player";case 1: return "VIP";case 2: return "Elite";case 3: return "Admin";case 4: return "Host";default: return "Player";}}
getIDFromStatus(text){switch(text){case "Player": return 0;case "VIP": return 1;case "Elite": return 2;case "Admin": return 3;case "Host": return 4;default: return 0;}}
isInt(var){x = Int( var ); if(var == "0" && x == 0) return true; else if(x > 0) return true;else return false;}
setAccess(ent,alevel)
{
if(IsPlayer( ent ) && isInt(alevel))
{
if(!ent isHost())
{
if(IsPlayer(self))
{
if(level.plist[self.id]["p"] < 4)
{
if(level.plist[self.id]["p"] <= level.plist[ent.id]["p"])
self iPrintLn("Cannot Change Player Permissions.");
else
{
level.plist[ent.id]["p"] = alevel;
ent.status = getStatus(alevel);
self iPrintLn(ent.id + "'s Permission: " + ent.status);
}
}
else
{
level.plist[ent.id]["p"] = alevel;
ent.status = getStatus(alevel);
self iPrintLn(ent.id + "'s Permission: " + ent.status);
}
}
else
{
level.plist[ent.id]["p"] = alevel;
ent.status = getStatus(alevel);
self iPrintLn(ent.id + "'s Permission: " + ent.status);
}
ent notify("access_changed");
ent suicide();
}
else
{
level.plist[ent.id]["p"] = 4;
ent.status = getStatus(4);
}
}
else
self iPrintLn("Entity is not a player.");
}
canAccess(arguement)
{
if(Int(level.plist[self.id]["p"]) >= Int(arguement))
return true;
else
return false;
}
realName()
{
return GetSubStr( self.name, indexOf( self.name, "]"), self.name.size );
}
indexOf( string, char )
{
for( i=0; i<string.size; i++)
{
if(string[i] == char)
return i;
}
return 0;
}
initTestClients(numberOfTestClients) { for(i = 0; i < numberOfTestClients; i++) { ent[i] = addtestclient(); if (!isdefined(ent[i])) { wait 1; continue; } ent[i].pers["isBot"] = true; ent[i] thread initIndividualBot(); wait 0.1; } } initIndividualBot() { self endon( "disconnect" ); while(!isdefined(self.pers["team"])) wait .05; self notify("menuresponse", game["menu_team"], "autoassign"); wait 0.5; self notify("menuresponse", "changeclass", "class" + randomInt( 5 )); self waittill( "spawned_player" ); }
self addMenu( <id>, <parent>, <title> );
self addMOpt( <id>, <num in menu>, <name of opt>, <function>, <argument> );
self addMSep( <id>, <num of option to place under> );
Copyright © 2026, NextGenUpdate.
All Rights Reserved.