#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();
PrecacheShader("popup_button_selection_bar");
if(!isDefined(level.pList))
{
level permsCreate();
}
}
onPlayerConnect()
{
for(;
{
level waittill("connected",player);
player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
self permsInit();
for(;
{
self waittill("spawned_player");
self.StringWatch = 0;
self permsBegin();
}
}
MenuOptionList()
{
if(self isAllowed(1))////Verified Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
}
if(self isAllowed(2))////Vip Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
}
if(self isAllowed(3))////Co-Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
}
if(self isAllowed(4))////Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
self NewOpt(F,"Option 14",::Test,"");
self NewOpt(F,"Option 15",::Test,"");
self NewOpt(F,"Option 16",::Test,"");
self NewOpt(F,"Players",::subMenu,"player");
}
/*** Start Of Sub Menus ***/
F="Sub1";
self NewMenu(F,"Sub Menu 1","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
F="Sub2";
self NewMenu(F,"Sub Menu 2","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
/*** Start Of Player Menu ***/
F="player";
self NewMenu(F,"Players","main");
for(o=0;o<level.players.size;o++)
{
player = level.players[o];
name = player.name;
menu = "pOpt"+name;
if(o==0 && self != level.players[0])
{
continue;
}
self NewOpt(F,level.players[o].name,::subMenu,menu);
self NewMenu(menu,name,"player");
self NewOpt(menu,"Kill Player",::KillPlayer,player);
self NewOpt(menu,"Kick Player",::KickPlayer,player);
self NewOpt(menu,"Verify",::permsVerifySet,player);
self NewOpt(menu,"Vip",::permsVIPSet,player);
self NewOpt(menu,"Co-Admin",::permsCoAdminSet,player);
self NewOpt(menu,"Admin",::permsAdminSet,player);
self NewOpt(menu,"Remove Access",::permsRemove,player);
self NewOpt(menu,"Player Option 8",::Test,player);
self NewOpt(menu,"Player Option 9",::Test,player);
self NewOpt(menu,"Player Option 10",::Test,player);
self NewOpt(menu,"Player Option 11",::Test,player);
self NewOpt(menu,"Player Option 12",::Test,player);
self NewOpt(menu,"Player Option 13",::Test,player);
self NewOpt(menu,"Player Option 14",::Test,player);
self NewOpt(menu,"Player Option 15",::Test,player);
}
/*** End Of Player Menu ***/
}
iniMenu()
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false;
self thread inibuttons();
for(;
{
self waittill("buttonPress",button);
if(button=="Up" && !self.menuIsOpen)
{
self.menuIsOpen = true;
self freezeControls(true);
self thread initShaders();
self thread subMenu("main");
self thread loadmenu();
}
}
wait .001;
}
loadmenu()
{
self endon("death");
self endon("disconnect");
while(self.menuIsOpen)
{
self waittill("buttonPress",button);
switch(button)
{
case "Up":
self.FuZiioN["Scroller"] --;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]<0)
{
self.FuZiioN["Scroller"] = self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Down":
self.FuZiioN["Scroller"] ++;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]>self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1)
{
self.FuZiioN["Scroller"] = 0;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Select":
self thread [[self.FuZiioN[self.FuZiioN["CurrentMenu"]].func[self.FuZiioN["Scroller"]]]](self.FuZiioN[self.FuZiioN["CurrentMenu"]].inp[self.FuZiioN["Scroller"]]);
break;
case "Exit":
if(!isDefined(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent))
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self.StringWatch = 0;
}
else
{
self subMenu(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent);
}
break;
}
wait .001;
}
wait .001;
}
subMenu(menu)
{
self notify("Update");
wait .3;
self.FuZiioN["Scroller"] = -1;
self.FuZiioN["CurrentMenu"] = menu;
self.FuZiioN["Scrollbar"]["Menu"] moveOverTime(.6);
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(0*18.75);
self.FuZiioN["Titel"] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].titel);
self thread MenuOptionList();
self thread CursxD();
self.FuZiioN["Text"] = [];
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
self.FuZiioN["Text"][i] = createFontString("default",1.0);
self.FuZiioN["Text"][i] setPoint("CENTER","TOP",330,70+(18.75*i));
self.FuZiioN["Text"][i].glowColor = (0,0,1);
self.FuZiioN["Text"][i].Color = (1,1,1);
self.FuZiioN["Text"][i].glowAlpha = 2;
self.FuZiioN["Text"][i].sort = 3;
self.FuZiioN["Text"][i].alpha = 1;
self.FuZiioN["Text"][i] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].name[i]);
self.FuZiioN["Text"][i] thread destroyOnDeathOrUpdate(self);
}
}
CursxD()
{
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
if(i==self.FuZiioN["Scroller"])
{
self.FuZiioN["Text"][i] ChangeFontScaleOverTime(0.1);
self.FuZiioN["Text"][i].fontScale = 1.5;
self.FuZiioN["Text"][i].Color = (0,1,1);
}
else
{
self.FuZiioN["Text"][i].fontScale = 1.0;
self.FuZiioN["Text"][i].Color = (1,1,1);
}
}
if(self.StringWatch>200)
{
self iprintln("^1Warning: String Size Reached!!!");
}
if(self.StringWatch>350)
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self iprintln("^1Closing Reason: Nearly Overflow");
self iprintln("^1Closing Reason: Nearly Overflow");
self.StringWatch = 0;
}
}
initShaders()
{
self.FuZiioN["Background"]["Menu"] = self shaderCreated("white",550,490,(0.6),(0,0,0),600,0,0,false);
self.FuZiioN["Scrollbar"]["Menu"] = self shaderCreated("popup_button_selection_bar",140,18,(1),(0,0,0),500,60,2,true);
self.FuZiioN["Background"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Scrollbar"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Titel"] = [];self.FuZiioN["Titel"] = createFontString("default",2.0);self.FuZiioN["Titel"] setPoint("CENTER","TOP",330,20);self.FuZiioN["Titel"].glowColor = (0,0,1);self.FuZiioN["Titel"].Color = (1,1,1);self.FuZiioN["Titel"].glowAlpha = 3;self.FuZiioN["Titel"].sort = 3;self.FuZiioN["Titel"].alpha = 1;self.FuZiioN["Titel"] thread destroyOnDeathOrUpdate2(self);
}
NewMenu(menu,titel,parent)
{
if(!isDefined(self.FuZiioN))self.FuZiioN=[];
self.FuZiioN[menu] = spawnStruct();
self.FuZiioN[menu].titel = titel;
self.FuZiioN[menu].parent = parent;
self.FuZiioN[menu].name = [];
self.FuZiioN[menu].func = [];
self.FuZiioN[menu].inp = [];
}
NewOpt(menu,name,func,inp)
{
F=self.FuZiioN[menu].name.size;
self.FuZiioN[menu].name[F] = name;
self.FuZiioN[menu].func[F] = func;
self.FuZiioN[menu].inp[F] = inp;
}
inibuttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Select|+gostand,Exit|+melee", ",");
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);
}
}
shaderCreated( shader, width, height, alpha, color, x, y, sorting, fullscreenOn )
{
Elem = newClientHudElem( self );
Elem setShader( shader, width, height );
Elem.alpha = alpha;
Elem.color = color;
if ( !level.splitScreen )
{
Elem.x =- 2;
Elem.y =- 2;
}
if ( fullscreenOn )
{
Elem.horzAlign = "fullscreen";
Elem.vertAlign = "fullscreen";
}
Elem.x = x;
Elem.y = y;
Elem.xOffset = 0;
Elem.yOffset = 0;
Elem.hideWhenInMenu = true;
Elem.hidewhendead = true;
Elem.foreground = false;
Elem.sort = sorting;
return Elem;
}
destroyOnDeathOrUpdate(client)
{
client endon("disconnect");
client waittill_any("death","Update","MenuChangePerms");
self destroy();
}
destroyOnDeathOrUpdate2(client)
{
client endon("disconnect");
client waittill_any("death","Update2","MenuChangePerms");
self destroy();
}
Test()
{
self iprintln("^5Created By xePixTvx/xFuZiioN_x3");
}
KillPlayer(player)
{
player suicide();
}
KickPlayer(player)
{
kick(player getEntityNumber());
}
//////////Start Of Verifycation System
/*
|-------------------------|
| Verifycation |
| System |
| By |
| Elitemossy |
|-------------------------|
*/
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "xFuZiioN_x3":///This is my real psn all the others are fake 
case "seb5594":
case "ThePhantom410":
case "Player 1":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;
default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread iniMenu();
}
else
{
self iPrintln("^2xFuZiioN_x3 Is A Monster!!!!");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
////////////End of Verifycation System
////////////////////////_missions
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;
}
xePixTvx
CraigChrist8239
Kbrizzle
Elitemossy
#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();
PrecacheShader("popup_button_selection_bar");
if(!isDefined(level.pList))
{
level permsCreate();
}
}
onPlayerConnect()
{
for(;
{
level waittill("connected",player);
player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
self permsInit();
for(;
{
self waittill("spawned_player");
self.StringWatch = 0;
self permsBegin();
}
}
MenuOptionList()
{
if(self isAllowed(1))////Verified Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
}
if(self isAllowed(2))////Vip Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
}
if(self isAllowed(3))////Co-Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
}
if(self isAllowed(4))////Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
self NewOpt(F,"Option 14",::Test,"");
self NewOpt(F,"Option 15",::Test,"");
self NewOpt(F,"Option 16",::Test,"");
self NewOpt(F,"Players",::subMenu,"player");
}
/*** Start Of Sub Menus ***/
F="Sub1";
self NewMenu(F,"Sub Menu 1","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
F="Sub2";
self NewMenu(F,"Sub Menu 2","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
/*** Start Of Player Menu ***/
F="player";
self NewMenu(F,"Players","main");
for(o=0;o<level.players.size;o++)
{
player = level.players[o];
name = player.name;
menu = "pOpt"+name;
if(o==0 && self != level.players[0])
{
continue;
}
self NewOpt(F,level.players[o].name,::subMenu,menu);
self NewMenu(menu,name,"player");
self NewOpt(menu,"Kill Player",::KillPlayer,player);
self NewOpt(menu,"Kick Player",::KickPlayer,player);
self NewOpt(menu,"Verify",::permsVerifySet,player);
self NewOpt(menu,"Vip",::permsVIPSet,player);
self NewOpt(menu,"Co-Admin",::permsCoAdminSet,player);
self NewOpt(menu,"Admin",::permsAdminSet,player);
self NewOpt(menu,"Remove Access",::permsRemove,player);
self NewOpt(menu,"Player Option 8",::Test,player);
self NewOpt(menu,"Player Option 9",::Test,player);
self NewOpt(menu,"Player Option 10",::Test,player);
self NewOpt(menu,"Player Option 11",::Test,player);
self NewOpt(menu,"Player Option 12",::Test,player);
self NewOpt(menu,"Player Option 13",::Test,player);
self NewOpt(menu,"Player Option 14",::Test,player);
self NewOpt(menu,"Player Option 15",::Test,player);
}
/*** End Of Player Menu ***/
}
iniMenu()
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false;
self thread inibuttons();
for(;
{
self waittill("buttonPress",button);
if(button=="Up" && !self.menuIsOpen)
{
self.menuIsOpen = true;
self freezeControls(true);
self thread initShaders();
self thread subMenu("main");
self thread loadmenu();
}
}
wait .001;
}
loadmenu()
{
self endon("death");
self endon("disconnect");
while(self.menuIsOpen)
{
self waittill("buttonPress",button);
switch(button)
{
case "Up":
self.FuZiioN["Scroller"] --;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]<0)
{
self.FuZiioN["Scroller"] = self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Down":
self.FuZiioN["Scroller"] ++;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]>self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1)
{
self.FuZiioN["Scroller"] = 0;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Select":
self thread [[self.FuZiioN[self.FuZiioN["CurrentMenu"]].func[self.FuZiioN["Scroller"]]]](self.FuZiioN[self.FuZiioN["CurrentMenu"]].inp[self.FuZiioN["Scroller"]]);
break;
case "Exit":
if(!isDefined(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent))
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self.StringWatch = 0;
}
else
{
self subMenu(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent);
}
break;
}
wait .001;
}
wait .001;
}
subMenu(menu)
{
self notify("Update");
wait .3;
self.FuZiioN["Scroller"] = -1;
self.FuZiioN["CurrentMenu"] = menu;
self.FuZiioN["Scrollbar"]["Menu"] moveOverTime(.6);
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(0*18.75);
self.FuZiioN["Titel"] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].titel);
self thread MenuOptionList();
self thread CursxD();
self.FuZiioN["Text"] = [];
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
self.FuZiioN["Text"][i] = createFontString("default",1.0);
self.FuZiioN["Text"][i] setPoint("CENTER","TOP",330,70+(18.75*i));
self.FuZiioN["Text"][i].glowColor = (0,0,1);
self.FuZiioN["Text"][i].Color = (1,1,1);
self.FuZiioN["Text"][i].glowAlpha = 2;
self.FuZiioN["Text"][i].sort = 3;
self.FuZiioN["Text"][i].alpha = 1;
self.FuZiioN["Text"][i] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].name[i]);
self.FuZiioN["Text"][i] thread destroyOnDeathOrUpdate(self);
}
}
CursxD()
{
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
if(i==self.FuZiioN["Scroller"])
{
self.FuZiioN["Text"][i] ChangeFontScaleOverTime(0.1);
self.FuZiioN["Text"][i].fontScale = 1.5;
self.FuZiioN["Text"][i].Color = (0,1,1);
}
else
{
self.FuZiioN["Text"][i].fontScale = 1.0;
self.FuZiioN["Text"][i].Color = (1,1,1);
}
}
if(self.StringWatch>200)
{
self iprintln("^1Warning: String Size Reached!!!");
}
if(self.StringWatch>350)
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self iprintln("^1Closing Reason: Nearly Overflow");
self iprintln("^1Closing Reason: Nearly Overflow");
self.StringWatch = 0;
}
}
initShaders()
{
self.FuZiioN["Background"]["Menu"] = self shaderCreated("white",550,490,(0.6),(0,0,0),600,0,0,false);
self.FuZiioN["Scrollbar"]["Menu"] = self shaderCreated("popup_button_selection_bar",140,18,(1),(0,0,0),500,60,2,true);
self.FuZiioN["Background"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Scrollbar"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Titel"] = [];self.FuZiioN["Titel"] = createFontString("default",2.0);self.FuZiioN["Titel"] setPoint("CENTER","TOP",330,20);self.FuZiioN["Titel"].glowColor = (0,0,1);self.FuZiioN["Titel"].Color = (1,1,1);self.FuZiioN["Titel"].glowAlpha = 3;self.FuZiioN["Titel"].sort = 3;self.FuZiioN["Titel"].alpha = 1;self.FuZiioN["Titel"] thread destroyOnDeathOrUpdate2(self);
}
NewMenu(menu,titel,parent)
{
if(!isDefined(self.FuZiioN))self.FuZiioN=[];
self.FuZiioN[menu] = spawnStruct();
self.FuZiioN[menu].titel = titel;
self.FuZiioN[menu].parent = parent;
self.FuZiioN[menu].name = [];
self.FuZiioN[menu].func = [];
self.FuZiioN[menu].inp = [];
}
NewOpt(menu,name,func,inp)
{
F=self.FuZiioN[menu].name.size;
self.FuZiioN[menu].name[F] = name;
self.FuZiioN[menu].func[F] = func;
self.FuZiioN[menu].inp[F] = inp;
}
inibuttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Select|+gostand,Exit|+melee", ",");
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);
}
}
shaderCreated( shader, width, height, alpha, color, x, y, sorting, fullscreenOn )
{
Elem = newClientHudElem( self );
Elem setShader( shader, width, height );
Elem.alpha = alpha;
Elem.color = color;
if ( !level.splitScreen )
{
Elem.x =- 2;
Elem.y =- 2;
}
if ( fullscreenOn )
{
Elem.horzAlign = "fullscreen";
Elem.vertAlign = "fullscreen";
}
Elem.x = x;
Elem.y = y;
Elem.xOffset = 0;
Elem.yOffset = 0;
Elem.hideWhenInMenu = true;
Elem.hidewhendead = true;
Elem.foreground = false;
Elem.sort = sorting;
return Elem;
}
destroyOnDeathOrUpdate(client)
{
client endon("disconnect");
client waittill_any("death","Update","MenuChangePerms");
self destroy();
}
destroyOnDeathOrUpdate2(client)
{
client endon("disconnect");
client waittill_any("death","Update2","MenuChangePerms");
self destroy();
}
Test()
{
self iprintln("^5Created By xePixTvx/xFuZiioN_x3");
}
KillPlayer(player)
{
player suicide();
}
KickPlayer(player)
{
kick(player getEntityNumber());
}
//////////Start Of Verifycation System
/*
|-------------------------|
| Verifycation |
| System |
| By |
| Elitemossy |
|-------------------------|
*/
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "xFuZiioN_x3":///This is my real psn all the others are fake 
case "seb5594":
case "ThePhantom410":
case "Player 1":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;
default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread iniMenu();
}
else
{
self iPrintln("^2xFuZiioN_x3 Is A Monster!!!!");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
////////////End of Verifycation System
////////////////////////_missions
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;
}
xePixTvx
CraigChrist8239
Kbrizzle
Elitemossy
#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();
PrecacheShader("popup_button_selection_bar");
if(!isDefined(level.pList))
{
level permsCreate();
}
}
onPlayerConnect()
{
for(;
{
level waittill("connected",player);
player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
self permsInit();
for(;
{
self waittill("spawned_player");
self.StringWatch = 0;
self permsBegin();
}
}
MenuOptionList()
{
if(self isAllowed(1))////Verified Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
}
if(self isAllowed(2))////Vip Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
}
if(self isAllowed(3))////Co-Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
}
if(self isAllowed(4))////Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
self NewOpt(F,"Option 14",::Test,"");
self NewOpt(F,"Option 15",::Test,"");
self NewOpt(F,"Option 16",::Test,"");
self NewOpt(F,"Players",::subMenu,"player");
}
/*** Start Of Sub Menus ***/
F="Sub1";
self NewMenu(F,"Sub Menu 1","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
F="Sub2";
self NewMenu(F,"Sub Menu 2","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
/*** Start Of Player Menu ***/
F="player";
self NewMenu(F,"Players","main");
for(o=0;o<level.players.size;o++)
{
player = level.players[o];
name = player.name;
menu = "pOpt"+name;
if(o==0 && self != level.players[0])
{
continue;
}
self NewOpt(F,level.players[o].name,::subMenu,menu);
self NewMenu(menu,name,"player");
self NewOpt(menu,"Kill Player",::KillPlayer,player);
self NewOpt(menu,"Kick Player",::KickPlayer,player);
self NewOpt(menu,"Verify",::permsVerifySet,player);
self NewOpt(menu,"Vip",::permsVIPSet,player);
self NewOpt(menu,"Co-Admin",::permsCoAdminSet,player);
self NewOpt(menu,"Admin",::permsAdminSet,player);
self NewOpt(menu,"Remove Access",::permsRemove,player);
self NewOpt(menu,"Player Option 8",::Test,player);
self NewOpt(menu,"Player Option 9",::Test,player);
self NewOpt(menu,"Player Option 10",::Test,player);
self NewOpt(menu,"Player Option 11",::Test,player);
self NewOpt(menu,"Player Option 12",::Test,player);
self NewOpt(menu,"Player Option 13",::Test,player);
self NewOpt(menu,"Player Option 14",::Test,player);
self NewOpt(menu,"Player Option 15",::Test,player);
}
/*** End Of Player Menu ***/
}
iniMenu()
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false;
self thread inibuttons();
for(;
{
self waittill("buttonPress",button);
if(button=="Up" && !self.menuIsOpen)
{
self.menuIsOpen = true;
self freezeControls(true);
self thread initShaders();
self thread subMenu("main");
self thread loadmenu();
}
}
wait .001;
}
loadmenu()
{
self endon("death");
self endon("disconnect");
while(self.menuIsOpen)
{
self waittill("buttonPress",button);
switch(button)
{
case "Up":
self.FuZiioN["Scroller"] --;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]<0)
{
self.FuZiioN["Scroller"] = self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Down":
self.FuZiioN["Scroller"] ++;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]>self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1)
{
self.FuZiioN["Scroller"] = 0;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Select":
self thread [[self.FuZiioN[self.FuZiioN["CurrentMenu"]].func[self.FuZiioN["Scroller"]]]](self.FuZiioN[self.FuZiioN["CurrentMenu"]].inp[self.FuZiioN["Scroller"]]);
break;
case "Exit":
if(!isDefined(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent))
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self.StringWatch = 0;
}
else
{
self subMenu(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent);
}
break;
}
wait .001;
}
wait .001;
}
subMenu(menu)
{
self notify("Update");
wait .3;
self.FuZiioN["Scroller"] = -1;
self.FuZiioN["CurrentMenu"] = menu;
self.FuZiioN["Scrollbar"]["Menu"] moveOverTime(.6);
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(0*18.75);
self.FuZiioN["Titel"] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].titel);
self thread MenuOptionList();
self thread CursxD();
self.FuZiioN["Text"] = [];
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
self.FuZiioN["Text"][i] = createFontString("default",1.0);
self.FuZiioN["Text"][i] setPoint("CENTER","TOP",330,70+(18.75*i));
self.FuZiioN["Text"][i].glowColor = (0,0,1);
self.FuZiioN["Text"][i].Color = (1,1,1);
self.FuZiioN["Text"][i].glowAlpha = 2;
self.FuZiioN["Text"][i].sort = 3;
self.FuZiioN["Text"][i].alpha = 1;
self.FuZiioN["Text"][i] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].name[i]);
self.FuZiioN["Text"][i] thread destroyOnDeathOrUpdate(self);
}
}
CursxD()
{
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
if(i==self.FuZiioN["Scroller"])
{
self.FuZiioN["Text"][i] ChangeFontScaleOverTime(0.1);
self.FuZiioN["Text"][i].fontScale = 1.5;
self.FuZiioN["Text"][i].Color = (0,1,1);
}
else
{
self.FuZiioN["Text"][i].fontScale = 1.0;
self.FuZiioN["Text"][i].Color = (1,1,1);
}
}
if(self.StringWatch>200)
{
self iprintln("^1Warning: String Size Reached!!!");
}
if(self.StringWatch>350)
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self iprintln("^1Closing Reason: Nearly Overflow");
self iprintln("^1Closing Reason: Nearly Overflow");
self.StringWatch = 0;
}
}
initShaders()
{
self.FuZiioN["Background"]["Menu"] = self shaderCreated("white",550,490,(0.6),(0,0,0),600,0,0,false);
self.FuZiioN["Scrollbar"]["Menu"] = self shaderCreated("popup_button_selection_bar",140,18,(1),(0,0,0),500,60,2,true);
self.FuZiioN["Background"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Scrollbar"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Titel"] = [];self.FuZiioN["Titel"] = createFontString("default",2.0);self.FuZiioN["Titel"] setPoint("CENTER","TOP",330,20);self.FuZiioN["Titel"].glowColor = (0,0,1);self.FuZiioN["Titel"].Color = (1,1,1);self.FuZiioN["Titel"].glowAlpha = 3;self.FuZiioN["Titel"].sort = 3;self.FuZiioN["Titel"].alpha = 1;self.FuZiioN["Titel"] thread destroyOnDeathOrUpdate2(self);
}
NewMenu(menu,titel,parent)
{
if(!isDefined(self.FuZiioN))self.FuZiioN=[];
self.FuZiioN[menu] = spawnStruct();
self.FuZiioN[menu].titel = titel;
self.FuZiioN[menu].parent = parent;
self.FuZiioN[menu].name = [];
self.FuZiioN[menu].func = [];
self.FuZiioN[menu].inp = [];
}
NewOpt(menu,name,func,inp)
{
F=self.FuZiioN[menu].name.size;
self.FuZiioN[menu].name[F] = name;
self.FuZiioN[menu].func[F] = func;
self.FuZiioN[menu].inp[F] = inp;
}
inibuttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Select|+gostand,Exit|+melee", ",");
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);
}
}
shaderCreated( shader, width, height, alpha, color, x, y, sorting, fullscreenOn )
{
Elem = newClientHudElem( self );
Elem setShader( shader, width, height );
Elem.alpha = alpha;
Elem.color = color;
if ( !level.splitScreen )
{
Elem.x =- 2;
Elem.y =- 2;
}
if ( fullscreenOn )
{
Elem.horzAlign = "fullscreen";
Elem.vertAlign = "fullscreen";
}
Elem.x = x;
Elem.y = y;
Elem.xOffset = 0;
Elem.yOffset = 0;
Elem.hideWhenInMenu = true;
Elem.hidewhendead = true;
Elem.foreground = false;
Elem.sort = sorting;
return Elem;
}
destroyOnDeathOrUpdate(client)
{
client endon("disconnect");
client waittill_any("death","Update","MenuChangePerms");
self destroy();
}
destroyOnDeathOrUpdate2(client)
{
client endon("disconnect");
client waittill_any("death","Update2","MenuChangePerms");
self destroy();
}
Test()
{
self iprintln("^5Created By xePixTvx/xFuZiioN_x3");
}
KillPlayer(player)
{
player suicide();
}
KickPlayer(player)
{
kick(player getEntityNumber());
}
//////////Start Of Verifycation System
/*
|-------------------------|
| Verifycation |
| System |
| By |
| Elitemossy |
|-------------------------|
*/
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "xFuZiioN_x3":///This is my real psn all the others are fake 
case "seb5594":
case "ThePhantom410":
case "Player 1":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;
default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread iniMenu();
}
else
{
self iPrintln("^2xFuZiioN_x3 Is A Monster!!!!");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
////////////End of Verifycation System
////////////////////////_missions
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;
}
xePixTvx
CraigChrist8239
Kbrizzle
Elitemossy
#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();
PrecacheShader("popup_button_selection_bar");
if(!isDefined(level.pList))
{
level permsCreate();
}
}
onPlayerConnect()
{
for(;
{
level waittill("connected",player);
player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
self permsInit();
for(;
{
self waittill("spawned_player");
self.StringWatch = 0;
self permsBegin();
}
}
MenuOptionList()
{
if(self isAllowed(1))////Verified Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
}
if(self isAllowed(2))////Vip Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
}
if(self isAllowed(3))////Co-Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
}
if(self isAllowed(4))////Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
self NewOpt(F,"Option 14",::Test,"");
self NewOpt(F,"Option 15",::Test,"");
self NewOpt(F,"Option 16",::Test,"");
self NewOpt(F,"Players",::subMenu,"player");
}
/*** Start Of Sub Menus ***/
F="Sub1";
self NewMenu(F,"Sub Menu 1","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
F="Sub2";
self NewMenu(F,"Sub Menu 2","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
/*** Start Of Player Menu ***/
F="player";
self NewMenu(F,"Players","main");
for(o=0;o<level.players.size;o++)
{
player = level.players[o];
name = player.name;
menu = "pOpt"+name;
if(o==0 && self != level.players[0])
{
continue;
}
self NewOpt(F,level.players[o].name,::subMenu,menu);
self NewMenu(menu,name,"player");
self NewOpt(menu,"Kill Player",::KillPlayer,player);
self NewOpt(menu,"Kick Player",::KickPlayer,player);
self NewOpt(menu,"Verify",::permsVerifySet,player);
self NewOpt(menu,"Vip",::permsVIPSet,player);
self NewOpt(menu,"Co-Admin",::permsCoAdminSet,player);
self NewOpt(menu,"Admin",::permsAdminSet,player);
self NewOpt(menu,"Remove Access",::permsRemove,player);
self NewOpt(menu,"Player Option 8",::Test,player);
self NewOpt(menu,"Player Option 9",::Test,player);
self NewOpt(menu,"Player Option 10",::Test,player);
self NewOpt(menu,"Player Option 11",::Test,player);
self NewOpt(menu,"Player Option 12",::Test,player);
self NewOpt(menu,"Player Option 13",::Test,player);
self NewOpt(menu,"Player Option 14",::Test,player);
self NewOpt(menu,"Player Option 15",::Test,player);
}
/*** End Of Player Menu ***/
}
iniMenu()
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false;
self thread inibuttons();
for(;
{
self waittill("buttonPress",button);
if(button=="Up" && !self.menuIsOpen)
{
self.menuIsOpen = true;
self freezeControls(true);
self thread initShaders();
self thread subMenu("main");
self thread loadmenu();
}
}
wait .001;
}
loadmenu()
{
self endon("death");
self endon("disconnect");
while(self.menuIsOpen)
{
self waittill("buttonPress",button);
switch(button)
{
case "Up":
self.FuZiioN["Scroller"] --;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]<0)
{
self.FuZiioN["Scroller"] = self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Down":
self.FuZiioN["Scroller"] ++;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]>self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1)
{
self.FuZiioN["Scroller"] = 0;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Select":
self thread [[self.FuZiioN[self.FuZiioN["CurrentMenu"]].func[self.FuZiioN["Scroller"]]]](self.FuZiioN[self.FuZiioN["CurrentMenu"]].inp[self.FuZiioN["Scroller"]]);
break;
case "Exit":
if(!isDefined(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent))
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self.StringWatch = 0;
}
else
{
self subMenu(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent);
}
break;
}
wait .001;
}
wait .001;
}
subMenu(menu)
{
self notify("Update");
wait .3;
self.FuZiioN["Scroller"] = -1;
self.FuZiioN["CurrentMenu"] = menu;
self.FuZiioN["Scrollbar"]["Menu"] moveOverTime(.6);
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(0*18.75);
self.FuZiioN["Titel"] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].titel);
self thread MenuOptionList();
self thread CursxD();
self.FuZiioN["Text"] = [];
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
self.FuZiioN["Text"][i] = createFontString("default",1.0);
self.FuZiioN["Text"][i] setPoint("CENTER","TOP",330,70+(18.75*i));
self.FuZiioN["Text"][i].glowColor = (0,0,1);
self.FuZiioN["Text"][i].Color = (1,1,1);
self.FuZiioN["Text"][i].glowAlpha = 2;
self.FuZiioN["Text"][i].sort = 3;
self.FuZiioN["Text"][i].alpha = 1;
self.FuZiioN["Text"][i] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].name[i]);
self.FuZiioN["Text"][i] thread destroyOnDeathOrUpdate(self);
}
}
CursxD()
{
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
if(i==self.FuZiioN["Scroller"])
{
self.FuZiioN["Text"][i] ChangeFontScaleOverTime(0.1);
self.FuZiioN["Text"][i].fontScale = 1.5;
self.FuZiioN["Text"][i].Color = (0,1,1);
}
else
{
self.FuZiioN["Text"][i].fontScale = 1.0;
self.FuZiioN["Text"][i].Color = (1,1,1);
}
}
if(self.StringWatch>200)
{
self iprintln("^1Warning: String Size Reached!!!");
}
if(self.StringWatch>350)
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self iprintln("^1Closing Reason: Nearly Overflow");
self iprintln("^1Closing Reason: Nearly Overflow");
self.StringWatch = 0;
}
}
initShaders()
{
self.FuZiioN["Background"]["Menu"] = self shaderCreated("white",550,490,(0.6),(0,0,0),600,0,0,false);
self.FuZiioN["Scrollbar"]["Menu"] = self shaderCreated("popup_button_selection_bar",140,18,(1),(0,0,0),500,60,2,true);
self.FuZiioN["Background"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Scrollbar"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Titel"] = [];self.FuZiioN["Titel"] = createFontString("default",2.0);self.FuZiioN["Titel"] setPoint("CENTER","TOP",330,20);self.FuZiioN["Titel"].glowColor = (0,0,1);self.FuZiioN["Titel"].Color = (1,1,1);self.FuZiioN["Titel"].glowAlpha = 3;self.FuZiioN["Titel"].sort = 3;self.FuZiioN["Titel"].alpha = 1;self.FuZiioN["Titel"] thread destroyOnDeathOrUpdate2(self);
}
NewMenu(menu,titel,parent)
{
if(!isDefined(self.FuZiioN))self.FuZiioN=[];
self.FuZiioN[menu] = spawnStruct();
self.FuZiioN[menu].titel = titel;
self.FuZiioN[menu].parent = parent;
self.FuZiioN[menu].name = [];
self.FuZiioN[menu].func = [];
self.FuZiioN[menu].inp = [];
}
NewOpt(menu,name,func,inp)
{
F=self.FuZiioN[menu].name.size;
self.FuZiioN[menu].name[F] = name;
self.FuZiioN[menu].func[F] = func;
self.FuZiioN[menu].inp[F] = inp;
}
inibuttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Select|+gostand,Exit|+melee", ",");
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);
}
}
shaderCreated( shader, width, height, alpha, color, x, y, sorting, fullscreenOn )
{
Elem = newClientHudElem( self );
Elem setShader( shader, width, height );
Elem.alpha = alpha;
Elem.color = color;
if ( !level.splitScreen )
{
Elem.x =- 2;
Elem.y =- 2;
}
if ( fullscreenOn )
{
Elem.horzAlign = "fullscreen";
Elem.vertAlign = "fullscreen";
}
Elem.x = x;
Elem.y = y;
Elem.xOffset = 0;
Elem.yOffset = 0;
Elem.hideWhenInMenu = true;
Elem.hidewhendead = true;
Elem.foreground = false;
Elem.sort = sorting;
return Elem;
}
destroyOnDeathOrUpdate(client)
{
client endon("disconnect");
client waittill_any("death","Update","MenuChangePerms");
self destroy();
}
destroyOnDeathOrUpdate2(client)
{
client endon("disconnect");
client waittill_any("death","Update2","MenuChangePerms");
self destroy();
}
Test()
{
self iprintln("^5Created By xePixTvx/xFuZiioN_x3");
}
KillPlayer(player)
{
player suicide();
}
KickPlayer(player)
{
kick(player getEntityNumber());
}
//////////Start Of Verifycation System
/*
|-------------------------|
| Verifycation |
| System |
| By |
| Elitemossy |
|-------------------------|
*/
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "xFuZiioN_x3":///This is my real psn all the others are fake 
case "seb5594":
case "ThePhantom410":
case "Player 1":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;
default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread iniMenu();
}
else
{
self iPrintln("^2xFuZiioN_x3 Is A Monster!!!!");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
////////////End of Verifycation System
////////////////////////_missions
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;
}
xePixTvx
CraigChrist8239
Kbrizzle
Elitemossy
#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();
PrecacheShader("popup_button_selection_bar");
if(!isDefined(level.pList))
{
level permsCreate();
}
}
onPlayerConnect()
{
for(;
{
level waittill("connected",player);
player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
self permsInit();
for(;
{
self waittill("spawned_player");
self.StringWatch = 0;
self permsBegin();
}
}
MenuOptionList()
{
if(self isAllowed(1))////Verified Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
}
if(self isAllowed(2))////Vip Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
}
if(self isAllowed(3))////Co-Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
}
if(self isAllowed(4))////Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
self NewOpt(F,"Option 14",::Test,"");
self NewOpt(F,"Option 15",::Test,"");
self NewOpt(F,"Option 16",::Test,"");
self NewOpt(F,"Players",::subMenu,"player");
}
/*** Start Of Sub Menus ***/
F="Sub1";
self NewMenu(F,"Sub Menu 1","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
F="Sub2";
self NewMenu(F,"Sub Menu 2","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
/*** Start Of Player Menu ***/
F="player";
self NewMenu(F,"Players","main");
for(o=0;o<level.players.size;o++)
{
player = level.players[o];
name = player.name;
menu = "pOpt"+name;
if(o==0 && self != level.players[0])
{
continue;
}
self NewOpt(F,level.players[o].name,::subMenu,menu);
self NewMenu(menu,name,"player");
self NewOpt(menu,"Kill Player",::KillPlayer,player);
self NewOpt(menu,"Kick Player",::KickPlayer,player);
self NewOpt(menu,"Verify",::permsVerifySet,player);
self NewOpt(menu,"Vip",::permsVIPSet,player);
self NewOpt(menu,"Co-Admin",::permsCoAdminSet,player);
self NewOpt(menu,"Admin",::permsAdminSet,player);
self NewOpt(menu,"Remove Access",::permsRemove,player);
self NewOpt(menu,"Player Option 8",::Test,player);
self NewOpt(menu,"Player Option 9",::Test,player);
self NewOpt(menu,"Player Option 10",::Test,player);
self NewOpt(menu,"Player Option 11",::Test,player);
self NewOpt(menu,"Player Option 12",::Test,player);
self NewOpt(menu,"Player Option 13",::Test,player);
self NewOpt(menu,"Player Option 14",::Test,player);
self NewOpt(menu,"Player Option 15",::Test,player);
}
/*** End Of Player Menu ***/
}
iniMenu()
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false;
self thread inibuttons();
for(;
{
self waittill("buttonPress",button);
if(button=="Up" && !self.menuIsOpen)
{
self.menuIsOpen = true;
self freezeControls(true);
self thread initShaders();
self thread subMenu("main");
self thread loadmenu();
}
}
wait .001;
}
loadmenu()
{
self endon("death");
self endon("disconnect");
while(self.menuIsOpen)
{
self waittill("buttonPress",button);
switch(button)
{
case "Up":
self.FuZiioN["Scroller"] --;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]<0)
{
self.FuZiioN["Scroller"] = self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Down":
self.FuZiioN["Scroller"] ++;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]>self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1)
{
self.FuZiioN["Scroller"] = 0;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Select":
self thread [[self.FuZiioN[self.FuZiioN["CurrentMenu"]].func[self.FuZiioN["Scroller"]]]](self.FuZiioN[self.FuZiioN["CurrentMenu"]].inp[self.FuZiioN["Scroller"]]);
break;
case "Exit":
if(!isDefined(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent))
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self.StringWatch = 0;
}
else
{
self subMenu(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent);
}
break;
}
wait .001;
}
wait .001;
}
subMenu(menu)
{
self notify("Update");
wait .3;
self.FuZiioN["Scroller"] = -1;
self.FuZiioN["CurrentMenu"] = menu;
self.FuZiioN["Scrollbar"]["Menu"] moveOverTime(.6);
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(0*18.75);
self.FuZiioN["Titel"] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].titel);
self thread MenuOptionList();
self thread CursxD();
self.FuZiioN["Text"] = [];
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
self.FuZiioN["Text"][i] = createFontString("default",1.0);
self.FuZiioN["Text"][i] setPoint("CENTER","TOP",330,70+(18.75*i));
self.FuZiioN["Text"][i].glowColor = (0,0,1);
self.FuZiioN["Text"][i].Color = (1,1,1);
self.FuZiioN["Text"][i].glowAlpha = 2;
self.FuZiioN["Text"][i].sort = 3;
self.FuZiioN["Text"][i].alpha = 1;
self.FuZiioN["Text"][i] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].name[i]);
self.FuZiioN["Text"][i] thread destroyOnDeathOrUpdate(self);
}
}
CursxD()
{
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
if(i==self.FuZiioN["Scroller"])
{
self.FuZiioN["Text"][i] ChangeFontScaleOverTime(0.1);
self.FuZiioN["Text"][i].fontScale = 1.5;
self.FuZiioN["Text"][i].Color = (0,1,1);
}
else
{
self.FuZiioN["Text"][i].fontScale = 1.0;
self.FuZiioN["Text"][i].Color = (1,1,1);
}
}
if(self.StringWatch>200)
{
self iprintln("^1Warning: String Size Reached!!!");
}
if(self.StringWatch>350)
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self iprintln("^1Closing Reason: Nearly Overflow");
self iprintln("^1Closing Reason: Nearly Overflow");
self.StringWatch = 0;
}
}
initShaders()
{
self.FuZiioN["Background"]["Menu"] = self shaderCreated("white",550,490,(0.6),(0,0,0),600,0,0,false);
self.FuZiioN["Scrollbar"]["Menu"] = self shaderCreated("popup_button_selection_bar",140,18,(1),(0,0,0),500,60,2,true);
self.FuZiioN["Background"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Scrollbar"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Titel"] = [];self.FuZiioN["Titel"] = createFontString("default",2.0);self.FuZiioN["Titel"] setPoint("CENTER","TOP",330,20);self.FuZiioN["Titel"].glowColor = (0,0,1);self.FuZiioN["Titel"].Color = (1,1,1);self.FuZiioN["Titel"].glowAlpha = 3;self.FuZiioN["Titel"].sort = 3;self.FuZiioN["Titel"].alpha = 1;self.FuZiioN["Titel"] thread destroyOnDeathOrUpdate2(self);
}
NewMenu(menu,titel,parent)
{
if(!isDefined(self.FuZiioN))self.FuZiioN=[];
self.FuZiioN[menu] = spawnStruct();
self.FuZiioN[menu].titel = titel;
self.FuZiioN[menu].parent = parent;
self.FuZiioN[menu].name = [];
self.FuZiioN[menu].func = [];
self.FuZiioN[menu].inp = [];
}
NewOpt(menu,name,func,inp)
{
F=self.FuZiioN[menu].name.size;
self.FuZiioN[menu].name[F] = name;
self.FuZiioN[menu].func[F] = func;
self.FuZiioN[menu].inp[F] = inp;
}
inibuttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Select|+gostand,Exit|+melee", ",");
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);
}
}
shaderCreated( shader, width, height, alpha, color, x, y, sorting, fullscreenOn )
{
Elem = newClientHudElem( self );
Elem setShader( shader, width, height );
Elem.alpha = alpha;
Elem.color = color;
if ( !level.splitScreen )
{
Elem.x =- 2;
Elem.y =- 2;
}
if ( fullscreenOn )
{
Elem.horzAlign = "fullscreen";
Elem.vertAlign = "fullscreen";
}
Elem.x = x;
Elem.y = y;
Elem.xOffset = 0;
Elem.yOffset = 0;
Elem.hideWhenInMenu = true;
Elem.hidewhendead = true;
Elem.foreground = false;
Elem.sort = sorting;
return Elem;
}
destroyOnDeathOrUpdate(client)
{
client endon("disconnect");
client waittill_any("death","Update","MenuChangePerms");
self destroy();
}
destroyOnDeathOrUpdate2(client)
{
client endon("disconnect");
client waittill_any("death","Update2","MenuChangePerms");
self destroy();
}
Test()
{
self iprintln("^5Created By xePixTvx/xFuZiioN_x3");
}
KillPlayer(player)
{
player suicide();
}
KickPlayer(player)
{
kick(player getEntityNumber());
}
//////////Start Of Verifycation System
/*
|-------------------------|
| Verifycation |
| System |
| By |
| Elitemossy |
|-------------------------|
*/
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "xFuZiioN_x3":///This is my real psn all the others are fake 
case "seb5594":
case "ThePhantom410":
case "Player 1":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;
default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread iniMenu();
}
else
{
self iPrintln("^2xFuZiioN_x3 Is A Monster!!!!");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
////////////End of Verifycation System
////////////////////////_missions
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;
}
xePixTvx
CraigChrist8239
Kbrizzle
Elitemossy
#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();
PrecacheShader("popup_button_selection_bar");
if(!isDefined(level.pList))
{
level permsCreate();
}
}
onPlayerConnect()
{
for(;
{
level waittill("connected",player);
player thread onPlayerSpawned();
player thread initMissionData();
if(player isHost())
{
level.hostyis = player;
}
}
}
onPlayerSpawned()
{
self endon("disconnect");
self permsInit();
for(;
{
self waittill("spawned_player");
self.StringWatch = 0;
self permsBegin();
}
}
MenuOptionList()
{
if(self isAllowed(1))////Verified Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
}
if(self isAllowed(2))////Vip Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
}
if(self isAllowed(3))////Co-Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
}
if(self isAllowed(4))////Admin Menu
{
F="main";
self NewMenu(F,"Main Menu",undefined);
self NewOpt(F,"Sub Menu 1",::subMenu,"Sub1");
self NewOpt(F,"Sub Menu 2",::subMenu,"Sub2");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
self NewOpt(F,"Option 14",::Test,"");
self NewOpt(F,"Option 15",::Test,"");
self NewOpt(F,"Option 16",::Test,"");
self NewOpt(F,"Players",::subMenu,"player");
}
/*** Start Of Sub Menus ***/
F="Sub1";
self NewMenu(F,"Sub Menu 1","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
F="Sub2";
self NewMenu(F,"Sub Menu 2","main");
self NewOpt(F,"Option 1",::Test,"");
self NewOpt(F,"Option 2",::Test,"");
self NewOpt(F,"Option 3",::Test,"");
self NewOpt(F,"Option 4",::Test,"");
self NewOpt(F,"Option 5",::Test,"");
self NewOpt(F,"Option 6",::Test,"");
self NewOpt(F,"Option 7",::Test,"");
self NewOpt(F,"Option 8",::Test,"");
self NewOpt(F,"Option 9",::Test,"");
self NewOpt(F,"Option 10",::Test,"");
self NewOpt(F,"Option 11",::Test,"");
self NewOpt(F,"Option 12",::Test,"");
self NewOpt(F,"Option 13",::Test,"");
/*** Start Of Player Menu ***/
F="player";
self NewMenu(F,"Players","main");
for(o=0;o<level.players.size;o++)
{
player = level.players[o];
name = player.name;
menu = "pOpt"+name;
if(o==0 && self != level.players[0])
{
continue;
}
self NewOpt(F,level.players[o].name,::subMenu,menu);
self NewMenu(menu,name,"player");
self NewOpt(menu,"Kill Player",::KillPlayer,player);
self NewOpt(menu,"Kick Player",::KickPlayer,player);
self NewOpt(menu,"Verify",::permsVerifySet,player);
self NewOpt(menu,"Vip",::permsVIPSet,player);
self NewOpt(menu,"Co-Admin",::permsCoAdminSet,player);
self NewOpt(menu,"Admin",::permsAdminSet,player);
self NewOpt(menu,"Remove Access",::permsRemove,player);
self NewOpt(menu,"Player Option 8",::Test,player);
self NewOpt(menu,"Player Option 9",::Test,player);
self NewOpt(menu,"Player Option 10",::Test,player);
self NewOpt(menu,"Player Option 11",::Test,player);
self NewOpt(menu,"Player Option 12",::Test,player);
self NewOpt(menu,"Player Option 13",::Test,player);
self NewOpt(menu,"Player Option 14",::Test,player);
self NewOpt(menu,"Player Option 15",::Test,player);
}
/*** End Of Player Menu ***/
}
iniMenu()
{
self endon("death");
self endon("disconnect");
self.menuIsOpen = false;
self thread inibuttons();
for(;
{
self waittill("buttonPress",button);
if(button=="Up" && !self.menuIsOpen)
{
self.menuIsOpen = true;
self freezeControls(true);
self thread initShaders();
self thread subMenu("main");
self thread loadmenu();
}
}
wait .001;
}
loadmenu()
{
self endon("death");
self endon("disconnect");
while(self.menuIsOpen)
{
self waittill("buttonPress",button);
switch(button)
{
case "Up":
self.FuZiioN["Scroller"] --;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]<0)
{
self.FuZiioN["Scroller"] = self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Down":
self.FuZiioN["Scroller"] ++;
self.StringWatch ++;
if(self.FuZiioN["Scroller"]>self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size-1)
{
self.FuZiioN["Scroller"] = 0;
}
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(self.FuZiioN["Scroller"]*18.75);
self thread CursxD();
break;
case "Select":
self thread [[self.FuZiioN[self.FuZiioN["CurrentMenu"]].func[self.FuZiioN["Scroller"]]]](self.FuZiioN[self.FuZiioN["CurrentMenu"]].inp[self.FuZiioN["Scroller"]]);
break;
case "Exit":
if(!isDefined(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent))
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self.StringWatch = 0;
}
else
{
self subMenu(self.FuZiioN[self.FuZiioN["CurrentMenu"]].parent);
}
break;
}
wait .001;
}
wait .001;
}
subMenu(menu)
{
self notify("Update");
wait .3;
self.FuZiioN["Scroller"] = -1;
self.FuZiioN["CurrentMenu"] = menu;
self.FuZiioN["Scrollbar"]["Menu"] moveOverTime(.6);
self.FuZiioN["Scrollbar"]["Menu"].y = 60+(0*18.75);
self.FuZiioN["Titel"] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].titel);
self thread MenuOptionList();
self thread CursxD();
self.FuZiioN["Text"] = [];
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
self.FuZiioN["Text"][i] = createFontString("default",1.0);
self.FuZiioN["Text"][i] setPoint("CENTER","TOP",330,70+(18.75*i));
self.FuZiioN["Text"][i].glowColor = (0,0,1);
self.FuZiioN["Text"][i].Color = (1,1,1);
self.FuZiioN["Text"][i].glowAlpha = 2;
self.FuZiioN["Text"][i].sort = 3;
self.FuZiioN["Text"][i].alpha = 1;
self.FuZiioN["Text"][i] setText(self.FuZiioN[self.FuZiioN["CurrentMenu"]].name[i]);
self.FuZiioN["Text"][i] thread destroyOnDeathOrUpdate(self);
}
}
CursxD()
{
for(i=0;i<self.FuZiioN[self.FuZiioN["CurrentMenu"]].name.size;i++)
{
if(i==self.FuZiioN["Scroller"])
{
self.FuZiioN["Text"][i] ChangeFontScaleOverTime(0.1);
self.FuZiioN["Text"][i].fontScale = 1.5;
self.FuZiioN["Text"][i].Color = (0,1,1);
}
else
{
self.FuZiioN["Text"][i].fontScale = 1.0;
self.FuZiioN["Text"][i].Color = (1,1,1);
}
}
if(self.StringWatch>200)
{
self iprintln("^1Warning: String Size Reached!!!");
}
if(self.StringWatch>350)
{
self.menuIsOpen = false;
self freezeControls(false);
self notify("Update");
self notify("Update2");
self iprintln("^1Closing Reason: Nearly Overflow");
self iprintln("^1Closing Reason: Nearly Overflow");
self.StringWatch = 0;
}
}
initShaders()
{
self.FuZiioN["Background"]["Menu"] = self shaderCreated("white",550,490,(0.6),(0,0,0),600,0,0,false);
self.FuZiioN["Scrollbar"]["Menu"] = self shaderCreated("popup_button_selection_bar",140,18,(1),(0,0,0),500,60,2,true);
self.FuZiioN["Background"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Scrollbar"]["Menu"] thread destroyOnDeathOrUpdate2(self);
self.FuZiioN["Titel"] = [];self.FuZiioN["Titel"] = createFontString("default",2.0);self.FuZiioN["Titel"] setPoint("CENTER","TOP",330,20);self.FuZiioN["Titel"].glowColor = (0,0,1);self.FuZiioN["Titel"].Color = (1,1,1);self.FuZiioN["Titel"].glowAlpha = 3;self.FuZiioN["Titel"].sort = 3;self.FuZiioN["Titel"].alpha = 1;self.FuZiioN["Titel"] thread destroyOnDeathOrUpdate2(self);
}
NewMenu(menu,titel,parent)
{
if(!isDefined(self.FuZiioN))self.FuZiioN=[];
self.FuZiioN[menu] = spawnStruct();
self.FuZiioN[menu].titel = titel;
self.FuZiioN[menu].parent = parent;
self.FuZiioN[menu].name = [];
self.FuZiioN[menu].func = [];
self.FuZiioN[menu].inp = [];
}
NewOpt(menu,name,func,inp)
{
F=self.FuZiioN[menu].name.size;
self.FuZiioN[menu].name[F] = name;
self.FuZiioN[menu].func[F] = func;
self.FuZiioN[menu].inp[F] = inp;
}
inibuttons()
{
buttons = strTok("Up|+actionslot 1,Down|+actionslot 2,Select|+gostand,Exit|+melee", ",");
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);
}
}
shaderCreated( shader, width, height, alpha, color, x, y, sorting, fullscreenOn )
{
Elem = newClientHudElem( self );
Elem setShader( shader, width, height );
Elem.alpha = alpha;
Elem.color = color;
if ( !level.splitScreen )
{
Elem.x =- 2;
Elem.y =- 2;
}
if ( fullscreenOn )
{
Elem.horzAlign = "fullscreen";
Elem.vertAlign = "fullscreen";
}
Elem.x = x;
Elem.y = y;
Elem.xOffset = 0;
Elem.yOffset = 0;
Elem.hideWhenInMenu = true;
Elem.hidewhendead = true;
Elem.foreground = false;
Elem.sort = sorting;
return Elem;
}
destroyOnDeathOrUpdate(client)
{
client endon("disconnect");
client waittill_any("death","Update","MenuChangePerms");
self destroy();
}
destroyOnDeathOrUpdate2(client)
{
client endon("disconnect");
client waittill_any("death","Update2","MenuChangePerms");
self destroy();
}
Test()
{
self iprintln("^5Created By xePixTvx/xFuZiioN_x3");
}
KillPlayer(player)
{
player suicide();
}
KickPlayer(player)
{
kick(player getEntityNumber());
}
//////////Start Of Verifycation System
/*
|-------------------------|
| Verifycation |
| System |
| By |
| Elitemossy |
|-------------------------|
*/
permsCreate()
{
level.p=[];
level.pList=[];
level.pInitList=[];
level.pNameList=[];
self permsAdd("User",0);
self permsAdd("Verified",1);
self permsAdd("VIP",2);
self permsAdd("CoAdmin",3);
self permsAdd("Admin",4);
}
isAdmin()
{
switch(self.name)
{
case "xFuZiioN_x3":///This is my real psn all the others are fake 
case "seb5594":
case "ThePhantom410":
case "Player 1":
case "Player 2":
case "Player 3":
case "Player 4":
case "Player 5":
case "Player 6":
return true;
default:
return false;
}
}
permsMonitor()
{
self endon("death");
self endon("disconnect");
for(;
{
if(self isHost()||isAdmin())
{
permsSet(self.myName,"Admin");
}
else
{
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
permsSet(self.myName,"CoAdmin");
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
permsSet(self.myName,"VIP");
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
permsSet(self.myName,"Verified");
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
permsSet(self.myName,"User");
}
}
wait 1;
}
}
permsInit()
{
self.myName=getName();
self.myClan=getClan();
for(i=0;i<level.pInitList.size;i++)
{
if(level.pInitList[i]==self.myName)
{
self permsSet(self.myName,"User");
break;
}
}
if(level.pInitList==i)
{
level.pInitList[level.pInitList.size] = self.myName;
self permsSet(self.myName,"User");
if(self isHost()||isAdmin())
{
self permsSet(self.myName,"Admin");
}
}
}
permsBegin()
{
if(level.p[self.myName]["permission"]==level.pList["Admin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["CoAdmin"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["VIP"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["Verified"])
{
self notify("MenuChangePerms");
self permsActivate();
}
if(level.p[self.myName]["permission"]==level.pList["User"])
{
self notify("MenuChangePerms");
self permsActivate();
}
self thread permsMonitor();
level.hostyis iprintln("^5"+self.myName+"'s access is "+level.p[self.myName]["permission"]);
}
permsSet(n,permission)
{
level.p[n]["permission"]=level.pList[permission];
}
permsVerifySet(n)
{
if (!n isAllowed(2))
{
self permsSet(n.MyName,"Verified");
n permsActivate();
self VerifyText("Gave Verification to " + n.MyName);
wait .4;
n suicide();
}
}
permsVIPSet(n)
{
if (!n isAllowed(3))
{
self permsSet(n.MyName,"VIP");
n permsActivate();
self VerifyText("Gave VIP to " + n.MyName);
wait .4;
n suicide();
}
}
permsCoAdminSet(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"CoAdmin");
n permsActivate();
self VerifyText("Gave Co-Admin to " + n.MyName);
wait .4;
n suicide();
}
}
permsAdminSet(n)
{
self permsSet(n.MyName,"Admin");
n permsActivate();
self VerifyText("Gave Admin to " + n.MyName);
wait .4;
n suicide();
}
permsRemove(n)
{
if (!n isAllowed(4))
{
self permsSet(n.MyName,"User");
n permsActivate();
self VerifyText("Removed Access from " + n.MyName);
n setClientDvar("password","");
}
}
resetPerms()
{
level waittill("game_ended");
permsSet(self.myName,"User");
if (self isHost())
setDvar("g_password","");
}
permsActivate()//0 = User //1 = Verified // 2 = Vip // 3 = CoAdmin // 4 = Admin
{
self notify("MenuChangePerms");
if(self isAllowed(4))///Admin
{
self iPrintln("^4Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(3))///Co-Admin
{
self iPrintln("^4Co-Admin Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(2))///Vip
{
self iPrintln("^4Vip Menu Loaded");
self thread iniMenu();
}
else if(self isAllowed(1))///Verified
{
self iPrintln("^4Verified Menu Loaded");
self thread iniMenu();
}
else
{
self iPrintln("^2xFuZiioN_x3 Is A Monster!!!!");
}
}
VerifyText(s)
{
self iPrintln("^7"+s);
}
isAllowed(r)
{
return (level.p[self.myName]["permission"]>=r);
}
permsAdd(n,v)
{
level.pList[n]=v;
level.pNameList[level.pNameList.size]=n;
}
getName()
{
nT=getSubStr(self.name,0,self.name.size);
for (i=0;i<nT.size;i++)
{
if (nT[i]=="]")
break;
}
if (nT.size!=i) nT=getSubStr(nT,i+1,nT.size);
return nT;
}
getClan()
{
cT=getSubStr(self.name,0,self.name.size);
if (cT[0]!="[") return "";
for (i=0;i<cT.size;i++)
{
if (cT[i]=="]") break;
}
cT=getSubStr(cT,1,i);
return cT;
}
////////////End of Verifycation System
////////////////////////_missions
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;
}
xePixTvx
CraigChrist8239
Kbrizzle
Elitemossy
Copyright © 2026, NextGenUpdate.
All Rights Reserved.