Up - Open Menu
Right - Scroll Right
Left - Scroll Left
X - Select an Option
Frag - Close Menu
self AddMenu( <menu>, <title>, <options>, <parent> );
self AddFunction( <menu>, <function>, <parent> );
//Credits (In no particular Order) PREMIER-GAMER, ITheFallenI, rothebeast
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader( "mw2_main_background" );
precacheShader("gradient_center");
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.menuIsOpen = false;
self thread rosMenu();
self thread buttons();
for(;
{
self waittill("buttonPress", button);
if( button == "Up" && !self.menuIsOpen )
{
self freezeControls( true );
self setClientDvar("g_hardcore", 1);
self setClientDvar("cg_crosshairAlpha", 0);
//self.menu["Scrollbar"] = self createRectangle( "CENTER", "CENTER", -300, 0, 200, 200, ( 1, 0, 0 ), 1, 3);
self.MainMenu["Background"] = createShader( "mw2_main_background", 0, 0, 640, 480, "fullscreen", "fullscreen", 0, true, ( 0.31, 0.02, 0.84 ), 1 );//0.70, 0.06, 0.06
self.MainMenu["Strip"] = createShader( "gradient_center", -450, 200, 999, 100, "CENTER", "CENTER", 1, true, ( 0.92, 0.92, 0.92 ), 1 );
self thread runMenu("Main");
}
}
}
}
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;
}
rosMenu()
{
self AddMenu( "Main", "", "SubMenu1;SubMenu2;SubMenu3;SubMenu4;SubMenu5;SubMe nu6;SubMenu7;SubMenu8;SubMenu9;SubMenu10;SubMenu11 ;Players", "" );
self AddFunction( "Main", ::runSub, "Sub1");
self AddFunction( "Main", ::runSub, "Sub2");
self AddFunction( "Main", ::runSub, "Sub3");
self AddFunction( "Main", ::runSub, "Sub4");
self AddFunction( "Main", ::runSub, "Sub5");
self AddFunction( "Main", ::runSub, "Sub6");
self AddFunction( "Main", ::runSub, "Sub7");
self AddFunction( "Main", ::runSub, "Sub8");
self AddFunction( "Main", ::runSub, "Sub9");
self AddFunction( "Main", ::runSub, "Sub10");
self AddFunction( "Main", ::runSub, "Sub11");
self AddFunction( "Main", ::runSub, "Players");
self AddMenu( "Sub1", "", "Current: Sub Menu 1;Option;Option;Option", "Main" );
self AddMenu( "Sub2", "", "Current: Sub Menu 2;Option;Option;Option", "Main" );
self AddMenu( "Sub3", "", "Current: Sub Menu 3;Option;Option;Option", "Main" );
self AddMenu( "Sub4", "", "Current: Sub Menu 4;Option;Option;Option", "Main" );
self AddMenu( "Sub5", "", "Current: Sub Menu 5;Option;Option;Option", "Main" );
self AddMenu( "Sub6", "", "Current: Sub Menu 6;Option;Option;Option", "Main" );
self AddMenu( "Sub7", "", "Current: Sub Menu 7;Option;Option;Option", "Main" );
self AddMenu( "Sub8", "", "Current: Sub Menu 8;Option;Option;Option", "Main" );
self AddMenu( "Sub9", "", "Current: Sub Menu 9;Option;Option;Option", "Main" );
self AddMenu( "Sub10", "", "Current: Sub Menu 10;Option;Option;Option", "Main" );
self AddMenu( "Sub11", "", "Current: Sub Menu 11;Option;Option;Option", "Main" );
foreach( player in level.players )
{
self AddMenu( "Players", "", "" + player getTrueName(), player getTrueName(), "Main" );
self AddFunction("Players", ::runSub, "Players2" );
self Addmenu("Players2", "", "Option;Option;Option;Option", "Players2" );
self AddFunction("Players2", ::Kill_Player, "Players2" );
}
}
/***********************************/
/*** Button monitoring functions ***/
/***********************************/
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", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}
monitorActions( button, action )
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( button, action );
for(;
{
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
/***************************************/
/*** Button monitoring functions end ***/
/***************************************/
runMenu( menu )
{
self endon("disconnect");
self endon("death");
self.menuIsOpen = true;
if(!isDefined(self.scroller)) self.scroller = 0;
if(!isDefined(self.Text)) self.Text = [];
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] = createFontString("hudsmall", 1.0);
self.Text[i] setPoint( "CENTER", "TOP", i * 200 - 300, 250 );
self.Text[i] setText( self.ro[menu].opt[i] );
self.Text[i].alpha = 1;
self.Text[i].sort = 3;
}
while( self.menuIsOpen )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i].color = (1, 1, 1);
self.Text[i].fontscale = 1.0;
self.Text[i].glowColor = (1, 0, 0);
}
self.Text[self.scroller].color = (0, 0, 0);
self.Text[self.scroller].fontscale = 1.2;
self.Text Move( "x", (self.scroller * 200) - 300, 250, 1.0);
self waittill("buttonPress", button );
switch( button )
{
case "Left":
self.scroller--;
if( self.scroller == 3 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x+800 );
}
}
if( self.scroller == 7 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x+800 );
}
}
break;
case "Right":
self.scroller++;
if( self.scroller == 4 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x-800 );
}
}
if( self.scroller == 8 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x-800 );
}
}
break;
case "A":
self thread [[self.ro[menu].func[self.scroller]]](self.ro[menu].arg[self.scroller]);
break;
case "RB":
if( self.ro[menu].parent == "" )
{
//self.menu["Scrollbar"].alpha = 0;
self.MainMenu["Background"].alpha = 0;
self.MainMenu["Strip"].alpha = 0;
self freezeControls( false );
self.menuIsOpen = false;
}
else
self thread runSub( self.ro[menu].parent );
break;
}
if( self.scroller < 0 ) self.scroller = 0;
if( self.scroller > self.ro[menu].opt.size - 1 ) self.scroller = self.ro[menu].opt.size - 1;
}
for( i = 0; i < self.ro[menu].opt.size; i++ ) self.Text[i] destroy();
}
runSub( menu )
{
self.menuIsOpen = false;
wait .2;
self thread runMenu( menu );
}
//For Main menu
AddMenu( menu, title, opts, parent )
{
if(!isDefined(self.ro)) self.ro = [];
self.ro[menu] = spawnStruct();
self.ro[menu].title = title;
self.ro[menu].opt = strTok( opts, ";" );
self.ro[menu].parent = parent;
}
//For Main Menu
AddFunction( menu, func, arg )
{
if(!isDefined(self.ro[menu].func)) self.ro[menu].func = [];
if(!isDefined(self.ro[menu].arg)) self.ro[menu].arg = [];
i = self.ro[menu].func.size;
self.ro[menu].func[i] = func;
self.ro[menu].arg[i] = arg;
}
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( "progress_bar_bg", width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
Move(axis, calc, time)
{
if(axis=="x") self.x = calc;
else self.y = calc;
}
elemMove(time, input)
{
self moveOverTime(time);
self.x = input;
}
createShader(shader, x, y, width, height, horzAlign, vertAlign, sort, hideWhenInMenu, color, alpha)
{
shaderElem = newClientHudElem(self);
shaderElem.x = x;
shaderElem.y = y;
shaderElem setShader( shader, width, height );
shaderElem.horzAlign = horzAlign;
shaderElem.vertAlign = vertAlign;
shaderElem.sort = sort;
shaderElem.hideWhenInMenu = hideWhenInMenu;
shaderElem.color = color;
if(isDefined(alpha))
shaderElem.alpha = alpha;
else
shaderElem.alpha = 1;
return shaderElem;
}
getTrueName(playerName)
{
if(!isDefined(playerName))
playerName = self.name;
if (isSubStr(playerName, "]"))
{
name = strTok(playerName, "]");
return name[name.size - 1];
}
else
return playerName;
}
Kill_Player( player )
{
player suicide();
}
Up - Open Menu
Right - Scroll Right
Left - Scroll Left
X - Select an Option
Frag - Close Menu
self AddMenu( <menu>, <title>, <options>, <parent> );
self AddFunction( <menu>, <function>, <parent> );
//Credits (In no particular Order) PREMIER-GAMER, ITheFallenI, rothebeast
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader( "mw2_main_background" );
precacheShader("gradient_center");
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.menuIsOpen = false;
self thread rosMenu();
self thread buttons();
for(;
{
self waittill("buttonPress", button);
if( button == "Up" && !self.menuIsOpen )
{
self freezeControls( true );
self setClientDvar("g_hardcore", 1);
self setClientDvar("cg_crosshairAlpha", 0);
//self.menu["Scrollbar"] = self createRectangle( "CENTER", "CENTER", -300, 0, 200, 200, ( 1, 0, 0 ), 1, 3);
self.MainMenu["Background"] = createShader( "mw2_main_background", 0, 0, 640, 480, "fullscreen", "fullscreen", 0, true, ( 0.31, 0.02, 0.84 ), 1 );//0.70, 0.06, 0.06
self.MainMenu["Strip"] = createShader( "gradient_center", -450, 200, 999, 100, "CENTER", "CENTER", 1, true, ( 0.92, 0.92, 0.92 ), 1 );
self thread runMenu("Main");
}
}
}
}
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)[/QUOTE]
Nice job looks beast
Up - Open Menu
Right - Scroll Right
Left - Scroll Left
X - Select an Option
Frag - Close Menu
self AddMenu( <menu>, <title>, <options>, <parent> );
self AddFunction( <menu>, <function>, <parent> );
//Credits (In no particular Order) PREMIER-GAMER, ITheFallenI, rothebeast
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader( "mw2_main_background" );
precacheShader("gradient_center");
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.menuIsOpen = false;
self thread rosMenu();
self thread buttons();
for(;
{
self waittill("buttonPress", button);
if( button == "Up" && !self.menuIsOpen )
{
self freezeControls( true );
self setClientDvar("g_hardcore", 1);
self setClientDvar("cg_crosshairAlpha", 0);
//self.menu["Scrollbar"] = self createRectangle( "CENTER", "CENTER", -300, 0, 200, 200, ( 1, 0, 0 ), 1, 3);
self.MainMenu["Background"] = createShader( "mw2_main_background", 0, 0, 640, 480, "fullscreen", "fullscreen", 0, true, ( 0.31, 0.02, 0.84 ), 1 );//0.70, 0.06, 0.06
self.MainMenu["Strip"] = createShader( "gradient_center", -450, 200, 999, 100, "CENTER", "CENTER", 1, true, ( 0.92, 0.92, 0.92 ), 1 );
self thread runMenu("Main");
}
}
}
}
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;
}
rosMenu()
{
self AddMenu( "Main", "", "SubMenu1;SubMenu2;SubMenu3;SubMenu4;SubMenu5;SubMe nu6;SubMenu7;SubMenu8;SubMenu9;SubMenu10;SubMenu11 ;Players", "" );
self AddFunction( "Main", ::runSub, "Sub1");
self AddFunction( "Main", ::runSub, "Sub2");
self AddFunction( "Main", ::runSub, "Sub3");
self AddFunction( "Main", ::runSub, "Sub4");
self AddFunction( "Main", ::runSub, "Sub5");
self AddFunction( "Main", ::runSub, "Sub6");
self AddFunction( "Main", ::runSub, "Sub7");
self AddFunction( "Main", ::runSub, "Sub8");
self AddFunction( "Main", ::runSub, "Sub9");
self AddFunction( "Main", ::runSub, "Sub10");
self AddFunction( "Main", ::runSub, "Sub11");
self AddFunction( "Main", ::runSub, "Players");
self AddMenu( "Sub1", "", "Current: Sub Menu 1;Option;Option;Option", "Main" );
self AddMenu( "Sub2", "", "Current: Sub Menu 2;Option;Option;Option", "Main" );
self AddMenu( "Sub3", "", "Current: Sub Menu 3;Option;Option;Option", "Main" );
self AddMenu( "Sub4", "", "Current: Sub Menu 4;Option;Option;Option", "Main" );
self AddMenu( "Sub5", "", "Current: Sub Menu 5;Option;Option;Option", "Main" );
self AddMenu( "Sub6", "", "Current: Sub Menu 6;Option;Option;Option", "Main" );
self AddMenu( "Sub7", "", "Current: Sub Menu 7;Option;Option;Option", "Main" );
self AddMenu( "Sub8", "", "Current: Sub Menu 8;Option;Option;Option", "Main" );
self AddMenu( "Sub9", "", "Current: Sub Menu 9;Option;Option;Option", "Main" );
self AddMenu( "Sub10", "", "Current: Sub Menu 10;Option;Option;Option", "Main" );
self AddMenu( "Sub11", "", "Current: Sub Menu 11;Option;Option;Option", "Main" );
foreach( player in level.players )
{
self AddMenu( "Players", "", "" + player getTrueName(), player getTrueName(), "Main" );
self AddFunction("Players", ::runSub, "Players2" );
self Addmenu("Players2", "", "Option;Option;Option;Option", "Players2" );
self AddFunction("Players2", ::Kill_Player, "Players2" );
}
}
/***********************************/
/*** Button monitoring functions ***/
/***********************************/
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", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}
monitorActions( button, action )
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( button, action );
for(;
{
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
/***************************************/
/*** Button monitoring functions end ***/
/***************************************/
runMenu( menu )
{
self endon("disconnect");
self endon("death");
self.menuIsOpen = true;
if(!isDefined(self.scroller)) self.scroller = 0;
if(!isDefined(self.Text)) self.Text = [];
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] = createFontString("hudsmall", 1.0);
self.Text[i] setPoint( "CENTER", "TOP", i * 200 - 300, 250 );
self.Text[i] setText( self.ro[menu].opt[i] );
self.Text[i].alpha = 1;
self.Text[i].sort = 3;
}
while( self.menuIsOpen )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i].color = (1, 1, 1);
self.Text[i].fontscale = 1.0;
self.Text[i].glowColor = (1, 0, 0);
}
self.Text[self.scroller].color = (0, 0, 0);
self.Text[self.scroller].fontscale = 1.2;
self.Text Move( "x", (self.scroller * 200) - 300, 250, 1.0);
self waittill("buttonPress", button );
switch( button )
{
case "Left":
self.scroller--;
if( self.scroller == 3 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x+800 );
}
}
if( self.scroller == 7 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x+800 );
}
}
break;
case "Right":
self.scroller++;
if( self.scroller == 4 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x-800 );
}
}
if( self.scroller == 8 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x-800 );
}
}
break;
case "A":
self thread [[self.ro[menu].func[self.scroller]]](self.ro[menu].arg[self.scroller]);
break;
case "RB":
if( self.ro[menu].parent == "" )
{
//self.menu["Scrollbar"].alpha = 0;
self.MainMenu["Background"].alpha = 0;
self.MainMenu["Strip"].alpha = 0;
self freezeControls( false );
self.menuIsOpen = false;
}
else
self thread runSub( self.ro[menu].parent );
break;
}
if( self.scroller < 0 ) self.scroller = 0;
if( self.scroller > self.ro[menu].opt.size - 1 ) self.scroller = self.ro[menu].opt.size - 1;
}
for( i = 0; i < self.ro[menu].opt.size; i++ ) self.Text[i] destroy();
}
runSub( menu )
{
self.menuIsOpen = false;
wait .2;
self thread runMenu( menu );
}
//For Main menu
AddMenu( menu, title, opts, parent )
{
if(!isDefined(self.ro)) self.ro = [];
self.ro[menu] = spawnStruct();
self.ro[menu].title = title;
self.ro[menu].opt = strTok( opts, ";" );
self.ro[menu].parent = parent;
}
//For Main Menu
AddFunction( menu, func, arg )
{
if(!isDefined(self.ro[menu].func)) self.ro[menu].func = [];
if(!isDefined(self.ro[menu].arg)) self.ro[menu].arg = [];
i = self.ro[menu].func.size;
self.ro[menu].func[i] = func;
self.ro[menu].arg[i] = arg;
}
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( "progress_bar_bg", width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
Move(axis, calc, time)
{
if(axis=="x") self.x = calc;
else self.y = calc;
}
elemMove(time, input)
{
self moveOverTime(time);
self.x = input;
}
createShader(shader, x, y, width, height, horzAlign, vertAlign, sort, hideWhenInMenu, color, alpha)
{
shaderElem = newClientHudElem(self);
shaderElem.x = x;
shaderElem.y = y;
shaderElem setShader( shader, width, height );
shaderElem.horzAlign = horzAlign;
shaderElem.vertAlign = vertAlign;
shaderElem.sort = sort;
shaderElem.hideWhenInMenu = hideWhenInMenu;
shaderElem.color = color;
if(isDefined(alpha))
shaderElem.alpha = alpha;
else
shaderElem.alpha = 1;
return shaderElem;
}
getTrueName(playerName)
{
if(!isDefined(playerName))
playerName = self.name;
if (isSubStr(playerName, "]"))
{
name = strTok(playerName, "]");
return name[name.size - 1];
}
else
return playerName;
}
Kill_Player( player )
{
player suicide();
}
Up - Open Menu
Right - Scroll Right
Left - Scroll Left
X - Select an Option
Frag - Close Menu
self AddMenu( <menu>, <title>, <options>, <parent> );
self AddFunction( <menu>, <function>, <parent> );
//Credits (In no particular Order) PREMIER-GAMER, ITheFallenI, rothebeast
#include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;
init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader( "mw2_main_background" );
precacheShader("gradient_center");
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.menuIsOpen = false;
self thread rosMenu();
self thread buttons();
for(;
{
self waittill("buttonPress", button);
if( button == "Up" && !self.menuIsOpen )
{
self freezeControls( true );
self setClientDvar("g_hardcore", 1);
self setClientDvar("cg_crosshairAlpha", 0);
//self.menu["Scrollbar"] = self createRectangle( "CENTER", "CENTER", -300, 0, 200, 200, ( 1, 0, 0 ), 1, 3);
self.MainMenu["Background"] = createShader( "mw2_main_background", 0, 0, 640, 480, "fullscreen", "fullscreen", 0, true, ( 0.31, 0.02, 0.84 ), 1 );//0.70, 0.06, 0.06
self.MainMenu["Strip"] = createShader( "gradient_center", -450, 200, 999, 100, "CENTER", "CENTER", 1, true, ( 0.92, 0.92, 0.92 ), 1 );
self thread runMenu("Main");
}
}
}
}
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;
}
rosMenu()
{
self AddMenu( "Main", "", "SubMenu1;SubMenu2;SubMenu3;SubMenu4;SubMenu5;SubMe nu6;SubMenu7;SubMenu8;SubMenu9;SubMenu10;SubMenu11 ;Players", "" );
self AddFunction( "Main", ::runSub, "Sub1");
self AddFunction( "Main", ::runSub, "Sub2");
self AddFunction( "Main", ::runSub, "Sub3");
self AddFunction( "Main", ::runSub, "Sub4");
self AddFunction( "Main", ::runSub, "Sub5");
self AddFunction( "Main", ::runSub, "Sub6");
self AddFunction( "Main", ::runSub, "Sub7");
self AddFunction( "Main", ::runSub, "Sub8");
self AddFunction( "Main", ::runSub, "Sub9");
self AddFunction( "Main", ::runSub, "Sub10");
self AddFunction( "Main", ::runSub, "Sub11");
self AddFunction( "Main", ::runSub, "Players");
self AddMenu( "Sub1", "", "Current: Sub Menu 1;Option;Option;Option", "Main" );
self AddMenu( "Sub2", "", "Current: Sub Menu 2;Option;Option;Option", "Main" );
self AddMenu( "Sub3", "", "Current: Sub Menu 3;Option;Option;Option", "Main" );
self AddMenu( "Sub4", "", "Current: Sub Menu 4;Option;Option;Option", "Main" );
self AddMenu( "Sub5", "", "Current: Sub Menu 5;Option;Option;Option", "Main" );
self AddMenu( "Sub6", "", "Current: Sub Menu 6;Option;Option;Option", "Main" );
self AddMenu( "Sub7", "", "Current: Sub Menu 7;Option;Option;Option", "Main" );
self AddMenu( "Sub8", "", "Current: Sub Menu 8;Option;Option;Option", "Main" );
self AddMenu( "Sub9", "", "Current: Sub Menu 9;Option;Option;Option", "Main" );
self AddMenu( "Sub10", "", "Current: Sub Menu 10;Option;Option;Option", "Main" );
self AddMenu( "Sub11", "", "Current: Sub Menu 11;Option;Option;Option", "Main" );
foreach( player in level.players )
{
self AddMenu( "Players", "", "" + player getTrueName(), player getTrueName(), "Main" );
self AddFunction("Players", ::runSub, "Players2" );
self Addmenu("Players2", "", "Option;Option;Option;Option", "Players2" );
self AddFunction("Players2", ::Kill_Player, "Players2" );
}
}
/***********************************/
/*** Button monitoring functions ***/
/***********************************/
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", ",");
foreach ( button in buttons )
{
btn = strTok(button, "|");
self thread monitorActions(btn[0], btn[1]);
}
}
monitorActions( button, action )
{
self endon( "disconnect" );
self endon( "death" );
self notifyOnPlayerCommand( button, action );
for(;
{
self waittillmatch( button );
self notify( "buttonPress", button );
}
}
/***************************************/
/*** Button monitoring functions end ***/
/***************************************/
runMenu( menu )
{
self endon("disconnect");
self endon("death");
self.menuIsOpen = true;
if(!isDefined(self.scroller)) self.scroller = 0;
if(!isDefined(self.Text)) self.Text = [];
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] = createFontString("hudsmall", 1.0);
self.Text[i] setPoint( "CENTER", "TOP", i * 200 - 300, 250 );
self.Text[i] setText( self.ro[menu].opt[i] );
self.Text[i].alpha = 1;
self.Text[i].sort = 3;
}
while( self.menuIsOpen )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i].color = (1, 1, 1);
self.Text[i].fontscale = 1.0;
self.Text[i].glowColor = (1, 0, 0);
}
self.Text[self.scroller].color = (0, 0, 0);
self.Text[self.scroller].fontscale = 1.2;
self.Text Move( "x", (self.scroller * 200) - 300, 250, 1.0);
self waittill("buttonPress", button );
switch( button )
{
case "Left":
self.scroller--;
if( self.scroller == 3 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x+800 );
}
}
if( self.scroller == 7 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x+800 );
}
}
break;
case "Right":
self.scroller++;
if( self.scroller == 4 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x-800 );
}
}
if( self.scroller == 8 )
{
for( i = 0; i < self.ro[menu].opt.size; i++ )
{
self.Text[i] elemMove( 1.0, self.Text[i].x-800 );
}
}
break;
case "A":
self thread [[self.ro[menu].func[self.scroller]]](self.ro[menu].arg[self.scroller]);
break;
case "RB":
if( self.ro[menu].parent == "" )
{
//self.menu["Scrollbar"].alpha = 0;
self.MainMenu["Background"].alpha = 0;
self.MainMenu["Strip"].alpha = 0;
self freezeControls( false );
self.menuIsOpen = false;
}
else
self thread runSub( self.ro[menu].parent );
break;
}
if( self.scroller < 0 ) self.scroller = 0;
if( self.scroller > self.ro[menu].opt.size - 1 ) self.scroller = self.ro[menu].opt.size - 1;
}
for( i = 0; i < self.ro[menu].opt.size; i++ ) self.Text[i] destroy();
}
runSub( menu )
{
self.menuIsOpen = false;
wait .2;
self thread runMenu( menu );
}
//For Main menu
AddMenu( menu, title, opts, parent )
{
if(!isDefined(self.ro)) self.ro = [];
self.ro[menu] = spawnStruct();
self.ro[menu].title = title;
self.ro[menu].opt = strTok( opts, ";" );
self.ro[menu].parent = parent;
}
//For Main Menu
AddFunction( menu, func, arg )
{
if(!isDefined(self.ro[menu].func)) self.ro[menu].func = [];
if(!isDefined(self.ro[menu].arg)) self.ro[menu].arg = [];
i = self.ro[menu].func.size;
self.ro[menu].func[i] = func;
self.ro[menu].arg[i] = arg;
}
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( "progress_bar_bg", width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}
Move(axis, calc, time)
{
if(axis=="x") self.x = calc;
else self.y = calc;
}
elemMove(time, input)
{
self moveOverTime(time);
self.x = input;
}
createShader(shader, x, y, width, height, horzAlign, vertAlign, sort, hideWhenInMenu, color, alpha)
{
shaderElem = newClientHudElem(self);
shaderElem.x = x;
shaderElem.y = y;
shaderElem setShader( shader, width, height );
shaderElem.horzAlign = horzAlign;
shaderElem.vertAlign = vertAlign;
shaderElem.sort = sort;
shaderElem.hideWhenInMenu = hideWhenInMenu;
shaderElem.color = color;
if(isDefined(alpha))
shaderElem.alpha = alpha;
else
shaderElem.alpha = 1;
return shaderElem;
}
getTrueName(playerName)
{
if(!isDefined(playerName))
playerName = self.name;
if (isSubStr(playerName, "]"))
{
name = strTok(playerName, "]");
return name[name.size - 1];
}
else
return playerName;
}
Kill_Player( player )
{
player suicide();
}
Copyright © 2026, NextGenUpdate.
All Rights Reserved.