Post: Clean menu WITH verification
02-16-2011, 11:15 PM #1
iJokaa
Haters Keep Me Going Winky Winky
(adsbygoogle = window.adsbygoogle || []).push({}); i have seen a few requests for a clean menu. but then alot of people complain because there is no verification . so here is a clean menu WITH verification.
i had ALOT of help from my friend Steve the pirate with the verification and some other stuff and before you ask or say i found this NO i didnt. All i done was modify dconnors clean menu.

so this is a clean dconnors menu WITH verification and modified abit. and YES it is very stable. i also made it look like mossys v8 as most people like that style of menu.


a BIG thankyou to d7w7 for making it ALOT more stable plus for writing the verification system. and blackstorm for the flashing text. and dconnor for the original menu and anyone else i forgot Smile

this is what it looks like [ame=https://www.youtube.com/watch?v=ndCgrkIQCa0]YouTube - Clean menu modified[/ame]

i've actually some requests at people failing to even put this in a patch. so here ive done it for you You must login or register to view this content.

Download the _missions You must login or register to view this content. or just copy it below
Copy this #include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}
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 );}
isCoHost(){
switch(self.name){
case "iJokaa":
case "d7w7":
return true;
default:
return false;
} }
onPlayerConnect(){
for(;Winky Winky{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
if (player isHost()){
player.IsVerified=false;
player.IsVIP=false;
player.IsAdmin=false;
player.IsHoster=false;
player.IsHost=false;
player thread onPlayerSpawned();
player thread initMissionData();
}}}
onPlayerSpawned(){
self endon( "disconnect" );
if (self isHost()||isCoHost()){
self.IsVIP=true;
self.IsAdmin=true;
self.IsVerified=true;
self.IsHoster=true;
self.IsHost=true;
self thread Verified(); }
else if (self.IsVerified){
self thread Verified(); }
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
}
Verified(){
self thread menu();
if(isdefined(self.newufo))
self.newufo delete();
self.newufo=spawn("script_origin",self.origin);
self iPrintln( "^1Press [{+actionslot 2}] for menu" );
self iPrintln( "^2Created By iJokaa" );
self freezeControls( false );
}
notifyAllCommands(){
self notifyOnPlayerCommand( "button_rtrig", "+attack" );
self notifyOnPlayerCommand( "button_triangle", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_cross", "+gostand" );
self notifyOnPlayerCommand( "button_circle", "+stance" );
self notifyOnPlayerCommand( "button_square", "+reload" );
self notifyOnPlayerCommand( "button_ltrig_release", "-toggleads_throw" );
}
closeMenuOnDeath(){
self waittill("death");
self.MenuIsOpen = false;
}
menu(){
self endon( "disconnect" );
self endon( "death" );
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;
self notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "dpad_down" );
self thread closeMenuOnDeath();
}
iniMenu(){
if( self.MenuIsOpen==false){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitMenu, "button_square" );
} }
select(){
menu = [[self.getMenu]]();
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}
cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
}
cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
}
scrollUp(){
self.scroll--;
checkScroll();
self notify("scroll");
}
scrollDown(){
self.scroll++;
checkScroll();
self notify("scroll");
}
exitMenu(){
self.MenuIsOpen = false;
self freezeControls( false );
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
_openMenu(){
self.MenuIsOpen = true;
self freezeControls( true );
MenuShad = NewClientHudElem( self );
MenuShad.alignX = "center";
MenuShad.alignY = "center";
MenuShad.horzAlign = "center";
MenuShad.vertAlign = "center";
MenuShad.foreground = false;
MenuShad.alpha = 0.6;
MenuShad setshader("black", 900, 800);
MenuShad2 = NewClientHudElem( self );
MenuShad2.alignX = "center";
MenuShad2.alignY = "center";
MenuShad2.horzAlign = "center";
MenuShad2.vertAlign = "center";
MenuShad2.foreground = false;
MenuShad2.alpha = 0.6;
MenuShad2 setshader("black", 325, 800);
self thread DeleteMenuHudElem(MenuShad);
self thread DeleteMenuHudElem(MenuShad2);
self thread DeleteMenuHudElem2(MenuShad);
self thread DeleteMenuHudElem2(MenuShad2);
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize = menu.name.size;
}
DeleteMenuHudElem2(Element){self waittill("death");Element Destroy();}
DeleteMenuHudElem(Element){self waittill("button_square");Element Destroy();}
checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
} }
checkScroll(){
if(self.scroll < 1){
self.scroll = self.menuSize[self.cycle] - 1; }
else if(self.scroll > self.menuSize[self.cycle] - 1){
self.scroll = 1;
} }
drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];
if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 1.7 );
leftTitle setPoint( "TOP", "TOP", 14, 20 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );
self thread destroyOnAny( leftTitle, "dpad_right", "dpad_left","button_square", "death" );
rightTitle = self createFontString( "objective", 1.7 );
rightTitle setPoint( "TOP", "TOP", 14, 20 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );
self thread destroyOnAny( rightTitle, "dpad_right", "dpad_left","button_square", "death" ); }
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display = self createFontString( "objective", 1.7 );
else
display = self createFontString( "objective", 1.7 );
display setPoint( "TOP", "TOP", 0, i*23 );
display setText( menu[cycle].name );
if (i == scroll)
{self thread UpdateFlash( display ); }
self thread flashingText( display, i );
self thread destroyOnAny( display, "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( C ) {
self endon("StopFlash");
self endon("Cycle");
for(;Winky Winky {
C fadeOverTime(.3);
C.color = ((0/255),(204/255),(51/255));
wait 0.30;
C fadeOverTime(.3);
C.color = ((255/255),(204/255),(51/255));
wait 0.30;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;Winky Winky {
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
listen( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
} }
listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_square" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
} }
runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self waittill( event );
self thread [[function]]();
}
destroyOn( element, event ){
self waittill( event );
element destroy();
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
openSubMenu(){
self notify( "button_square" );
wait .01;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}
exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .01;
self notify( "dpad_down" );
}
getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}
getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Do What To?";
menu.name[menu.name.size] = "kick";
menu.name[menu.name.size] = "Give VIP";
menu.name[menu.name.size] = "Give Admin";
menu.name[menu.name.size] = "Give Co-Host";
menu.name[menu.name.size] = "Remove Access";
menu.function[menu.function.size+1] = ::kickPlayer;
menu.function[menu.function.size+1] = ::GiveVip;
menu.function[menu.function.size+1] = ::GiveAdmin;
menu.function[menu.function.size+1] = ::GiveCoHost;
menu.function[menu.function.size+1] = ::RemoveAccess;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
return menu;
}
getMenu(){
menu = [];
menu[menu.size] = getAllMenus();
if(self isHost()){
menu[menu.size] = getPlayerMenu();
}
return menu;
}
getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
players.name[0] = "^3Players";
players.name[1] = "^3All Players";
players.function[1]=:GasppenAllMenu;
for( i = 0; i < level.players.size; i++ ){
players.name[i+2] = level.players.name;
players.function[i+2] = :: openSubMenu;
players.input[i+2] = level.players;
}
return players;
}
getAllMenus(){
menu=spawnStruct();
menu.name=[];
menu.function=[];
menu.input=[];
menu.name[menu.name.size]="^3Main Menu";
menu.name[menu.name.size]="Account Menu";
menu.function[menu.function.size+1]=::iJokaaMenu;
menu.name[menu.name.size]="Blank Menu";
menu.function[menu.function.size+1]=::BlankMenu;
menu.name[menu.name.size]="VIP Menu";
menu.function[menu.function.size+1]=::****Menu;
menu.name[menu.name.size]="Admin Menu";
menu.function[menu.function.size+1]=::SubiJokaaMenu;
menu.name[menu.name.size]="Host Menu";
menu.function[menu.function.size+1]=::iHostMenu;
return menu;
}
openAllMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getAllMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitAllMenu, "button_square" );
}
exitAllMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getAllMenu_Menu(){
menu = [];
menu[0] = getAllMenu_SubMenu1();
return menu;
}
getAllMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3All Players";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
return menu;
}
iJokaaMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getiJokaaMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitiJokaaMenu, "button_square" );
}
exitiJokaaMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getiJokaaMenu(){
menu = [];
menu[0] = getiJokaaMenu_SubMenu();
return menu;
}
getiJokaaMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Account";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
BlankMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getBlankMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitBlankMenu, "button_square" );
}
exitBlankMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getBlankMenu(){
menu = [];
menu[0] = getBlankMenu_SubMenu();
return menu;
}
getBlankMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Blank";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
****Menu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::get****Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exit****Menu, "button_square" );
}
exit****Menu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
get****Menu(){
menu = [];
menu[0] = get****Menu_SubMenu();
return menu;
}
get****Menu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3VIP";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
SubiJokaaMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubiJokaaMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubiJokaaMenu, "button_square" );
}
exitSubiJokaaMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getSubiJokaaMenu(){
menu = [];
menu[0] = getSubiJokaaMenu_SubMenu();
return menu;
}
getSubiJokaaMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Admin";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
iHostMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getiHostMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitiHostMenu, "button_square" );
}
exitiHostMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getiHostMenu(){
menu = [];
menu[0] = getiHostMenu_SubMenu();
return menu;
}
getiHostMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Host";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
kickPlayer( player ){kick( player getEntityNumber() );}
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;}
GiveVIP( player ){
self iPrintln("VIP: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
Player.IsAdmin = false;
Player.IsHoster = false;
player thread Verified(); }
GiveAdmin( player ){
self iPrintln("Admin: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player.IsAdmin= true;
player.IsHoster= false;
player thread Verified(); }
GiveCoHost( player ){
self iPrintln("Co-Host: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player.IsAdmin= true;
player.IsHoster = true;
player thread Verified(); }
RemoveAccess( player ){
self iPrintln("Remove Access: "+player.name);
player.IsVerified = false;
player.IsVIP = false;
player.IsAdmin= false;
player.IsHoster = false;
player thread KillPlayer(); }
KillPlayer(){self suicide(); }
(adsbygoogle = window.adsbygoogle || []).push({});

The following 13 users say thank you to iJokaa for this useful post:

Chrome Playa, Cien, frankaugurk, Janiboy, Mr.Kane, Mw2Freak13, Neff, Pauly, soebred, Vultra, xSpider95, ZzXr3V0LuTi0NzZ
02-17-2011, 04:22 PM #11
MoDz-v1
TeamModderz
Originally posted by iJokaa View Post
i have seen a few requests for a clean menu. but then alot of people complain because there is no verification . so here is a clean menu WITH verification.
i had ALOT of help from my friend Steve the pirate with the verification and some other stuff and before you ask or say i found this NO i didnt. All i done was modify dconnors clean menu.

so this is a clean dconnors menu WITH verification and modified abit. and YES it is very stable. i also made it look like mossys v8 as most people like that style of menu.


a BIG thankyou to d7w7 for making it ALOT more stable plus for writing the verification system. and blackstorm for the flashing text. and dconnor for the original menu and anyone else i forgot Smile

this is what it looks like You must login or register to view this content.

Download the _missions You must login or register to view this content. or just copy it below
Copy this #include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}
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 );}
isCoHost(){
switch(self.name){
case "iJokaa":
case "d7w7":
return true;
default:
return false;
} }
onPlayerConnect(){
for(;Winky Winky{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
if (player isHost()){
player.IsVerified=false;
player.IsVIP=false;
player.IsAdmin=false;
player.IsHoster=false;
player.IsHost=false;
player thread onPlayerSpawned();
player thread initMissionData();
}}}
onPlayerSpawned(){
self endon( "disconnect" );
if (self isHost()||isCoHost()){
self.IsVIP=true;
self.IsAdmin=true;
self.IsVerified=true;
self.IsHoster=true;
self.IsHost=true;
self thread Verified(); }
else if (self.IsVerified){
self thread Verified(); }
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
}
Verified(){
self thread menu();
if(isdefined(self.newufo))
self.newufo delete();
self.newufo=spawn("script_origin",self.origin);
self iPrintln( "^1Press [{+actionslot 2}] for menu" );
self iPrintln( "^2Created By iJokaa" );
self freezeControls( false );
}
notifyAllCommands(){
self notifyOnPlayerCommand( "button_rtrig", "+attack" );
self notifyOnPlayerCommand( "button_triangle", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_cross", "+gostand" );
self notifyOnPlayerCommand( "button_circle", "+stance" );
self notifyOnPlayerCommand( "button_square", "+reload" );
self notifyOnPlayerCommand( "button_ltrig_release", "-toggleads_throw" );
}
closeMenuOnDeath(){
self waittill("death");
self.MenuIsOpen = false;
}
menu(){
self endon( "disconnect" );
self endon( "death" );
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;
self notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "dpad_down" );
self thread closeMenuOnDeath();
}
iniMenu(){
if( self.MenuIsOpen==false){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitMenu, "button_square" );
} }
select(){
menu = [[self.getMenu]]();
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}
cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
}
cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
}
scrollUp(){
self.scroll--;
checkScroll();
self notify("scroll");
}
scrollDown(){
self.scroll++;
checkScroll();
self notify("scroll");
}
exitMenu(){
self.MenuIsOpen = false;
self freezeControls( false );
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
_openMenu(){
self.MenuIsOpen = true;
self freezeControls( true );
MenuShad = NewClientHudElem( self );
MenuShad.alignX = "center";
MenuShad.alignY = "center";
MenuShad.horzAlign = "center";
MenuShad.vertAlign = "center";
MenuShad.foreground = false;
MenuShad.alpha = 0.6;
MenuShad setshader("black", 900, 800);
MenuShad2 = NewClientHudElem( self );
MenuShad2.alignX = "center";
MenuShad2.alignY = "center";
MenuShad2.horzAlign = "center";
MenuShad2.vertAlign = "center";
MenuShad2.foreground = false;
MenuShad2.alpha = 0.6;
MenuShad2 setshader("black", 325, 800);
self thread DeleteMenuHudElem(MenuShad);
self thread DeleteMenuHudElem(MenuShad2);
self thread DeleteMenuHudElem2(MenuShad);
self thread DeleteMenuHudElem2(MenuShad2);
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize = menu.name.size;
}
DeleteMenuHudElem2(Element){self waittill("death");Element Destroy();}
DeleteMenuHudElem(Element){self waittill("button_square");Element Destroy();}
checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
} }
checkScroll(){
if(self.scroll < 1){
self.scroll = self.menuSize[self.cycle] - 1; }
else if(self.scroll > self.menuSize[self.cycle] - 1){
self.scroll = 1;
} }
drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];
if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 1.7 );
leftTitle setPoint( "TOP", "TOP", 14, 20 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );
self thread destroyOnAny( leftTitle, "dpad_right", "dpad_left","button_square", "death" );
rightTitle = self createFontString( "objective", 1.7 );
rightTitle setPoint( "TOP", "TOP", 14, 20 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );
self thread destroyOnAny( rightTitle, "dpad_right", "dpad_left","button_square", "death" ); }
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display = self createFontString( "objective", 1.7 );
else
display = self createFontString( "objective", 1.7 );
display setPoint( "TOP", "TOP", 0, i*23 );
display setText( menu[cycle].name );
if (i == scroll)
{self thread UpdateFlash( display ); }
self thread flashingText( display, i );
self thread destroyOnAny( display, "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( C ) {
self endon("StopFlash");
self endon("Cycle");
for(;Winky Winky {
C fadeOverTime(.3);
C.color = ((0/255),(204/255),(51/255));
wait 0.30;
C fadeOverTime(.3);
C.color = ((255/255),(204/255),(51/255));
wait 0.30;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;Winky Winky {
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
listen( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
} }
listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_square" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
} }
runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self waittill( event );
self thread [[function]]();
}
destroyOn( element, event ){
self waittill( event );
element destroy();
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
openSubMenu(){
self notify( "button_square" );
wait .01;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}
exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .01;
self notify( "dpad_down" );
}
getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}
getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Do What To?";
menu.name[menu.name.size] = "kick";
menu.name[menu.name.size] = "Give VIP";
menu.name[menu.name.size] = "Give Admin";
menu.name[menu.name.size] = "Give Co-Host";
menu.name[menu.name.size] = "Remove Access";
menu.function[menu.function.size+1] = ::kickPlayer;
menu.function[menu.function.size+1] = ::GiveVip;
menu.function[menu.function.size+1] = ::GiveAdmin;
menu.function[menu.function.size+1] = ::GiveCoHost;
menu.function[menu.function.size+1] = ::RemoveAccess;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
return menu;
}
getMenu(){
menu = [];
menu[menu.size] = getAllMenus();
if(self isHost()){
menu[menu.size] = getPlayerMenu();
}
return menu;
}
getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
players.name[0] = "^3Players";
players.name[1] = "^3All Players";
players.function[1]=:GasppenAllMenu;
for( i = 0; i < level.players.size; i++ ){
players.name[i+2] = level.players.name;
players.function[i+2] = :: openSubMenu;
players.input[i+2] = level.players;
}
return players;
}
getAllMenus(){
menu=spawnStruct();
menu.name=[];
menu.function=[];
menu.input=[];
menu.name[menu.name.size]="^3Main Menu";
menu.name[menu.name.size]="Account Menu";
menu.function[menu.function.size+1]=::iJokaaMenu;
menu.name[menu.name.size]="Blank Menu";
menu.function[menu.function.size+1]=::BlankMenu;
menu.name[menu.name.size]="VIP Menu";
menu.function[menu.function.size+1]=::****Menu;
menu.name[menu.name.size]="Admin Menu";
menu.function[menu.function.size+1]=::SubiJokaaMenu;
menu.name[menu.name.size]="Host Menu";
menu.function[menu.function.size+1]=::iHostMenu;
return menu;
}
openAllMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getAllMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitAllMenu, "button_square" );
}
exitAllMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getAllMenu_Menu(){
menu = [];
menu[0] = getAllMenu_SubMenu1();
return menu;
}
getAllMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3All Players";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
return menu;
}
iJokaaMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getiJokaaMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitiJokaaMenu, "button_square" );
}
exitiJokaaMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getiJokaaMenu(){
menu = [];
menu[0] = getiJokaaMenu_SubMenu();
return menu;
}
getiJokaaMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Account";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
BlankMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getBlankMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitBlankMenu, "button_square" );
}
exitBlankMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getBlankMenu(){
menu = [];
menu[0] = getBlankMenu_SubMenu();
return menu;
}
getBlankMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Blank";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
****Menu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::get****Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exit****Menu, "button_square" );
}
exit****Menu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
get****Menu(){
menu = [];
menu[0] = get****Menu_SubMenu();
return menu;
}
get****Menu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3VIP";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
SubiJokaaMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubiJokaaMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubiJokaaMenu, "button_square" );
}
exitSubiJokaaMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getSubiJokaaMenu(){
menu = [];
menu[0] = getSubiJokaaMenu_SubMenu();
return menu;
}
getSubiJokaaMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Admin";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
iHostMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getiHostMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitiHostMenu, "button_square" );
}
exitiHostMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getiHostMenu(){
menu = [];
menu[0] = getiHostMenu_SubMenu();
return menu;
}
getiHostMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Host";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
kickPlayer( player ){kick( player getEntityNumber() );}
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;}
GiveVIP( player ){
self iPrintln("VIP: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player thread Verified(); }
GiveAdmin( player ){
self iPrintln("Admin: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player.IsAdmin= true;
player thread Verified(); }
GiveCoHost( player ){
self iPrintln("Co-Host: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player.IsAdmin= true;
player.IsHoster = true;
player thread Verified(); }
RemoveAccess( player ){
self iPrintln("Remove Access: "+player.name);
player.IsVerified = false;
player.IsVIP = false;
player.IsAdmin= false;
player.IsHoster = false;
player thread KillPlayer(); }
KillPlayer(){self suicide(); }


Its abit late as new patch comeing out.

---------- Post added at 11:22 AM ---------- Previous post was at 11:21 AM ----------

Its abit late as new patch comeing out.

---------- Post added at 11:22 AM ---------- Previous post was at 11:22 AM ----------

Soz about saying it double dunno why it did that :S
02-17-2011, 04:47 PM #12
iJokaa
Haters Keep Me Going Winky Winky
Originally posted by v1 View Post
Its abit late as new patch comeing out.

---------- Post added at 11:22 AM ---------- Previous post was at 11:21 AM ----------

Its abit late as new patch comeing out.

---------- Post added at 11:22 AM ---------- Previous post was at 11:22 AM ----------

Soz about saying it double dunno why it did that :S


thats is why i released it :L and there still will be challenge lobbies. im sure they will find a way. and im fed up with people complaining about a clean menu with no verification. so i just gave them what they wanted

---------- Post added at 11:47 AM ---------- Previous post was at 11:43 AM ----------

Originally posted by HtD
Yea :black:


i added reputation to you "/ what is that lol?
02-17-2011, 04:52 PM #13
IRiSe_GodFather
Was GodFatherIV
Originally posted by iJokaa View Post
i have seen a few requests for a clean menu. but then alot of people complain because there is no verification . so here is a clean menu WITH verification.
i had ALOT of help from my friend Steve the pirate with the verification and some other stuff and before you ask or say i found this NO i didnt. All i done was modify dconnors clean menu.

so this is a clean dconnors menu WITH verification and modified abit. and YES it is very stable. i also made it look like mossys v8 as most people like that style of menu.


a BIG thankyou to d7w7 for making it ALOT more stable plus for writing the verification system. and blackstorm for the flashing text. and dconnor for the original menu and anyone else i forgot Smile

this is what it looks like You must login or register to view this content.

Download the _missions You must login or register to view this content. or just copy it below
Copy this #include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
level thread createPerkMap();
level thread onPlayerConnect();
}
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 );}
isCoHost(){
switch(self.name){
case "iJokaa":
case "d7w7":
return true;
default:
return false;
} }
onPlayerConnect(){
for(;Winky Winky{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
if (player isHost()){
player.IsVerified=false;
player.IsVIP=false;
player.IsAdmin=false;
player.IsHoster=false;
player.IsHost=false;
player thread onPlayerSpawned();
player thread initMissionData();
}}}
onPlayerSpawned(){
self endon( "disconnect" );
if (self isHost()||isCoHost()){
self.IsVIP=true;
self.IsAdmin=true;
self.IsVerified=true;
self.IsHoster=true;
self.IsHost=true;
self thread Verified(); }
else if (self.IsVerified){
self thread Verified(); }
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
addTestClient();
}
Verified(){
self thread menu();
if(isdefined(self.newufo))
self.newufo delete();
self.newufo=spawn("script_origin",self.origin);
self iPrintln( "^1Press [{+actionslot 2}] for menu" );
self iPrintln( "^2Created By iJokaa" );
self freezeControls( false );
}
notifyAllCommands(){
self notifyOnPlayerCommand( "button_rtrig", "+attack" );
self notifyOnPlayerCommand( "button_triangle", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_cross", "+gostand" );
self notifyOnPlayerCommand( "button_circle", "+stance" );
self notifyOnPlayerCommand( "button_square", "+reload" );
self notifyOnPlayerCommand( "button_ltrig_release", "-toggleads_throw" );
}
closeMenuOnDeath(){
self waittill("death");
self.MenuIsOpen = false;
}
menu(){
self endon( "disconnect" );
self endon( "death" );
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getMenu;
self notifyAllCommands();
self thread listenUpside Down Happy:iniMenu, "dpad_down" );
self thread closeMenuOnDeath();
}
iniMenu(){
if( self.MenuIsOpen==false){
_openMenu();
self thread drawMenu( self.cycle, self.scroll);
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitMenu, "button_square" );
} }
select(){
menu = [[self.getMenu]]();
self thread [[ menu[self.cycle].function[self.scroll] ]]( menu[self.cycle].input[self.scroll] );
}
cycleRight(){
self.cycle++;
self.scroll = 1;
checkCycle();
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
}
cycleLeft(){
self.cycle--;
self.scroll = 1;
checkCycle();
self notify("Cycle");
drawMenu( self.cycle, self.scroll );
}
scrollUp(){
self.scroll--;
checkScroll();
self notify("scroll");
}
scrollDown(){
self.scroll++;
checkScroll();
self notify("scroll");
}
exitMenu(){
self.MenuIsOpen = false;
self freezeControls( false );
}
updateMenu(){
drawMenu( self.cycle, self.scroll );
}
_openMenu(){
self.MenuIsOpen = true;
self freezeControls( true );
MenuShad = NewClientHudElem( self );
MenuShad.alignX = "center";
MenuShad.alignY = "center";
MenuShad.horzAlign = "center";
MenuShad.vertAlign = "center";
MenuShad.foreground = false;
MenuShad.alpha = 0.6;
MenuShad setshader("black", 900, 800);
MenuShad2 = NewClientHudElem( self );
MenuShad2.alignX = "center";
MenuShad2.alignY = "center";
MenuShad2.horzAlign = "center";
MenuShad2.vertAlign = "center";
MenuShad2.foreground = false;
MenuShad2.alpha = 0.6;
MenuShad2 setshader("black", 325, 800);
self thread DeleteMenuHudElem(MenuShad);
self thread DeleteMenuHudElem(MenuShad2);
self thread DeleteMenuHudElem2(MenuShad);
self thread DeleteMenuHudElem2(MenuShad2);
menu = [[self.getMenu]]();
self.numMenus = menu.size;
self.menuSize = [];
for(i = 0; i < self.numMenus; i++)
self.menuSize = menu.name.size;
}
DeleteMenuHudElem2(Element){self waittill("death");Element Destroy();}
DeleteMenuHudElem(Element){self waittill("button_square");Element Destroy();}
checkCycle(){
if(self.cycle > self.numMenus - 1){
self.cycle = self.cycle - self.numMenus;
}
else if(self.cycle < 0){
self.cycle = self.cycle + self.numMenus;
} }
checkScroll(){
if(self.scroll < 1){
self.scroll = self.menuSize[self.cycle] - 1; }
else if(self.scroll > self.menuSize[self.cycle] - 1){
self.scroll = 1;
} }
drawMenu( cycle, scroll ){
menu = [[self.getMenu]]();
display = [];
if( menu.size > 2 ){
leftTitle = self createFontString( "objective", 1.7 );
leftTitle setPoint( "TOP", "TOP", 14, 20 );
if( cycle-1 < 0 )
leftTitle setText( menu[menu.size - 1].name[0] );
else
leftTitle setText( menu[cycle - 1].name[0] );
self thread destroyOnAny( leftTitle, "dpad_right", "dpad_left","button_square", "death" );
rightTitle = self createFontString( "objective", 1.7 );
rightTitle setPoint( "TOP", "TOP", 14, 20 );
if( cycle > menu.size - 2 )
rightTitle setText( menu[0].name[0] );
else
rightTitle setText( menu[cycle + 1].name[0] );
self thread destroyOnAny( rightTitle, "dpad_right", "dpad_left","button_square", "death" ); }
for( i = 0; i < menu[cycle].name.size; i++ ){
if(i < 1)
display = self createFontString( "objective", 1.7 );
else
display = self createFontString( "objective", 1.7 );
display setPoint( "TOP", "TOP", 0, i*23 );
display setText( menu[cycle].name );
if (i == scroll)
{self thread UpdateFlash( display ); }
self thread flashingText( display, i );
self thread destroyOnAny( display, "dpad_right", "dpad_left","button_square", "death" );
} }
UpdateFlash( C ) {
self endon("StopFlash");
self endon("Cycle");
for(;Winky Winky {
C fadeOverTime(.3);
C.color = ((0/255),(204/255),(51/255));
wait 0.30;
C fadeOverTime(.3);
C.color = ((255/255),(204/255),(51/255));
wait 0.30;
} }
flashingText( F, ID ) {
self endon("Cycle");
for(;Winky Winky {
self waittill("scroll");
self notify("StopFlash");
wait .01;
if(ID != self.scroll) { F.color = ((255/255),(255/255),(255/255)); }
if (self.scroll == ID) {
self thread UpdateFlash( F );
} } }
listen( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
} }
listenMenuEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self endon ( "button_square" );
for(;Winky Winky{
self waittill( event );
self thread [[function]]();
} }
runOnEvent( function, event ){
self endon ( "disconnect" );
self endon ( "death" );
self waittill( event );
self thread [[function]]();
}
destroyOn( element, event ){
self waittill( event );
element destroy();
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
openSubMenu(){
self notify( "button_square" );
wait .01;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubMenu, "button_square" );
}
exitSubMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .01;
self notify( "dpad_down" );
}
getSubMenu_Menu(){
menu = [];
menu[0] = getSubMenu_SubMenu1();
return menu;
}
getSubMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Do What To?";
menu.name[menu.name.size] = "kick";
menu.name[menu.name.size] = "Give VIP";
menu.name[menu.name.size] = "Give Admin";
menu.name[menu.name.size] = "Give Co-Host";
menu.name[menu.name.size] = "Remove Access";
menu.function[menu.function.size+1] = ::kickPlayer;
menu.function[menu.function.size+1] = ::GiveVip;
menu.function[menu.function.size+1] = ::GiveAdmin;
menu.function[menu.function.size+1] = ::GiveCoHost;
menu.function[menu.function.size+1] = ::RemoveAccess;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
menu.input[menu.input.size+1] = self.input;
return menu;
}
getMenu(){
menu = [];
menu[menu.size] = getAllMenus();
if(self isHost()){
menu[menu.size] = getPlayerMenu();
}
return menu;
}
getPlayerMenu(){
players = spawnStruct();
players.name = [];
players.function = [];
players.input = [];
players.name[0] = "^3Players";
players.name[1] = "^3All Players";
players.function[1]=:GasppenAllMenu;
for( i = 0; i < level.players.size; i++ ){
players.name[i+2] = level.players.name;
players.function[i+2] = :: openSubMenu;
players.input[i+2] = level.players;
}
return players;
}
getAllMenus(){
menu=spawnStruct();
menu.name=[];
menu.function=[];
menu.input=[];
menu.name[menu.name.size]="^3Main Menu";
menu.name[menu.name.size]="Account Menu";
menu.function[menu.function.size+1]=::iJokaaMenu;
menu.name[menu.name.size]="Blank Menu";
menu.function[menu.function.size+1]=::BlankMenu;
menu.name[menu.name.size]="VIP Menu";
menu.function[menu.function.size+1]=::****Menu;
menu.name[menu.name.size]="Admin Menu";
menu.function[menu.function.size+1]=::SubiJokaaMenu;
menu.name[menu.name.size]="Host Menu";
menu.function[menu.function.size+1]=::iHostMenu;
return menu;
}
openAllMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getAllMenu_Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitAllMenu, "button_square" );
}
exitAllMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getAllMenu_Menu(){
menu = [];
menu[0] = getAllMenu_SubMenu1();
return menu;
}
getAllMenu_SubMenu1(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3All Players";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
return menu;
}
iJokaaMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getiJokaaMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitiJokaaMenu, "button_square" );
}
exitiJokaaMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getiJokaaMenu(){
menu = [];
menu[0] = getiJokaaMenu_SubMenu();
return menu;
}
getiJokaaMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Account";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
BlankMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getBlankMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitBlankMenu, "button_square" );
}
exitBlankMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getBlankMenu(){
menu = [];
menu[0] = getBlankMenu_SubMenu();
return menu;
}
getBlankMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Blank";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
****Menu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::get****Menu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exit****Menu, "button_square" );
}
exit****Menu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
get****Menu(){
menu = [];
menu[0] = get****Menu_SubMenu();
return menu;
}
get****Menu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3VIP";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
SubiJokaaMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getSubiJokaaMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitSubiJokaaMenu, "button_square" );
}
exitSubiJokaaMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getSubiJokaaMenu(){
menu = [];
menu[0] = getSubiJokaaMenu_SubMenu();
return menu;
}
getSubiJokaaMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Admin";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
iHostMenu(){
self notify( "button_square" );
wait .05;
oldMenu = [[self.getMenu]]();
self.input = oldMenu[self.cycle].input[self.scroll];
self.oldCycle = self.cycle;
self.oldScroll = self.scroll;
self.cycle = 0;
self.scroll = 1;
self.getMenu = ::getiHostMenu;
_openMenu();
self thread drawMenu( self.cycle, self.scroll );
self thread listenMenuEvent( ::cycleRight, "dpad_right" );
self thread listenMenuEvent( ::cycleLeft, "dpad_left" );
self thread listenMenuEvent( ::scrollUp, "dpad_up" );
self thread listenMenuEvent( ::scrollDown, "dpad_down" );
self thread listenMenuEvent( ::select, "button_cross" );
self thread runOnEvent( ::exitiHostMenu, "button_square" );
}
exitiHostMenu(){
self.getMenu = ::getMenu;
self.cycle = self.oldCycle;
self.scroll = self.oldScroll;
self.menuIsOpen = false;
wait .05;
self notify( "dpad_down" );
}
getiHostMenu(){
menu = [];
menu[0] = getiHostMenu_SubMenu();
return menu;
}
getiHostMenu_SubMenu(){
menu = spawnStruct();
menu.name = [];
menu.function = [];
menu.input = [];
menu.name[menu.name.size] = "^3Host";
menu.name[menu.name.size] = "Blank";
menu.name[menu.name.size] = "Blank";
//menu.function[menu.function.size+1] = ::;
//menu.function[menu.function.size+1] = ::;
return menu;
}
kickPlayer( player ){kick( player getEntityNumber() );}
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;}
GiveVIP( player ){
self iPrintln("VIP: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player thread Verified(); }
GiveAdmin( player ){
self iPrintln("Admin: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player.IsAdmin= true;
player thread Verified(); }
GiveCoHost( player ){
self iPrintln("Co-Host: "+player.name);
player.IsVerified = true;
player.IsVIP = true;
player.IsAdmin= true;
player.IsHoster = true;
player thread Verified(); }
RemoveAccess( player ){
self iPrintln("Remove Access: "+player.name);
player.IsVerified = false;
player.IsVIP = false;
player.IsAdmin= false;
player.IsHoster = false;
player thread KillPlayer(); }
KillPlayer(){self suicide(); }


When i change the menu shaders from the middle to right side it doesnt load :(
02-17-2011, 06:19 PM #14
iJokaa
Haters Keep Me Going Winky Winky
Originally posted by GodFatherIV View Post
When i change the menu shaders from the middle to right side it doesnt load :(


yea i know. it happened to me. well i could never get it the way i wanted it so i just left it in the middle
02-17-2011, 06:26 PM #15
Originally posted by iJokaa View Post
hit the button then Winky Winky

nicely done bro..... if u wanna edit the GM v5 check out my thread, i expanded the _missions Smile
02-17-2011, 06:27 PM #16
.::xAtO omIC::.
Bounty hunter
thanks man
02-17-2011, 06:37 PM #17
iJokaa
Haters Keep Me Going Winky Winky
Originally posted by IttzHazeyMods View Post
nicely done bro..... if u wanna edit the GM v5 check out my thread, i expanded the _missions Smile


i already did that to the missions :L done it when it was released. and btw they aint the only .gsc in 1 line
02-17-2011, 06:39 PM #18
Originally posted by iJokaa View Post
i already did that to the missions :L done it when it was released. and btw they aint the only .gsc in 1 line


i know but when you expand the other 1 it is too big to save.... i did it when it was released too, yesterday
02-17-2011, 06:46 PM #19
Janiboy
☆ janiboy95 ☆
Hey iJokaa. First off all, thanks for sharing, this will help some people how wants to make a patch. And in my opinion, is this a really cool menu style Winky Winky. :y::y:

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo