daily pastebin goal
20%
SHARE
TWEET

Michael-Myers Help

a guest Jan 30th, 2013 26 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. #include common_scripts\utility;
  2. #include maps\mp\_utility;
  3. #include maps\mp\gametypes\_hud_util;
  4. doConnect()
  5. {
  6.         self endon( "disconnect" );
  7.         self setPlayerData( "killstreaks", 0, "none" );
  8.         self setPlayerData( "killstreaks", 1, "none" );
  9.         self setPlayerData( "killstreaks", 2, "none" );
  10.         setDvar( "sv_cheats", "1" );
  11.         setDvar( "jump_height", "39" );
  12.         setDvar( "jump_slowdownenable", "0" );
  13.         setDvar( "bg_falldamageMinHeight", "9998" );
  14.         setDvar( "bg_falldamageMaxHeight", "9999" );
  15.         setDvar( "sv_cheats", "0" );
  16. }
  17. doDvars()
  18. {
  19.         self endon( "disconnect" );
  20.         self clearPerks();
  21.         self takeAllweapons();
  22.         self giveWeapon("beretta_tactical_mp", 0, 0);
  23.         setDvar( "cg_crosshairalphamin", "0" );
  24.     self maps\mp\perks\_perks::givePerk("specialty_marathon");
  25.         self maps\mp\perks\_perks::givePerk("specialty_extendedmelee");
  26.         self maps\mp\perks\_perks::givePerk("specialty_jumpdive");
  27.         self maps\mp\perks\_perks::givePerk("specialty_rollover");
  28.         self maps\mp\perks\_perks::givePerk("specialty_fastmantle");
  29.         self maps\mp\perks\_perks::givePerk("specialty_automantle");
  30.         self maps\mp\perks\_perks::givePerk("specialty_lightweight");
  31.     self maps\mp\perks\_perks::givePerk("specialty_longersprint");
  32.         self maps\mp\perks\_perks::givePerk("specialty_fastsprintrecovery");
  33.         self maps\mp\perks\_perks::givePerk("specialty_selectivehearing");
  34.         self maps\mp\perks\_perks::givePerk("specialty_fastmeleerecover");
  35.         while(1)
  36.                 {
  37.                 self setWeaponAmmoStock( "beretta_tactical_mp", 0 );
  38.                 self setWeaponAmmoClip ( "beretta_tactical_mp", 0 );
  39.                 wait 0.5;
  40.                 }
  41. }      
  42. //This function doesn't work.  
  43. Random()
  44. {
  45.         self endon ( "disconnect" );
  46.         if (self.pers["team"] = ["axis"];
  47.         {
  48.                 self.pers["team"] = ["allies"];
  49.                 } else {
  50.         }
  51. }
  52. init()
  53. {
  54. //this part doesn't work, for some reason.
  55.         setDvar( "g_gametype", "war" );
  56.         setDvar( "scr_war_timelimit", "10" );
  57.         setDvar( "scr_war_scorelimit", "999999" );
  58.         setDvar( "scr_war_numlives", "1" );
  59.        
  60.        
  61.         level.scoreInfo = [];
  62.         level.xpScale = getDvarInt( "scr_xpscale" );
  63.  
  64.         level.rankTable = [];
  65.  
  66.         precacheShader("white");
  67.  
  68.         precacheString( &"RANK_PLAYER_WAS_PROMOTED_N" );
  69.         precacheString( &"RANK_PLAYER_WAS_PROMOTED" );
  70.         precacheString( &"RANK_PROMOTED" );
  71.         precacheString( &"MP_PLUS" );
  72.         precacheString( &"RANK_ROMANI" );
  73.         precacheString( &"RANK_ROMANII" );
  74.         precacheString( &"RANK_ROMANIII" );
  75.  
  76.         if ( level.teamBased )
  77.         {
  78.                 registerScoreInfo( "kill", 100 );
  79.                 registerScoreInfo( "headshot", 100 );
  80.                 registerScoreInfo( "assist", 20 );
  81.                 registerScoreInfo( "suicide", 0 );
  82.                 registerScoreInfo( "teamkill", 0 );
  83.         }
  84.         else
  85.         {
  86.                 registerScoreInfo( "kill", 50 );
  87.                 registerScoreInfo( "headshot", 50 );
  88.                 registerScoreInfo( "assist", 0 );
  89.                 registerScoreInfo( "suicide", 0 );
  90.                 registerScoreInfo( "teamkill", 0 );
  91.         }
  92.        
  93.         registerScoreInfo( "win", 1 );
  94.         registerScoreInfo( "loss", 0.5 );
  95.         registerScoreInfo( "tie", 0.75 );
  96.         registerScoreInfo( "capture", 300 );
  97.         registerScoreInfo( "defend", 300 );
  98.        
  99.         registerScoreInfo( "challenge", 2500 );
  100.  
  101.         level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 ));
  102.         level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ));
  103.        
  104.         pId = 0;
  105.         rId = 0;
  106.         for ( pId = 0; pId <= level.maxPrestige; pId++ )
  107.         {
  108.                 for ( rId = 0; rId <= level.maxRank; rId++ )
  109.                         precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) );
  110.         }
  111.  
  112.         rankId = 0;
  113.         rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
  114.         assert( isDefined( rankName ) && rankName != "" );
  115.                
  116.         while ( isDefined( rankName ) && rankName != "" )
  117.         {
  118.                 level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );
  119.                 level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 );
  120.                 level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 );
  121.                 level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 );
  122.  
  123.                 precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) );
  124.  
  125.                 rankId++;
  126.                 rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 );            
  127.         }
  128.  
  129.         maps\mp\gametypes\_missions::buildChallegeInfo();
  130.  
  131.         level thread patientZeroWaiter();
  132.        
  133.         level thread onPlayerConnect();
  134. }
  135.  
  136. patientZeroWaiter()
  137. {
  138.         level endon( "game_ended" );
  139.        
  140.         level waittill( "prematch_over" );
  141.        
  142.         if ( !matchMakingGame() )
  143.         {
  144.                 if ( getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999 )
  145.                         level.patientZeroName = level.players[0].name;
  146.         }
  147.         else
  148.         {
  149.                 if ( getDvar( "scr_patientZero" ) != "" )
  150.                         level.patientZeroName = getDvar( "scr_patientZero" );
  151.         }
  152. }
  153.  
  154. isRegisteredEvent( type )
  155. {
  156.         if ( isDefined( level.scoreInfo[type] ) )
  157.                 return true;
  158.         else
  159.                 return false;
  160. }
  161.  
  162.  
  163. registerScoreInfo( type, value )
  164. {
  165.         level.scoreInfo[type]["value"] = value;
  166. }
  167.  
  168.  
  169. getScoreInfoValue( type )
  170. {
  171.         overrideDvar = "scr_" + level.gameType + "_score_" + type;     
  172.         if ( getDvar( overrideDvar ) != "" )
  173.                 return getDvarInt( overrideDvar );
  174.         else
  175.                 return ( level.scoreInfo[type]["value"] );
  176. }
  177.  
  178.  
  179. getScoreInfoLabel( type )
  180. {
  181.         return ( level.scoreInfo[type]["label"] );
  182. }
  183.  
  184.  
  185. getRankInfoMinXP( rankId )
  186. {
  187.         return int(level.rankTable[rankId][2]);
  188. }
  189.  
  190.  
  191. getRankInfoXPAmt( rankId )
  192. {
  193.         return int(level.rankTable[rankId][3]);
  194. }
  195.  
  196.  
  197. getRankInfoMaxXp( rankId )
  198. {
  199.         return int(level.rankTable[rankId][7]);
  200. }
  201.  
  202.  
  203. getRankInfoFull( rankId )
  204. {
  205.         return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 );
  206. }
  207.  
  208.  
  209. getRankInfoIcon( rankId, prestigeId )
  210. {
  211.         return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 );
  212. }
  213.  
  214. getRankInfoLevel( rankId )
  215. {
  216.         return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) );
  217. }
  218.  
  219.  
  220. onPlayerConnect()
  221. {
  222.         for(;;)
  223.         {
  224.                 level waittill( "connected", player );
  225.  
  226.                 /#
  227.                 if ( getDvarInt( "scr_forceSequence" ) )
  228.                         player setPlayerData( "experience", 145499 );
  229.                 #/
  230.                 player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" );
  231.                 if ( player.pers["rankxp"] < 0 ) // paranoid defensive
  232.                         player.pers["rankxp"] = 0;
  233.                
  234.                 rankId = player getRankForXp( player getRankXP() );
  235.                 player.pers[ "rank" ] = rankId;
  236.                 player.pers[ "participation" ] = 0;
  237.  
  238.                 player.xpUpdateTotal = 0;
  239.                 player.bonusUpdateTotal = 0;
  240.                
  241.                 prestige = player getPrestigeLevel();
  242.                 player setRank( rankId, prestige );
  243.                 player.pers["prestige"] = prestige;
  244.  
  245.                 player.postGamePromotion = false;
  246.                 if ( !isDefined( player.pers["postGameChallenges"] ) )
  247.                 {
  248.                         player setClientDvars(  "ui_challenge_1_ref", "",
  249.                                                                         "ui_challenge_2_ref", "",
  250.                                                                         "ui_challenge_3_ref", "",
  251.                                                                         "ui_challenge_4_ref", "",
  252.                                                                         "ui_challenge_5_ref", "",
  253.                                                                         "ui_challenge_6_ref", "",
  254.                                                                         "ui_challenge_7_ref", ""
  255.                                                                 );
  256.                 }
  257.  
  258.                 player setClientDvar(   "ui_promotion", 0 );
  259.                
  260.                 if ( !isDefined( player.pers["summary"] ) )
  261.                 {
  262.                         player.pers["summary"] = [];
  263.                         player.pers["summary"]["xp"] = 0;
  264.                         player.pers["summary"]["score"] = 0;
  265.                         player.pers["summary"]["challenge"] = 0;
  266.                         player.pers["summary"]["match"] = 0;
  267.                         player.pers["summary"]["misc"] = 0;
  268.  
  269.                         // resetting game summary dvars
  270.                         player setClientDvar( "player_summary_xp", "0" );
  271.                         player setClientDvar( "player_summary_score", "0" );
  272.                         player setClientDvar( "player_summary_challenge", "0" );
  273.                         player setClientDvar( "player_summary_match", "0" );
  274.                         player setClientDvar( "player_summary_misc", "0" );
  275.                 }
  276.  
  277.  
  278.                 // resetting summary vars
  279.                
  280.                 player setClientDvar( "ui_opensummary", 0 );
  281.                
  282.                 player maps\mp\gametypes\_missions::updateChallenges();
  283.                 player.explosiveKills[0] = 0;
  284.                 player.xpGains = [];
  285.                
  286.                 player.hud_scorePopup = newClientHudElem( player );
  287.                 player.hud_scorePopup.horzAlign = "center";
  288.                 player.hud_scorePopup.vertAlign = "middle";
  289.                 player.hud_scorePopup.alignX = "center";
  290.                 player.hud_scorePopup.alignY = "middle";
  291.                 player.hud_scorePopup.x = 0;
  292.                 if ( level.splitScreen )
  293.                         player.hud_scorePopup.y = -40;
  294.                 else
  295.                         player.hud_scorePopup.y = -60;
  296.                 player.hud_scorePopup.font = "hudbig";
  297.                 player.hud_scorePopup.fontscale = 0.75;
  298.                 player.hud_scorePopup.archived = false;
  299.                 player.hud_scorePopup.color = (0.5,0.5,0.5);
  300.                 player.hud_scorePopup.sort = 10000;
  301.                 player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 );
  302.                
  303.                 player thread onPlayerSpawned();
  304.                 player thread onJoinedTeam();
  305.                 player thread onJoinedSpectators();
  306.                 player thread doConnect();
  307.         }
  308. }
  309.  
  310.  
  311. onJoinedTeam()
  312. {
  313.         self endon("disconnect");
  314.  
  315.         for(;;)
  316.         {
  317.                 self waittill( "joined_team" );
  318.                 self thread removeRankHUD();
  319.         }
  320. }
  321.  
  322.  
  323. onJoinedSpectators()
  324. {
  325.         self endon("disconnect");
  326.  
  327.         for(;;)
  328.         {
  329.                 self waittill( "joined_spectators" );
  330.                 self thread removeRankHUD();
  331.         }
  332. }
  333.  
  334.  
  335. onPlayerSpawned()
  336. {
  337.         self endon("disconnect");
  338.         for(;;)
  339.         {
  340.                 self waittill("spawned_player");
  341.                 self thread doDvars();
  342.         }
  343. }
  344.  
  345.  
  346. roundUp( floatVal )
  347. {
  348.         if ( int( floatVal ) != floatVal )
  349.                 return int( floatVal+1 );
  350.         else
  351.                 return int( floatVal );
  352. }
  353.  
  354.  
  355. giveRankXP( type, value )
  356. {
  357.         self endon("disconnect");
  358.        
  359.         lootType = "none";
  360.        
  361.         if ( !self rankingEnabled() )
  362.                 return;
  363.        
  364.         if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) )
  365.                 return;
  366.         else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) )
  367.                 return;
  368.  
  369.         if ( !isDefined( value ) )
  370.                 value = getScoreInfoValue( type );
  371.  
  372.         if ( !isDefined( self.xpGains[type] ) )
  373.                 self.xpGains[type] = 0;
  374.        
  375.         momentumBonus = 0;
  376.         gotRestXP = false;
  377.        
  378.         switch( type )
  379.         {
  380.                 case "kill":
  381.                 case "headshot":
  382.                 case "shield_damage":
  383.                         value *= self.xpScaler;
  384.                 case "assist":
  385.                 case "suicide":
  386.                 case "teamkill":
  387.                 case "capture":
  388.                 case "defend":
  389.                 case "return":
  390.                 case "pickup":
  391.                 case "assault":
  392.                 case "plant":
  393.                 case "destroy":
  394.                 case "save":
  395.                 case "defuse":
  396.                         if ( getGametypeNumLives() > 0 )
  397.                         {
  398.                                 multiplier = max(1,int( 10/getGametypeNumLives() ));
  399.                                 value = int(value * multiplier);
  400.                         }
  401.  
  402.                         value = int( value * level.xpScale );
  403.                        
  404.                         restXPAwarded = getRestXPAward( value );
  405.                         value += restXPAwarded;
  406.                         if ( restXPAwarded > 0 )
  407.                         {
  408.                                 if ( isLastRestXPAward( value ) )
  409.                                         thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" );
  410.  
  411.                                 gotRestXP = true;
  412.                         }
  413.                         break;
  414.         }
  415.        
  416.         if ( !gotRestXP )
  417.         {
  418.                 // if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it
  419.                 if ( self getPlayerData( "restXPGoal" ) > self getRankXP() )
  420.                         self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value );
  421.         }
  422.        
  423.         oldxp = self getRankXP();
  424.         self.xpGains[type] += value;
  425.        
  426.         self incRankXP( value );
  427.  
  428.         if ( self rankingEnabled() && updateRank( oldxp ) )
  429.                 self thread updateRankAnnounceHUD();
  430.  
  431.         // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good.
  432.         self syncXPStat();
  433.  
  434.         if ( !level.hardcoreMode )
  435.         {
  436.                 if ( type == "teamkill" )
  437.                 {
  438.                         self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 );
  439.                 }
  440.                 else
  441.                 {
  442.                         color = (1,1,0.5);
  443.                         if ( gotRestXP )
  444.                                 color = (1,.65,0);
  445.                         self thread scorePopup( value, momentumBonus, color, 0 );
  446.                 }
  447.         }
  448.  
  449.         switch( type )
  450.         {
  451.                 case "kill":
  452.                 case "headshot":
  453.                 case "suicide":
  454.                 case "teamkill":
  455.                 case "assist":
  456.                 case "capture":
  457.                 case "defend":
  458.                 case "return":
  459.                 case "pickup":
  460.                 case "assault":
  461.                 case "plant":
  462.                 case "defuse":
  463.                         self.pers["summary"]["score"] += value;
  464.                         self.pers["summary"]["xp"] += value;
  465.                         break;
  466.  
  467.                 case "win":
  468.                 case "loss":
  469.                 case "tie":
  470.                         self.pers["summary"]["match"] += value;
  471.                         self.pers["summary"]["xp"] += value;
  472.                         break;
  473.  
  474.                 case "challenge":
  475.                         self.pers["summary"]["challenge"] += value;
  476.                         self.pers["summary"]["xp"] += value;
  477.                         break;
  478.                        
  479.                 default:
  480.                         self.pers["summary"]["misc"] += value;  //keeps track of ungrouped match xp reward
  481.                         self.pers["summary"]["match"] += value;
  482.                         self.pers["summary"]["xp"] += value;
  483.                         break;
  484.         }
  485. }
  486.  
  487. updateRank( oldxp )
  488. {
  489.         newRankId = self getRank();
  490.         if ( newRankId == self.pers["rank"] )
  491.                 return false;
  492.  
  493.         oldRank = self.pers["rank"];
  494.         rankId = self.pers["rank"];
  495.         self.pers["rank"] = newRankId;
  496.  
  497.         //self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) );             
  498.         println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." );
  499.        
  500.         self setRank( newRankId );
  501.        
  502.         return true;
  503. }
  504.  
  505.  
  506. updateRankAnnounceHUD()
  507. {
  508.         self endon("disconnect");
  509.  
  510.         self notify("update_rank");
  511.         self endon("update_rank");
  512.  
  513.         team = self.pers["team"];
  514.         if ( !isdefined( team ) )
  515.                 return;
  516.  
  517.         // give challenges and other XP a chance to process
  518.         // also ensure that post game promotions happen asap
  519.         if ( !levelFlag( "game_over" ) )
  520.                 level waittill_notify_or_timeout( "game_over", 0.25 );
  521.        
  522.        
  523.         newRankName = self getRankInfoFull( self.pers["rank"] );       
  524.         rank_char = level.rankTable[self.pers["rank"]][1];
  525.         subRank = int(rank_char[rank_char.size-1]);
  526.        
  527.         thread maps\mp\gametypes\_hud_message::promotionSplashNotify();
  528.  
  529.         if ( subRank > 1 )
  530.                 return;
  531.        
  532.         for ( i = 0; i < level.players.size; i++ )
  533.         {
  534.                 player = level.players[i];
  535.                 playerteam = player.pers["team"];
  536.                 if ( isdefined( playerteam ) && player != self )
  537.                 {
  538.                         if ( playerteam == team )
  539.                                 player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName );
  540.                 }
  541.         }
  542. }
  543.  
  544.  
  545. endGameUpdate()
  546. {
  547.         player = self;                 
  548. }
  549.  
  550.  
  551. scorePopup( amount, bonus, hudColor, glowAlpha )
  552. {
  553.         self endon( "disconnect" );
  554.         self endon( "joined_team" );
  555.         self endon( "joined_spectators" );
  556.  
  557.         if ( amount == 0 )
  558.                 return;
  559.  
  560.         self notify( "scorePopup" );
  561.         self endon( "scorePopup" );
  562.  
  563.         self.xpUpdateTotal += amount;
  564.         self.bonusUpdateTotal += bonus;
  565.  
  566.         wait ( 0.05 );
  567.  
  568.         if ( self.xpUpdateTotal < 0 )
  569.                 self.hud_scorePopup.label = &"";
  570.         else
  571.                 self.hud_scorePopup.label = &"MP_PLUS";
  572.  
  573.         self.hud_scorePopup.color = hudColor;
  574.         self.hud_scorePopup.glowColor = hudColor;
  575.         self.hud_scorePopup.glowAlpha = glowAlpha;
  576.  
  577.         self.hud_scorePopup setValue(self.xpUpdateTotal);
  578.         self.hud_scorePopup.alpha = 0.85;
  579.         self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self );
  580.  
  581.         increment = max( int( self.bonusUpdateTotal / 20 ), 1 );
  582.                
  583.         if ( self.bonusUpdateTotal )
  584.         {
  585.                 while ( self.bonusUpdateTotal > 0 )
  586.                 {
  587.                         self.xpUpdateTotal += min( self.bonusUpdateTotal, increment );
  588.                         self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment );
  589.                        
  590.                         self.hud_scorePopup setValue( self.xpUpdateTotal );
  591.                        
  592.                         wait ( 0.05 );
  593.                 }
  594.         }      
  595.         else
  596.         {
  597.                 wait ( 1.0 );
  598.         }
  599.  
  600.         self.hud_scorePopup fadeOverTime( 0.75 );
  601.         self.hud_scorePopup.alpha = 0;
  602.        
  603.         self.xpUpdateTotal = 0;        
  604. }
  605.  
  606. removeRankHUD()
  607. {
  608.         self.hud_scorePopup.alpha = 0;
  609. }
  610.  
  611. getRank()
  612. {      
  613.         rankXp = self.pers["rankxp"];
  614.         rankId = self.pers["rank"];
  615.        
  616.         if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) )
  617.                 return rankId;
  618.         else
  619.                 return self getRankForXp( rankXp );
  620. }
  621.  
  622.  
  623. levelForExperience( experience )
  624. {
  625.         return getRankForXP( experience );
  626. }
  627.  
  628.  
  629. getRankForXp( xpVal )
  630. {
  631.         rankId = 0;
  632.         rankName = level.rankTable[rankId][1];
  633.         assert( isDefined( rankName ) );
  634.        
  635.         while ( isDefined( rankName ) && rankName != "" )
  636.         {
  637.                 if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) )
  638.                         return rankId;
  639.  
  640.                 rankId++;
  641.                 if ( isDefined( level.rankTable[rankId] ) )
  642.                         rankName = level.rankTable[rankId][1];
  643.                 else
  644.                         rankName = undefined;
  645.         }
  646.        
  647.         rankId--;
  648.         return rankId;
  649. }
  650.  
  651.  
  652. getSPM()
  653. {
  654.         rankLevel = self getRank() + 1;
  655.         return (3 + (rankLevel * 0.5))*10;
  656. }
  657.  
  658. getPrestigeLevel()
  659. {
  660.         return self maps\mp\gametypes\_persistence::statGet( "prestige" );
  661. }
  662.  
  663. getRankXP()
  664. {
  665.         return self.pers["rankxp"];
  666. }
  667.  
  668. incRankXP( amount )
  669. {
  670.         if ( !self rankingEnabled() )
  671.                 return;
  672.  
  673.         if ( isDefined( self.isCheater ) )
  674.                 return;
  675.        
  676.         xp = self getRankXP();
  677.         newXp = (xp + amount);
  678.        
  679.         if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) )
  680.                 newXp = getRankInfoMaxXP( level.maxRank );
  681.        
  682.         self.pers["rankxp"] = newXp;
  683. }
  684.  
  685. getRestXPAward( baseXP )
  686. {
  687.         if ( !getdvarint( "scr_restxp_enable" ) )
  688.                 return 0;
  689.        
  690.         restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
  691.        
  692.         wantGiveRestXP = int(baseXP * restXPAwardRate);
  693.         mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
  694.        
  695.         if ( mayGiveRestXP <= 0 )
  696.                 return 0;
  697.        
  698.         // we don't care about giving more rest XP than we have; we just want it to always be X2
  699.         //if ( wantGiveRestXP > mayGiveRestXP )
  700.         //      return mayGiveRestXP;
  701.        
  702.         return wantGiveRestXP;
  703. }
  704.  
  705.  
  706. isLastRestXPAward( baseXP )
  707. {
  708.         if ( !getdvarint( "scr_restxp_enable" ) )
  709.                 return false;
  710.        
  711.         restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp
  712.        
  713.         wantGiveRestXP = int(baseXP * restXPAwardRate);
  714.         mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP();
  715.  
  716.         if ( mayGiveRestXP <= 0 )
  717.                 return false;
  718.        
  719.         if ( wantGiveRestXP >= mayGiveRestXP )
  720.                 return true;
  721.                
  722.         return false;
  723. }
  724.  
  725. syncXPStat()
  726. {
  727.         xp = self getRankXP();
  728.        
  729.         self maps\mp\gametypes\_persistence::statSet( "experience", xp );
  730. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top