(adsbygoogle = window.adsbygoogle || []).push({});
Here is the code from RoThEb3Ast menu base tut
You must login or register to view this content.
VIDEO
please can someone fix it its a bad syntax!
#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();
}
onPlayerConnect()
{
for(;
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
}
}
onPlayerSpawned()
{
self endon( "disconnect" );
for(;
{
self waittill( "spawned_player" );
self thread StartMenu();//Our Start Menu
self thread MenuStruct();//Our Menu Structure
}
}
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;
}
/*
=======================
Button Handling Begin
=======================
*/
buttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Left|+actionslot 3,Right|+actionslot 4,X|+usereload,B|+stance,Y|weapnext,A|+gostand,LS| +breath_sprint,RS|+melee,LB|+smoke,RB|+frag,R1|+at tack", ",");
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(;
{
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
/*
=======================
Button Handling End
=======================
*/
StartMenu()//Self Thread this to the onPlayerSpawned
{
self endon("disconnect");
self thread buttons();
self.menuOpen = false;
for( ;; )
{
self waittill("buttonPress", button);
if( button == "Up" && !self.menuOpen )
{
self.menuOpen = true;
self freezeControls( true );
self thread loadMenu( "Tut" );
self thread createUserInterface();
}
wait .4;
}
}
loadMenu( menu )
{
self endon("disconnect");
self.menu["Text"] = [];
self.menu["Curser"] = 0;
self.ros["Menu"] = menu;
self.menuOpen = true;
for( i = 0; i < self.rothebeast[self.ros["Menu"]].opt.size; i++ )
{
string = (self.rothebeast[self.ros["Menu"]].opt
);
self.menu["Text"] = createText( "default", 1.3, string, "CENTER", "TOP", 0, i * 18 + 70, 1337, true, 1, (1, 1, 1));
}
while( self.menuOpen )
{
for( i = 0;i < self.rothebeast[self.ros["Menu"]].opt.size; i++ )
{
self.menu["Text"].color = (1, 1, 1);
self.menu["Text"].glowColor = (0, 1, 0);
}
self waittill("buttonPress", button);
if( button == "Up" )
{
self.menu["Curser"]--;
if( self.menu["Curser"] < 0 ) self.menu["Curser"] = self.rothebeast[self.ros["Menu"]].opt.size - 1;
}
if( button == "Down" )
{
self.menu["Curser"]++;
if( self.menu["Curser"] > self.rothebeast[self.ros["Menu"]].opt.size - 1 ) self.menu["Curser"] = 0;
}
if( button == "A" )
{
self thread [[self.rothebeast[self.ros["Menu"]].func[self.menu["Curser"]]]](self.rothebeast[self.ros["Menu"]].arg[self.menu["Curser"]]);
}
if( button == "RB" )
{
if( self.rothebeast[self.ros["Menu"]].parent == "" )
{
self.menuOpen = false;
self freezeControls( false );
self thread destroyUI();
}
else
self thread runSubMenu( self.rothebeast[self.ros["Menu"]].parent );
}
}
for( i = 0; i < self.rothebeast[self.ros["Menu"]].opt.size; i++ ) self.menu["Text"] destroy();
}
destroyUI()
{
self.UI["Shader"] destroy();
}
createUserInterface()
{
self.UI = [];
self.UI["Shader"] = createRectangle( "CENTER", "CENTER", 0, 0, "white", 200, 1000, (0, 0, 0), 1, 6 );
}
runSubMenu( menu )
{
self.menuOpen = false;
wait .1;
self thread loadMenu( menu );
}
AddPageMenu( menu, title, parent )
{
self.rothebeast = [];
self.rothebeast[menu] = spawStruct();
self.rothebeast[menu].title = title;
self.rothebeast[menu].parent = parent;
}
AddPageOpt( menu, opt, func, arg )
{
self.rothebeast[menu].opt = [];
self.rothebeast[menu].func = [];
self.rothebeast[menu].arg = [];
i = self.rothebeast[menu].func.size;
self.rothebeast[menu].opt = opt;
self.rothebeast[menu].func = func;
self.rothebeast[menu].arg = arg;
}
MenuStruct()//Self Thread this to the onPlayerSpawned
{
self AddPageMenu( "Tut", "Main Menu", "" );
self AddPageOpt( "Tut", "Sub Menu 1", ::runSubMenu, "Sub1" );
self AddPageMenu( "Sub1", "Sub Menu 1", "Tut" );
self AddPageOpt( "Sub 1", "Option 1", ::Test, "" );
}
Test()
{
self iPrintlnBold(self.menu["Curser"]);
}
//Miscellaneous Functions Start
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;
}
createRectangle( align, relative, x, y, shader, 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( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
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;
}