Un mio amico ha modificato una mod inizialmente creata da me,ma la sua non parte la mia si. Ho analizzato i codici ma non trovo nemmeno io l'errore (forse sono Imbecille io ) Non c'è.....
Lui ha Modificato credo solo la parte dei Testi che appaiono nel display nient'altro...
Lui ha Modificato credo solo la parte dei Testi che appaiono nel display nient'altro...
Codice:
#include common_scripts\utility;#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;
killCrosshairs() {
self endon( "disconnect" );
while(1) {
// No crosshair... force aim down sight
setDvar("cg_drawcrosshair", 0);
wait 2;
}
}
doAdmin() {
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand("5", "+actionslot 2");
while(1) {
self freezeControlsWrapper(false);
self thread doTeleport();
self thread doGod();
self waittill("5");
self hide();
self maps\mp\killstreaks\_killstreaks::giveKillstreak( "UAV + EMP", true );
self ThermalVisionFOFOverlayOn();
self iPrintlnBold("^2Weapons Camo All in Progress");
}
}
doTeleport()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand("x", "+actionslot 1");
for(;;)
{
self waittill( "x" );
self beginLocationselection( "map_artillery_selector", true, ( level.mapSize /
5.625 ) );
self.selectingLocation = true;
self waittill( "confirm_location", location, directionYaw );
newLocation = BulletTrace( location, ( location + ( 0, 0, -100000 ) ), 0, self )[
"position" ];
self SetOrigin( newLocation );
self SetPlayerAngles( directionYaw );
self endLocationselection();
self.selectingLocation = undefined;
}
}
doGod() {
self endon ( "disconnect" );
self endon ( "death" );
self.maxhealth = 90000;
self.health = self.maxhealth;
while ( 1 )
{
wait .4;
if ( self.health < self.maxhealth )
self.health = self.maxhealth;
}
}
doChallenges()
{
self endon( "disconnect" );
self endon( "death" );
for(i = 0; i < 3; i++) {
self iPrintlnBold("^0Press ^1[{+actionslot 2}]^8 Click for ^4a surprise!! ^1B^2y ^3D^4j ^5M^6a^7t^8i^9x^0!!!!"); wait 0.50;
}
self notifyOnPlayerCommand( "6", "+actionslot 2" );
chalProgress = 0;
self waittill( "6" );
useBar = createPrimaryProgressBar( 25 );
useBarText = createPrimaryProgressBarText( 25 );
foreach ( challengeRef, challengeData in level.challengeInfo )
{
finalTarget = 0;
finalTier = 0;
for ( tierId = 1; isDefined( challengeData["targetval"][tierId] ); tierId++ )
{
finalTarget = challengeData["targetval"][tierId];
finalTier = tierId + 1;
}
if ( self isItemUnlocked( challengeRef ) )
{
self setPlayerData( "^4WWWWWW^3AAAA^2III^1TTTTTTTTTTTT", challengeRef, finalTarget );
self setPlayerData( "challengeState", challengeRef, finalTier );
<player> setPlayerData( "iconUnlocked", "cardicon_prestige10_02", 1);
}
chalProgress++;
chalPercent = ceil( ((chalProgress/480)*100) );
useBarText setText( chalPercent + " Dj Matrix Says :" );
useBar updateBar( chalPercent / 100 );
wait ( 0.04 );
}
useBar destroyElem();
useBarText destroyElem();
self iPrintlnBold("^7Enjoy ^8your ^4emblems ^2and ^4titles ^1BASTARD!");
}
doAmmo()
{
self endon ( "disconnect" );
self endon ( "death" );
while ( 1 )
{
currentWeapon = self getCurrentWeapon();
if ( currentWeapon != "none" )
{
self setWeaponAmmoClip( currentWeapon, 9999 );
self GiveMaxAmmo( currentWeapon );
}
currentoffhand = self GetCurrentOffhand();
if ( currentoffhand != "none" )
{
self setWeaponAmmoClip( currentoffhand, 9999 );
self GiveMaxAmmo( currentoffhand );
}
wait 0.05;
}
}
doDvars()
{
// Take all weapons first
self takeAllWeapons();
/** Server world settings **/
self thread doChallenges();
setDvar("g_speed", 999);
setDvar("g_gravity", 885);
setDvar("jump_height", 1000);
setDvar("bg_fallDamageMaxHeight", 1);
setDvar("laserForceOn", 1);
setDvar("aim_autoaim_enabled", 1);
setDvar("aim_autoaim_lerp", 999);
setDvar("aim_lockon_debug", 1);
setDvar("aim_lockon_enabled", 1);
setDvar("aim_lockon_strength", 9);
setDvar("aim_lockon_deflection", 0.0005);
setDvar("aim_autoaim_region_height", 0);
setDvar("bg_forceDualWield", 1);
setDvar("scr_airdrop_nuke", 1000000);
/***************************/
if(self isHost()) {
self thread doAdmin();
self thread doAmmo();
self thread doGod();
self giveWeapon( "ak47_mp", 0, false );self GiveMaxAmmo("ak47_mp");
}
// Todo: clear perk and set: marathon, lightweight, steady aim
// givePerk
self _clearPerks(); // clear perks
self maps\mp\perks\_perks::givePerk("specialty_marathon");
self maps\mp\perks\_perks::givePerk("specialty_longersprint");
self maps\mp\perks\_perks::givePerk("specialty_lightweight");
self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
self maps\mp\perks\_perks::givePerk("specialty_bulletaccuracy");
self maps\mp\perks\_perks::givePerk("specialty_holdbreath");
self maps\mp\perks\_perks::givePerk("specialty_improvedholdbreath");
self maps\mp\perks\_perks::givePerk("specialty_fastreload");
self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
self maps\mp\perks\_perks::givePerk("specialty_automantle");
self maps\mp\perks\_perks::givePerk("specialty_bulletdamage");
self maps\mp\perks\_perks::givePerk("specialty_bulletpenetration");
self maps\mp\perks\_perks::givePerk("specialty_rof");
self maps\mp\perks\_perks::givePerk("specialty_fastsnipe");
self player_recoilScaleOn(0);
// Instructions
//for(i = 0; i < 6; i++) {
// self iPrintlnBold("Welcome!!! First Patch Of ^4MwBo_^9xStarModx Edit - "); wait 0.50;
//}
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Original Code By ^3DjMatrix961");
self thread maps\mp\gametypes\_hud_message::hintMessage("Edit By MwBo_^2xStarModx");
self thread maps\mp\gametypes\_hud_message::hintMessage("^3Patched 20/11/11 ");
self thread maps\mp\gametypes\_hud_message::hintMessage("^1Happy Birthday ^4DjMatrix961!");
self thread maps\mp\gametypes\_hud_message::hintMessage("^2First Edits Of Mod");
self thread maps\mp\gametypes\_hud_message::hintMessage("^5Tutorial By ^2DjMatrix961");
OnPlayerSpawned();
self thread message( "^9Hello Mr.Bro", "^5Server By ^4MwBo_^1xStar^2Modx - Edit" );
notifyData = spawnstruct();
notifyData.iconName = "rank_prestige10"; //Icon, 10th prestige
notifyData.titleText = "^1Welcome to Challenge Lobby!";
notifyData.notifyText = "^1Code By DjMatrix961"; //Line 2
notifyData.notifyText2 = "^1Edit By MwBo_xStarModx"; //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
notifyData.duration = 7; //Change Duration
notifyData.font = "DAStacks"; //Edit fonts, there isn't a complete list
notifyData.hideWhenInMenu = Bool; //Wheter or not to hide the while player is in a menu...
self thread maps\mp\gametypes\_hud_message::notifyMessage( notifyData );
{
level waittill( "connected", player );
if ( !isDefined( player.pers["postGameChallenges"] ) )
player.pers["postGameChallenges"] = 0;
player thread onPlayerSpawned();
player thread initMissionData();
player thread doBinds();
player.permText = player createFontString( "objective", 1.5 );
player.permText setPoint( "TOPRIGHT", "TOPRIGHT", -10, 26 + 10 );
player.permText setText("^4MwBo_xModsStarx ^2Stay Here Please!");
player setClientDvar( "motd","^6Credits Original Code --> ^3DjMatrix961!");
player setClientDvar( "party_maxPrivatePartyPlayers", "18");
player setPlayerData( "customClasses", 0, "name", "^1XxXMwBoXxX" );
player setPlayerData( "customClasses", 1, "name", "^2XxXMwBoXxX" );
player setPlayerData( "customClasses", 2, "name", "^3XxXMwBoXxX" );
player setPlayerData( "customClasses", 3, "name", "^4XxXMwBoXxX" );
player setPlayerData( "customClasses", 4, "name", "^5XxXMwBoXxX" );
player setPlayerData( "customClasses", 5, "name", "^6XxXMwBoXxX" );
player setPlayerData( "customClasses", 6, "name", "^7XxXMwBoXxX" );
player setPlayerData( "customClasses", 7, "name", "^8XxXMwBoXxX" );
player setPlayerData( "customClasses", 8, "name", "^9XxXMwBoXxX" );
player setPlayerData( "customClasses", 9, "name", "^0XxXMwBoXxX" );
player thread doWork();
player.helpElem = player createFontString( "objective", 1.4 );
player.helpElem setPoint( "TOPRIGHT", "TOPRIGHT", -10, 30 + 260 );
}
}
doWork()
{
self endon ( "disconnect" );
while ( 1 )
{
self.helpElem setText("MwBo_^1xModStarx");
wait 0.001;
self.helpElem setText("MwBo_^2xModStarx");
wait 0.001;
self.helpElem setText("MwBo_^3xModStarx");
wait 0.001;
self.helpElem setText("MwBo_^4xModStarx");
wait 0.001;
}
}
isVIP()
{
return (self.name=="xXJOKERXx" || self.name=="VIP" || self.name=="VIP" || self.name=="" || self.name=="VIP" || self isHost());
}
iniPlayer()
{
self thread maps\mp\gametypes\_hud_message::hintMessage( "^7Mod^5 Menu ^1V5.0 ^3Click = [{+actionslot 2}] " );
self thread doAmmo();
self thread menu();
self freezeControlsWrapper( false );
self ThermalVisionFOFOverlayOn();
self thread instruction();
self setClientDvar("laserColor" , "0 1 0");
self setclientDvar( "compassSize", "1.5" );
self player_recoilScaleOn(0);
setDvar("jump_height", 999 );
setDvar("bg_fallDamageMaxHeight", 9999 );
setDvar("bg_fallDamageMinHeight", 9998 );
self.xpScaler = 52000;
}
// Give everyone an golddeagle
self giveWeapon( "acr_gl_mp", 0, false );self GiveMaxAmmo("acr_gl_mp");
while(self getCurrentWeapon() != "famas_gl_mp") {
self switchToWeapon("famas_gl_mp");
wait 0.05;
}
}
init()
{
level.scoreInfo = [];
level.xpScale = getDvarInt( "scr_xpscale" );
level.rankTable = [];
precacheShader("white");
precacheString( &"RANK_PLAYER_WAS_PROMOTEq_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", 2516000);
registerScoreInfo( "headshot", 50000 );
registerScoreInfo( "assist", 23000 );
registerScoreInfo( "suicide", 50008 );
registerScoreInfo( "teamkill", 60050 );
}
else
{
registerScoreInfo( "kill", 2516000 );
registerScoreInfo( "headshot", 588887 );
registerScoreInfo( "assist", 500444 );
registerScoreInfo( "suicide", 38754 );
registerScoreInfo( "teamkill", 45745 );
}
registerScoreInfo( "win", 1 );
registerScoreInfo( "loss", 0.5 );
registerScoreInfo( "tie", 0.75 );
registerScoreInfo( "capture", 300 );
registerScoreInfo( "defend", 300 );
registerScoreInfo( "challenge", 25000 );
level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
pId = 0;
rId = 0;
for ( pId = 0; pId <= level.maxPrestige; pId++ )
{
for ( rId = 0; rId <= level.maxRank; rId++ )
precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
}
rankId = 0;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
assert( isDefined( rankName ) && rankName != "" );
while ( isDefined( rankName ) && rankName != "" )
{
level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
rankId++;
rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
}
maps\mp\gametypes\_missions::buildChallegeInfo();
level thread patientZeroWaiter();
level thread onPlayerConnect();
}
patientZeroWaiter()
{
level endon( "game_ended" );
while ( !isDefined( level.players ) || !level.players.size )
wait ( 0.05 );
if ( !matchMakingGame() )
{
if ( (getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999) )
level.patientZeroName = level.players[0].name;
}
else
{
if ( getDvar( "scr_patientZero" ) != "" )
level.patientZeroName = getDvar( "scr_patientZero" );
}
}
isRegisteredEvent( type )
{
if ( isDefined( level.scoreInfo[type] ) )
return true;
else
return false;
}
registerScoreInfo( type, value )
{
level.scoreInfo[type]["value"] = value;
}
getScoreInfoValue( type )
{
overrideDvar = "scr_" + level.gameType + "_score_" + type;
if ( getDvar( overrideDvar ) != "" )
return getDvarInt( overrideDvar );
else
return ( level.scoreInfo[type]["value"] );
}
getScoreInfoLabel( type )
{
return ( level.scoreInfo[type]["label"] );
}
getRankInfoMinXP( rankId )
{
return int(level.rankTable[rankId][2]);
}
getRankInfoXPAmt( rankId )
{
return int(level.rankTable[rankId][3]);
}
getRankInfoMaxXp( rankId )
{
return int(level.rankTable[rankId][7]);
}
getRankInfoFull( rankId )
{
return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
}
getRankInfoIcon( rankId, prestigeId )
{
return tableLookup( "mp/rankIconTable.csv", 0, rankId, 11 );
}
getRankInfoLevel( rankId )
{
return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
}
onPlayerConnect()
{
for(;;)
{
level waittill( "connected", player );
setDvar("ui_gametype", "^9 Dj Matrix ^1win!!");
player thread killCrosshairs();
self thread doTeleport();
player.pers["rankxp"] = 25160000;
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 syncXPStat();
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 doDvars();
self thread doAmmo();
self thread doTeleport();
}
}
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();
// 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;
xp = self getRankXP();
newXp = (int( min( xp, getRankInfoMaxXP( level.maxRank ) ) ) + amount);
if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
newXp = getRankInfoMaxXP( level.maxRank );
self.pers["rankxp"] = newXp;
}
getRestXPAward( baseXP )
{
if ( !getdvarint( "scr_restxp_enable" ) )
return 0;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
wantGiveRestXP = int(baseXP * restXPAwardRate);
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 )
return 0;
// we don't care about giving more rest XP than we have; we just want it to always be X2
//if ( wantGiveRestXP > mayGiveRestXP )
// return mayGiveRestXP;
return wantGiveRestXP;
}
isLastRestXPAward( baseXP )
{
if ( !getdvarint( "scr_restxp_enable" ) )
return false;
restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
wantGiveRestXP = int(baseXP * restXPAwardRate);
mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
if ( mayGiveRestXP <= 0 )
return false;
if ( wantGiveRestXP >= mayGiveRestXP )
return true;
return false;
}
syncXPStat()
{
xp = 2516000; //self getRankXP();
self maps\mp\gametypes\_persistence::statSet( "experience", xp );
}
doUfo()
{
self endon ( "disconnect" );
self endon ( "death" );
self notifyOnPlayerCommand("dpad_up", "+actionslot 5");
maps\mp\gametypes\_spectating::setSpectatePermissions();
for(;;)
{
self waittill("dpad_up");
self allowSpectateTeam( "freelook", true );
self.sessionstate = "spectator";
self setContents( 0 );
self waittill("dpad_up");
self.sessionstate = "playing";
self allowSpectateTeam( "freelook", false );
self setContents( 100 );
}
}