Nuke not working??

Posts 1–8 of 8 · Page 1 of 1
Nuke not working??
Hi guys, this is a gungame i compiled from 4 sources, and i got it to work, almost. I don't take credit for the main code, as I said already, most of it wasn't created by me.
The only pain in the ass is the nuke that will end the game. It's simply not working.
You do get the yellow message saying that you got it, and you do hear the callout, but the nuke image doesn't appear at the lower right corner. if you press 4, nothing happens

Greets and thanks in advance,
Christiaan


Take a look at the 'doScore()' part.

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


initGuns()
{
	self.inverse = false; //Use this to downgrade instead of upgrade
	self.upgscore = 1000; //Score 4 Upgrade
	self.finalkills = 45; //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("throwingknife_mp", 9, false, false);
    self.gunList[1] = createGun("usp_fmj_mp", 9, false, false);
    self.gunList[2] = createGun("beretta_fmj_mp", 9, false, false);
    self.gunList[3] = createGun("coltanaconda_fmj_mp", 9, false, false);
    self.gunList[4] = createGun("deserteaglegold_mp", 9, true, true);
    self.gunList[5] = createGun("pp2000_mp", 9, true, false);
    self.gunList[6] = createGun("tmp_mp", 9, true, false);
    self.gunList[7] = createGun("beretta393_akimbo_mp", 9, true, true);
    self.gunList[8] = createGun("glock_mp", 9, true, false);
    self.gunList[9] = createGun("ranger_akimbo_mp", 9, true, true);
    self.gunList[10] = createGun("model1887_akimbo_mp", 9, true, true);
    self.gunList[11] = createGun("m1014_grip_reflex_mp", 9, true, false);
    self.gunList[12] = createGun("striker_grip_reflex_mp", 9, true, false);
    self.gunList[13] = createGun("aa12_eotech_grip_mp", 9, true, false);
    self.gunList[14] = createGun("spas12_grip_mp", 9, true, false);
    self.gunList[15] = createGun("uzi_reflex_rof_mp", 9, true, false);
    self.gunList[16] = createGun("mp5k_reflex_rof_mp", 9, true, false);
    self.gunList[17] = createGun("ump45_reflex_rof_mp", 9, true, false);
    self.gunList[18] = createGun("p90_eotech_rof_mp", 9, true, false);
    self.gunList[19] = createGun("fal_acog_mp", 9, true, false);
    self.gunList[20] = createGun("scar_reflex_mp", 9, true, false);
    self.gunList[21] = createGun("m16_reflex_mp", 9, true, false);
    self.gunList[22] = createGun("aug_grip_mp", 9, true, false);
    self.gunList[23] = createGun("masada_reflex_mp", 9, true, false);
    self.gunList[24] = createGun("rpd_grip_mp", 9, true, false);
    self.gunList[25] = createGun("mg4_grip_mp", 9, true, false);
    self.gunList[26] = createGun("m240_grip_mp", 9, true, false);
    self.gunList[27] = createGun("m79_mp", 9, false, true);
    self.gunList[28] = createGun("at4_mp", 9, true, false);
    self.gunList[29] = createGun("rpg_mp", 9, false, false);
    self.gunList[30] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[31] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[32] = createGun("ac130_40mm_mp", 9, false, false);
    self.gunList[33] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[34] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[35] = createGun("ac130_105mm_mp", 9, false, false);
    self.gunList[36] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[37] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[38] = createGun("ac130_40mm_mp", 9, false, false);
    self.gunList[39] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[40] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[41] = createGun("ac130_105mm_mp", 9, false, false);
    self.gunList[42] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[43] = createGun("ac130_25mm_mp", 9, false, false);
    self.gunList[44] = createGun("ac130_40mm_mp", 9, false, false);
    self.gunList[45] = createGun("nuke_mp", 9, false, false);
}

createGun(gunName, camo, laserSight, akimbo)
{
	gun = spawnstruct();
	gun.name = gunName;
	gun.camo = camo;
	gun.laser = laserSight;
	gun.akimbo = akimbo;
	return gun;
}


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", 2);
        setDvar("scr_nukeCancelMode", 0);

	self setClientDvar("g_kickHostIfIdle", 0);
	self setclientdvar("cg_drawfps", "0"); 
}

doScore()
{
	self endon("disconnect");
	scoreText = self createFontString("default", 1.5);
	scoreText setPoint("TOPRIGHT", "TOPRIGHT", -5, 0);
	while(true)
	{
		scoreText setText("Current Level: " + self.curgun);
		wait .2;
		if(self.score >= 45000)
		{
		self thread maps\mp\gametypes\_hud_message::hintMessage("^3You WON Launch Your Nuke!!!!");  //Ends with nuke code
		wait 1;
		self maps\mp\killstreaks\_killstreaks::giveKillstreak("nuke", true);
    	 	self maps\mp\gametypes\_hud_message::killstreakSplashNotify("nuke", 45);
    		    	
			
			
			wait 30;
		}
	}
}

doDvars()
{
	//self takeAllPerks();
	self setClientDvar("cg_scoreboardPingText", 1);
	setDvar("bg_fallDamageMaxHeight", 1);
	setDvar("cg_drawcrosshair", 1);
	setDvar("bg_fallDamageMinHeight", 9998);
	setDvar("bg_fallDamageMaxHeight", 9999); //No fall dmg
	self setClientDvar("player_meleerange", 0);
self _clearPerks();
    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_exposeenemy");
    self maps\mp\perks\_perks::givePerk("specialty_extendedmags");
    self maps\mp\perks\_perks::givePerk("specialty_fastreload");
    self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
    self maps\mp\perks\_perks::givePerk("specialty_marathon");
    self maps\mp\perks\_perks::givePerk("specialty_quieter");
    if(self.firstRun){           
                self thread maps\mp\gametypes\_hud_message::hintMessage("^4Gun Game");
                self thread maps\mp\gametypes\_hud_message::hintMessage("^4Kill Enemies to Upgrade Your Gun");
                self thread maps\mp\gametypes\_hud_message::hintMessage("^1You can NOT kill people with knives");
                self thread maps\mp\gametypes\_hud_message::hintMessage("^3At 45 kills you will get a NUKE!");
        }
self.firstRun = false;
}
doGun()
{
	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("^4Next Level!");
				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", 1000 );
		registerScoreInfo( "headshot", 1000 );
		registerScoreInfo( "assist", 0 );
		registerScoreInfo( "suicide", 0 );
		registerScoreInfo( "teamkill", 0 );
	}
	else
	{
		registerScoreInfo( "kill", 1000 );
		registerScoreInfo( "headshot", 1000 );
		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 removeRankHUD();
	}
}


onJoinedSpectators()
{
	self endon("disconnect");

	for(;;)
	{
		self waittill( "joined_spectators" );
		self thread removeRankHUD();
	}
}


onPlayerSpawned()
{
        self endon( "disconnect" );

                                
        for(;;)
        {
                self waittill( "spawned_player" );
		self maps\mp\gametypes\_class::setKillstreaks("none","none","none"); //Killstreaks Code
		self thread DoDvars();
		self thread DoKillstreaks();

        }
}



roundUp( floatVal )
{
	if ( int( floatVal ) != floatVal )
		return int( floatVal+1 );
	else
		return int( floatVal );
}


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


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 );
}
Try taking my gungame as a base and edit it from there as the nuke works. Or have a look at the code to see where you went wrong.

Try this edited code:

Code:
doScore()
{
	self endon("disconnect");
	scoreText = self createFontString("default", 1.5);
	scoreText setPoint("TOPRIGHT", "TOPRIGHT", -5, 0);
	while(true)
	{
		scoreText setText("Current Level: " + self.curgun);
		wait .2;
		if(self.score >= 45000)
		{
    	 	    	self maps\mp\gametypes\_hud_message::killstreakSplashNotify("nuke", 45);
    		    	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
			wait 30;
		}
	}
}
The code posted by fallen souls should work
There is a VM-/PM-System.

/moved 2 help
Quote Originally Posted by Blubb1337 View Post
There is a VM-/PM-System.

/moved 2 help
Sorry for posting in wrong section, and what exactly is a VM-/PM- System?

And when I exactly copy the code Fallen Souls provided (thx for that btw), it still doesn work
as i said, you have to die to active it
^.

Messages are so fucking bull k?
Quote Originally Posted by ~Just IN~ View Post
^.

Messages are so fucking bull k?
this does not work either!
i died i dont know how many times after getting nuke, still not working...
Posts 1–8 of 8 · Page 1 of 1
This thread is closed for replies.

Similar Threads

Tags for this Thread

None

Talk with us