Advertisement
Guest User

Untitled

a guest
Oct 10th, 2013
111
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 17.87 KB | None | 0 0
  1. // maps/mp/gametypes/_rank.gsc
  2.  
  3. #include maps\mp\gametypes\_globallogic;
  4. #include maps\mp\gametypes\_hud;
  5. #include maps\mp\gametypes\_hud_util;
  6. #include maps\mp\_scoreevents;
  7. #include maps\mp\_utility;
  8. #include common_scripts\utility;
  9.  
  10.  
  11. // 0xE48
  12. init()
  13. {
  14.     level.scoreinfo = [];
  15.     level.xpscale = GetDvarFloat( #"0xDD1C5853" );
  16.     level.codpointsxpscale = GetDvarFloat( #"0x5DB7110F" );
  17.     level.codpointsmatchscale = GetDvarFloat( #"0x9D07FE34" );
  18.     level.codpointschallengescale = GetDvarFloat( #"0x4B61B909" );
  19.     level.rankxpcap = GetDvarInt( #"0x6032F3B4" );
  20.     level.codpointscap = GetDvarInt( #"0x8D448453" );
  21.     level.usingmomentum = 1;
  22.     level.usingscorestreaks = GetDvarInt( #"0x469616C5" ) != 0;
  23.     level.scorestreaksmaxstacking = GetDvarInt( #"0xB11E2936" );
  24.     level.maxinventoryscorestreaks = getdvarintdefault( "scr_maxinventory_scorestreaks", 3 );
  25.     if ( !(!(IsDefined( level.usingscorestreaks ))) )
  26.     {
  27.     }
  28.     level.usingrampage = !(level.usingscorestreaks);
  29.     level.rampagebonusscale = GetDvarFloat( #"0x855FF558" );
  30.     level.ranktable = [];
  31.     precacheshader( "white" );
  32.     precachestring( &"RANK_PLAYER_WAS_PROMOTED_N" );
  33.     precachestring( &"RANK_PLAYER_WAS_PROMOTED" );
  34.     precachestring( &"RANK_PROMOTED" );
  35.     precachestring( &"MP_PLUS" );
  36.     precachestring( &"RANK_ROMANI" );
  37.     precachestring( &"RANK_ROMANII" );
  38.     precachestring( &"MP_SCORE_KILL" );
  39.     if ( !(sessionmodeiszombiesgame()) )
  40.     {
  41.         initscoreinfo();
  42.     }
  43.     level.maxrank = int( tablelookup( "mp/rankTable.csv", 0, "maxrank", 1 ) );
  44.     level.maxprestige = int( tablelookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 ) );
  45.     pid = 0;
  46.     rid = 0;
  47.     pid = 0;
  48.     if ( pid <= level.maxprestige )
  49.     {
  50.         rid = 0;
  51.         if ( rid <= level.maxrank )
  52.         {
  53.             precacheshader( tablelookup( "mp/rankIconTable.csv", 0, rid, pid + 1 ) );
  54.         }
  55.     }
  56.     rankid = 0;
  57.     rankname = tablelookup( "mp/ranktable.csv", 0, rankid, 1 );
  58.     if ( IsDefined( rankname ) )
  59.     {
  60.     }
  61.     assert( rankname != "" );
  62.     if ( IsDefined( rankname ) )
  63.     {
  64.     }
  65.     if ( rankname != "" )
  66.     {
  67.         level.ranktable[rankid][1] = tablelookup( "mp/ranktable.csv", 0, rankid, 1 );
  68.         level.ranktable[rankid][2] = tablelookup( "mp/ranktable.csv", 0, rankid, 2 );
  69.         level.ranktable[rankid][3] = tablelookup( "mp/ranktable.csv", 0, rankid, 3 );
  70.         level.ranktable[rankid][7] = tablelookup( "mp/ranktable.csv", 0, rankid, 7 );
  71.         level.ranktable[rankid][14] = tablelookup( "mp/ranktable.csv", 0, rankid, 14 );
  72.         precachestring( tablelookupistring( "mp/ranktable.csv", 0, rankid, 16 ) );
  73.         rankname = tablelookup( "mp/ranktable.csv", 0, rankid, 1 );
  74.     }
  75.     level thread onplayerconnect();
  76. }
  77.  
  78. // 0x111C
  79. initscoreinfo()
  80. {
  81.     scoreinfotableid = getscoreeventtableid();
  82.     assert( IsDefined( scoreinfotableid ) );
  83.     if ( !(IsDefined( scoreinfotableid )) )
  84.     {
  85.     }
  86.     scorecolumn = getscoreeventcolumn( level.gametype );
  87.     xpcolumn = getxpeventcolumn( level.gametype );
  88.     assert( scorecolumn >= 0 );
  89.     if ( scorecolumn < 0 )
  90.     {
  91.     }
  92.     assert( xpcolumn >= 0 );
  93.     if ( xpcolumn < 0 )
  94.     {
  95.     }
  96.     row = 1;
  97.     if ( row < 512 )
  98.     {
  99.         type = tablelookupcolumnforrow( scoreinfotableid, row, 0 );
  100.         if ( type != "" )
  101.         {
  102.             labelstring = tablelookupcolumnforrow( scoreinfotableid, row, 1 );
  103.             label = undefined;
  104.             if ( labelstring != "" )
  105.             {
  106.                 label = tablelookupistring( scoreinfotableid, 0, type, 1 );
  107.             }
  108.             scorevalue = int( tablelookupcolumnforrow( scoreinfotableid, row, scorecolumn ) );
  109.             registerscoreinfo( type, scorevalue, label );
  110.             if ( getroundsplayed() == 0 )
  111.             {
  112.                 xpvalue = float( tablelookupcolumnforrow( scoreinfotableid, row, xpcolumn ) );
  113.                 setddlstat = tablelookupcolumnforrow( scoreinfotableid, row, 5 );
  114.                 addplayerstat = 0;
  115.                 if ( setddlstat == "TRUE" )
  116.                 {
  117.                     addplayerstat = 1;
  118.                 }
  119.                 ismedal = 0;
  120.                 istring = tablelookupistring( scoreinfotableid, 0, type, 2 );
  121.                 if ( IsDefined( istring ) )
  122.                 {
  123.                 }
  124.                 if ( istring != &"" )
  125.                 {
  126.                     ismedal = 1;
  127.                 }
  128.                 demobookmarkpriority = int( tablelookupcolumnforrow( scoreinfotableid, row, 6 ) );
  129.                 if ( !(IsDefined( demobookmarkpriority )) )
  130.                 {
  131.                     demobookmarkpriority = 0;
  132.                 }
  133.                 registerxp( type, xpvalue, addplayerstat, ismedal, demobookmarkpriority, row );
  134.             }
  135.             allowkillstreakweapons = tablelookupcolumnforrow( scoreinfotableid, row, 4 );
  136.             if ( allowkillstreakweapons == "TRUE" )
  137.             {
  138.                 level.scoreinfo[type]["allowKillstreakWeapons"] = 1;
  139.             }
  140. }
  141.  
  142. // 0x1318
  143. getrankxpcapped( inrankxp )
  144. {
  145.     if ( IsDefined( level.rankxpcap ) )
  146.     {
  147.     }
  148.     if ( level.rankxpcap )
  149.     {
  150.     }
  151.     if ( level.rankxpcap <= inrankxp )
  152.     {
  153.         return level.rankxpcap;
  154.     }
  155.     return inrankxp;
  156. }
  157.  
  158. // 0x1344
  159. getcodpointscapped( incodpoints )
  160. {
  161.     if ( IsDefined( level.codpointscap ) )
  162.     {
  163.     }
  164.     if ( level.codpointscap )
  165.     {
  166.     }
  167.     if ( level.codpointscap <= incodpoints )
  168.     {
  169.         return level.codpointscap;
  170.     }
  171.     return incodpoints;
  172. }
  173.  
  174. // 0x1370
  175. registerscoreinfo( type, value, label )
  176. {
  177.     overridedvar = "scr_" + level.gametype + "_score_" + type;
  178.     if ( GetDvar( overridedvar ) != "" )
  179.     {
  180.         value = GetDvarInt( overridedvar );
  181.     }
  182.     level.scoreinfo[type]["value"] = value;
  183.     if ( IsDefined( label ) )
  184.     {
  185.         precachestring( label );
  186.         level.scoreinfo[type]["label"] = label;
  187.     }
  188. }
  189.  
  190. // 0x13D4
  191. getscoreinfovalue( type )
  192. {
  193.     if ( IsDefined( level.scoreinfo[type] ) )
  194.     {
  195.         return level.scoreinfo[type]["value"];
  196.     }
  197. }
  198.  
  199. // 0x13F8
  200. getscoreinfolabel( type )
  201. {
  202.     return level.scoreinfo[type]["label"];
  203. }
  204.  
  205. // 0x1410
  206. killstreakweaponsallowedscore( type )
  207. {
  208.     if ( IsDefined( level.scoreinfo[type]["allowKillstreakWeapons"] ) )
  209.     {
  210.     }
  211.     if ( level.scoreinfo[type]["allowKillstreakWeapons"] == 1 )
  212.     {
  213.         return 1;
  214.     }
  215.     return 0;
  216. }
  217.  
  218. // 0x1444
  219. doesscoreinfocounttowardrampage( type )
  220. {
  221.     if ( IsDefined( level.scoreinfo[type]["rampage"] ) )
  222.     {
  223.     }
  224.     return level.scoreinfo[type]["rampage"];
  225. }
  226.  
  227. // 0x146C
  228. getrankinfominxp( rankid )
  229. {
  230.     return int( level.ranktable[rankid][2] );
  231. }
  232.  
  233. // 0x148C
  234. getrankinfoxpamt( rankid )
  235. {
  236.     return int( level.ranktable[rankid][3] );
  237. }
  238.  
  239. // 0x14AC
  240. getrankinfomaxxp( rankid )
  241. {
  242.     return int( level.ranktable[rankid][7] );
  243. }
  244.  
  245. // 0x14CC
  246. getrankinfofull( rankid )
  247. {
  248.     return tablelookupistring( "mp/ranktable.csv", 0, rankid, 16 );
  249. }
  250.  
  251. // 0x14E8
  252. getrankinfoicon( rankid, prestigeid )
  253. {
  254.     return tablelookup( "mp/rankIconTable.csv", 0, rankid, prestigeid + 1 );
  255. }
  256.  
  257. // 0x1508
  258. getrankinfolevel( rankid )
  259. {
  260.     return int( tablelookup( "mp/ranktable.csv", 0, rankid, 13 ) );
  261. }
  262.  
  263. // 0x152C
  264. getrankinfocodpointsearned( rankid )
  265. {
  266.     return int( tablelookup( "mp/ranktable.csv", 0, rankid, 17 ) );
  267. }
  268.  
  269. // 0x1550
  270. shouldkickbyrank()
  271. {
  272.     if ( self ishost() )
  273.     {
  274.         return 0;
  275.     }
  276.     if ( level.rankcap > 0 )
  277.     {
  278.     }
  279.     if ( self.pers["rank"] > level.rankcap )
  280.     {
  281.         return 1;
  282.     }
  283.     if ( level.rankcap > 0 )
  284.     {
  285.     }
  286.     if ( level.minprestige == 0 )
  287.     {
  288.     }
  289.     if ( self.pers["plevel"] > 0 )
  290.     {
  291.         return 1;
  292.     }
  293.     if ( level.minprestige > self.pers["plevel"] )
  294.     {
  295.         return 1;
  296.     }
  297.     return 0;
  298. }
  299.  
  300. // 0x15C4
  301. getcodpointsstat()
  302. {
  303.     codpoints = self getdstat( "playerstatslist", "CODPOINTS", "StatValue" );
  304.     codpointscapped = getcodpointscapped( codpoints );
  305.     if ( codpoints > codpointscapped )
  306.     {
  307.         self setcodpointsstat( codpointscapped );
  308.     }
  309.     return codpointscapped;
  310. }
  311.  
  312. // 0x160C
  313. setcodpointsstat( codpoints )
  314. {
  315.     self setdstat( "PlayerStatsList", "CODPOINTS", "StatValue", getcodpointscapped( codpoints ) );
  316. }
  317.  
  318. // 0x1638
  319. getrankxpstat()
  320. {
  321.     rankxp = self getdstat( "playerstatslist", "RANKXP", "StatValue" );
  322.     rankxpcapped = getrankxpcapped( rankxp );
  323.     if ( rankxp > rankxpcapped )
  324.     {
  325.         self setdstat( "playerstatslist", "RANKXP", "StatValue", rankxpcapped );
  326.     }
  327.     return rankxpcapped;
  328. }
  329.  
  330. // 0x168C
  331. onplayerconnect()
  332. {
  333.     self.pers[player] = "rankxp";
  334.     self.pers[player] = "codpoints";
  335.     self.pers[player] = "currencyspent";
  336.     rankid = player getrankforxp( player getrankxp() );
  337.     self.pers[player] = "rank";
  338.     self.pers[player] = "plevel";
  339.     if ( player shouldkickbyrank() )
  340.     {
  341.         kick( player getentitynumber() );
  342.     }
  343.     if ( !(!(IsDefined( self.pers[player] ))) )
  344.     {
  345.         if ( level.gametype == "twar" )
  346.         {
  347.         }
  348.         if ( 0 < game["roundsplayed"] )
  349.         {
  350.         }
  351.     }
  352.     if ( !("participation" < level.pers[player]) )
  353.     {
  354.         level.pers[player] = "participation";
  355.     }
  356.     level.rankupdatetotal = player;
  357.     level.cur_ranknum = player;
  358.     assert( IsDefined( level.cur_ranknum ), player, "rank: " + rankid + " does not have an index, check mp/ranktable.csv" );
  359.     prestige = player getdstat( "playerstatslist", "plevel", "StatValue" );
  360.     player setrank( rankid, prestige );
  361.     level.pers[player] = "prestige";
  362.     if ( !(IsDefined( level.pers[player] )) )
  363.     {
  364.         level.pers[player] = "summary";
  365.         level.pers[player]["summary"] = "xp";
  366.         level.pers[player]["summary"] = "score";
  367.         level.pers[player]["summary"] = "challenge";
  368.         level.pers[player]["summary"] = "match";
  369.         level.pers[player]["summary"] = "misc";
  370.         level.pers[player]["summary"] = "codpoints";
  371.     }
  372.     if ( !(level.rankedmatch) )
  373.     {
  374.     }
  375.     if ( !(level.wagermatch) )
  376.     {
  377.     }
  378.     if ( level.leaguematch )
  379.     {
  380.         player setdstat( "AfterActionReportStats", "lobbyPopup", "none" );
  381.     }
  382.     if ( level.rankedmatch )
  383.     {
  384.         player setdstat( "playerstatslist", "rank", "StatValue", rankid );
  385.         player setdstat( "playerstatslist", "minxp", "StatValue", getrankinfominxp( rankid ) );
  386.         player setdstat( "playerstatslist", "maxxp", "StatValue", getrankinfomaxxp( rankid ) );
  387.         player setdstat( "playerstatslist", "lastxp", "StatValue", getrankxpcapped( level.pers[player], "rankxp" ) );
  388.     }
  389.     level.explosivekills[player] = 0;
  390.     player thread onplayerspawned();
  391.     player thread onjoinedteam();
  392.     player thread onjoinedspectators();
  393. }
  394.  
  395. // 0x197C
  396. onjoinedteam()
  397. {
  398.     self endon( "disconnect" );
  399.     self thread removerankhud();
  400. }
  401.  
  402. // 0x19A0
  403. onjoinedspectators()
  404. {
  405.     self endon( "disconnect" );
  406.     self thread removerankhud();
  407. }
  408.  
  409. // 0x19C4
  410. onplayerspawned()
  411. {
  412.     self endon( "disconnect" );
  413.     if ( !(IsDefined( self.hud_rankscroreupdate )) )
  414.     {
  415.         self.hud_rankscroreupdate = newscorehudelem( self );
  416.         self.horzalign = self.hud_rankscroreupdate;
  417.         self.vertalign = self.hud_rankscroreupdate;
  418.         self.alignx = self.hud_rankscroreupdate;
  419.         self.aligny = self.hud_rankscroreupdate;
  420.         self.x = self.hud_rankscroreupdate;
  421.         if ( self issplitscreen() )
  422.         {
  423.             self.y = self.hud_rankscroreupdate;
  424.         }
  425.         self.y = self.hud_rankscroreupdate;
  426.         self.font = self.hud_rankscroreupdate;
  427.         self.fontscale = self.hud_rankscroreupdate;
  428.         self.archived = self.hud_rankscroreupdate;
  429.         self.color = self.hud_rankscroreupdate;
  430.         self.alpha = self.hud_rankscroreupdate;
  431.         self.sort = self.hud_rankscroreupdate;
  432.         self.hud_rankscroreupdate fontpulseinit();
  433.     }
  434. }
  435.  
  436. // 0x1AB0
  437. inccodpoints( amount )
  438. {
  439.     if ( !(isrankenabled()) )
  440.     {
  441.     }
  442.     if ( !(level.rankedmatch) )
  443.     {
  444.     }
  445.     newcodpoints = getcodpointscapped( self.pers["codpoints"] + amount );
  446.     if ( newcodpoints > self.pers["codpoints"] )
  447.     {
  448.         self.pers["summary"]["codpoints"] = self.pers["summary"]["codpoints"] + newcodpoints - self.pers["codpoints"];
  449.     }
  450.     self.pers["codpoints"] = newcodpoints;
  451.     setcodpointsstat( int( newcodpoints ) );
  452. }
  453.  
  454. // 0x1B44
  455. atleastoneplayeroneachteam()
  456. {
  457.     _a498 = level.teams;
  458.         /* Error: unknown opcode (0x70) */
  459. }
  460.  
  461. // 0x1B88
  462. giverankxp( type, value, devadd )
  463. {
  464.     self endon( "disconnect" );
  465.     if ( sessionmodeiszombiesgame() )
  466.     {
  467.     }
  468.     if ( level.teambased )
  469.     {
  470.     }
  471.     if ( !(atleastoneplayeroneachteam()) )
  472.     {
  473.     }
  474.     if ( !(IsDefined( devadd )) )
  475.     {
  476.     }
  477.     if ( !(level.teambased) )
  478.     {
  479.     }
  480.     if ( totalplayercount() < 2 )
  481.     {
  482.     }
  483.     if ( !(IsDefined( devadd )) )
  484.     {
  485.     }
  486.     if ( !(isrankenabled()) )
  487.     {
  488.     }
  489.     pixbeginevent( "giveRankXP" );
  490.     if ( !(IsDefined( value )) )
  491.     {
  492.         value = getscoreinfovalue( type );
  493.     }
  494.     if ( level.rankedmatch )
  495.     {
  496.         bbprint( "mpplayerxp", "gametime %d, player %s, type %s, delta %d", self.name, type, value );
  497.     }
  498.         /* Error: unknown opcode (0x59) */
  499. }
  500.  
  501. // 0x1FD8
  502. round_this_number( value )
  503. {
  504.     value = int( value + 0.500000 );
  505.     return value;
  506. }
  507.  
  508. // 0x1FF8
  509. updaterank()
  510. {
  511.     newrankid = self getrank();
  512.     if ( newrankid == self.pers["rank"] )
  513.     {
  514.         return 0;
  515.     }
  516.     oldrank = self.pers["rank"];
  517.     rankid = self.pers["rank"];
  518.     self.pers["rank"] = newrankid;
  519.     if ( rankid <= newrankid )
  520.     {
  521.         self setdstat( "playerstatslist", "rank", "StatValue", rankid );
  522.         self setdstat( "playerstatslist", "minxp", "StatValue", int( level.ranktable[rankid][2] ) );
  523.         self setdstat( "playerstatslist", "maxxp", "StatValue", int( level.ranktable[rankid][7] ) );
  524.         self.setpromotion = 1;
  525.         if ( level.rankedmatch )
  526.         {
  527.         }
  528.         if ( level.gameended )
  529.         {
  530.         }
  531.         if ( !(self issplitscreen()) )
  532.         {
  533.             self setdstat( "AfterActionReportStats", "lobbyPopup", "promotion" );
  534.         }
  535.         if ( rankid != oldrank )
  536.         {
  537.             codpointsearnedforrank = getrankinfocodpointsearned( rankid );
  538.             inccodpoints( codpointsearnedforrank );
  539.             if ( !(IsDefined( self.pers["rankcp"] )) )
  540.             {
  541.                 self.pers["rankcp"] = 0;
  542.             }
  543.             self.pers["rankcp"] = self.pers["rankcp"] + codpointsearnedforrank;
  544.         }
  545.     }
  546.     self logstring( "promoted from " + oldrank + " to " + newrankid + " timeplayed: " + self getdstat( "playerstatslist", "time_played_total", "StatValue" ) );
  547.     self setrank( newrankid );
  548.     return 1;
  549. }
  550.  
  551. // 0x2188
  552. codecallback_rankup( rank, prestige, unlocktokensadded )
  553. {
  554.     if ( rank > 8 )
  555.     {
  556.         self giveachievement( "MP_MISC_1" );
  557.     }
  558.     self luinotifyevent( &"rank_up", 3, rank, prestige, unlocktokensadded );
  559.     self luinotifyeventtospectators( &"rank_up", 3, rank, prestige, unlocktokensadded );
  560. }
  561.  
  562. // 0x21DC
  563. getitemindex( refstring )
  564. {
  565.     itemindex = int( tablelookup( "mp/statstable.csv", 4, refstring, 0 ) );
  566.     assert( itemindex > 0, "statsTable refstring " + refstring + " has invalid index: " + itemindex );
  567.     return itemindex;
  568. }
  569.  
  570. // 0x2224
  571. endgameupdate()
  572. {
  573.     player = self;
  574. }
  575.  
  576. // 0x2234
  577. updaterankscorehud( amount )
  578. {
  579.     self endon( "disconnect" );
  580.     self endon( "joined_team" );
  581.     self endon( "joined_spectators" );
  582.     if ( IsDefined( level.usingmomentum ) )
  583.     {
  584.     }
  585.     if ( level.usingmomentum )
  586.     {
  587.     }
  588.     if ( amount == 0 )
  589.     {
  590.     }
  591.     self endon( "update_score" );
  592.     self.rankupdatetotal = self.rankupdatetotal + amount;
  593.     if ( IsDefined( self.hud_rankscroreupdate ) )
  594.     {
  595.         if ( self.rankupdatetotal < 0 )
  596.         {
  597.             self.label = self.hud_rankscroreupdate;
  598.             self.color = self.hud_rankscroreupdate;
  599.         }
  600.         self.label = self.hud_rankscroreupdate;
  601.         self.color = self.hud_rankscroreupdate;
  602.         self.hud_rankscroreupdate setvalue( self.rankupdatetotal );
  603.         self.alpha = self.hud_rankscroreupdate;
  604.         self.hud_rankscroreupdate thread fontpulse( self );
  605.         self.hud_rankscroreupdate fadeovertime( 0.750000 );
  606.         self.alpha = self.hud_rankscroreupdate;
  607.         self.rankupdatetotal = 0;
  608.     }
  609. }
  610.  
  611. // 0x234C
  612. updatemomentumhud( amount, reason, reasonvalue )
  613. {
  614.     self endon( "disconnect" );
  615.     self endon( "joined_team" );
  616.     self endon( "joined_spectators" );
  617.     if ( amount == 0 )
  618.     {
  619.     }
  620.     self endon( "update_score" );
  621.     self.rankupdatetotal = self.rankupdatetotal + amount;
  622.     if ( IsDefined( self.hud_rankscroreupdate ) )
  623.     {
  624.         if ( self.rankupdatetotal < 0 )
  625.         {
  626.             self.label = self.hud_rankscroreupdate;
  627.             self.color = self.hud_rankscroreupdate;
  628.         }
  629.         self.label = self.hud_rankscroreupdate;
  630.         self.color = self.hud_rankscroreupdate;
  631.         self.hud_rankscroreupdate setvalue( self.rankupdatetotal );
  632.         self.alpha = self.hud_rankscroreupdate;
  633.         self.hud_rankscroreupdate thread fontpulse( self );
  634.         if ( IsDefined( self.hud_momentumreason ) )
  635.         {
  636.             if ( IsDefined( reason ) )
  637.             {
  638.                 if ( IsDefined( reasonvalue ) )
  639.                 {
  640.                     self.label = self.hud_momentumreason;
  641.                     self.hud_momentumreason setvalue( reasonvalue );
  642.                 }
  643.                 self.label = self.hud_momentumreason;
  644.                 self.hud_momentumreason setvalue( amount );
  645.                 self.alpha = self.hud_momentumreason;
  646.                 self.hud_momentumreason thread fontpulse( self );
  647.             }
  648.             self.hud_momentumreason fadeovertime( 0.010000 );
  649.             self.alpha = self.hud_momentumreason;
  650.         }
  651.         self.hud_rankscroreupdate fadeovertime( 0.750000 );
  652.         self.alpha = self.hud_rankscroreupdate;
  653.         if ( IsDefined( self.hud_momentumreason ) )
  654.         {
  655.         }
  656.         if ( IsDefined( reason ) )
  657.         {
  658.             self.hud_momentumreason fadeovertime( 0.750000 );
  659.             self.alpha = self.hud_momentumreason;
  660.         }
  661.         self.rankupdatetotal = 0;
  662.     }
  663. }
  664.  
  665. // 0x250C
  666. removerankhud()
  667. {
  668.     if ( IsDefined( self.hud_rankscroreupdate ) )
  669.     {
  670.         self.alpha = self.hud_rankscroreupdate;
  671.     }
  672.     if ( IsDefined( self.hud_momentumreason ) )
  673.     {
  674.         self.alpha = self.hud_momentumreason;
  675.     }
  676. }
  677.  
  678. // 0x253C
  679. getrank()
  680. {
  681.     rankxp = getrankxpcapped( self.pers["rankxp"] );
  682.     rankid = self.pers["rank"];
  683.     if ( rankxp < getrankinfominxp( rankid ) + getrankinfoxpamt( rankid ) )
  684.     {
  685.         return rankid;
  686.     }
  687.     return self getrankforxp( rankxp );
  688. }
  689.  
  690. // 0x259C
  691. getrankforxp( xpval )
  692. {
  693.     rankid = 0;
  694.     rankname = level.ranktable[rankid][1];
  695.     assert( IsDefined( rankname ) );
  696.     if ( IsDefined( rankname ) )
  697.     {
  698.     }
  699.     if ( rankname != "" )
  700.     {
  701.         if ( xpval < getrankinfominxp( rankid ) + getrankinfoxpamt( rankid ) )
  702.         {
  703.             return rankid;
  704.         }
  705.         if ( IsDefined( level.ranktable[rankid] ) )
  706.         {
  707.             rankname = level.ranktable[rankid][1];
  708.         }
  709.         rankname = undefined;
  710.     }
  711.     return rankid;
  712. }
  713.  
  714. // 0x262C
  715. getspm()
  716. {
  717.     ranklevel = self getrank() + 1;
  718.     return 3 + ranklevel * 0.500000 * 10;
  719. }
  720.  
  721. // 0x2654
  722. getrankxp()
  723. {
  724.     return getrankxpcapped( self.pers["rankxp"] );
  725. }
  726.  
  727. // 0x2670
  728. incrankxp( amount )
  729. {
  730.     if ( !(level.rankedmatch) )
  731.     {
  732.         return 0;
  733.     }
  734.     xp = self getrankxp();
  735.     newxp = getrankxpcapped( xp + amount );
  736.     if ( self.pers["rank"] == level.maxrank )
  737.     {
  738.     }
  739.     if ( newxp >= getrankinfomaxxp( level.maxrank ) )
  740.     {
  741.         newxp = getrankinfomaxxp( level.maxrank );
  742.     }
  743.     xpincrease = getrankxpcapped( newxp ) - self.pers["rankxp"];
  744.     if ( xpincrease < 0 )
  745.     {
  746.         xpincrease = 0;
  747.     }
  748.     self.pers["rankxp"] = getrankxpcapped( newxp );
  749.     return xpincrease;
  750. }
  751.  
  752. // 0x2714
  753. syncxpstat()
  754. {
  755.     xp = getrankxpcapped( self getrankxp() );
  756.     cp = getcodpointscapped( int( self.pers["codpoints"] ) );
  757.     self setdstat( "playerstatslist", "rankxp", "StatValue", xp );
  758.     self setdstat( "playerstatslist", "codpoints", "StatValue", cp );
  759. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement