Post: [RELEASE] rothebeast Menu Base v1
10-24-2012, 04:34 AM #1
Master Ro
I make food
(adsbygoogle = window.adsbygoogle || []).push({}); Hi Guys Just releasing my Project: Kashmir Menu Base

I was gonna make a patch out of it but I got bored during the process :lol:


Anyways here is a video (Thanks Jake):
NOTE: Watch in 720p please



Credits:

CraigsChrist
KBrizzle
ITheFallenI
PREMIER-GAMER
BeastHoster
CrEaTiiOn_UNREAL
KM-_1337
xePixTVx
rothebeast

Script:
    
//Update 1

/*
================================================== =======================
How to add a Menu:
self AddMenu( <menu>, <title>, <parent> );

How to Add a Function:
self AddFunction( <menu>, <opt>, <func>, <arg> );
================================================== =======================
*/
/*
================================================== =======================
Credits (In no particular order):
CraigsChrist - Codes & Button Handling
KBrizzle - Codes
ITheFallenI - Inspiration
xePixTVx - Player Menu Help
EliteMossy - Verification System
Beast Hoster - Testing
KM-_1337 - Recording
================================================== =======================
*/
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader("gradient_fadein_fadebottom");
precacheShader("menu_button_selection_bar");
precacheShader("mockup_bg_glow");
precacheShader("hudsoftline");
level.version = "1.0";
level thread createPerkMap();
level thread onPlayerConnect();
if(!isDefined(level.pList))
{
level permsCreate();
}
}

onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );

if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;

player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}

onPlayerSpawned()
{
self endon( "disconnect" );
self permsInit();

for(;Winky Winky
{
self waittill( "spawned_player" );
self permsBegin();
}
}

createPerkMap()
{
level.perkMap = [];
level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}

ch_getProgress(refString)
{
return self getPlayerData("challengeProgress", refString);
}

ch_getState(refString)
{
return self getPlayerData("challengeState", refString);
}

ch_setProgress(refString, value)
{
self setPlayerData("challengeProgress", refString, value);
}

ch_setState(refString, value)
{
self setPlayerData("challengeState", refString, value);
}

initMissionData()
{
keys = getArrayKeys(level.killstreakFuncs);
foreach(key in keys) self.pers[key] = 0;
self.pers["lastBulletKillTime"] = 0;
self.pers["bulletStreak"] = 0;
self.explosiveInfo = [];
}

playerDamaged(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sHitLoc)
{
}

playerKilled(eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon, sPrimaryWeapon, sHitLoc, modifiers)
{
}

vehicleKilled(owner, vehicle, eInflictor, attacker, iDamage, sMeansOfDeath, sWeapon)
{
}

waitAndProcessPlayerKilledCallback(data)
{
}

playerAssist()
{
}

useHardpoint(hardpointType)
{
}

roundBegin()
{
}

roundEnd(winner)
{
}

lastManSD()
{
}

healthRegenerated()
{
self.brinkOfDeathKillStreak = 0;
}

resetBrinkOfDeathKillStreakShortly()
{
}

playerSpawned()
{
playerDied();
}

playerDied()
{
self.brinkOfDeathKillStreak = 0;
self.healthRegenerationStreak = 0;
self.pers["MGStreak"] = 0;
}

processChallenge(baseName, progressInc, forceSetProgress)
{
}

giveRankXpAfterWait(baseName,missionStatus)
{
}

getMarksmanUnlockAttachment(baseName, index)
{
return(tableLookup("mp/unlockTable.csv", 0, baseName, 4 + index));
}

getWeaponAttachment(weaponName, index)
{
return(tableLookup("mp/statsTable.csv", 4, weaponName, 11 + index));
}

masteryChallengeProcess(baseName, progressInc)
{
}

updateChallenges()
{
}

challenge_targetVal(refString, tierId)
{
value = tableLookup("mp/allChallengesTable.csv", 0, refString, 6 + ((tierId-1)*2));
return int(value);
}

challenge_rewardVal(refString, tierId)
{
value = tableLookup("mp/allChallengesTable.csv", 0, refString, 7 + ((tierId-1)*2));
return int(value);
}

buildChallegeInfo()
{
level.challengeInfo = [];
tableName = "mp/allchallengesTable.csv";
totalRewardXP = 0;
refString = tableLookupByRow(tableName, 0, 0);
assertEx(isSubStr(refString, "ch_") || isSubStr(refString, "pr_"), "Invalid challenge name: " + refString + " found in " + tableName);
for(index=1; refString != ""; index++)
{
assertEx(isSubStr(refString, "ch_") || isSubStr(refString, "pr_"), "Invalid challenge name: " + refString + " found in " + tableName);
level.challengeInfo[refString] = [];
level.challengeInfo[refString]["targetval"] = [];
level.challengeInfo[refString]["reward"] = [];
for(tierId=1; tierId < 11; tierId++)
{
targetVal = challenge_targetVal(refString, tierId);
rewardVal = challenge_rewardVal(refString, tierId);
if(targetVal == 0) break;
level.challengeInfo[refString]["targetval"][tierId] = targetVal;
level.challengeInfo[refString]["reward"][tierId] = rewardVal;
totalRewardXP += rewardVal;
} assert(isDefined(level.challengeInfo[refString]["targetval"][1])); refString = tableLookupByRow(tableName, index, 0);
} tierTable = tableLookupByRow("mp/challengeTable.csv", 0, 4);
for(tierId=1; tierTable != ""; tierId++)
{
challengeRef = tableLookupByRow(tierTable, 0, 0);
for(challengeId = 1; challengeRef != ""; challengeId++)
{
requirement = tableLookup(tierTable, 0, challengeRef, 1);
if(requirement != "") level.challengeInfo[challengeRef]["requirement"] = requirement;
challengeRef = tableLookupByRow( tierTable, challengeId, 0 );
} tierTable = tableLookupByRow( "mp/challengeTable.csv", tierId, 4 );
}
}

genericChallenge(challengeType, value)
{
}

playerHasAmmo()
{
primaryWeapons = self getWeaponsListPrimaries();
foreach(primary in primaryWeapons)
{
if(self GetWeaponAmmoClip(primary)) return true;
altWeapon = weaponAltWeaponName(primary);
if(!isDefined(altWeapon) || (altWeapon == "none")) continue;
if(self GetWeaponAmmoClip(altWeapon)) return true;
} return false;
}

//Menu Base Begining
RecreationStructure()
{
r = "Main";
if(self isAllowed(1))//Verified Menu
{
self AddMenu( r, "Main Menu", "" );
self AddFunction( r, "Sub Menu 1", ::runSub, "Sub1");
self AddFunction( r, "Sub Menu 2", ::runSub, "Sub2");
self AddFunction( r, "Sub Menu 3", ::runSub, "Sub3");
self AddMenu( "Sub1", "Sub Menu 1", r );
self AddFunction( "Sub1", "Test", ::Test, "Sub1");
self AddMenu( "Sub2", "Sub Menu 2", r );
self AddFunction( "Sub2", "Test", ::Test, "Sub2");
self AddMenu( "Sub3", "Sub Menu 3", r );
self AddFunction( "Sub3", "Test", ::Test, "Sub3");
}
if(self isAllowed(2))//V.I.P Menu
{
self AddMenu( r, "Main Menu", "" );
self AddFunction( r, "Sub Menu 1", ::runSub, "Sub1");
self AddFunction( r, "Sub Menu 2", ::runSub, "Sub2");
self AddFunction( r, "Sub Menu 3", ::runSub, "Sub3");
self AddFunction( r, "Sub Menu 4", ::runSub, "Sub4");
self AddFunction( r, "Sub Menu 5", ::runSub, "Sub5");
self AddMenu( "Sub1", "Sub Menu 1", r );
self AddFunction( "Sub1", "Test", ::Test, "Sub1");
self AddMenu( "Sub2", "Sub Menu 2", r );
self AddFunction( "Sub2", "Test", ::Test, "Sub2");
self AddMenu( "Sub3", "Sub Menu 3", r );
self AddFunction( "Sub3", "Test", ::Test, "Sub3");
self AddMenu( "Sub4", "Sub Menu 4", r );
self AddFunction( "Sub4", "Test", ::Test, "Sub4");
self AddMenu( "Sub5", "Sub Menu 5", r );
self AddFunction( "Sub5", "Test", ::Test, "Sub5");
}
if(self isAllowed(3))//Co-Administrator Menu
{
self AddMenu( r, "Main Menu", "" );
self AddFunction( r, "Sub Menu 1", ::runSub, "Sub1");
self AddFunction( r, "Sub Menu 2", ::runSub, "Sub2");
self AddFunction( r, "Sub Menu 3", ::runSub, "Sub3");
self AddFunction( r, "Sub Menu 4", ::runSub, "Sub4");
self AddFunction( r, "Sub Menu 5", ::runSub, "Sub5");
self AddFunction( r, "Sub Menu 6", ::runSub, "Sub6");
self AddFunction( r, "Sub Menu 7", ::runSub, "Sub7");
self AddMenu( "Sub1", "Sub Menu 1", r );
self AddFunction( "Sub1", "Test", ::Test, "Sub1");
self AddMenu( "Sub2", "Sub Menu 2", r );
self AddFunction( "Sub2", "Test", ::Test, "Sub2");
self AddMenu( "Sub3", "Sub Menu 3", r );
self AddFunction( "Sub3", "Test", ::Test, "Sub3");
self AddMenu( "Sub4", "Sub Menu 4", r );
self AddFunction( "Sub4", "Test", ::Test, "Sub4");
self AddMenu( "Sub5", "Sub Menu 5", r );
self AddFunction( "Sub5", "Test", ::Test, "Sub5");
self AddMenu( "Sub6", "Sub Menu 6", r );
self AddFunction( "Sub6", "Test", ::Test, "Sub6");
self AddMenu( "Sub7", "Sub Menu 7", r );
self AddFunction( "Sub7", "Test", ::Test, "Sub7");
}
if(self isAllowed(4))//Administrator Menu
{
self AddMenu( r, "Main Menu", "" );
self AddFunction( r, "Sub Menu 1", ::runSub, "Sub1");
self AddFunction( r, "Sub Menu 2", ::runSub, "Sub2");
self AddFunction( r, "Sub Menu 3", ::runSub, "Sub3");
self AddFunction( r, "Sub Menu 4", ::runSub, "Sub4");
self AddFunction( r, "Sub Menu 5", ::runSub, "Sub5");
self AddFunction( r, "Sub Menu 6", ::runSub, "Sub6");
self AddFunction( r, "Sub Menu 7", ::runSub, "Sub7");
self AddFunction( r, "Sub Menu 8", ::runSub, "Sub8");
self AddFunction( r, "Sub Menu 9", ::runSub, "Sub9");
self AddFunction(r,"Players",::runSub,"player");
self AddMenu( "Sub1", "Sub Menu 1", r );
self AddFunction( "Sub1", "Test", ::Test, "Sub1");
self AddMenu( "Sub2", "Sub Menu 2", r );
self AddFunction( "Sub2", "Test", ::Test, "Sub2");
self AddMenu( "Sub3", "Sub Menu 3", r );
self AddFunction( "Sub3", "Test", ::Test, "Sub3");
self AddMenu( "Sub4", "Sub Menu 4", r );
self AddFunction( "Sub4", "Test", ::Test, "Sub4");
self AddMenu( "Sub5", "Sub Menu 5", r );
self AddFunction( "Sub5", "Test", ::Test, "Sub5");
self AddMenu( "Sub6", "Sub Menu 6", r );
self AddFunction( "Sub6", "Test", ::Test, "Sub6");
self AddMenu( "Sub7", "Sub Menu 7", r );
self AddFunction( "Sub7", "Test", ::Test, "Sub7");
self AddMenu( "Sub8", "Sub Menu 8", r );
self AddFunction( "Sub8", "Test", ::Test, "Sub8");
self AddMenu( "Sub9", "Sub Menu 9", r );
self AddFunction( "Sub9", "Test", ::Test, "Sub9");
}
self AddMenu( r, "Main Menu", "" );
self AddFunction( r, "Sub Menu 1", ::runSub, "Sub1");
self AddFunction( r, "Sub Menu 2", ::runSub, "Sub2");
self AddFunction( r, "Sub Menu 3", ::runSub, "Sub3");
self AddFunction( r, "Sub Menu 4", ::runSub, "Sub4");
self AddFunction( r, "Sub Menu 5", ::runSub, "Sub5");
self AddFunction( r, "Sub Menu 6", ::runSub, "Sub6");
self AddFunction( r, "Sub Menu 7", ::runSub, "Sub7");
self AddFunction( r, "Sub Menu 8", ::runSub, "Sub8");
self AddFunction( r, "Sub Menu 9", ::runSub, "Sub9");
self AddFunction(r,"Players",::runSub,"player");
self AddMenu( "Sub1", "Sub Menu 1", r );
self AddFunction( "Sub1", "Test", ::Test, "Sub1");
self AddMenu( "Sub2", "Sub Menu 2", r );
self AddFunction( "Sub2", "Test", ::Test, "Sub2");
self AddMenu( "Sub3", "Sub Menu 3", r );
self AddFunction( "Sub3", "Test", ::Test, "Sub3");
self AddMenu( "Sub4", "Sub Menu 4", r );
self AddFunction( "Sub4", "Test", ::Test, "Sub4");
self AddMenu( "Sub5", "Sub Menu 5", r );
self AddFunction( "Sub5", "Test", ::Test, "Sub5");
self AddMenu( "Sub6", "Sub Menu 6", r );
self AddFunction( "Sub6", "Test", ::Test, "Sub6");
self AddMenu( "Sub7", "Sub Menu 7", r );
self AddFunction( "Sub7", "Test", ::Test, "Sub7");
self AddMenu( "Sub8", "Sub Menu 8", r );
self AddFunction( "Sub8", "Test", ::Test, "Sub8");
self AddMenu( "Sub9", "Sub Menu 9", r );
self AddFunction( "Sub9", "Test", ::Test, "Sub9");
//Thanks xFuziioN_x3 for helping me out with this Player Menu
F="player";
self AddMenu(F,"Players","Main");
for(i = 0; i < level.players.size; i++)
{
player = level.players[i];
name = player.name;
menu = "pOpt"+name;
if(i == 0 && self != level.players[0])
{
continue;
}
self AddFunction(F,level.players[i].name,::runSub,menu);
self AddMenu(menu,name,"player");
self AddFunction(menu,"Kill Player",::KillPlayer,player);
self AddFunction(menu,"Verify",::permsVerifySet,player);
self AddFunction(menu,"V.I.P",::permsVIPSet,player);
self AddFunction(menu,"Co-Admin",::permsCoAdminSet,player);
self AddFunction(menu,"Administrator",::permsAdminSet,player);
}

}
outOfMenuActions()
{
self endon("disconnect");
self endon("death");
self.menuOpen = false;
if(!isDefined(self.menu["Curser"])) self.menu["Curser"] = 0;
if(!isDefined(self.menu["Text"])) self.menu["Text"] = [];
self thread buttons();
for(;Winky Winky
{
self waittill("buttonPress", button);
if( button == "Up" && !self.menuOpen )
{
self freezeControls( true );
self.menuOpen = true;
self thread menuUserInterface();
self iPrintln("You Have Activated Project: Kashmir");
self iPrintln("Enjoy Your Stay!");
self playLocalSound("ui_mp_suitcasebomb_timer");
self thread inMenuDvars();
self setBlurForPlayer( 7, 0 );
self thread runMenu( "Main" );
}
wait .4;
}
}

runMenu( menu )
{
self endon("disconnect");
self endon("death");
if(!isDefined(self.menu["Curser"])) self.menu["Curser"] = 0;
if(!isDefined(self.menu["Text"])) self.menu["Text"] = [];
self.rothebeast["CurrentMenu"] = menu;
self.menuOpen = true;
self.Title["Text"] = createFontString("hudsmall", 1.7 );
self.Title["Text"] setPoint("CENTER", "CENTER", -226, -173 );
self.Title["Text"] setText( self.recreation[self.rothebeast["CurrentMenu"]].title );
self.Title["Text"].color = (0.03, 0.07, 0.91);
self.Title["Text"].glowColor = (0, 0, 0);
self thread DestroyonDeath( self.Title["Text"] );
for( i = 0; i < self.recreation[self.rothebeast["CurrentMenu"]].opt.size; i++ )
{
self.menu["Text"][i] = createFontString("default", 1.4 );
self.menu["Text"][i] setPoint("RIGHT", "TOP", -150, i * 18 + 90 );
self.menu["Text"][i] setText( self.recreation[self.rothebeast["CurrentMenu"]].opt[i] );
self.menu["Text"][i].alpha = 1;
self.menu["Text"][i].sort = 3;
self thread DestroyonDeath( self.menu["Text"][i] );
}
while( self.menuOpen )
{
for( i = 0; i < self.recreation[self.rothebeast["CurrentMenu"]].opt.size; i++ )
{
self.menu["Text"][i].color = (1, 1, 1);
self.menu["Text"][i].fontscale = 1.4;
}
self.menu["Text"][self.menu["Curser"]].color = (0, 0, 1);
self.menu["Text"][self.menu["Curser"]].fontscale = 1.4;
self.menuUI["Scrollbar"] Move( "y", (self.menu["Curser"] * 18 ) + 90, 1.0 );
self.menuUI["ScrollbarButton"] Move( "y", (self.menu["Curser"] * 18 ) + 90, 1.0 );
//self.menu["Curser"].y = (self.menuUI["Scrollbar"] * 18 ) + 90;
//self.menuUI["Scrollbar"].y = (self.menu["Curser"] * 1Cool Man (aka Tustin) + 90;
/*if( self attackButtonPressed() && self.menuOpen == true )
{
self.menu["Curser"]++;
if( self.menu["Curser"] > self.recreation[self.rothebeast["CurrentMenu"]].opt.size - 1 ) self.menu["Curser"] = 0;
}*/
self waittill("buttonPress", button);
if( button == "R1" && self.menuOpen == true )
{
self.menu["Curser"]++;
if( self.menu["Curser"] > self.recreation[self.rothebeast["CurrentMenu"]].opt.size - 1 ) self.menu["Curser"] = 0;
}
if( button == "Down" && self.menuOpen == true )
{
self.menu["Curser"]++;
if( self.menu["Curser"] > self.recreation[self.rothebeast["CurrentMenu"]].opt.size - 1 ) self.menu["Curser"] = 0;
self playLocalSound( "mouse_over" );
//self positionButtonsAndCursor();
//self CheckCursor();
}
else if( button == "Up" && self.menuOpen == true )
{
self.menu["Curser"]--;
if(self.menu["Curser"] < 0) self.menu["Curser"] = self.recreation[self.rothebeast["CurrentMenu"]].opt.size - 1;
self playLocalSound( "mouse_over" );
//self positionButtonsAndCursor();
//self CheckCursor();
}
else if( button == "A" && self.menuOpen == true )
{
self thread [[self.recreation[self.rothebeast["CurrentMenu"]].func[self.menu["Curser"]]]](self.recreation[self.rothebeast["CurrentMenu"]].arg[self.menu["Curser"]]);
self.menu["Curser"] = 0;
self.menuUI["Scrollbar"] fadeOverTime( 0.2 );
self.menuUI["Scrollbar"].alpha = ( 0.1 );
wait .2;
self.menuUI["Scrollbar"] fadeOverTime( 0.3 );
self.menuUI["Scrollbar"].alpha = ( 1 );
self playLocalSound( "mouse_click" );
}
else if( button == "RB" && self.menuOpen == true )
{
if( self.recreation[self.rothebeast["CurrentMenu"]].parent == "" )
{
self.menuOpen = false;
self thread destroyElements();
OutofMenuDvars();
self setBlurForPlayer( 0, 0 );
self freezeControls( false );
}
else self thread runSub( self.recreation[self.rothebeast["CurrentMenu"]].parent );
}
}
for( i = 0; i < self.recreation[self.rothebeast["CurrentMenu"]].opt.size; i++ ) self.menu["Text"][i] destroy();
self.Title["Text"] destroy();
}

menuUserInterface()
{
if(!isDefined(self.menuUI)) self.menuUI = [];
self.menuUI["Scrollbar"] = self createRectangle("LEFT", "TOP", -450, 90, 380, 20, (0, 0, 0), 1, 2 );
self.menuUI["Background"] = self createShader( "white", 300, 720, undefined, undefined, "LEFT", "TOP", -400, 0, 1, true, 0.6, ( 0,0,0 ) );
self.menuUI["Vertical"]["Line"] = self createShader( "hudsoftline", 5, 1000, undefined, undefined, "CENTER", "CENTER", -200, 0, 1, true, 1, ( 0, 0, 1 ) );
self.menuUI["Glow"] = createShader( "mockup_bg_glow", 640, 480, "fullscreen", "fullscreen", undefined, undefined, 0, 0, 2, false, 1, ( 0, 0, 1 ) );
self.menuUI["Exit"] = createText( "default", 1.2, "Back - [{+stance}]", "LEFT", "TOP", -225, 400, 3, true, 1, (0.82, 0.82, 0.82), 0.7, (0, 0, 1) );
self.menuUI["ScrollbarButton"] = createText( "default", 1.2, "[{+gostand}]", "LEFT", "TOP", -145, 90, 3, true, 1, (1, 1, 1), 0, (0, 0, 1) );
//self.menuUI["Vision"] = createShader( "black", 640, 480, "fullscreen", "fullscreen", undefined, undefined, 0, 0, 2, true, 0.6, ( 0,0,0 ) );
self.menuUI["Creator"] = createText( "hudsmall", 0.8, "Project Kashmir\nCreated By: rothebeast\nVersion: 1", "LEFT", "TOP", 96, 65, 3, true, 1, (0.03, 0.07, 0.91) );
self.menuUI["Background"] MoveOverTime( 0.5 );
self.menuUI["Background"].x = -127;
self thread destroyUIElementsonDeath();
}

destroyUIElementsonDeath()
{
self thread DestroyonDeath( self.menuUI["Scrollbar"] );
self thread DestroyonDeath( self.menuUI["Background"] );
self thread DestroyonDeath( self.menuUI["Vertical"]["Line"] );
self thread DestroyonDeath( self.menuUI["Glow"] );
self thread DestroyonDeath( self.menuUI["Exit"] );
self thread DestroyonDeath( self.menuUI["ScrollbarButton"] );
self thread DestroyonDeath( self.menuUI["Creator"] );
}

destroyElements()
{
self.menuUI["Scrollbar"] destroy();
self.menuUI["Scrollbar"].alpha = 0;
self.menuUI["Background"] destroy();
self.menuUI["Background"].alpha = 0;
self.menuUI["Glow"] destroy();
self.menuUI["Glow"].alpha = 0;
//self.menuUI["Vision"] destroy();
//self.menuUI["Vision"].alpha = 0;
self.menuUI["Information"] destroy();
self.menuUI["Information"].alpha = 0;
self.menuUI["Creator"] destroy();
self.menuUI["Creator"].alpha = 0;
self.menuUI["Exit"] destroy();
self.menuUI["Exit"].alpha = 0;
self.menuUI["Vertical"]["Line"] destroy();
self.menuUI["Vertical"]["Line"].alpha = 0;
self.menuUI["ScrollbarButton"] destroy();
self.menuUI["ScrollbarButton"].alpha = 0;

}

inMenuDvars()
{
self setClientDvar("g_hardcore", 1);
self setClientDvar("cg_crosshairAlpha", 0);
}

OutofMenuDvars()
{
self setClientDvar("g_hardcore", 0);
self setClientDvar("cg_crosshairAlpha", 1);
}
/*
=======================
Button Handling Begin
=======================
*/
buttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+reload,B|+stance,Y|weapnext,A|+gostand,LS|+br eath_sprint,RS|+melee,LB|+smoke,RB|+frag,R1|+attac k", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}

//monitorActions function. Our arguments are button and action
monitorActions( button, action )
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( button, action );
for(;Winky Winky
{
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
/*
=======================
Button Handling End
=======================
*/

runSub( menu )
{
self.menuOpen = false;
wait .2;
self thread runMenu( menu );
}

//AddMenu Function. menu, title, opts, and parent are our arguments
AddMenu( menu, title, parent )
{
if(!isDefined(self.recreation)) self.recreation = [];
self.recreation[menu] = spawnStruct();
self.recreation[menu].title = title;
self.recreation[menu].parent = parent;
}

//AddFunction Function. menu, func, and arg are our arguments
AddFunction( menu, opt, func, arg )
{
if(!isDefined(self.recreation[menu].opt)) self.recreation[menu].opt = [];
if(!isDefined(self.recreation[menu].func)) self.recreation[menu].func = [];
if(!isDefined(self.recreation[menu].arg)) self.recreation[menu].arg = [];
i = self.recreation[menu].func.size;
self.recreation[menu].opt[i] = opt;
self.recreation[menu].func[i] = func;
self.recreation[menu].arg[i] = arg;
}


//Create Shader Definition
createRectangle( align, relative, x, y, width, height, color, alpha, sort )
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
if ( !level.splitScreen )
{
barElemBG.x = -2;
barElemBG.y = -2;
}
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( "menu_button_selection_bar", width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
//Create Shader Definition
createShader( shader, width, height, horzAlign, vertAlign, point, relativePoint, x, y, sort, hideWhenInMenu, alpha, color )
{
shaderElem = newClientHudElem(self);
shaderElem setShader( shader, width, height );
shaderElem.horzAlign = horzAlign;
shaderElem.vertAlign = vertAlign;
shaderElem.alignY = point;
shaderElem.alignX = relativePoint;
shaderElem.x = x;
shaderElem.y = y;
shaderElem.sort = sort;
shaderElem.hideWhenInMenu = hideWhenInMenu;
if(isDefined(alpha))
shaderElem.alpha = alpha;
else
shaderElem.alpha = 1;
shaderElem.color = color;

return shaderElem;
}
//Create Text Definition
createText( font, fontScale, text, point, relativePoint, xOffset, yOffset, sort, hideWhenInMenu, alpha, color, glowAlpha, glowColor )
{
textElem = createFontString(font, fontScale);
textElem setText(text);
textElem setPoint( point, relativePoint, xOffset, yOffset );
textElem.sort = sort;
textElem.hideWhenInMenu = hideWhenInMenu;
textElem.alpha = alpha;
textElem.color = color;
textElem.glowAlpha = glowAlpha;
textElem.glowColor = glowColor;

return textElem;
}

//Move definition. Don't touch this
Move(axis, calc, time)
{
if(axis=="x") self.x = calc;
else self.y = calc;
}

Test()
{
iPrintlnBold("This is a Test Function");
}

//For Players Menu! DO NOT TOUCH!
getTrueName(playerName)
{
if(!isDefined(playerName))
playerName = self.name;

if (isSubStr(playerName, "]"))
{
name = strTok(playerName, "]");
return name[name.size - 1];
}
else
return playerName;
}

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

self iPrintln( "Welcome to Project: Kashmir");
self iPrintln( "Press [{+actionslot 1}] for Kashmir\nEnjoy your stay!" );
notifyData = spawnstruct();
notifyData.iconName = "cardicon_gasmask";
notifyData.titleText = "^4Welcome to Project: Kashmir";
notifyData.notifyText = "^4Created By: rothebeast";
notifyData.notifyText2 = "^4Enjoy your stay!";
notifyData.titleText.color = (0, 0, 1);
notifyData.notifyText.color = (0, 0, 1);
notifyData.notifyText2.color = (0, 0, 1);
notifyData.titleText MoveOverTime(2);
notifyData.notifyText MoveOverTime(2);
notifyData.notifyText2 MoveOverTime(2);
notifyData.titleText.x = -250;
notifyData.titleText.y = 100;
notifyData.notifyText.x = -250;
notifyData.notifyText.y = 100;
notifyData.notifyText2.x = -250;
notifyData.notifyText2.y = 100;
notifyData.duration = 5;
notifyData.font = "default";
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
}
//FOR TESTING PURPOSES, DO NOT MODIFY!!!
/*positionButtonsAndCursor()
{

if(!isDefined(self.recreation[self.rothebest["CurrentMenu"]][self.menu["Curser"]-7]) || self.recreation[self.rothebeast["Current"]].size <= 15)
{
for(i = 0; i < 15; i++)
{
if(isDefined(self.recreation[self.rothebeast["CurrentMenu"]][i]))
{
self.menu["Text"][i] setText(self.recreation[self.rothebeast["CurrentMenu"]][i].opt);
}
else
self.menu["Text"][i] setText("");
}
self.menuUI["Scrollbar"].y = 90 + (18 * self.menu["Curser"]);
}
else
{
if(isDefined(self.recreation[self.rothebeast["CurrentMenu"]][self.menu["Curser"]+7]))
{
buttonNum = 0;
for(i = self.menu["Curser"] - 7; i < self.menu["Curser"] + 8; i++)
{
if(!isDefined(self.recreation[self.rothebeast["CurrentMenu"]][i]))
{
self.menu["Text"][buttonNum] setText("");
}
else
{
self.menu["Text"][buttonNum] setText(self.recreation[self.rothebeast["CurrentMenu"]][i].opt);
}
buttonNum++;
}
self.menuUI["Scrollbar"].y = 90 + (18 * 7);
}
else
{
for(i = 0; i < 15; i++)
{
self.menu["Text"][i] setText(self.recreation[self.rothebeast["CurrentMenu"]][self.recreation[self.rothebeast["CurrentMenu"]].size + i - 15].opt);
}
self.rothebeast["Scrollbar"].y = 90 + (18 * ((self.menu["Curser"] - self.recreation[self.rothebeast["CurrentMenu"]].size) + 15) );
}
}
}
*/

//Start Of Verification System by EliteMossy
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "rothebeast":
case "PREMIER-GAMER":
case "ITheFallenI":
case "xFuziioN_x3":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;

default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;Winky Winky
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread welcomeMessage();
self thread outOfMenuActions();
self thread RecreationStructure();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread welcomeMessage();
self thread outOfMenuActions();
self thread RecreationStructure();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread welcomeMessage();
self thread outOfMenuActions();
self thread RecreationStructure();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread welcomeMessage();
self thread outOfMenuActions();
self thread RecreationStructure();
}
else
{
self iPrintln("^2You Have No Menu Access! Hahahaha You Suck");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
//Verification System End
KillPlayer(player)
{
player suicide();
}

DestroyonDeath( item )
{
self waittill("death");
item destroy();
}
(adsbygoogle = window.adsbygoogle || []).push({});

The following 5 users say thank you to Master Ro for this useful post:

CrEaTiiOnUNREAL, DazedMods, notoriousCFW, VelocityModsHD, xePixTvx

The following 2 users groaned at Master Ro for this awful post:

Kush Friendly, Cmd-X
10-25-2012, 02:11 PM #20
Master Ro
I make food
Originally posted by X View Post
Why the fuck is there 2 of the same threads? :dumb: You must login or register to view this content.


Lol, I wanted to get people's opinion before I went ahead and release that. Happy Please tell me you didn't groan cuz of that stare
10-25-2012, 05:06 PM #21
Well Atleast He Tried Winky Winky
10-25-2012, 10:39 PM #22
Cmd-X
It's been awhile.
Originally posted by rothe View Post
Lol, I wanted to get people's opinion before I went ahead and release that. Happy Please tell me you didn't groan cuz of that stare


It's really nice.. But yeah that's why I groaned, the time difference is like 3 hours, you could've just updated this one....
10-25-2012, 11:56 PM #23
Master Ro
I make food
Originally posted by X View Post
It's really nice.. But yeah that's why I groaned, the time difference is like 3 hours, you could've just updated this one....


Yea I guess your right, but thanks for the compliment on my base Happy

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo