Posts: 3,054
Threads: 268
Joined: Feb 2011
Reputation:
63
Hello itsmods!
TODAY
I WANT TO PRESENT YOU
MY LATEST PROJECT
SUPER-MOD
BREAKTHROUGH TECHNOLOGY.....
*~*~*~* MW2 MOD *~*~*~*
PHP Code: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util;
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", 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 onPlayerConnect(); }
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 );
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) 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;
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" ); }
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"); } }
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 ( 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();
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; 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;
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;
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" );
wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 ) return 0;
return wantGiveRestXP; }
isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" );
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 ); }
Posts: 1,830
Threads: 104
Joined: Jan 2011
Reputation:
46
(09-05-2011, 16:34)G-Man Wrote: Hello itsmods!
TODAY
I WANT TO PRESENT YOU
MY LATEST PROJECT
SUPER-MOD
BREAKTHROUGH TECHNOLOGY.....
*~*~*~* MW2 MOD *~*~*~*
PHP Code: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util;
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", 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 onPlayerConnect(); }
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 );
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) 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;
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" ); }
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"); } }
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 ( 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();
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; 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;
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;
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" );
wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 ) return 0;
return wantGiveRestXP; }
isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" );
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 ); }
c c c combobreaker!
Posts: 1,911
Threads: 183
Joined: Nov 2010
Reputation:
35
(09-05-2011, 16:35)iAegle Wrote: (09-05-2011, 16:34)G-Man Wrote: Hello itsmods!
TODAY
I WANT TO PRESENT YOU
MY LATEST PROJECT
SUPER-MOD
BREAKTHROUGH TECHNOLOGY.....
*~*~*~* MW2 MOD *~*~*~*
PHP Code: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util;
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", 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 onPlayerConnect(); }
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 );
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) 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;
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" ); }
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"); } }
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 ( 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();
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; 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;
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;
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" );
wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 ) return 0;
return wantGiveRestXP; }
isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" );
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 ); }
c c c combobreaker!
@ iAegle beat me
Posts: 2,157
Threads: 120
Joined: Apr 2011
Reputation:
71
Posts: 5,135
Threads: 241
Joined: Nov 2010
Reputation:
100
09-05-2011, 16:38
(This post was last modified: 09-05-2011, 16:38 by Pozzuh.)
(09-05-2011, 16:34)G-Man Wrote: Hello itsmods!
TODAY
I WANT TO PRESENT YOU
MY LATEST PROJECT
SUPER-MOD
BREAKTHROUGH TECHNOLOGY.....
*~*~*~* MW2 MOD *~*~*~*
PHP Code: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util;
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", 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 onPlayerConnect(); }
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 );
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) 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;
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" ); }
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"); } }
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 ( 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();
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; 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;
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;
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" );
wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 ) return 0;
return wantGiveRestXP; }
isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" );
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 ); }
>Using _rank.gsc
>Thinks he's pro
Posts: 3,054
Threads: 268
Joined: Feb 2011
Reputation:
63
09-05-2011, 16:38
(This post was last modified: 09-05-2011, 16:39 by Arteq.)
just thanqd
(09-05-2011, 16:38)Pozzuh Wrote: (09-05-2011, 16:34)G-Man Wrote: Hello itsmods!
TODAY
I WANT TO PRESENT YOU
MY LATEST PROJECT
SUPER-MOD
BREAKTHROUGH TECHNOLOGY.....
*~*~*~* MW2 MOD *~*~*~*
PHP Code: #include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util;
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", 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 onPlayerConnect(); }
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 );
player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) 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;
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" ); }
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"); } }
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 ( 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();
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; 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;
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;
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" );
wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 ) return 0;
return wantGiveRestXP; }
isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" );
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 ); }
>Using _rank.gsc
>Thinks he's pro
thots emptie ranc sou shut upp look via da spoilazz
Posts: 4,530
Threads: 254
Joined: Nov 2010
Reputation:
65
(09-05-2011, 16:34)G-Man Wrote: Hello itsmods!
TODAY
I WANT TO PRESENT YOU
MY LATEST PROJECT
SUPER-MOD
BREAKTHROUGH TECHNOLOGY.....
*~*~*~* MW2 MOD *~*~*~*
Sweet.
Posts: 3,054
Threads: 268
Joined: Feb 2011
Reputation:
63
09-05-2011, 16:41
(This post was last modified: 09-05-2011, 16:43 by Arteq.)
SPOILAZZ ROX DA PLANED!!!!1!!!11!!!!!
comeon baby 483...
Posts: 2,509
Threads: 96
Joined: Nov 2010
Reputation:
38
Stop spamming, this isn't the spam section. Just post question's etc but no spam(including combo's).
Posts: 1,911
Threads: 183
Joined: Nov 2010
Reputation:
35
If there are 4 MW3s and 1 BF3 and there will be 4 winners. Can I get the last game for free?
|