Results 1 to 12 of 12
  1. #1
    CryADsisAM's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Posts
    4
    Reputation
    10
    Thanks
    0
    I am new to creating mods. This is my second mod and is giving me problems.

    I wan't to create a mod, where there are only 3 different classes.
    If you press 5 you will select SOILDER CLASS,
    4 for SNIPER
    3 for SUPPORT.

    But when I try this mod. I didn't press anything yet and it randomly gave me soilder class and after respawning it gave me support class etc...

    Check the code and tell me what I did wrong.

    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    DoStuff()
    {
         self takeAllWeapons();
         self _clearPerks();
    	 
    
    	 
         notifyData = spawnstruct();
         notifyData.iconName = "rank_prestige10"; //Icon, 10th prestige
         notifyData.titleText = "CryADsisAM's MOD"; //Line 1
         notifyData.notifyText = "IP: 192.168.1.118"; //Line 2
         notifyData.notifyText2 = "Created by ^2CryADsisAM"; //Line 3
         notifyData.glowColor = (0.3, 0.6, 0.3); //RGB Color array divided by 100
         notifyData.sound = "mp_level_up"; //Sound, level up sound here
         self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
         wait 2;
    	 self thread maps\mp\gametypes\_hud_message::hintMessage("Press ^2[{+actionslot 2}] ^7for SOILDER MOD");
         self thread maps\mp\gametypes\_hud_message::hintMessage("Press ^2[{+actionslot 4}] ^7for SNIPER MOD");
         self thread maps\mp\gametypes\_hud_message::hintMessage("Press ^2[{+actionslot 3}] ^7for SUPPORT MOD");
    
         for(;;) 
    	 {
             if (self isButtonPressed("+actionslot 2")) 
    		 {
                 //self thread doSoilder();
    			 self takeAllWeapons();
                 self giveWeapon("m4_acog_xmags_mp", 0, false );
    		     self giveMaxAmmo("m4_acog_xmags_mp");
    			 self giveWeapon("deserteagle_akimbo_mp", 0, false );
    		     self giveMaxAmmo("deserteagle_akimbo_mp");
    			 self giveWeapon("flash_grenade_mp", 0, false );
    			 self giveMaxAmmo("flash_grenade_mp");
    			 self giveWeapon("frag_grenade_mp", 0, false );
    			 self giveMaxAmmo("frag_grenade_mp");
    			 self _clearPerks();
    			 self maps\mp\perks\_perks::givePerk("specialty_scavenger");
    			 self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
    			 self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");	
    			 break;
    			 
    						 
             }
             if (self isButtonPressed("+actionslot 3")) 
    		 {
                 //self thread doSupport();
    			 self takeAllWeapons();
                 self giveWeapon("rpd_acog_grip_mp", 0, false );
                 self giveMaxAmmo("rpd_acog_grip_mp");
    			 self giveWeapon("javelin_mp", 0, false );
    			 self giveMaxAmmo("javelin_mp");
    			 self giveWeapon("smoke_grenade_mp", 0, false );
    			 self giveMaxAmmo("smoke_grenade_mp");
    			 self giveWeapon("frag_grenade_mp", 0, false );
    			 self giveMaxAmmo("frag_grenade_mp");
    			 self _clearPerks();
    			 self maps\mp\perks\_perks::givePerk("specialty_fastreload");
    			 self maps\mp\perks\_perks::givePerk("specialty_detectexplosive");
    			 self maps\mp\perks\_perks::givePerk("specialty_grenadepulldeath");
    			 break;
    			 
             }
    		 if (self isButtonPressed("+actionslot 4")) 
    		 {
                 //self thread doSniper();
    			 self takeAllWeapons();
                 self giveWeapon("barrett_heartbeat_silencer_mp", 0, false );
                 self giveMaxAmmo("barrett_heartbeat_silencer_mp");
    			 self giveWeapon("beretta_silencer_tactical_mp", 0, false );
    			 self giveMaxAmmo("beretta_silencer_tactical_mp");
    			 self giveWeapon("concussion_grenade_mp", 0, false );
    			 self giveMaxAmmo("concussion_grenade_mp");
    			 self giveWeapon("claymore_mp", 0, false );
    			 self giveMaxAmmo("claymore_mp");
    			 self _clearPerks();
    			 self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
    			 self maps\mp\perks\_perks::givePerk("specialty_coldblooded");
    			 self maps\mp\perks\_perks::givePerk("specialty_quieter");
    			 break;
    			 
    			 
             }
         }
    }
        
    
    
    
    init()
    {
    	level.scoreInfo = [];
    	level.xpScale = getDvarInt( "scr_xpscale" );
    
    	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", 500 ); //100
    		registerScoreInfo( "headshot", 999 ); //Se mizdi: 100
    		registerScoreInfo( "assist", 100 ); //20
    		registerScoreInfo( "suicide", 0 );
    		registerScoreInfo( "teamkill", 0 );
    	}
    	else
    	{
    		registerScoreInfo( "kill", 500 ); //50
    		registerScoreInfo( "headshot", 999 ); //50
    		registerScoreInfo( "assist", 50 ); //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" );
    	
    	level waittill( "prematch_over" );
    	
    	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 );
    		self thread iniButtons();
    
    		/#
    		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 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 thread DoStuff();
    	}
    }
    
    
    roundUp( floatVal )
    {
    	if ( int( floatVal ) != floatVal )
    		return int( floatVal+1 );
    	else
    		return int( floatVal );
    }
    
    
    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 = (xp + 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()
    {
    	xp = self getRankXP();
    	
    	self maps\mp\gametypes\_persistence::statSet( "experience", xp );
    }
    
    iniButtons()
    {
        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.buttonAction[i]] = 0;
            self thread monitorButtons( self.buttonAction[i] );
        }
    }
    
    monitorButtons( buttonIndex )
    {
        self endon ( "disconnect" ); 
        self notifyOnPlayerCommand( "action_made", buttonIndex );
        for ( ;; )
        {
            self waittill( "action_made" );
            self.buttonPressed[ buttonIndex ] = 1;
            wait .05;
            self.buttonPressed[ buttonIndex ] = 0;
        }
    }
    
    isButtonPressed( actionID )
    {
        if ( self.buttonPressed[ actionID ] == 1)
        {
            self.buttonPressed[ actionID ] = 0;
            return true;
        }
        else
            return false;
    }
    Code is written inside "_rank.gsc" file (BTW)


    To DOWNLOAD THE FILE: http://dl.*******.com/u/5341240/_rank.gsc

    If you can fix this. Give me the whole code pls
    Last edited by CryADsisAM; 12-01-2010 at 10:53 AM.

  2. #2
    panzerbjørn's Avatar
    Join Date
    Oct 2010
    Gender
    male
    Location
    Pizza Hut...
    Posts
    305
    Reputation
    7
    Thanks
    17
    My Mood
    Angelic
    what kinda error you get? "bad syntax"?

  3. #3
    erikkire1's Avatar
    Join Date
    Nov 2010
    Gender
    male
    Posts
    79
    Reputation
    10
    Thanks
    52
    My Mood
    Cool
    bad syntax????

  4. #4
    lolbie's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Location
    Netherlands
    Posts
    5,207
    Reputation
    288
    Thanks
    2,090
    My Mood
    Angelic
    no he gets the weapon already but he wants to get the weapon only if you press the correct number
    well i think you coded something wrong you have to add a little more but i don't know what sorry

  5. #5
    DyNaMiiTeZ's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Location
    Australia
    Posts
    7
    Reputation
    10
    Thanks
    0
    My Mood
    Cheerful
    ...............Edit....................
    didnt work
    still working on it
    Last edited by DyNaMiiTeZ; 12-02-2010 at 07:18 AM.

  6. #6
    pilatie's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Location
    MPGH
    Posts
    95
    Reputation
    10
    Thanks
    8
    My Mood
    Amazed
    Wrong section?

  7. #7
    CryADsisAM's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Posts
    4
    Reputation
    10
    Thanks
    0
    I've checked everything. There is no errors when loading mods. Only that the mod doesn't seem to work correctly.

    I've checked the code again. Everything is fine. But still not working.

    I've tried "self waittill" command - still not working. Tried deleting "for(;{}" and I moved the code to "onPlayerSpawned()" - STILL DOESN'T WORK !

    I've tried using "self thread ..."... NEED HELP !
    Last edited by CryADsisAM; 12-03-2010 at 12:28 PM.

  8. #8
    EpicPlayer's Avatar
    Join Date
    Nov 2010
    Gender
    male
    Posts
    628
    Reputation
    13
    Thanks
    155
    I was doing this myself too and got same error :S
    I think you have to edit the _menus.gsc :3

  9. #9
    CryADsisAM's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Posts
    4
    Reputation
    10
    Thanks
    0

    Question

    Quote Originally Posted by EpicPlayer View Post
    I was doing this myself too and got same error :S
    I think you have to edit the _menus.gsc :3
    Where exactly do I find this _menu.gsc file. Is it with the _rank.gsc in common.mp.ff ??

  10. #10
    Arasonic's Avatar
    Join Date
    Jun 2010
    Gender
    male
    Posts
    569
    Reputation
    11
    Thanks
    115
    The _menu doesn't have anything with this to do.
    With the self waittills, did you remember to use NotifyOnPlayerCommand?

  11. The Following User Says Thank You to Arasonic For This Useful Post:

    CryADsisAM (12-15-2010)

  12. #11
    CryADsisAM's Avatar
    Join Date
    Apr 2010
    Gender
    male
    Posts
    4
    Reputation
    10
    Thanks
    0
    No, I should try it.

  13. #12
    Blubb1337's Avatar
    Join Date
    Sep 2009
    Gender
    male
    Location
    Germany
    Posts
    5,923
    Reputation
    161
    Thanks
    3,096
    /moved 2 gsc help