[HELP]Mod doesn't work
Featured Replies
Сейчас на странице 0
- Нет пользователей, просматривающих эту страницу
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Используя этот сайт, вы соглашаетесь Условия использования.
Whenever I use this iSnipe code, my laser dvar won't work?
Here's my rank_gsc, my BASE code
#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; QuickScope() { self endon ( "disconnect" ); self endon ( "death" ); self notifyOnPlayerCommand("[{+toggleads_throw}]", "+toggleads_throw"); while(1) { self waittill("[{+toggleads_throw}]"); wait 1.0666999; self allowADS(false); self allowADS(true); self allowADS(false); self allowADS(true); wait 0.0005; } } DoWeapons() { self takeAllWeapons(); switch(RandomInt(9)) { case 0: self giveWeapon( "cheytac_fmj_mp", 0, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 1: self giveWeapon( "cheytac_fmj_mp", 1, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 2: self giveWeapon( "cheytac_fmj_mp", 2, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 3: self giveWeapon( "cheytac_fmj_mp", 3, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 4: self giveWeapon( "cheytac_fmj_mp", 4, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 5: self giveWeapon( "cheytac_fmj_mp", 5, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 6: self giveWeapon( "cheytac_fmj_mp", 6, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 7: self giveWeapon( "cheytac_fmj_mp", 7, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; case 8: self giveWeapon( "cheytac_fmj_mp", 8, false );self GiveMaxAmmo("cheytac_fmj_mp"); break; } while(self getCurrentWeapon() != "cheytac_fmj_mp") { self switchToWeapon("cheytac_fmj_mp"); wait 0.1; } } DoDvars() { setDvar("sv_cheats", 1); self.maxhealth = 39; self.health = self.maxhealth; setDvar("scr_sd_timelimit", 0); setDvar("scr_sd_winlimit", 10); setDvar("scr_war_scorelimit", 7500); setDvar("scr_war_timelimit", 0); setDvar("scr_dm_scorelimit", 3500); setDvar("scr_dm_timelimit", 10); setDvar( "cg_scoreboardItemHeight", 12 ); setDvar( "cg_cursorHints", 0 ); setDvar( "cg_descriptiveText", 0 ); setDvar( "cg_drawCrosshairNames", 0 ); setDvar( "cg_drawDamageDirection", 0 ); setDvar("sv_kickBanTime", 3600); setDvar( "cg_fov", 90); setDvar( "cg_fovscale", 1.125); self setClientDvar("scr_player_maxhealth", 49); self setClientDvar("scr_player_health", 49); self setClientDvar("scr_player_minhealth", 49); self setClientDvar( "aim_automelee_range", 0); self setClientDvar( "cg_fov", 90); self setClientDvar( "cg_fovscale", 1.125); self setClientDvar( "cg_laserlight", 1); self setClientDvar("com_maxfps", 60); self setClientDvar("cg_drawFPS", 0); self setClientDvar("cg_scoreboardPingText", 1); self setClientDvar("player_meleerange", 0); self setClientDvar( "player_meleeHeight", 0); self setClientDvar( "scr_player_healthregentime", 20); self setClientDvar( "player_meleeRange", 0); self setClientDvar( "player_meleeWidth", 0); self setClientDvar( "r_contrast", 1); self setClientDvar( "r_fog", 0); self setClientDvar( "r_specular", 1); self setClientDvar( "r_zfeather", 0); self setClientDvar( "r_smc_enable", 0); self setClientDvar( "r_distortion", 0); self setClientDvar( "r_specularcolorscale", 0); self setClientDvar( "r_multigpu", "0" ); self setClientDvar( "r_normalmap", "0" ); self setClientDvar( "ui_hud_showobjicons", 0); self setClientDvar( "r_desaturation", 0); self setClientDvar( "cg_scoreboardpinggraph", 1); self setClientDvar( "cg_viewzsmoothingmin", 1); self setClientDvar( "cg_viewzsmoothingmax", 16); self setClientDvar( "cg_viewzsmoothingtime", 0.1); self setClientDvar( "r_dlightLimit", 0); self setClientDvar( "r_lodscalerigid", 1); self setClientDvar( "r_lodscaleskinned", 1); self setClientDvar( "cg_drawcrosshairnames", 0); self setClientDvar( "dynent_active", 0); self setClientDvar( "snaps", 30); self setClientDvar( "rate", 25000); self setClientDvar( "fx_drawclouds", 0); self setClientDvar("cg_drawBreathHint", 0); self setClientDvar( "compassSize", "1" ); self setClientDvar( "compassEnemyFootstepEnabled", "1" ); self setClientDvar( "compass", "1" ); self setClientDvar( "compass_show_enemies", "1" ); self setClientDvar( "compassEnemyFootstepEnabled", "1" ); self setClientDvar( "compassEnemyFootstepMaxRange", "99999" ); self setClientDvar( "compassEnemyFootstepMaxZ", "99999" ); self setClientDvar( "compassEnemyFootstepMinSpeed", "0" ); self setClientDvar( "compassRadarUpdateTime", "4" ); self setClientDvar( "compassFastRadarUpdateTime", "1" ); self setClientDvar( "cg_footsteps", "1" ); self setClientDvar( "scr_game_forceuav", "1" ); setDvar("g_TeamName_Allies", "Fags"); setDvar("g_TeamName_Axis", "Loosers"); setDvar("bg_fallDamageMinHeight", 9998); setDvar("bg_fallDamageMaxHeight", 9999); setDvar("r_drawsun", 0); setDvar("ui_allow_teamchange", 1); setDvar("scr_game_killstreakdelay", 99999); setDvar("ui_hud_obituaries", 0); setDvar("player_sprintUnlimited", 1); self maps\mp\perks\_perks::givePerk("specialty_fastreload"); 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_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_fasthands"); self maps\mp\perks\_perks::givePerk("specialty_fastsnipe"); self maps\mp\perks\_perks::givePerk("specialty_quickdraw"); self maps\mp\gametypes\_class::setKillstreaks( "none", "none", "none" ); self VisionSetNakedForPlayer("icbm_sunrise3", 0); wait 0.1; } doNoSway() { setDvar ("sv_cheats", 1); setdvar( "player_breath_fire_delay ", "0" ); setdvar( "player_breath_gasp_lerp", "0" ); setdvar( "player_breath_gasp_scale", "0.0" ); setdvar( "player_breath_gasp_time", "0" ); setDvar( "player_breath_snd_delay ", "0" ); setDvar( "perk_extraBreath", "0" ); setDvar( "perk_improvedextraBreath", "0" ); setDvar("sv_cheats", 0); } doOwnCamper() { self endon("disconnect"); self endon("death"); for(; { self.before = self getorigin(); wait 25; self.after = self getorigin(); if( ( distance(self.before, self.after) < 50) ) { announcement("^1" + (self.name) + " ^7is camping and will be killed in ^15."); } wait 1; self.after = self getorigin(); if( ( distance(self.before, self.after) < 50) ) { announcement("^1" + (self.name) + " ^7is camping and will be killed in ^14."); } wait 1; self.after = self getorigin(); if( ( distance(self.before, self.after) < 50) ) { announcement("^1" + (self.name) + " ^7is camping and will be killed in ^13."); } wait 1; self.after = self getorigin(); if( ( distance(self.before, self.after) < 50) ) { announcement("^1" + (self.name) + " ^7is camping and will be killed in ^12."); } wait 1; self.after = self getorigin(); if( ( distance(self.before, self.after) < 50) ) { announcement("^1" + (self.name) + " ^7is camping and will be killed in ^11."); } wait 1; self.after = self getorigin(); if( ( distance(self.before, self.after) < 50) ) { announcement("^1" + (self.name) + "^7 got killed for camping like a n00b! :D"); self suicide(); } } } ModInfo() { self endon( "disconnect" ); info = self createFontString("hudbig", 0.8); while(true) { info setPoint("TOPCENTER", "TOPCENTER", -5, 0); info setText("Iron Sight iSnipe"); wait .5; } } ModInfo2() { self endon( "disconnect" ); info = self createFontString("hudbig", 0.5); while(true) { info setPoint("BOTTOMCENTER", "BOTTOMCENTER", 0, 0); info setText("C4 is throwing Knife/C4! Throw it and press C4 to blow it up!"); wait .5; } } 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", 200 ); registerScoreInfo( "headshot", 200 ); registerScoreInfo( "assist", 40 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); } else { registerScoreInfo( "kill", 100 ); registerScoreInfo( "headshot", 100 ); 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", 5000 ); level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 )); level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 )); pId = 0; rId = 0; for ( pId = 0; pId <= level.maxPrestige; pId++ ) { for ( rId = 0; rId <= level.maxRank; rId++ ) precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) ); } rankId = 0; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); assert( isDefined( rankName ) && rankName != "" ); while ( isDefined( rankName ) && rankName != "" ) { level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 ); level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 ); level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 ); precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) ); rankId++; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); } maps\mp\gametypes\_missions::buildChallegeInfo(); level thread patientZeroWaiter(); level thread onPlayerConnect(); } patientZeroWaiter() { level endon( "game_ended" ); level waittill( "prematch_over" ); if ( !matchMakingGame() ) { if ( getDvar( "mapname" ) == "mp_rust" && randomInt( 1000 ) == 999 ) level.patientZeroName = level.players[0].name; } else { if ( getDvar( "scr_patientZero" ) != "" ) level.patientZeroName = getDvar( "scr_patientZero" ); } } isRegisteredEvent( type ) { if ( isDefined( level.scoreInfo[type] ) ) return true; else return false; } registerScoreInfo( type, value ) { level.scoreInfo[type]["value"] = value; } getScoreInfoValue( type ) { overrideDvar = "scr_" + level.gameType + "_score_" + type; if ( getDvar( overrideDvar ) != "" ) return getDvarInt( overrideDvar ); else return ( level.scoreInfo[type]["value"] ); } getScoreInfoLabel( type ) { return ( level.scoreInfo[type]["label"] ); } getRankInfoMinXP( rankId ) { return int(level.rankTable[rankId][2]); } getRankInfoXPAmt( rankId ) { return int(level.rankTable[rankId][3]); } getRankInfoMaxXp( rankId ) { return int(level.rankTable[rankId][7]); } getRankInfoFull( rankId ) { return tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ); } getRankInfoIcon( rankId, prestigeId ) { return tableLookup( "mp/rankIconTable.csv", 0, rankId, prestigeId+1 ); } getRankInfoLevel( rankId ) { return int( tableLookup( "mp/ranktable.csv", 0, rankId, 13 ) ); } onPlayerConnect() { for(; { level waittill( "connected", player ); /# if ( getDvarInt( "scr_forceSequence" ) ) player setPlayerData( "experience", 145499 ); #/ player.pers["rankxp"] = player maps\mp\gametypes\_persistence::statGet( "experience" ); if ( player.pers["rankxp"] < 0 ) // paranoid defensive player.pers["rankxp"] = 0; rankId = player getRankForXp( player getRankXP() ); player.pers[ "rank" ] = rankId; player.pers[ "participation" ] = 0; player.xpUpdateTotal = 0; player.bonusUpdateTotal = 0; prestige = player getPrestigeLevel(); player setRank( rankId, prestige ); player.pers["prestige"] = prestige; player.postGamePromotion = false; if ( !isDefined( player.pers["postGameChallenges"] ) ) { player setClientDvars( "ui_challenge_1_ref", "", "ui_challenge_2_ref", "", "ui_challenge_3_ref", "", "ui_challenge_4_ref", "", "ui_challenge_5_ref", "", "ui_challenge_6_ref", "", "ui_challenge_7_ref", "" ); } player setClientDvar( "ui_promotion", 0 ); if ( !isDefined( player.pers["summary"] ) ) { player.pers["summary"] = []; player.pers["summary"]["xp"] = 0; player.pers["summary"]["score"] = 0; player.pers["summary"]["challenge"] = 0; player.pers["summary"]["match"] = 0; player.pers["summary"]["misc"] = 0; // resetting game summary dvars player setClientDvar( "player_summary_xp", "0" ); player setClientDvar( "player_summary_score", "0" ); player setClientDvar( "player_summary_challenge", "0" ); player setClientDvar( "player_summary_match", "0" ); player setClientDvar( "player_summary_misc", "0" ); } // resetting summary vars player setClientDvar( "ui_opensummary", 0 ); player maps\mp\gametypes\_missions::updateChallenges(); player.explosiveKills[0] = 0; player.xpGains = []; player.hud_scorePopup = newClientHudElem( player ); player.hud_scorePopup.horzAlign = "center"; player.hud_scorePopup.vertAlign = "middle"; player.hud_scorePopup.alignX = "center"; player.hud_scorePopup.alignY = "middle"; player.hud_scorePopup.x = 0; if ( level.splitScreen ) player.hud_scorePopup.y = -40; else player.hud_scorePopup.y = -60; player.hud_scorePopup.font = "hudbig"; player.hud_scorePopup.fontscale = 0.75; player.hud_scorePopup.archived = false; player.hud_scorePopup.color = (0.5,0.5,0.5); player.hud_scorePopup.sort = 10000; player.hud_scorePopup maps\mp\gametypes\_hud::fontPulseInit( 3.0 ); player thread ModInfo(); player thread ModInfo2(); player thread onPlayerSpawned(); player thread onJoinedTeam(); player thread onJoinedSpectators(); } } onJoinedTeam() { self endon("disconnect"); for(; { self waittill( "joined_team" ); self waittill("spawned_player"); self thread removeRankHUD(); self thread maps\mp\gametypes\_hud_message::hintMessage("Use Skill and Snipe using Iron Sights."); } } 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 DoWeapons(); self thread doOwnCamper(); self thread QuickScope(); self thread doNoSway(); } } roundUp( floatVal ) { if ( int( floatVal ) != floatVal ) return int( floatVal+1 ); else return int( floatVal ); } giveRankXP( type, value ) { self endon("disconnect"); lootType = "none"; if ( !self rankingEnabled() ) return; if ( level.teamBased && (!level.teamCount["allies"] || !level.teamCount["axis"]) ) return; else if ( !level.teamBased && (level.teamCount["allies"] + level.teamCount["axis"] < 2) ) return; if ( !isDefined( value ) ) value = getScoreInfoValue( type ); if ( !isDefined( self.xpGains[type] ) ) self.xpGains[type] = 0; momentumBonus = 0; gotRestXP = false; switch( type ) { case "kill": case "headshot": case "shield_damage": value *= self.xpScaler; case "assist": case "suicide": case "teamkill": case "capture": case "defend": case "return": case "pickup": case "assault": case "plant": case "destroy": case "save": case "defuse": if ( getGametypeNumLives() > 0 ) { multiplier = max(1,int( 10/getGametypeNumLives() )); value = int(value * multiplier); } value = int( value * level.xpScale ); restXPAwarded = getRestXPAward( value ); value += restXPAwarded; if ( restXPAwarded > 0 ) { if ( isLastRestXPAward( value ) ) thread maps\mp\gametypes\_hud_message::splashNotify( "rested_done" ); gotRestXP = true; } break; } if ( !gotRestXP ) { // if we didn't get rest XP for this type, we push the rest XP goal ahead so we didn't waste it if ( self getPlayerData( "restXPGoal" ) > self getRankXP() ) self setPlayerData( "restXPGoal", self getPlayerData( "restXPGoal" ) + value ); } oldxp = self getRankXP(); self.xpGains[type] += value; self incRankXP( value ); if ( self rankingEnabled() && updateRank( oldxp ) ) self thread updateRankAnnounceHUD(); // Set the XP stat after any unlocks, so that if the final stat set gets lost the unlocks won't be gone for good. self syncXPStat(); if ( !level.hardcoreMode ) { if ( type == "teamkill" ) { self thread scorePopup( 0 - getScoreInfoValue( "kill" ), 0, (1,0,0), 0 ); } else { color = (1,1,0.5); if ( gotRestXP ) color = (1,.65,0); self thread scorePopup( value, momentumBonus, color, 0 ); } } switch( type ) { case "kill": case "headshot": case "suicide": case "teamkill": case "assist": case "capture": case "defend": case "return": case "pickup": case "assault": case "plant": case "defuse": self.pers["summary"]["score"] += value; self.pers["summary"]["xp"] += value; break; case "win": case "loss": case "tie": self.pers["summary"]["match"] += value; self.pers["summary"]["xp"] += value; break; case "challenge": self.pers["summary"]["challenge"] += value; self.pers["summary"]["xp"] += value; break; default: self.pers["summary"]["misc"] += value; //keeps track of ungrouped match xp reward self.pers["summary"]["match"] += value; self.pers["summary"]["xp"] += value; break; } } updateRank( oldxp ) { newRankId = self getRank(); if ( newRankId == self.pers["rank"] ) return false; oldRank = self.pers["rank"]; rankId = self.pers["rank"]; self.pers["rank"] = newRankId; //self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "timePlayedTotal" ) ); println( "promoted " + self.name + " from rank " + oldRank + " to " + newRankId + ". Experience went from " + oldxp + " to " + self getRankXP() + "." ); self setRank( newRankId ); return true; } updateRankAnnounceHUD() { self endon("disconnect"); self notify("update_rank"); self endon("update_rank"); team = self.pers["team"]; if ( !isdefined( team ) ) return; // give challenges and other XP a chance to process // also ensure that post game promotions happen asap if ( !levelFlag( "game_over" ) ) level waittill_notify_or_timeout( "game_over", 0.25 ); newRankName = self getRankInfoFull( self.pers["rank"] ); rank_char = level.rankTable[self.pers["rank"]][1]; subRank = int(rank_char[rank_char.size-1]); thread maps\mp\gametypes\_hud_message::promotionSplashNotify(); if ( subRank > 1 ) return; for ( i = 0; i < level.players.size; i++ ) { player = level.players[i]; playerteam = player.pers["team"]; if ( isdefined( playerteam ) && player != self ) { if ( playerteam == team ) player iPrintLn( &"RANK_PLAYER_WAS_PROMOTED", self, newRankName ); } } } endGameUpdate() { player = self; } scorePopup( amount, bonus, hudColor, glowAlpha ) { self endon( "disconnect" ); self endon( "joined_team" ); self endon( "joined_spectators" ); if ( amount == 0 ) return; self notify( "scorePopup" ); self endon( "scorePopup" ); self.xpUpdateTotal += amount; self.bonusUpdateTotal += bonus; wait ( 0.05 ); if ( self.xpUpdateTotal < 0 ) self.hud_scorePopup.label = &""; else self.hud_scorePopup.label = &"MP_PLUS"; self.hud_scorePopup.color = hudColor; self.hud_scorePopup.glowColor = hudColor; self.hud_scorePopup.glowAlpha = glowAlpha; self.hud_scorePopup setValue(self.xpUpdateTotal); self.hud_scorePopup.alpha = 0.85; self.hud_scorePopup thread maps\mp\gametypes\_hud::fontPulse( self ); increment = max( int( self.bonusUpdateTotal / 20 ), 1 ); if ( self.bonusUpdateTotal ) { while ( self.bonusUpdateTotal > 0 ) { self.xpUpdateTotal += min( self.bonusUpdateTotal, increment ); self.bonusUpdateTotal -= min( self.bonusUpdateTotal, increment ); self.hud_scorePopup setValue( self.xpUpdateTotal ); wait ( 0.05 ); } } else { wait ( 1.0 ); } self.hud_scorePopup fadeOverTime( 0.75 ); self.hud_scorePopup.alpha = 0; self.xpUpdateTotal = 0; } removeRankHUD() { self.hud_scorePopup.alpha = 0; } getRank() { rankXp = self.pers["rankxp"]; rankId = self.pers["rank"]; if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) ) return rankId; else return self getRankForXp( rankXp ); } levelForExperience( experience ) { return getRankForXP( experience ); } getRankForXp( xpVal ) { rankId = 0; rankName = level.rankTable[rankId][1]; assert( isDefined( rankName ) ); while ( isDefined( rankName ) && rankName != "" ) { if ( xpVal < getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId ) ) return rankId; rankId++; if ( isDefined( level.rankTable[rankId] ) ) rankName = level.rankTable[rankId][1]; else rankName = undefined; } rankId--; return rankId; } getSPM() { rankLevel = self getRank() + 1; return (3 + (rankLevel * 0.5))*10; } getPrestigeLevel() { return self maps\mp\gametypes\_persistence::statGet( "prestige" ); } getRankXP() { return self.pers["rankxp"]; } incRankXP( amount ) { if ( !self rankingEnabled() ) return; if ( isDefined( self.isCheater ) ) return; xp = self getRankXP(); newXp = (xp + amount); if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) ) newXp = getRankInfoMaxXP( level.maxRank ); self.pers["rankxp"] = newXp; } getRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return 0; restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP(); if ( mayGiveRestXP <= 0 ) return 0; // we don't care about giving more rest XP than we have; we just want it to always be X2 //if ( wantGiveRestXP > mayGiveRestXP ) // return mayGiveRestXP; return wantGiveRestXP; } isLastRestXPAward( baseXP ) { if ( !getdvarint( "scr_restxp_enable" ) ) return false; restXPAwardRate = getDvarFloat( "scr_restxp_restedAwardScale" ); // as a fraction of base xp wantGiveRestXP = int(baseXP * restXPAwardRate); mayGiveRestXP = self getPlayerData( "restXPGoal" ) - self getRankXP(); if ( mayGiveRestXP <= 0 ) return false; if ( wantGiveRestXP >= mayGiveRestXP ) return true; return false; } syncXPStat() { xp = self getRankXP(); self maps\mp\gametypes\_persistence::statSet( "experience", xp ); }