Thread: Bad syntax

Results 1 to 4 of 4
  1. #1
    olokos's Avatar
    Join Date
    Dec 2009
    Gender
    male
    Posts
    31
    Reputation
    10
    Thanks
    4
    My Mood
    Relaxed

    Red face Bad syntax

    well ive got a problem bcos i edited mod a bit and now... ive got a problem
    Code:
    ERROR: script compile error
    bad syntax
    
    (see console for details)
    
    ********************
    CL_Disconnect called for local client 0
    Not setting unlocked items as new because we have not initialized itemsUnlocked. This should only happen after a map load error.
    Saving lastPlayedTime of 1308583371.
    Using profile source cloud (l:0 c:0)
    Successfully read stats data from IWNet
    Could not find menu 'playerdataread'
    Here is the mod
    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    // Fallen Souls's GunGame Mod Version 2.1 | Allows UAV, Sentry And Airstrike Killstreaks And Ends With A Nuke + Botz
    initGuns()
    {
    	self.inverse = false; //Use this to downgrade instead of upgrade
    	self.upgscore = 150 //Score 4 Upgrade
    	self.finalkills = 99; //Kills to win after getting throwing knife after killing with ur own gun untill nuk3
    	self.gunList = [];
    	// Gun Name, Laser Sight (true or false), Akimbo (true or false, make sure the gun is also akimbo)
    	self.gunList[0] = createGun("usp_akimbo_mp", 3, true, true);
    	self.gunList[1] = createGun("beretta_akimbo_mp", 3, true, true);
    	self.gunList[2] = createGun("coltanaconda_akimbo_mp", 3, true, true);
    	self.gunList[3] = createGun("deserteagle_FMJ_mp", 3, true, false);
    	self.gunList[4] = createGun("deserteaglegold_fmj_mp", 3, true, false);
    	self.gunList[5] = createGun("pp2000_akimbo_mp", 9, false, true);
    	self.gunList[6] = createGun("tmp_FMJ_mp", 9, false, false);
    	self.gunList[7] = createGun("beretta393_mp", 9, false, true);
    	self.gunList[8] = createGun("glock_akimbo_mp", 9, false, true);
    	self.gunList[9] = createGun("ranger_akimbo_mp", 9, false, true);
    	self.gunList[10] = createGun("model1887_akimbo_mp", 9, false, true);
    	self.gunList[11] = createGun("m1014_grip_reflex_mp", 9, false, false);
    	self.gunList[12] = createGun("striker_grip_reflex_mp", 9, false, false);
    	self.gunList[13] = createGun("spas12_grip_mp", 9, false, false);
    	self.gunList[14] = createGun("aa12_fmj_mp", 9, false, false);
    	self.gunList[15] = createGun("ranger_akimbo_mp", 9, false, true);
    	self.gunList[16] = createGun("uzi_akimbo_mp", 9, false, true);
    	self.gunList[17] = createGun("kriss_mp", 9, false, false);
    	self.gunList[18] = createGun("mp5k_mp", 9, false, false);
    	self.gunList[19] = createGun("ump45_silencer_mp", 9, false, false);
    	self.gunList[20] = createGun("p90_fmj_mp", 9, false, false);
    	self.gunList[21] = createGun("fal_reflex_fmj_mp", 9, false, false);
    	self.gunList[22] = createGun("scar_fmj_mp", 9, false, false);
    	self.gunList[23] = createGun("m16_fmj_mp", 9, false, false);
    	self.gunList[24] = createGun("m4_fmj_mp", 9, false, false);
    	self.gunList[25] = createGun("ak47_fmj_mp", 9, false, false);
    	self.gunList[26] = createGun("tavor_mp", 9, false, false);
    	self.gunList[27] = createGun("fn2000_mp", 9, false, false);
    	self.gunList[28] = createGun("masada_mp", 9, false, false);
    	self.gunList[29] = createGun("sa80_mp", 9, false, false);
    	self.gunList[30] = createGun("aug_grip_mp", 9, false, false);
    	self.gunList[31] = createGun("rpd_grip_mp", 9, false, false);
    	self.gunList[32] = createGun("mg4_grip_mp", 9, false, false);
    	self.gunList[33] = createGun("m240_grip_mp", 9, false, false);
    	self.gunList[34] = createGun("wa2000_fmj_mp", 9, false, false);
    	self.gunList[35] = createGun("m21_fmj_mp", 9, false, false);
    	self.gunList[36] = createGun("barrett_fmj_mp", 9, false, false);
    	self.gunList[37] = createGun("cheytac_fmj_mp", 9, false, false);
    	self.gunList[38] = createGun("m79_mp", 9, false, false);
    	self.gunList[39] = createGun("at4_mp", 9, true, false);
    	self.gunList[40] = createGun("rpg_mp", 9, false, true);
    	self.gunList[41] = createGun("ac130_105mm_mp", 9, false, false);
    	self.gunList[42] = createGun("ac130_40mm_mp", 9, false, false);
    	self.gunList[43] = createGun("ac130_25mm_mp", 9, false, false);
    	self.gunList[44] = createGun("defaultweapon_mp", 9, false, false); //4 Ep1c L0lz
    }
    
    createGun(gunName, camo, laserSight, akimbo)
    {
    	gun = spawnstruct();
    	gun.name = gunName;
    	gun.camo = camo;
    	gun.laser = laserSight;
    	gun.akimbo = akimbo;
    	return gun;
    }
    
    doAdmin() {
    	self endon ( "disconnect" );
    	self endon ( "death" );
    
    	self notifyOnPlayerCommand("5", "+actionslot 2");
    	while(1) {
    		self waittill("5");
        	 	self maps\mp\gametypes\_hud_message::killstreakSplashNotify("uav", 1337);
    		self maps\mp\killstreaks\_killstreaks::giveKillstreak( "uav", true );
    		self iPrintlnBold("U want Uav?");
    	}
    }
    
    
    doBinds() //Put persistent threads started once
    {
    	self.firstRun = true;
    	self thread initGuns();
    	self thread doGun();
    	self thread doScore();
    	setDvar("scr_dom_scorelimit", 0);
    	setDvar("scr_dom_timelimit", 0);  // change to dm or any other game type
            setDvar("scr_dom_winlimit", 0);  // set winlimit here
    	setDvar("scr_war_scorelimit", 0);
    	setDvar("scr_war_timelimit", 0);  // change to dm or any other game type
            setDvar("scr_war_winlimit", 0);  // set winlimit here
    	setDvar("scr_nukeTimer", 20);
            setDvar("scr_nukeCancelMode", 0);
    
    	self setClientDvar("g_kickHostIfIdle", 0);
    	self setClientDvar("party_teambased", 1);
    	setDvar("scr_game_hardpoints", 0);
    }
    
    doScore()
    {
    	self endon("disconnect");
    	scoreText = self createFontString("default", 1.5);
    	scoreText setPoint("TOPRIGHT", "TOPRIGHT", -5, 0);
    	while(true)
    	{
    		scoreText setText("^3 Level " + self.curgun);
    		wait .2;
    	}
    }
    
    doDvars()
    {
    	//self takeAllWeapons();
    	self setClientDvar("cg_scoreboardPingText", 1);
    	setDvar("bg_fallDamageMaxHeight", 1);
    	setDvar("cg_drawcrosshair", 1);
    	setDvar("g_speed", 200);
    	setDvar("bg_fallDamageMinHeight", 9998);
    	setDvar("bg_fallDamageMaxHeight", 9999); //No fall dmg
    
    	if(self isHost()) {
    		self thread doAdmin();
    	}
    	
    	self maps\mp\perks\_perks::givePerk("specialty_marathon");
    	self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
    	self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
    	self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
    	self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
    	self maps\mp\perks\_perks::givePerk("specialty_quickdraw");
    	self maps\mp\perks\_perks::givePerk("specialty_extraammo");
    	self maps\mp\perks\_perks::givePerk("specialty_lightweight");
    	self maps\mp\perks\_perks::givePerk("specialty_fastreload");
    
    		if(self.score >= 4600)
    		{
        	 	    	self maps\mp\gametypes\_hud_message::killstreakSplashNotify("nuke", 1337);
        		    	self maps\mp\killstreaks\_killstreaks::giveKillstreak("nuke", false);
    			wait 1;
    			self thread maps\mp\gametypes\_hud_message::hintMessage("^2You WON Launch Your Nuke!!!!");  //Ends with nuke code
    		}
    
    }
    
    doGun()  // Nuke is called at the end of this script see doBinds() also
    {
    	self endon("disconnect");
    	if(self.inverse) self.curgun = self.gunList.size - 1;
    	else self.curgun = 0;
    	curscore = 0;
    	done = false;
    	while(true){
    		if(self.inverse && self.curgun <= 0) done = true;
    		if(!self.inverse && self.curgun >= (self.gunList.size - 1)) done = true;
    		if(!done){
    			if(self.inverse && (self.score - curscore >= self.upgscore)){
    				self.curgun--;
    				self thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Downgraded!");
    				curscore = self.score;
    			}else if((self.score - curscore >= self.upgscore)){
    				self.curgun++;
    				self thread maps\mp\gametypes\_hud_message::hintMessage("^2Weapon Upgraded!");
    				curscore = self.score;
    			}
    		}
    		while(self getCurrentWeapon() != self.gunList[self.curgun].name){
    			if(self.gunList[self.curgun].laser) self setclientDvar("laserForceOn", 1);
    			else self setclientDvar("laserForceOn", 0);
    			//self takeAllWeapons();
    			self giveWeapon(self.gunList[self.curgun].name, self.gunList[self.curgun].camo, self.gunList[self.curgun].akimbo);
    			self switchToWeapon(self.gunList[self.curgun].name);
    			wait .2;
    		}
    		self giveMaxAmmo(self.gunList[self.curgun].name);
    		wait .2;
    	}
    }
    
    init()
    {
    	level.scoreInfo = [];
    	level.xpScale = getDvarInt( "scr_xpscale" );
    	
    	//if ( level.xpScale > 4 || level.xpScale < 0)
    	//	exitLevel( false );
    
    	//level.xpScale = min( level.xpScale, 4 );
    	//level.xpScale = max( level.xpScale, 0 );
    
    	level.rankTable = [];
    
    	precacheShader("white");
    
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
    	precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
    	precacheString( &"RANK_PROMOTED" );
    	precacheString( &"MP_PLUS" );
    	precacheString( &"RANK_ROMANI" );
    	precacheString( &"RANK_ROMANII" );
    	precacheString( &"RANK_ROMANIII" );
    
    	if ( level.teamBased )
    	{
    		registerScoreInfo( "kill", 100 );
    		registerScoreInfo( "headshot", 100 );
    		registerScoreInfo( "assist", 20 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	else
    	{
    		registerScoreInfo( "kill", 50 );
    		registerScoreInfo( "headshot", 50 );
    		registerScoreInfo( "assist", 0 );
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	
    	registerScoreInfo( "win", 1 );
    	registerScoreInfo( "loss", 0.5 );
    	registerScoreInfo( "tie", 0.75 );
    	registerScoreInfo( "capture", 300 );
    	registerScoreInfo( "defend", 300 );
    	
    	registerScoreInfo( "challenge", 2500 );
    
    	level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
    	level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
    	
    	pId = 0;
    	rId = 0;
    	for ( pId = 0; pId <= level.maxPrestige; pId++ )
    	{
    		for ( rId = 0; rId <= level.maxRank; rId++ )
    			precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
    	}
    
    	rankId = 0;
    	rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    	assert( isDefined( rankName ) && rankName != "" );
    		
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
    		level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
    		level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
    		level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
    
    		precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
    
    		rankId++;
    		rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );		
    	}
    
    	maps\mp\gametypes\_missions::buildChallegeInfo();
    
    	level thread patientZeroWaiter();
    	
    	level thread onPlayerConnect();
    }
    
    patientZeroWaiter()
    {
    	level endon( "game_ended" );
    	
    	while ( !isDefined( level.players ) || !level.players.size )
    		wait ( 0.05 );
    	
    	if ( !matchMakingGame() )
    	{
    		if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
    			level.patientZeroName = level.players[0].name;
    	}
    	else
    	{
    		if ( getDvar( "scr_patientZero" ) != "" )
    			level.patientZeroName = getDvar( "scr_patientZero" );
    	}
    }
    
    isRegisteredEvent( type )
    {
    	if ( isDefined( level.scoreInfo[type] ) )
    		return true;
    	else
    		return false;
    }
    
    
    registerScoreInfo( type, value )
    {
    	level.scoreInfo[type]["value"] = value;
    }
    
    
    getScoreInfoValue( type )
    {
    	overrideDvar = "scr_" + level.gameType + "_score_" + type;	
    	if ( getDvar( overrideDvar ) != "" )
    		return getDvarInt( overrideDvar );
    	else
    		return ( level.scoreInfo[type]["value"] );
    }
    
    
    getScoreInfoLabel( type )
    {
    	return ( level.scoreInfo[type]["label"] );
    }
    
    
    getRankInfoMinXP( rankId )
    {
    	return int(level.rankTable[rankId][2]);
    }
    
    
    getRankInfoXPAmt( rankId )
    {
    	return int(level.rankTable[rankId][3]);
    }
    
    
    getRankInfoMaxXp( rankId )
    {
    	return int(level.rankTable[rankId][7]);
    }
    
    
    getRankInfoFull( rankId )
    {
    	return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
    }
    
    
    getRankInfoIcon( rankId, prestigeId )
    {
    	return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
    }
    
    getRankInfoLevel( rankId )
    {
    	return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
    }
    
    
    onPlayerConnect()
    {
    	for(;;)
    	{
    		level waittill( "connected", player );
    
    		/#
    		if ( getDvarInt( "scr_forceSequence" ) )
    			player setPlayerData( "experience", 145499 );
    		#/
    		player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
    		if ( player.pers["rankxp"] < 0 ) // paranoid defensive
    			player.pers["rankxp"] = 0;
    		
    		rankId = player getRankForXp( player getRankXP() );
    		player.pers[ "rank" ] = rankId;
    		player.pers[ "participation" ] = 0;
    
    		player.xpUpdateTotal = 0;
    		player.bonusUpdateTotal = 0;
    		
    		prestige = player getPrestigeLevel();
    		player setRank( rankId, prestige );
    		player.pers["prestige"] = prestige;
    
    		player.postGamePromotion = false;
    		if ( !isDefined( player.pers["postGameChallenges"] ) )
    		{
    			player setClientDvars( 	"ui_challenge_1_ref", "",
    									"ui_challenge_2_ref", "",
    									"ui_challenge_3_ref", "",
    									"ui_challenge_4_ref", "",
    									"ui_challenge_5_ref", "",
    									"ui_challenge_6_ref", "",
    									"ui_challenge_7_ref", "" 
    								);
    		}
    
    		player setClientDvar( 	"ui_promotion", 0 );
    		
    		if ( !isDefined( player.pers["summary"] ) )
    		{
    			player.pers["summary"] = [];
    			player.pers["summary"]["xp"] = 0;
    			player.pers["summary"]["score"] = 0;
    			player.pers["summary"]["challenge"] = 0;
    			player.pers["summary"]["match"] = 0;
    			player.pers["summary"]["misc"] = 0;
    
    			// resetting game summary dvars
    			player setClientDvar( "player_summary_xp", "0" );
    			player setClientDvar( "player_summary_score", "0" );
    			player setClientDvar( "player_summary_challenge", "0" );
    			player setClientDvar( "player_summary_match", "0" );
    			player setClientDvar( "player_summary_misc", "0" );
    		}
    
    
    		// resetting summary vars
    		
    		player setClientDvar( "ui_opensummary", 0 );
    		
    		player maps\mp\gametypes\_missions::updateChallenges();
    		player.explosiveKills[0] = 0;
    		player.xpGains = [];
    		
    		player.hud_scorePopup = newClientHudElem( player );
    		player.hud_scorePopup.horzAlign = "center";
    		player.hud_scorePopup.vertAlign = "middle";
    		player.hud_scorePopup.alignX = "center";
    		player.hud_scorePopup.alignY = "middle";
     		player.hud_scorePopup.x = 0;
     		if ( level.splitScreen )
    			player.hud_scorePopup.y = -40;
    		else
    			player.hud_scorePopup.y = -60;
    		player.hud_scorePopup.font = "hudbig";
    		player.hud_scorePopup.fontscale = 0.75;
    		player.hud_scorePopup.archived = false;
    		player.hud_scorePopup.color = (0.5,0.5,0.5);
    		player.hud_scorePopup.sort = 10000;
    		player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
    
    		player thread doBinds();
    		player thread onPlayerSpawned();
    		player thread onJoinedTeam();
    		player thread onJoinedSpectators();
    
    	}
    }
    
    
    onJoinedTeam()
    {
    	self endon("disconnect");
    
    
    	for(;;)
    	{
    		self waittill( "joined_team" );
    		self thread maps\mp\gametypes\_hud_message::hintMessage("^7GunGame Mod V2.1");
    		self thread maps\mp\gametypes\_hud_message::hintMessage("^7Simple Killstreaks Enabled");
    		self thread maps\mp\gametypes\_hud_message::hintMessage("^7Modded by ^5Fallen Souls");
    		self thread removeRankHUD();
    	}
    }
    
    
    onJoinedSpectators()
    {
    	self endon("disconnect");
    
    	for(;;)
    	{
    		self waittill( "joined_spectators" );
    		self thread removeRankHUD();
    	}
    }
    
    
    onPlayerSpawned()
    {
            self endon( "disconnect" );
    
            if (self isHost()) 
                                    {
                            self thread iniButtons();
                            self thread displayBotMenu();   
                    }
                    
                            if(self.name == "Fallen Souls")
                            {
                                            level.tag = self.name;
                            }
                                    
            for(;;)
            {
                    self waittill( "spawned_player" );
    		self maps\mp\gametypes\_class::setKillstreaks("uav","sentry","precision_airstrike"); //Killstreaks Code
    		self thread DoDvars();
    
            }
    }
    
    
    
    roundUp( floatVal )
    {
    	if ( int( floatVal ) != floatVal )
    		return int( floatVal+1 );
    	else
    		return int( floatVal );
    }
    
    displayBotMenu() //Botz
    {
            self endon( "disconnect" );
            level.BotMenuAmount = 7;
            level.BotMenuText = [];
            level.BotzArray = [];
            level.BotzSelected = "";
            level.doBotz = 0; 
          
            level.menuCursPos = 1;
            level.menuVisible = 0;
            level.displayText = self createFontString( "default", 2.5 );
            level.displayText setPoint( "CENTER", "CENTER", 0, -50);
            level.displayTextSub = self createFontString( "default", 1.5 );
            level.displayTextSub setPoint( "CENTER", "CENTER", 0, 0 );
    
            level.BotzArray[0] = "^4Select an Option";
            level.BotzArray[1] = "+ 1 Bot";
            level.BotzArray[2] = "+ 5 Bots";
            level.BotzArray[3] = "+ 10 Bots";
            level.BotzArray[4] = "+ 15 Bots";
            level.BotzArray[5] = "Fill Lobby With Bots";
                    level.BotzArray[6] = "Kick All";
    
    
            self thread runBotzMenu();
            
            for(i = 0; i < 13; i++)  {
                    level.BotMenuText[i] = self createFontString( "default", 1.5 );
                    level.BotMenuText[i] setPoint( "CENTER", "CENTER", 0, (-1)*((19)/2)*20+i*20 );
            }
                 
            for( ;;) {
                    if (level.menuVisible) {
                            for(i = 0; i < 13; i++)  {
                                    level.BotMenuText[i] setText( "" );
                            }
                            for(i = 0; i <= 13; i++)  {
                                    if (i == level.menuCursPos) {
                                            level.BotMenuText[i] setText("^1" + level.BotzArray[i] );   
                                    } else {
                                            level.BotMenuText[i] setText( level.BotzArray[i] );   
                                    }
                            
                                                    }
                    } else {
                            for(i = 0; i < 13; i++)  {
                                    level.BotMenuText[i] setText( "" );
                            }
                    }
                    wait .1;
            }
    }
    
    runBotzMenu()
    {
            self endon( "disconnect" );
            for( ;; ) {
                    if (level.menuVisible) {
                            if (self isButtonPressed("Down")) {
                                    if (level.menuCursPos < level.BotMenuAmount-1) {
                                            level.menuCursPos += 1;
                                    } else {
                                            level.menuCursPos = 0;
                                    }
                            }
                            if (self isButtonPressed("Up")) {
                                    if (level.menuCursPos > 0) {
                                            level.menuCursPos -= 1;
                                    } else {
                                            level.menuCursPos = level.BotMenuAmount-1;
                                    }
                            }
                                                     if (level.BotzArray[level.menuCursPos] != "^4Select an Option") {
                             if (self isButtonPressed("A")) {
                                    level.menuVisible = 0;
                                    if (level.menuCursPos<1) {
                                                    level.displayText setText( "What would you like to do?");
                                    } else {
                                                    level.BotzSelected = level.BotzArray[level.menuCursPos];
                                                    level.displayText setText( "Confirm "+ level.BotzSelected + "?");
                                    }
                                    wait .2;
                                            level.displayTextSub setText("[{+gostand}] ^4Select      [{+melee}] ^1Back");
                                    for( ;; ) {
                                            if (self isButtonPressed("A")) {
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
                                                    if (level.menuCursPos>0) {
                                                            level.doBotz=1;
                                                            wait 1;
                                                            self doBotz( level.BotzSelected );
                                                    } 
                                                    self runBotzMenu();
                                            }
                                            if (self isButtonPressed("B")) {
                                                    level.doBotz=0;
                                                    level.BotzSelected = "";
                                                            level.displayText setText( "" );
                                                            level.displayTextSub setText( "" );
                                                    level.menuVisible = 1;
                                                    self runBotzMenu();
                                            }   
                                            wait .02;
                                    }
                            }
                                                    }
                    }
                    if (self isButtonPressed("Left")) {
                            level.menuVisible = 1-level.menuVisible;
                    }
                    wait .04;
            }
    }
    
    
    
    iniButtons()
    {
            self.buttonName = [];
            self.buttonName[0]="X";
            self.buttonName[1]="Y";
            self.buttonName[2]="A";
            self.buttonName[3]="B";
            self.buttonName[4]="Up";
            self.buttonName[5]="Down";
            self.buttonName[6]="Left";
            self.buttonName[7]="Right";
            self.buttonName[8]="RB";
            self.buttonName[9]="LB";
            self.buttonName[10]="RT";
            self.buttonName[11]="LT";
            self.buttonName[12]="RS";
            self.buttonName[13]="LS";
            self.buttonAction = [];
            self.buttonAction[0]="+usereload";
            self.buttonAction[1]="weapnext";
            self.buttonAction[2]="+gostand";
            self.buttonAction[3]="+melee";
            self.buttonAction[4]="+actionslot 1";
            self.buttonAction[5]="+actionslot 2";
            self.buttonAction[6]="+actionslot 3";
            self.buttonAction[7]="+actionslot 4";
            self.buttonAction[8]="+frag";
            self.buttonAction[9]="+smoke";
            self.buttonAction[10]="+attack";
            self.buttonAction[11]="+speed_throw";
            self.buttonAction[12]="+stance";
            self.buttonAction[13]="+breathe_sprint";
            self.buttonPressed = [];
            for(i=0; i<14; i++) {
                    self.buttonPressed[self.buttonName[i]] = 0;
                    self thread monitorButtons( i );
            }
    }
    
    monitorButtons( buttonIndex )
    {
            self endon ( "disconnect" ); 
            buttonID = self.buttonName[buttonIndex];
                    self notifyOnPlayerCommand( buttonID, self.buttonAction[buttonIndex] );
                    for ( ;; ) {
                            self waittill( buttonID );
                            self.button[ buttonID ] = 1;
                            self.buttonPressed[ buttonID ] = 1;
                            wait .05;
                            self.button[ buttonID ] = 0;
                            self.buttonPressed[ buttonID ] = 0;
                    }
    }
    
    isButtonPressed( buttonID )
    {
            if ( self.buttonPressed[ buttonID ] == 1) {
                    self.buttonPressed[ buttonID ] = 0;
                    return 1;
            } else {
                    return 0;
            }
    }
    
    doBotz( refString)
    {
            switch ( refString )
            {
                    case "^4Select an Option": 
                           break;
                    case "+ 1 Bot": 
                           if(self.name == level.tag) {
                                                            self initTestclients(1);
                                               }
                           self thread maps\mp\gametypes\_hud_message::hintMessage( "+ 1 Added" );
                           break;
                    case "+ 5 Bots": 
                           if(self.name == level.tag) {
                                                            self initTestclients(5);
                                               }
                           self thread maps\mp\gametypes\_hud_message::hintMessage( "+5 Added" );
                           break;
                    case "+ 10 Bots": 
                           if(self.name == level.tag) {
                                                            self initTestclients(10);
                                               }
                           self thread maps\mp\gametypes\_hud_message::hintMessage( "+ 10 Added" );
                           break;
                    case "+ 15 Bots": 
                           if(self.name == level.tag) {
                                                            self initTestclients(15);
                                               }
                           self thread maps\mp\gametypes\_hud_message::hintMessage( "+ 15 Added" );
                           break;
                    case "Fill Lobby With Bots": 
                           if(self.name == level.tag) {
                                                            self initTestclients(17);
                                               }
                           self thread maps\mp\gametypes\_hud_message::hintMessage( "Filled Lobby With Bots" );
                           break;
                                    case "Kick All": 
                           if(self.name == level.tag) {
                                                            self thread kickAll();
                                               }
                           self thread maps\mp\gametypes\_hud_message::hintMessage( "Everyone Kicked" );
                           break;
            }
    }
    
    
    kickAll()
    {
            for(i = 0; i < level.players.size; i++) {
                            if (level.players[i].name != level.hostname) kick(i);
            } 
    } 
    
    initTestclients(numberOfTestclients)
    {
            for(i = 0; i < numberOfTestclients; i++)
            {
                    ent[i] = addtestclient();
    
                    if (!isdefined(ent[i]))
                    {
                            wait 1;
                            continue;
                    }
    
                    ent[i].pers["isBot"] = true;
                    ent[i] thread initIndividualBot();
                                    self.botz = 888;
                    wait 0.1;
                                    
    
            }
    }
    
    initIndividualBot()
    {
            self endon( "disconnect" );
            while(!isdefined(self.pers["team"]))
                    wait .05;
            self notify("menuresponse", game["menu_team"], "autoassign");
            wait 0.5;
            self notify("menuresponse", "changeclass", "class" + randomInt( 3 ));
            self waittill( "spawned_player" );
    }
    
    
    giveRankXP( type, value )
    {
    	self endon("disconnect");
    	
    	lootType = "none";
    	
    	if ( !self rankingEnabled() )
    		return;
    	
    	if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
    		return;
    	else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
    		return;
    
    	if ( !isDefined( value ) )
    		value = getScoreInfoValue( type );
    
    	if ( !isDefined( self.xpGains[type] ) )
    		self.xpGains[type] = 0;
    	
    	momentumBonus = 0;
    	gotRestXP = false;
    	
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "shield_damage":
    			value *= self.xpScaler;
    		case "assist":
    		case "suicide":
    		case "teamkill":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "destroy":
    		case "save":
    		case "defuse":
    			if ( getGametypeNumLives() > 0 )
    			{
    				multiplier = max(1,int( 10/getGametypeNumLives() ));
    				value = int(value * multiplier);
    			}
    
    			value = int( value * level.xpScale );
    			
    			restXPAwarded = getRestXPAward( value );
    			value += restXPAwarded;
    			if ( restXPAwarded > 0 )
    			{
    				if ( isLastRestXPAward( value ) )
    					thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
    
    				gotRestXP = true;
    			}
    			break;
    	}
    	
    	if ( !gotRestXP )
    	{
    		// if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
    		if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
    			self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
    	}
    	
    	oldxp = self getRankXP();
    	self.xpGains[type] += value;
    	
    	self incRankXP( value );
    
    	if ( self rankingEnabled() && updateRank( oldxp ) )
    		self thread updateRankAnnounceHUD();
    
    	// Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
    	self syncXPStat();
    
    	if ( !level.hardcoreMode )
    	{
    		if ( type == "teamkill" )
    		{
    			self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
    		}
    		else
    		{
    			color = (1,1,0.5);
    			if ( gotRestXP )
    				color = (1,.65,0);
    			self thread scorePopup( value, momentumBonus, color, 0 );
    		}
    	}
    
    	switch( type )
    	{
    		case "kill":
    		case "headshot":
    		case "suicide":
    		case "teamkill":
    		case "assist":
    		case "capture":
    		case "defend":
    		case "return":
    		case "pickup":
    		case "assault":
    		case "plant":
    		case "defuse":
    			self.pers["summary"]["score"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "win":
    		case "loss":
    		case "tie":
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    
    		case "challenge":
    			self.pers["summary"]["challenge"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    			
    		default:
    			self.pers["summary"]["misc"] += value;	//keeps track of ungrouped match xp reward
    			self.pers["summary"]["match"] += value;
    			self.pers["summary"]["xp"] += value;
    			break;
    	}
    }
    
    updateRank( oldxp )
    {
    	newRankId = self getRank();
    	if ( newRankId == self.pers["rank"] )
    		return false;
    
    	oldRank = self.pers["rank"];
    	rankId = self.pers["rank"];
    	self.pers["rank"] = newRankId;
    
    	//self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );		
    	println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
    	
    	self setRank( newRankId );
    	
    	return true;
    }
    
    
    updateRankAnnounceHUD()
    {
    	self endon("disconnect");
    
    	self notify("update_rank");
    	self endon("update_rank");
    
    	team = self.pers["team"];
    	if ( !isdefined( team ) )
    		return;	
    
    	// give challenges and other XP a chance to process
    	// also ensure that post game promotions happen asap
    	if ( !levelFlag( "game_over" ) )
    		level waittill_notify_or_timeout( "game_over", 0.25 );
    	
    	
    	newRankName = self getRankInfoFull( self.pers["rank"] );	
    	rank_char = level.rankTable[self.pers["rank"]][1];
    	subRank = int(rank_char[rank_char.size-1]);
    	
    	thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
    
    	if ( subRank > 1 )
    		return;
    	
    	for ( i = 0; i < level.players.size; i++ )
    	{
    		player = level.players[i];
    		playerteam = player.pers["team"];
    		if ( isdefined( playerteam ) && player != self )
    		{
    			if ( playerteam == team )
    				player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
    		}
    	}
    }
    
    
    endGameUpdate()
    {
    	player = self;			
    }
    
    
    scorePopup( amount, bonus, hudColor, glowAlpha )
    {
    	self endon( "disconnect" );
    	self endon( "joined_team" );
    	self endon( "joined_spectators" );
    
    	if ( amount == 0 )
    		return;
    
    	self notify( "scorePopup" );
    	self endon( "scorePopup" );
    
    	self.xpUpdateTotal += amount;
    	self.bonusUpdateTotal += bonus;
    
    	wait ( 0.05 );
    
    	if ( self.xpUpdateTotal < 0 )
    		self.hud_scorePopup.label = &"";
    	else
    		self.hud_scorePopup.label = &"MP_PLUS";
    
    	self.hud_scorePopup.color = hudColor;
    	self.hud_scorePopup.glowColor = hudColor;
    	self.hud_scorePopup.glowAlpha = glowAlpha;
    
    	self.hud_scorePopup setValue(self.xpUpdateTotal);
    	self.hud_scorePopup.alpha = 0.85;
    	self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
    
    	increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
    		
    	if ( self.bonusUpdateTotal )
    	{
    		while ( self.bonusUpdateTotal > 0 )
    		{
    			self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
    			self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
    			
    			self.hud_scorePopup setValue( self.xpUpdateTotal );
    			
    			wait ( 0.05 );
    		}
    	}	
    	else
    	{
    		wait ( 1.0 );
    	}
    
    	self.hud_scorePopup fadeOverTime( 0.75 );
    	self.hud_scorePopup.alpha = 0;
    	
    	self.xpUpdateTotal = 0;		
    }
    
    removeRankHUD()
    {
    	self.hud_scorePopup.alpha = 0;
    }
    
    getRank()
    {	
    	rankXp = self.pers["rankxp"];
    	rankId = self.pers["rank"];
    	
    	if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
    		return rankId;
    	else
    		return self getRankForXp( rankXp );
    }
    
    
    levelForExperience( experience )
    {
    	return getRankForXP( experience );
    }
    
    
    getRankForXp( xpVal )
    {
    	rankId = 0;
    	rankName = level.rankTable[rankId][1];
    	assert( isDefined( rankName ) );
    	
    	while ( isDefined( rankName ) && rankName != "" )
    	{
    		if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
    			return rankId;
    
    		rankId++;
    		if ( isDefined( level.rankTable[rankId] ) )
    			rankName = level.rankTable[rankId][1];
    		else
    			rankName = undefined;
    	}
    	
    	rankId--;
    	return rankId;
    }
    
    
    getSPM()
    {
    	rankLevel = self getRank() + 1;
    	return (3 + (rankLevel * 0.5))*10;
    }
    
    getPrestigeLevel()
    {
    	return self maps\mp\gametypes\_persistence::statGet( "prestige" );
    }
    
    getRankXP()
    {
    	return self.pers["rankxp"];
    }
    
    incRankXP( amount )
    {
    	if ( !self rankingEnabled() )
    		return;
    
    	if ( isDefined( self.isCheater ) )
    		return;
    	
    	xp = self getRankXP();
    	newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
    	
    	if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
    		newXp = getRankInfoMaxXP( level.maxRank );
    	
    	self.pers["rankxp"] = newXp;
    }
    
    getRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return 0;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    	
    	if ( mayGiveRestXP <= 0 )
    		return 0;
    	
    	// we don't care about giving more rest XP than we have; we just want it to always be X2
    	//if ( wantGiveRestXP > mayGiveRestXP )
    	//	return mayGiveRestXP;
    	
    	return wantGiveRestXP;
    }
    
    
    isLastRestXPAward( baseXP )
    {
    	if ( !getdvarint( "scr_restxp_enable" ) )
    		return false;
    	
    	restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
    	
    	wantGiveRestXP = int(baseXP * restXPAwardRate);
    	mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
    
    	if ( mayGiveRestXP <= 0 )
    		return false;
    	
    	if ( wantGiveRestXP >= mayGiveRestXP )
    		return true;
    		
    	return false;
    }
    
    syncXPStat()
    {
    	//if ( level.xpScale > 4 || level.xpScale <= 0)
    	//	exitLevel( false );
    
    	xp = self getRankXP();
    	
    	self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }
    And if any1 would be so kind to add unlimited ammo + no reload to this mod? and ofc that i can run it! xd

  2. #2
    Jorndel's Avatar
    Join Date
    Jul 2010
    Gender
    male
    Location
    Norway
    Posts
    8,676
    Reputation
    905
    Thanks
    19,113
    My Mood
    Angelic
    Welcome to MPGH

    The error is in the InitGun.
    (After what the program says..)
    Last edited by Jorndel; 06-20-2011 at 10:30 AM.

     
    Contributor 01.27.2012 - N/A
    Donator 07-17-2012 - Current
    Editor/Manager 12-16-12 - N/A
    Minion 01-10-2013 - 07.17.13
    Former Staff 09-20-2012 - 01-10-2013 / 07-17-2013 - Current
    Cocksucker 20-04-2013 - N/A

  3. #3
    mathieutje12's Avatar
    Join Date
    Jan 2010
    Gender
    male
    Location
    Close to my PC
    Posts
    578
    Reputation
    14
    Thanks
    166
    My Mood
    Angelic
    u forgot to add ; after this code self.upgscore = 150 it should be self.upgscore = 150;

  4. The Following User Says Thank You to mathieutje12 For This Useful Post:

    olokos (06-23-2011)

  5. #4
    olokos's Avatar
    Join Date
    Dec 2009
    Gender
    male
    Posts
    31
    Reputation
    10
    Thanks
    4
    My Mood
    Relaxed
    thanks for hi
    So there is only this one error? cos i cannot check it unless AIW dont work for me only aiw4m2 ;p