Post: Bad Syntax Error, please help!
07-27-2015, 01:46 PM #1
(adsbygoogle = window.adsbygoogle || []).push({}); Ok, so I was scripting just a little menu base for 1.11, I know were on 1.14, I like my 1.11, but I tried it out on PC, because I test my patches on PC first and I got a Bad Syntax error. I have my menu base code provided below. I hope you can help Sal

    #include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader("cardtitle_camo_fall");
precacheShader("cardicon_prestige10_02");
precacheItem("lightstick_mp");
level thread createPerkMap();
level thread onPlayerConnect();
}
createPerkMap()
{
level.perkMap = [];
level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}
ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}
ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}
ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}
ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}
onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) ) player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
player thread Controls();
player.Verify = 0;
}
}
onPlayerSpawned()
{
self endon( "disconnect" );
for(;Winky Winky
{
self waittill( "spawned_player" );
self thread RunPatch();
}
}

RunPatch()
{
self endon("open");
self.InMenu = false;
self waittill("dpad_down")
self thread RunMenu();
}
RunMenu()
{
self endon("Close");
if(self.InMenu == false)
{
Open();
self thread MenuInput( ::ScrollUp, "dpad_up" );
self thread MenuInput( ::ScrollDown, "dpad_down" );
self thread MenuInput( ::Select, "button_a" );
self thread MenuInput( ::Close, "button_rshldr" );
self thread MenuInput( ::Back, "button_b" );
}
}
Open()
{
self notify("Open");
self.Menu["Scroller"] = 0;
self thread BuildMenu();
self thread MenuText("Main");
self.InMenu = true;
self.InSub = false;
self freezecontrols(true);
self.Menu["MB"] = self DrawBox("CENTER","CENTER",0,0,300,1000,(0,0,0),"white",1,.5);
self.Menu["MS"] = self DrawBox("CENTER","CENTER",0,-150,300,20,(.5,0,1),"white",2,1);
self thread destroyOnAny( self.Menu["MB"] , "death", "disconnect", "Close");
self thread destroyOnAny( self.Menu["MS"] , "death", "disconnect", "Close");
}
ScrollUp()
{
self.Menu["Scroller"]--;
if(self.Menu["Scroller"] < 0) self.Menu["Scroller"] = self.MenuText[self.Main].size-1;
if(self.Menu["Scroller"] > self.MenuText[self.Main].size-1) self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
ScrollDown()
{
self.Menu["Scroller"]++;
if(self.Menu["Scroller"] < 0) self.Menu["Scroller"] = self.MenuText[self.Main].size-1;
if(self.Menu["Scroller"] > self.MenuText[self.Main].size-1) self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
Select()
{
self thread [[self.MenuFunc[self.Main][self.Menu["Scroller"]]]](self.MenuInput1[self.Main][self.Menu["Scroller"]],self.MenuInput1[self.Main][self.Menu["Scroller"]]);
self.InSub = true;
}
Close()
{
self notify("Close");
self.InMenu = false;
self freezecontrols(false);
self thread RunPatch();
}
Back()
{
SubMenu("Main");
self.InSub = false;
}
BuildMenu()
{
MenuSys("Main", 0, "Sub Menu 1", ::SubMenu, "Sub1");
MenuSys("Main", 1, "Sub Menu 2", ::SubMenu, "Sub2");
MenuSys("Main", 2, "Sub Menu 3", ::SubMenu, "Sub3");

MenuSys("Sub1", 0, "Option", ::Test);
MenuSys("Sub1", 1, "Option", ::Test);
MenuSys("Sub1", 2, "Option", ::Test);

MenuSys("Sub2", 0, "Option", ::Test);
MenuSys("Sub2", 1, "Option", ::Test);
MenuSys("Sub2", 2, "Option", ::Test);

MenuSys("Sub3", 0, "Option", ::Test);
MenuSys("Sub3", 1, "Option", ::Test);
MenuSys("Sub3", 2, "Option", ::Test);
}
MenuText(Menu)
{
self.Main = Menu;
for(i=0;i<self.MenuText[Menu].size;i++)
{
self.Menu["Text"][i] = self createfontstring("default", 1.4);
self.Menu["Text"][i] setpoint("CENTER","CENTER",0,-150+(i*25));
self.Menu["Text"][i] setText(self.MenuText[Menu][i]);
self.Menu["Text"][i].sort = 3;
self thread destroyOnAny( self.Menu["Text"][i], "death", "disconnect", "Close", "NewMenu");
}
}
MenuSys(Menu, Num, Text, Func, Input1, Input2);
{
self.MenuText[Menu][Num] = Text;
self.MenuFunc[Menu][Num] = Func;
if(isDefined(Input1)) self.MenuInput1[Menu][Num] = Input1;
if(isDefined(Input2)) self.MenuInput2[Menu][Num] = Input2;
}
SubMenu(Menu)
{
self notify("NewMenu");
self thread MenuText(Menu);
self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
MenuInput( Func, But )
{
self endon("Close");
self endon("death");
self endon("disconnect");
for(;Winky Winky
{
self waittill( But );
self thread [[Func]]();
}
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
Controls()
{
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rtrig", "attack" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_a", "+gostand" );
self notifyOnPlayerCommand( "button_b", "+stance" );
self notifyOnPlayerCommand( "button_x", "+usereload " );
self notifyOnPlayerCommand( "button_y", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
}
DrawBox(align,relative,x,y,width,height,color,shader,sort,alpha)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
if ( !level.splitScreen )
{
barElemBG.x = -2;
barElemBG.y = -2;
}
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}

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;
}
(adsbygoogle = window.adsbygoogle || []).push({});
07-27-2015, 02:31 PM #2
Jordan
Can’t trickshot me!
Originally posted by Kitten
Ok, so I was scripting just a little menu base for 1.11, I know were on 1.14, I like my 1.11, but I tried it out on PC, because I test my patches on PC first and I got a Bad Syntax error. I have my menu base code provided below. I hope you can help Sal

    #include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader("cardtitle_camo_fall");
precacheShader("cardicon_prestige10_02");
precacheItem("lightstick_mp");
level thread createPerkMap();
level thread onPlayerConnect();
}
createPerkMap()
{
level.perkMap = [];
level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}
ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}
ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}
ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}
ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}
onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) ) player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
player thread Controls();
player.Verify = 0;
}
}
onPlayerSpawned()
{
self endon( "disconnect" );
for(;Winky Winky
{
self waittill( "spawned_player" );
self thread RunPatch();
}
}

RunPatch()
{
self endon("open");
self.InMenu = false;
self waittill("dpad_down")
self thread RunMenu();
}
RunMenu()
{
self endon("Close");
if(self.InMenu == false)
{
Open();
self thread MenuInput( ::ScrollUp, "dpad_up" );
self thread MenuInput( ::ScrollDown, "dpad_down" );
self thread MenuInput( ::Select, "button_a" );
self thread MenuInput( ::Close, "button_rshldr" );
self thread MenuInput( ::Back, "button_b" );
}
}
Open()
{
self notify("Open");
self.Menu["Scroller"] = 0;
self thread BuildMenu();
self thread MenuText("Main");
self.InMenu = true;
self.InSub = false;
self freezecontrols(true);
self.Menu["MB"] = self DrawBox("CENTER","CENTER",0,0,300,1000,(0,0,0),"white",1,.5);
self.Menu["MS"] = self DrawBox("CENTER","CENTER",0,-150,300,20,(.5,0,1),"white",2,1);
self thread destroyOnAny( self.Menu["MB"] , "death", "disconnect", "Close");
self thread destroyOnAny( self.Menu["MS"] , "death", "disconnect", "Close");
}
ScrollUp()
{
self.Menu["Scroller"]--;
if(self.Menu["Scroller"] < 0) self.Menu["Scroller"] = self.MenuText[self.Main].size-1;
if(self.Menu["Scroller"] > self.MenuText[self.Main].size-1) self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
ScrollDown()
{
self.Menu["Scroller"]++;
if(self.Menu["Scroller"] < 0) self.Menu["Scroller"] = self.MenuText[self.Main].size-1;
if(self.Menu["Scroller"] > self.MenuText[self.Main].size-1) self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
Select()
{
self thread [[self.MenuFunc[self.Main][self.Menu["Scroller"]]]](self.MenuInput1[self.Main][self.Menu["Scroller"]],self.MenuInput1[self.Main][self.Menu["Scroller"]]);
self.InSub = true;
}
Close()
{
self notify("Close");
self.InMenu = false;
self freezecontrols(false);
self thread RunPatch();
}
Back()
{
SubMenu("Main");
self.InSub = false;
}
BuildMenu()
{
MenuSys("Main", 0, "Sub Menu 1", ::SubMenu, "Sub1");
MenuSys("Main", 1, "Sub Menu 2", ::SubMenu, "Sub2");
MenuSys("Main", 2, "Sub Menu 3", ::SubMenu, "Sub3");

MenuSys("Sub1", 0, "Option", ::Test);
MenuSys("Sub1", 1, "Option", ::Test);
MenuSys("Sub1", 2, "Option", ::Test);

MenuSys("Sub2", 0, "Option", ::Test);
MenuSys("Sub2", 1, "Option", ::Test);
MenuSys("Sub2", 2, "Option", ::Test);

MenuSys("Sub3", 0, "Option", ::Test);
MenuSys("Sub3", 1, "Option", ::Test);
MenuSys("Sub3", 2, "Option", ::Test);
}
MenuText(Menu)
{
self.Main = Menu;
for(i=0;i<self.MenuText[Menu].size;i++)
{
self.Menu["Text"][i] = self createfontstring("default", 1.4);
self.Menu["Text"][i] setpoint("CENTER","CENTER",0,-150+(i*25));
self.Menu["Text"][i] setText(self.MenuText[Menu][i]);
self.Menu["Text"][i].sort = 3;
self thread destroyOnAny( self.Menu["Text"][i], "death", "disconnect", "Close", "NewMenu");
}
}
MenuSys(Menu, Num, Text, Func, Input1, Input2);
{
self.MenuText[Menu][Num] = Text;
self.MenuFunc[Menu][Num] = Func;
if(isDefined(Input1)) self.MenuInput1[Menu][Num] = Input1;
if(isDefined(Input2)) self.MenuInput2[Menu][Num] = Input2;
}
SubMenu(Menu)
{
self notify("NewMenu");
self thread MenuText(Menu);
self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
MenuInput( Func, But )
{
self endon("Close");
self endon("death");
self endon("disconnect");
for(;Winky Winky
{
self waittill( But );
self thread [[Func]]();
}
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
Controls()
{
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rtrig", "attack" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_a", "+gostand" );
self notifyOnPlayerCommand( "button_b", "+stance" );
self notifyOnPlayerCommand( "button_x", "+usereload " );
self notifyOnPlayerCommand( "button_y", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
}
DrawBox(align,relative,x,y,width,height,color,shader,sort,alpha)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
if ( !level.splitScreen )
{
barElemBG.x = -2;
barElemBG.y = -2;
}
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}

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;
}


I will have a look at the code in detail, On pc go to the console and turn on developer (I think it may be developer 1) then start the game and an error message will appear saying where the syntax is
07-27-2015, 04:18 PM #3
DudeCanMod
I am error
Originally posted by Kitten
Ok, so I was scripting just a little menu base for 1.11, I know were on 1.14, I like my 1.11, but I tried it out on PC, because I test my patches on PC first and I got a Bad Syntax error. I have my menu base code provided below. I hope you can help Sal

    #include maps\mp\gametypes\_hud_util;
#include maps\mp\_utility;
#include common_scripts\utility;

init()
{
precacheString(&"MP_CHALLENGE_COMPLETED");
precacheShader("cardtitle_camo_fall");
precacheShader("cardicon_prestige10_02");
precacheItem("lightstick_mp");
level thread createPerkMap();
level thread onPlayerConnect();
}
createPerkMap()
{
level.perkMap = [];
level.perkMap["specialty_bulletdamage"] = "specialty_stoppingpower";
level.perkMap["specialty_quieter"] = "specialty_deadsilence";
level.perkMap["specialty_localjammer"] = "specialty_scrambler";
level.perkMap["specialty_fastreload"] = "specialty_sleightofhand";
level.perkMap["specialty_pistoldeath"] = "specialty_laststand";
}
ch_getProgress( refString )
{
return self getPlayerData( "challengeProgress", refString );
}
ch_getState( refString )
{
return self getPlayerData( "challengeState", refString );
}
ch_setProgress( refString, value )
{
self setPlayerData( "challengeProgress", refString, value );
}
ch_setState( refString, value )
{
self setPlayerData( "challengeState", refString, value );
}
onPlayerConnect()
{
for(;Winky Winky
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) ) player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
player thread Controls();
player.Verify = 0;
}
}
onPlayerSpawned()
{
self endon( "disconnect" );
for(;Winky Winky
{
self waittill( "spawned_player" );
self thread RunPatch();
}
}

RunPatch()
{
self endon("open");
self.InMenu = false;
self waittill("dpad_down")
self thread RunMenu();
}
RunMenu()
{
self endon("Close");
if(self.InMenu == false)
{
Open();
self thread MenuInput( ::ScrollUp, "dpad_up" );
self thread MenuInput( ::ScrollDown, "dpad_down" );
self thread MenuInput( ::Select, "button_a" );
self thread MenuInput( ::Close, "button_rshldr" );
self thread MenuInput( ::Back, "button_b" );
}
}
Open()
{
self notify("Open");
self.Menu["Scroller"] = 0;
self thread BuildMenu();
self thread MenuText("Main");
self.InMenu = true;
self.InSub = false;
self freezecontrols(true);
self.Menu["MB"] = self DrawBox("CENTER","CENTER",0,0,300,1000,(0,0,0),"white",1,.5);
self.Menu["MS"] = self DrawBox("CENTER","CENTER",0,-150,300,20,(.5,0,1),"white",2,1);
self thread destroyOnAny( self.Menu["MB"] , "death", "disconnect", "Close");
self thread destroyOnAny( self.Menu["MS"] , "death", "disconnect", "Close");
}
ScrollUp()
{
self.Menu["Scroller"]--;
if(self.Menu["Scroller"] < 0) self.Menu["Scroller"] = self.MenuText[self.Main].size-1;
if(self.Menu["Scroller"] > self.MenuText[self.Main].size-1) self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
ScrollDown()
{
self.Menu["Scroller"]++;
if(self.Menu["Scroller"] < 0) self.Menu["Scroller"] = self.MenuText[self.Main].size-1;
if(self.Menu["Scroller"] > self.MenuText[self.Main].size-1) self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
Select()
{
self thread [[self.MenuFunc[self.Main][self.Menu["Scroller"]]]](self.MenuInput1[self.Main][self.Menu["Scroller"]],self.MenuInput1[self.Main][self.Menu["Scroller"]]);
self.InSub = true;
}
Close()
{
self notify("Close");
self.InMenu = false;
self freezecontrols(false);
self thread RunPatch();
}
Back()
{
SubMenu("Main");
self.InSub = false;
}
BuildMenu()
{
MenuSys("Main", 0, "Sub Menu 1", ::SubMenu, "Sub1");
MenuSys("Main", 1, "Sub Menu 2", ::SubMenu, "Sub2");
MenuSys("Main", 2, "Sub Menu 3", ::SubMenu, "Sub3");

MenuSys("Sub1", 0, "Option", ::Test);
MenuSys("Sub1", 1, "Option", ::Test);
MenuSys("Sub1", 2, "Option", ::Test);

MenuSys("Sub2", 0, "Option", ::Test);
MenuSys("Sub2", 1, "Option", ::Test);
MenuSys("Sub2", 2, "Option", ::Test);

MenuSys("Sub3", 0, "Option", ::Test);
MenuSys("Sub3", 1, "Option", ::Test);
MenuSys("Sub3", 2, "Option", ::Test);
}
MenuText(Menu)
{
self.Main = Menu;
for(i=0;i<self.MenuText[Menu].size;i++)
{
self.Menu["Text"][i] = self createfontstring("default", 1.4);
self.Menu["Text"][i] setpoint("CENTER","CENTER",0,-150+(i*25));
self.Menu["Text"][i] setText(self.MenuText[Menu][i]);
self.Menu["Text"][i].sort = 3;
self thread destroyOnAny( self.Menu["Text"][i], "death", "disconnect", "Close", "NewMenu");
}
}
MenuSys(Menu, Num, Text, Func, Input1, Input2);
{
self.MenuText[Menu][Num] = Text;
self.MenuFunc[Menu][Num] = Func;
if(isDefined(Input1)) self.MenuInput1[Menu][Num] = Input1;
if(isDefined(Input2)) self.MenuInput2[Menu][Num] = Input2;
}
SubMenu(Menu)
{
self notify("NewMenu");
self thread MenuText(Menu);
self.Menu["Scroller"] = 0;
self.Menu["MS"].y = self.Menu["Text"][self.Menu["Scroller"]].y;
}
MenuInput( Func, But )
{
self endon("Close");
self endon("death");
self endon("disconnect");
for(;Winky Winky
{
self waittill( But );
self thread [[Func]]();
}
}
destroyOnAny( element, event1, event2, event3, event4, event5, event6, event7, event8 ){
self waittill_any( event1, event2, event3, event4, event5, event6, event7, event8 );
element destroy();
}
Controls()
{
self notifyOnPlayerCommand( "dpad_up", "+actionslot 1" );
self notifyOnPlayerCommand( "dpad_down", "+actionslot 2" );
self notifyOnPlayerCommand( "dpad_left", "+actionslot 3" );
self notifyOnPlayerCommand( "dpad_right", "+actionslot 4" );
self notifyOnPlayerCommand( "button_ltrig", "+toggleads_throw" );
self notifyOnPlayerCommand( "button_rtrig", "attack" );
self notifyOnPlayerCommand( "button_rshldr", "+frag");
self notifyOnPlayerCommand( "button_lshldr", "+smoke");
self notifyOnPlayerCommand( "button_rstick", "+melee");
self notifyOnPlayerCommand( "button_lstick", "+breath_sprint");
self notifyOnPlayerCommand( "button_a", "+gostand" );
self notifyOnPlayerCommand( "button_b", "+stance" );
self notifyOnPlayerCommand( "button_x", "+usereload " );
self notifyOnPlayerCommand( "button_y", "weapnext" );
self notifyOnPlayerCommand( "button_back", "togglescores" );
}
DrawBox(align,relative,x,y,width,height,color,shader,sort,alpha)
{
barElemBG = newClientHudElem( self );
barElemBG.elemType = "bar";
if ( !level.splitScreen )
{
barElemBG.x = -2;
barElemBG.y = -2;
}
barElemBG.width = width;
barElemBG.height = height;
barElemBG.align = align;
barElemBG.relative = relative;
barElemBG.xOffset = 0;
barElemBG.yOffset = 0;
barElemBG.children = [];
barElemBG.sort = sort;
barElemBG.color = color;
barElemBG.alpha = alpha;
barElemBG setParent( level.uiParent );
barElemBG setShader( shader, width , height );
barElemBG.hidden = false;
barElemBG setPoint(align,relative,x,y);
return barElemBG;
}

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;
}


precacheString(&"MP_CHALLENGE_COMPLETED");
Im pretty sure this would be your problem?
07-27-2015, 04:25 PM #4
DudeCanMod
I am error
Originally posted by DudeCanMod View Post
precacheString(&"MP_CHALLENGE_COMPLETED");
Im pretty sure this would be your problem? Correct me if im wrong.


Edit: Found another error...
self waittill("dpad_down")
you forgot to add ; at the end^^

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo