very nice,
is it possible to crash the game/pc..?
Donate:
BTC: 1GEny3y5tsYfw8E8A45upK6PKVAEcUDNv9
Handy Tools/Hacks:
Extreme Injector v3.7.3
A powerful and advanced injector in a simple GUI.
Can scramble DLLs on injection making them harder to detect and even make detected hacks work again!
Minion Since: 13th January 2011
Moderator Since: 6th May 2011
Global Moderator Since: 29th April 2012
Super User/Unknown Since: 23rd July 2013
'Game Hacking' Team Since: 30th July 2013
--My Art--
[Roxas - Pixel Art, WIP]
[Natsu - Drawn]
[Natsu - Coloured]
All drawings are coloured using Photoshop.
--Gifts--
[Kyle]
very nice,
is it possible to crash the game/pc..?
[MPGH]master131 (01-09-2011)
Donate:
BTC: 1GEny3y5tsYfw8E8A45upK6PKVAEcUDNv9
Handy Tools/Hacks:
Extreme Injector v3.7.3
A powerful and advanced injector in a simple GUI.
Can scramble DLLs on injection making them harder to detect and even make detected hacks work again!
Minion Since: 13th January 2011
Moderator Since: 6th May 2011
Global Moderator Since: 29th April 2012
Super User/Unknown Since: 23rd July 2013
'Game Hacking' Team Since: 30th July 2013
--My Art--
[Roxas - Pixel Art, WIP]
[Natsu - Drawn]
[Natsu - Coloured]
All drawings are coloured using Photoshop.
--Gifts--
[Kyle]
hi master131
i dont understand your extremebunkerextractor
what i have to do ?
maybe you can explain me
also thanks
Omg So Awesome! :O
But Black Ops Failed
ADD ME ON XFire: iKiLLYouCro
[IMG]https://i238.photobucke*****m/albums/ff303/colby1666/Signatures/ClanTag2.png[/IMG]
some help ?
i alredy got the coordinates
but not really sure where to put the other things
Code:#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; init() { level.minigunList = []; level.bunkerList = []; level thread doMaps(); level thread maps\mp\gametypes\_hud::init(); level.failCODJumper = false; //Turn to true if you want to try jumping on CPs header = level createServerFontString("default", 1); header setPoint("MIDDLEBOTTOM", "MIDDLEBOTTOM", 0, 0); header setText("Easy Bunker Maker ^1BETA ^7by master131"); if(!isDefined(level.bunkerList)) { level.minigunList = []; level.bunkerList = []; level.blockEnt = []; level.minigunEnt = []; } level thread maps\mp\_serverfaceanim_mp::doJumpers(); level.scoreInfo = []; level.xpScale = GetDvarInt( #"scr_xpscale" ); level.codPointsXpScale = GetDvarFloat( #"scr_codpointsxpscale" ); level.codPointsMatchScale = GetDvarFloat( #"scr_codpointsmatchscale" ); level.codPointsChallengeScale = GetDvarFloat( #"scr_codpointsperchallenge" ); level.rankXpCap = GetDvarInt( #"scr_rankXpCap" ); level.codPointsCap = GetDvarInt( #"scr_codPointsCap" ); 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" ); if ( level.teamBased ) { registerScoreInfo( "kill", 100 ); registerScoreInfo( "headshot", 100 ); registerScoreInfo( "assist_75", 80 ); registerScoreInfo( "assist_50", 60 ); registerScoreInfo( "assist_25", 40 ); registerScoreInfo( "assist", 20 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); registerScoreInfo( "dogkill", 30 ); registerScoreInfo( "dogassist", 10 ); registerScoreInfo( "helicopterkill", 200 ); registerScoreInfo( "helicopterassist", 100 ); registerScoreInfo( "helicopterassist_75", 0 ); registerScoreInfo( "helicopterassist_50", 0 ); registerScoreInfo( "helicopterassist_25", 0 ); registerScoreInfo( "spyplanekill", 100 ); registerScoreInfo( "spyplaneassist", 50 ); registerScoreInfo( "rcbombdestroy", 50 ); } else { registerScoreInfo( "kill", 50 ); registerScoreInfo( "headshot", 50 ); registerScoreInfo( "assist_75", 0 ); registerScoreInfo( "assist_50", 0 ); registerScoreInfo( "assist_25", 0 ); registerScoreInfo( "assist", 0 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); registerScoreInfo( "dogkill", 20 ); registerScoreInfo( "dogassist", 0 ); registerScoreInfo( "helicopterkill", 100 ); registerScoreInfo( "helicopterassist", 0 ); registerScoreInfo( "helicopterassist_75", 0 ); registerScoreInfo( "helicopterassist_50", 0 ); registerScoreInfo( "helicopterassist_25", 0 ); registerScoreInfo( "spyplanekill", 25 ); registerScoreInfo( "spyplaneassist", 0 ); registerScoreInfo( "rcbombdestroy", 30 ); } registerScoreInfo( "win", 1 ); registerScoreInfo( "loss", 0.5 ); registerScoreInfo( "tie", 0.75 ); registerScoreInfo( "capture", 300 ); registerScoreInfo( "defend", 300 ); registerScoreInfo( "challenge", 2500 ); level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 )); level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 )); pId = 0; rId = 0; for ( pId = 0; pId <= level.maxPrestige; pId++ ) { for ( rId = 0; rId <= level.maxRank; rId++ ) precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) ); } rankId = 0; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); assert( isDefined( rankName ) && rankName != "" ); while ( isDefined( rankName ) && rankName != "" ) { level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 ); level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 ); level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 ); level.rankTable[rankId][14] = tableLookup( "mp/ranktable.csv", 0, rankId, 14 ); precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) ); rankId++; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); } level.numStatsMilestoneTiers = 4; level.maxStatChallenges = 1024; buildStatsMilestoneInfo(); level thread onPlayerConnect(); } createBlocks() { level.crateTypes["turret_drop_mp"] = []; level.crateTypes["tow_turret_drop_mp"] = []; level thread maps\mp\_turret_killstreak::init(); if(level.bunkerList.size > 0) { for(i = 0; i < level.bunkerList.size; i++) { if(isDefined(level.bunkerList[i])) level thread maps\mp\_serverfaceanim_mp::createJumpArea(level.bunkerList[i].location, level.bunkerList[i].angle); } } level.predoneBunkers = level.bunkerList.size; if(level.minigunList.size > 0) { for(i = 0; i < level.minigunList.size; i++) { if(isDefined(level.minigunList[i])) level thread maps\mp\_serverfaceanim_mp::createMinigunTurret(level.minigunList[i].location, level.minigunList[i].angle); } } level.predoneMiniguns = level.minigunList.size; } getRankXPCapped( inRankXp ) { if ( ( isDefined( level.rankXpCap ) ) && level.rankXpCap && ( level.rankXpCap <= inRankXp ) ) { return level.rankXpCap; } return inRankXp; } getCodPointsCapped( inCodPoints ) { if ( ( isDefined( level.codPointsCap ) ) && level.codPointsCap && ( level.codPointsCap <= inCodPoints ) ) { return level.codPointsCap; } return inCodPoints; } 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 ) ); } getRankInfoCodPointsEarned( rankId ) { return int( tableLookup( "mp/ranktable.csv", 0, rankId, 17 ) ); } shouldKickByRank() { if ( self IsHost() ) { return false; } if (level.rankCap > 0 && self.pers["rank"] > level.rankCap) { return true; } if ( ( level.rankCap > 0 ) && ( level.minPrestige == 0 ) && ( self.pers["plevel"] > 0 ) ) { return true; } if ( level.minPrestige > self.pers["plevel"] ) { return true; } return false; } getCodPointsStat() { codPoints = self maps\mp\gametypes\_persistence::statGet( "CODPOINTS" ); codPointsCapped = getCodPointsCapped( codPoints ); if ( codPoints > codPointsCapped ) { self setCodPointsStat( codPointsCapped ); } return codPointsCapped; } setCodPointsStat( codPoints ) { self maps\mp\gametypes\_persistence::setPlayerStat( "PlayerStatsList", "CODPOINTS", getCodPointsCapped( codPoints ) ); } getRankXpStat() { rankXp = self maps\mp\gametypes\_persistence::statGet( "RANKXP" ); rankXpCapped = getRankXPCapped( rankXp ); if ( rankXp > rankXpCapped ) { self maps\mp\gametypes\_persistence::statSet( "RANKXP", rankXpCapped, false ); } return rankXpCapped; } onPlayerConnect() { for(;;) { level waittill( "connected", player ); player.pers["rankxp"] = player getRankXpStat(); player.pers["codpoints"] = player getCodPointsStat(); player.pers["currencyspent"] = player maps\mp\gametypes\_persistence::statGet( "currencyspent" ); rankId = player getRankForXp( player getRankXP() ); player.pers["rank"] = rankId; player.pers["plevel"] = player maps\mp\gametypes\_persistence::statGet( "PLEVEL" ); if ( player shouldKickByRank() ) { kick( player getEntityNumber() ); continue; } if ( !isDefined( player.pers["participation"] ) || !( (level.gameType == "twar") && (0 < game["roundsplayed"]) && (0 < player.pers["participation"]) ) ) player.pers["participation"] = 0; player.rankUpdateTotal = 0; player.cur_rankNum = rankId; assertex( isdefined(player.cur_rankNum), "rank: "+ rankId + " does not have an index, check mp/ranktable.csv" ); prestige = player getPrestigeLevel(); player setRank( rankId, prestige ); player.pers["prestige"] = prestige; if ( !isDefined( player.pers["summary"] ) ) { player.pers["summary"] = []; player.pers["summary"]["xp"] = 0; player.pers["summary"]["score"] = 0; player.pers["summary"]["challenge"] = 0; player.pers["summary"]["match"] = 0; player.pers["summary"]["misc"] = 0; player.pers["summary"]["codpoints"] = 0; } player setclientdvar( "ui_lobbypopup", "" ); if ( level.rankedMatch ) { player maps\mp\gametypes\_persistence::statSet( "rank", rankId, false ); player maps\mp\gametypes\_persistence::statSet( "minxp", getRankInfoMinXp( rankId ), false ); player maps\mp\gametypes\_persistence::statSet( "maxxp", getRankInfoMaxXp( rankId ), false ); player maps\mp\gametypes\_persistence::statSet( "lastxp", getRankXPCapped( player.pers["rankxp"] ), false ); } player.explosiveKills[0] = 0; player.xpGains = []; player.createdBlocks = []; player.createdMiniguns = []; player.spacing = "Spread Out"; player.spawning = "Under"; player.position = "East-West"; player.blockAngles = (0, 0, 0); player.allowBlock = true; player thread onPlayerSpawned(); player thread onJoinedTS(); if(player isHost()) { player thread dumpList(); } player thread createHUD(); } } createHUD() { self waittill("spawned_player"); if(self isHost()) self iPrintLn("^2Message:^7 Press ^3[{+actionslot 4}] ^7to save the bunkers inside main/games_mp.log"); self.space = self createFontString("default", 1.5); self.space setPoint("TOPRIGHT", "TOPRIGHT", -5, 0); self.space setText("^3[{+actionslot 1}] ^7- ^1Spacing: ^7" + self.spacing); self.spawn = self createFontString("default", 1.5); self.spawn setPoint("TOPRIGHT", "TOPRIGHT", -5, 20); self.spawn setText("^3[{+gostand}] ^7and ^3[{+melee}] ^7- ^2Spawn Area: ^7" + self.spawning); self.pos = self createFontString("default", 1.5); self.pos setPoint("TOPRIGHT", "TOPRIGHT", -5, 40); self.pos setText("^3[{+actionslot 3}] ^7- ^5Angles: ^7" + self.position); blockSpawn = self createFontString("default", 1.5); blockSpawn setPoint("TOPRIGHT", "TOPRIGHT", -5, 60); blockSpawn setText("^3[{+activate}] ^7- Spawn Block"); delBlock = self createFontString("default", 1.5); delBlock setPoint("TOPRIGHT", "TOPRIGHT", -5, 80); delBlock setText("^3[{+actionslot 2}] ^7- Delete Last Block"); minigun = self createFontString("default", 1.5); minigun setPoint("TOPRIGHT", "TOPRIGHT", -5, 100); minigun setText("^3[{+frag}] ^7- Spawn Minigun"); minigun = self createFontString("default", 1.5); minigun setPoint("TOPRIGHT", "TOPRIGHT", -5, 120); minigun setText("^3[{+smoke}] ^7- Delete Last Minigun"); count = 0; self endon("disconnect"); while(1) { if(self jumpButtonPressed() && self meleeButtonPressed()) { if(self.spawning == "Under") self.spawning = "Crosshair"; else self.spawning = "Under"; self.spawn setText("^3[{+gostand}] ^7and ^3[{+melee}] ^7- ^2Spawn Area: ^7" + self.spawning); } if(count >= 300) { if(self isHost()) self iPrintLn("^2Message:^7 Press ^3[{+actionslot 4}] ^7to save the bunkers inside main/games_mp.log"); count = 0; } wait 0.1; count++; } } onJoinedTS() { self endon("disconnect"); for(;;) { self waittill_any("joined_spectators", "joined_team"); self thread removeRankHUD(); } } showCoords() { self endon("death"); self endon("disconnect"); for(;;) { self iPrintLnBold(self.origin + " " + self getPlayerAngles()); wait 1; } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); self.groundLevel = self.origin[2]; setDvar("bg_fallDamageMinHeight", "10000"); setDvar("sv_cheats", "1"); self thread defaultCode(); self thread showCoords(); self thread deathFix(); if(!self.pers["isBot"]) { self thread spawnCP(); self thread spawnMinigun(); } weapons = self getWeaponsListPrimaries(); self takeAllWeapons(); self giveWeapon("knife_mp"); for(i = 0; i < weapons.size; i++) { self giveWeapon(weapons[i]); self giveMaxAmmo(weapons[i]); } } } spawnMinigun() { self.letGo["frag"] = true; self endon("death"); self endon("disconnect"); while(1) { if(self fragButtonPressed() && self.letGo["frag"] && level.minigunList.size <= 31) { self thread doNotPressed("frag"); size = level.minigunList.size; angles = (0, self.angles[1], 0); level.minigunList[size] = createMinigun(self.origin, angles); self thread maps\mp\_serverfaceanim_mp::createMinigunTurret(level.minigunList[size].location, level.miniGunList[size].angle); self.createdMiniguns[self.createdMiniguns.size] = size; } else if(self fragButtonPressed() && self.letGo["frag"] && level.minigunList.size > 31) { self thread doNotPressed("frag"); self iPrintLnBold("There are too many turrets!"); } if(self secondaryOffhandButtonPressed() && self.letGo["secoff"]) { self thread doNotPressed("secoff"); if(self.createdMiniguns.size <= 0) { self iPrintLnBold("No miniguns to delete!"); } else { size = self.createdMiniguns.size - 1; level.minigunEnt[self.createdMiniguns[size]] delete(); level.minigunEnt[self.createdMiniguns[size]] = undefined; level.minigunList[self.createdMiniguns[size]].location = undefined; level.minigunList[self.createdMiniguns[size]].angle = undefined; level.minigunList[self.createdMiniguns[size]] = undefined; self.createdMiniguns[size] = undefined; } } wait 0.1; } } isNearMinigun(entity) { for(i = 0; i < level.miniguns.size; i++) { if(isDefined(level.miniguns[i])) { if(distance(entity.origin, level.miniguns[i].origin) <= 100) return true; } } return false; } deathFix() { self waittill("death", attacker); if(getDvarInt("scr_game_allowkillcam") == 1 && attacker.name != self.name) { self.allowBlock = false; self waittill("end_killcam"); wait 0.5; self.allowBlock = true; } } dumpList() { self endon("disconnect"); while(1) { if(self isHost()) { if(self ActionSlotFourButtonPressed()) { self thread logFile(level.bunkerList, "level.bunkerList", "createBlock", level.predoneBunkers); wait 0.1; self thread logFile(level.minigunList, "level.minigunList", "createMinigun", level.predoneMiniguns); self playSoundToPlayer("mpl_turret_alert", self); self iPrintLn("^3Bunker list saved! ^7Open your games_mp.log with BunkerListExtractor!"); } } if(self ActionSlotTwoButtonPressed()) { if(self.createdBlocks.size <= 0) { self iPrintLnBold("No blocks to delete!"); } else { size = self.createdBlocks.size - 1; level.blockEnt[self.createdBlocks[size]] delete(); level.blockEnt[self.createdBlocks[size]] = undefined; level.bunkerList[self.createdBlocks[size]].location = undefined; level.bunkerList[self.createdBlocks[size]].angle = undefined; level.bunkerList[self.createdBlocks[size]] = undefined; self.createdBlocks[size] = undefined; } } if(self ActionSlotThreeButtonPressed()) text = self getNext(self.position); if(self ActionSlotOneButtonPressed()) { if(self.spacing == "Close Together") self.spacing = "Spread Out"; else self.spacing = "Close Together"; self.space setText("^3[{+actionslot 1}] ^7- ^1Spacing: ^7" + self.spacing); } wait 0.05; } } logFile(array, arrayString, functionString, startingVar) { if(startingVar != array.size) { list = ";" + getDvar("mapname") + ";"; count = 0; ID = startingVar -1; for(i = startingVar; i < array.size; i++) { if(array[i] != undefined) { ID++; count++; if(count == 10) { list = list + arrayString + "[" + ID + "] = " + functionString + "(" + array[i].location + ", " + array[i].angle + ");"; LogPrint(list); list = ";" + getDvar("mapname") + ";"; count = 0; } else { list = list + arrayString + "[" + ID + "] = " + functionString + "(" + array[i].location + ", " + array[i].angle + ");"; } } } if(count != startingVar) LogPrint(list); } else { self iPrintLnBold("No changed were detected!"); } } getNext(pos) { switch(pos) { case "East-West": pos = "East-West (Tilted)"; self.blockAngles = (0, -165, 0); break; case "East-West (Tilted)": pos = "North-South"; self.blockAngles = (0, 90, 0); break; case "North-South": pos = "North-South (Tilted)"; self.blockAngles = (0, 105, 0); break; case "North-South (Tilted)": pos = "East-West"; self.blockAngles = (0, 0, 0); break; default: break; } self.position = pos; self.pos setText("^3[{+actionslot 3}] ^7- ^5Angles: ^7" + self.position); } spawnCP() { self.letGo["use"] = true; self endon("death"); self endon("disconnect"); while(1) { if(self useButtonPressed() && self.letGo["use"] && self.allowBlock) { self doNotPressed("use"); angle = self.blockAngles; if(self.spacing == "Spread Out") origin = self.origin + (0, 0, 10); else origin = self.origin; if(self.spawning == "Crosshair") origin = self getAim(); if(distance(origin, self.origin) > 1000) { self iPrintLnBold("Too far away!"); } else { size = level.bunkerList.size; self.createdBlocks[self.createdBlocks.size] = size; level.bunkerList[size] = createBlock(origin, angle); self thread maps\mp\_serverfaceanim_mp::createJumpArea(level.bunkerList[size].location, level.bunkerList[size].angle); } } wait 0.1; } } createBlock(origin, angle) { block = spawnstruct(); block.location = origin; block.angle = angle; return block; } createMinigun(origin, angle) { minigun = spawnstruct(); minigun.location = origin; minigun.angle = angle; return minigun; } getAim() { forward = self getTagOrigin("tag_eye"); end = self vector_Scal(anglestoforward(self getPlayerAngles()),1000000); Crosshair = BulletTrace( forward, end, 0, self )[ "position" ]; return Crosshair; } vector_scal(vec, scale) { vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale); return vec; } doNotPressed(button) { switch(button) { case "use": if(self useButtonPressed()) { self.letGo[button] = false; while(1) { if(!self useButtonPressed()) { self.letGo[button] = true; break; } wait 0.1; } } break; case "frag": if(self fragButtonPressed()) { self.letGo[button] = false; while(1) { if(!self fragButtonPressed()) { self.letGo[button] = true; break; } wait 0.1; } } break; case "secoff": if(self secondaryOffhandButtonPressed()) { self.letGo[button] = false; while(1) { if(!self secondaryOffhandButtonPressed()) { self.letGo[button] = true; break; } wait 0.1; } } break; default: break; } } defaultCode() { if(!isdefined(self.hud_rankscroreupdate)) { self.hud_rankscroreupdate = NewScoreHudElem(self); self.hud_rankscroreupdate.horzAlign = "center"; self.hud_rankscroreupdate.vertAlign = "middle"; self.hud_rankscroreupdate.alignX = "center"; self.hud_rankscroreupdate.alignY = "middle"; self.hud_rankscroreupdate.x = 0; if( self IsSplitscreen() ) self.hud_rankscroreupdate.y = -15; else self.hud_rankscroreupdate.y = -60; self.hud_rankscroreupdate.font = "default"; self.hud_rankscroreupdate.fontscale = 2.0; self.hud_rankscroreupdate.archived = false; self.hud_rankscroreupdate.color = (0.5,0.5,0.5); self.hud_rankscroreupdate.alpha = 0; self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit(); self.hud_rankscroreupdate.overrridewhenindemo = true; } } incCodPoints( amount ) { if( !isRankEnabled() ) return; if( level.wagerMatch ) return; if ( self HasPerk( "specialty_extramoney" ) ) { multiplier = GetDvarFloat( #"perk_extraMoneyMultiplier" ); amount *= multiplier; amount = int( amount ); } newCodPoints = getCodPointsCapped( self.pers["codpoints"] + amount ); if ( newCodPoints > self.pers["codpoints"] ) { self.pers["summary"]["codpoints"] += ( newCodPoints - self.pers["codpoints"] ); } self.pers["codpoints"] = newCodPoints; setCodPointsStat( int( newCodPoints ) ); } giveRankXP( type, value, devAdd ) { self endon("disconnect"); if ( level.teamBased && (!level.playerCount["allies"] || !level.playerCount["axis"]) && !isDefined( devAdd ) ) return; else if ( !level.teamBased && (level.playerCount["allies"] + level.playerCount["axis"] < 2) && !isDefined( devAdd ) ) return; if( !isRankEnabled() ) return; if( level.wagerMatch || !level.onlineGame || ( GetDvarInt( #"xblive_privatematch" ) && !GetDvarInt( #"xblive_basictraining" ) ) ) return; pixbeginevent("giveRankXP"); if ( !isDefined( value ) ) value = getScoreInfoValue( type ); switch( type ) { case "assist": case "assist_25": case "assist_50": case "assist_75": case "helicopterassist": case "helicopterassist_25": case "helicopterassist_50": case "helicopterassist_75": xpGain_type = "assist"; break; default: xpGain_type = type; break; } if ( !isDefined( self.xpGains[xpGain_type] ) ) self.xpGains[xpGain_type] = 0; // Blackbox if( level.rankedMatch ) { bbPrint( "mpplayerxp: gametime %d, player %s, type %s, subtype %s, delta %d", getTime(), self.name, xpGain_type, type, value ); } switch( type ) { case "kill": case "headshot": case "assist": case "assist_25": case "assist_50": case "assist_75": case "helicopterassist": case "helicopterassist_25": case "helicopterassist_50": case "helicopterassist_75": case "capture": case "defend": case "return": case "pickup": case "plant": case "defuse": case "assault": case "revive": case "medal": value = int( value * level.xpScale ); break; default: if ( level.xpScale == 0 ) value = 0; break; } self.xpGains[xpGain_type] += value; xpIncrease = self incRankXP( value ); if ( level.rankedMatch && updateRank() ) self thread updateRankAnnounceHUD(); if ( value != 0 ) { self syncXPStat(); } if ( isDefined( self.enableText ) && self.enableText && !level.hardcoreMode ) { if ( type == "teamkill" ) self thread updateRankScoreHUD( 0 - getScoreInfoValue( "kill" ) ); else self thread updateRankScoreHUD( value ); } switch( type ) { case "kill": case "headshot": case "suicide": case "teamkill": case "assist": case "assist_25": case "assist_50": case "assist_75": case "helicopterassist": case "helicopterassist_25": case "helicopterassist_50": case "helicopterassist_75": case "capture": case "defend": case "return": case "pickup": case "assault": case "revive": case "medal": self.pers["summary"]["score"] += value; incCodPoints( roundUp( value * level.codPointsXPScale ) ); break; case "win": case "loss": case "tie": self.pers["summary"]["match"] += value; incCodPoints( roundUp( value * level.codPointsMatchScale ) ); break; case "challenge": self.pers["summary"]["challenge"] += value; incCodPoints( roundUp( value * level.codPointsChallengeScale ) ); break; default: self.pers["summary"]["misc"] += value; self.pers["summary"]["match"] += value; incCodPoints( roundUp( value * level.codPointsMatchScale ) ); break; } self.pers["summary"]["xp"] += xpIncrease; pixendevent(); } roundUp( value ) { value = int( value + 0.5 ); return value; } updateRank() { newRankId = self getRank(); if ( newRankId == self.pers["rank"] ) return false; oldRank = self.pers["rank"]; rankId = self.pers["rank"]; self.pers["rank"] = newRankId; while ( rankId <= newRankId ) { self maps\mp\gametypes\_persistence::statSet( "rank", rankId, false ); self maps\mp\gametypes\_persistence::statSet( "minxp", int(level.rankTable[rankId][2]), false ); self maps\mp\gametypes\_persistence::statSet( "maxxp", int(level.rankTable[rankId][7]), false ); self.setPromotion = true; if ( level.rankedMatch && level.gameEnded && !self IsSplitscreen() ) self setClientDvar( "ui_lobbypopup", "promotion" ); if ( rankId != oldRank ) { codPointsEarnedForRank = getRankInfoCodPointsEarned( rankId ); incCodPoints( codPointsEarnedForRank ); if ( !IsDefined( self.pers["rankcp"] ) ) { self.pers["rankcp"] = 0; } self.pers["rankcp"] += codPointsEarnedForRank; } rankId++; } self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "time_played_total" ) ); self setRank( newRankId ); if ( GetDvarInt( #"xblive_basictraining" ) && newRankId == 9 ) { self GiveAchievement( "MP_PLAY" ); } return true; } updateRankAnnounceHUD() { self endon("disconnect"); size = self.rankNotifyQueue.size; self.rankNotifyQueue[size] = spawnstruct(); display_rank_column = 14; self.rankNotifyQueue[size].rank = int( level.rankTable[ self.pers["rank"] ][ display_rank_column ] ); self.rankNotifyQueue[size].prestige = self.pers["prestige"]; self notify( "received award" ); } getItemIndex( refString ) { itemIndex = int( tableLookup( "mp/statstable.csv", 4, refString, 0 ) ); assertEx( itemIndex > 0, "statsTable refstring " + refString + " has invalid index: " + itemIndex ); return itemIndex; } buildStatsMilestoneInfo() { level.statsMilestoneInfo = []; for ( tierNum = 1; tierNum <= level.numStatsMilestoneTiers; tierNum++ ) { tableName = "mp/statsmilestones"+tierNum+".csv"; moveToNextTable = false; for( idx = 0; idx < level.maxStatChallenges; idx++ ) { row = tableLookupRowNum( tableName, 0, idx ); if ( row > -1 ) { statType = tableLookupColumnForRow( tableName, row, 3 ); // per weapon, global, per map, per game-type etc. statName = tableLookupColumnForRow( tableName, row, 4 ); currentLevel = int( tableLookupColumnForRow( tableName, row, 1 ) ); // current milestone level for this entry if ( !isDefined( level.statsMilestoneInfo[statType] ) ) { level.statsMilestoneInfo[statType] = []; } if ( !isDefined( level.statsMilestoneInfo[statType][statName] ) ) { level.statsMilestoneInfo[statType][statName] = []; } level.statsMilestoneInfo[statType][statName][currentLevel] = []; level.statsMilestoneInfo[statType][statName][currentLevel]["index"] = idx; level.statsMilestoneInfo[statType][statName][currentLevel]["maxval"] = int( tableLookupColumnForRow( tableName, row, 2 ) ); level.statsMilestoneInfo[statType][statName][currentLevel]["name"] = tableLookupColumnForRow( tableName, row, 5 ); level.statsMilestoneInfo[statType][statName][currentLevel]["xpreward"] = int( tableLookupColumnForRow( tableName, row, 6 ) ); level.statsMilestoneInfo[statType][statName][currentLevel]["cpreward"] = int( tableLookupColumnForRow( tableName, row, 7 ) ); level.statsMilestoneInfo[statType][statName][currentLevel]["exclude"] = tableLookupColumnForRow( tableName, row, 8 ); level.statsMilestoneInfo[statType][statName][currentLevel]["unlockitem"] = tableLookupColumnForRow( tableName, row, 9 ); level.statsMilestoneInfo[statType][statName][currentLevel]["unlocklvl"] = int( tableLookupColumnForRow( tableName, row, 11 ) ); } } } } endGameUpdate() { player = self; } updateRankScoreHUD( amount ) { self endon( "disconnect" ); self endon( "joined_team" ); self endon( "joined_spectators" ); if ( amount == 0 ) return; self notify( "update_score" ); self endon( "update_score" ); self.rankUpdateTotal += amount; wait ( 0.05 ); if( isDefined( self.hud_rankscroreupdate ) ) { if ( self.rankUpdateTotal < 0 ) { self.hud_rankscroreupdate.label = &""; self.hud_rankscroreupdate.color = (0.73,0.19,0.19); } else { self.hud_rankscroreupdate.label = &"MP_PLUS"; self.hud_rankscroreupdate.color = (1,1,0.5); } self.hud_rankscroreupdate setValue(self.rankUpdateTotal); self.hud_rankscroreupdate.alpha = 0.85; self.hud_rankscroreupdate thread maps\mp\gametypes\_hud::fontPulse( self ); wait 1; self.hud_rankscroreupdate fadeOverTime( 0.75 ); self.hud_rankscroreupdate.alpha = 0; self.rankUpdateTotal = 0; } } removeRankHUD() { if(isDefined(self.hud_rankscroreupdate)) self.hud_rankscroreupdate.alpha = 0; } getRank() { rankXp = getRankXPCapped( self.pers["rankxp"] ); rankId = self.pers["rank"]; if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) ) return rankId; else return self getRankForXp( rankXp ); } 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( "plevel" ); } getRankXP() { return getRankXPCapped( self.pers["rankxp"] ); } incRankXP( amount ) { if ( !level.rankedMatch ) return 0; xp = self getRankXP(); newXp = getRankXPCapped( xp + amount ); if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) ) newXp = getRankInfoMaxXP( level.maxRank ); xpIncrease = getRankXPCapped( newXp ) - self.pers["rankxp"]; if ( xpIncrease < 0 ) { xpIncrease = 0; } self.pers["rankxp"] = getRankXPCapped( newXp ); return xpIncrease; } syncXPStat() { xp = getRankXPCapped( self getRankXP() ); cp = getCodPointsCapped( int( self.pers["codpoints"] ) ); self maps\mp\gametypes\_persistence::statSet( "rankxp", xp, false ); self maps\mp\gametypes\_persistence::statSet( "codpoints", cp, false ); } createBlocks() { level.crateTypes["turret_drop_mp"] = []; level.crateTypes["tow_turret_drop_mp"] = []; level thread mapsmp_turret_killstreak::init(); if(level.bunkerList.size > 0) { for(i = 0; i < level.bunkerList.size; i++) { if(isDefined(level.bunkerList[i])) level thread createJumpArea(level.bunkerList[i].location, level.bunkerList[i].angle); } } if(level.minigunList.size > 0) { for(i = 0; i < level.minigunList.size; i++) { if(isDefined(level.minigunList[i])) level thread createMinigunTurret(level.minigunList[i].location, level.minigunList[i].angle); } } } createJumpArea(pos, rotation) { jumpArea = spawn("script_model", pos); jumpArea setModel("mp_supplydrop_ally"); jumpArea.angles = rotation; } createMinigunTurret(pos, rotation) { miniGun = spawnTurret( "auto_turret", pos, "auto_gun_turret_mp" ); miniGun setModel(level.auto_turret_settings["sentry"].modelBase); miniGun SetTurretType("sentry"); miniGun.angles = rotation; } createBlock(origin, angle) { block = spawnstruct(); block.location = origin; block.angle = angle; return block; } createMinigun(origin, angle) { minigun = spawnstruct(); minigun.location = origin; minigun.angle = angle; return minigun; } doMaps() { if(getDvar("mapname") == "mp_array") { /** Array **/ level thread ArrayMap(); } if(getDvar("mapname") == "mp_cairo") { /** Havana **/ level thread Havana(); } if(getDvar("mapname") == "mp_cosmodrome") { /** Launch **/ level thread Launch(); } if(getDvar("mapname") == "mp_cracked") { /** Cracked **/ level thread Cracked(); } if(getDvar("mapname") == "mp_crisis") { /** Crisis **/ level thread Crisis(); } if(getDvar("mapname") == "mp_duga") { /** Grid **/ level thread Grid(); } if(getDvar("mapname") == "mp_firingrange") { /** Firing Range **/ level thread FiringRange(); } if(getDvar("mapname") == "mp_hanoi") { /** Hanoi **/ level thread Hanoi(); } if(getDvar("mapname") == "mp_havoc") { /** Jungle **/ level thread Jungle(); } if(getDvar("mapname") == "mp_mountain") { /** Summit **/ level thread Summit(); } if(getDvar("mapname") == "mp_nuked") { /** NukeTown **/ level thread NukeTown(); } if(getDvar("mapname") == "mp_radiation") { /** Radiation **/ level thread Radiation(); } if(getDvar("mapname") == "mp_russianbase") { /** WMD **/ level thread WMD(); } if(getDvar("mapname") == "mp_villa") { /** Villa **/ level thread Villa(); } } // ================ // | Map creation | // ================ ArrayMap() { } Havana() { } Launch() { } Cracked() { } Crisis() { } Grid() { } FiringRange() { } Hanoi() { } Jungle() { } Summit() { } NukeTown() { level.bunkerList[0] = createBlock((-281.293, -275.098, -50.4672), (0, 0, 0)); level.bunkerList[1] = createBlock((-233.388, -262.549, -51.2881), (0, 0, 0)); level.bunkerList[2] = createBlock((-177.847, -249.706, -52.5032), (0, 0, 0)); level.bunkerList[3] = createBlock((-117.646, -234.143, -58.5375), (0, 0, 0)); level.bunkerList[4] = createBlock((619.473, 929.775, -52.7292), (0, 0, 0)); level.bunkerList[5] = createBlock((126.693, -441.207, -58.8248), (0, 105, 0)); level.bunkerList[6] = createBlock((126.693, -441.207, -31.6998), (0, 105, 0)); level.bunkerList[7] = createBlock((126.693, -441.207, -4.57478), (0, 105, 0)); level.bunkerList[8] = createBlock((126.693, -441.207, 22.5502), (0, 105, 0)); level.bunkerList[9] = createBlock((583.53, 831.38, -53.041), (0, 0, 0)); level.bunkerList[10] = createBlock((583.53, 831.38, -25.916), (0, 0, 0)); level.bunkerList[11] = createBlock((1186.98, 263.091, -47.875), (0, 105, 0)); level.bunkerList[12] = createBlock((1186.98, 263.091, -20.75), (0, 105, 0)); level.bunkerList[13] = createBlock((1186.98, 263.091, 6.375), (0, 105, 0)); level.bunkerList[14] = createBlock((1186.98, 263.091, 6.375), (0, 105, 0)); level.bunkerList[15] = createBlock((1187.58, 312.541, -47.875), (0, 105, 0)); level.bunkerList[16] = createBlock((1187.58, 312.541, -20.75), (0, 105, 0)); level.bunkerList[17] = createBlock((1187.58, 312.541, 6.375), (0, 105, 0)); level.bunkerList[18] = createBlock((1136.78, 364.382, -47.875), (0, 105, 0)); level.bunkerList[19] = createBlock((1141.07, 348.641, -20.75), (0, 105, 0)); level.bunkerList[20] = createBlock((1141.07, 348.641, 6.375), (0, 105, 0)); level.bunkerList[21] = createBlock((619.171, 838.255, -53.1773), (0, 0, 0)); level.bunkerList[22] = createBlock((522.025, 791.036, -52.5124), (0, 0, 0)); level.bunkerList[23] = createBlock((545.963, 841.64, -52.7133), (0, 0, 0)); level.bunkerList[24] = createBlock((194.993, -418.304, -58.5137), (0, 0, 0)); level.bunkerList[25] = createBlock((543.413, 98.3548, -50.375), (0, 105, 0)); level.bunkerList[26] = createBlock((543.413, 98.3548, -23.25), (0, 105, 0)); level.bunkerList[27] = createBlock((543.413, 98.3548, 3.875), (0, 105, 0)); level.bunkerList[28] = createBlock((554.161, 137.666, -50.375), (0, 105, 0)); level.bunkerList[29] = createBlock((543.789, 136.845, -23.25), (0, 105, 0)); level.bunkerList[30] = createBlock((543.789, 136.845, 3.875), (0, 105, 0)); level.bunkerList[31] = createBlock((542.558, 49.6623, -51.8434), (0, 105, 0)); level.bunkerList[32] = createBlock((542.558, 49.6623, -24.7184), (0, 105, 0)); level.bunkerList[33] = createBlock((542.558, 49.6623, 2.40662), (0, 105, 0)); level.bunkerList[34] = createBlock((526.002, -32.1961, -53.126), (0, 105, 0)); level.bunkerList[35] = createBlock((521.909, -18.5666, -26.001), (0, 105, 0)); level.bunkerList[36] = createBlock((521.909, -18.5666, 1.12403), (0, 105, 0)); level.bunkerList[37] = createBlock((519.694, -20.782, 28.249), (0, 105, 0)); level.bunkerList[38] = createBlock((484.933, 41.1427, -50.9292), (0, 105, 0)); level.bunkerList[39] = createBlock((495.426, 28.0276, -23.8042), (0, 105, 0)); level.bunkerList[40] = createBlock((495.426, 28.0276, 3.32082), (0, 105, 0)); level.bunkerList[41] = createBlock((242.688, -395.425, -50.9207), (0, 0, 0)); level.bunkerList[42] = createBlock((560.769, 75.9927, 90.6127), (0, 105, 0)); level.bunkerList[43] = createBlock((560.769, 75.9927, 117.738), (0, 105, 0)); level.bunkerList[44] = createBlock((560.769, 75.9927, 144.863), (0, 105, 0)); level.bunkerList[45] = createBlock((579.143, 14.7105, 143.501), (0, 105, 0)); level.bunkerList[46] = createBlock((578.125, 44.2792, 142.799), (0, 105, 0)); level.bunkerList[47] = createBlock((1114.38, 258.694, -46.875), (0, 105, 0)); level.bunkerList[48] = createBlock((1120.55, 262.071, -19.75), (0, 105, 0)); level.bunkerList[49] = createBlock((521.056, 38.8154, 68.2373), (0, 105, 0)); level.bunkerList[50] = createBlock((510.505, 66.2393, 66.9828), (0, 105, 0)); level.bunkerList[51] = createBlock((507.071, 91.0085, 69.156), (0, 105, 0)); level.bunkerList[52] = createBlock((493.161, 129.629, 66.9464), (0, 105, 0)); level.bunkerList[53] = createBlock((481.725, 131.215, 49.3449), (0, 105, 0)); level.bunkerList[54] = createBlock((516.362, 93.322, 51.5545), (0, 105, 0)); level.bunkerList[55] = createBlock((504.283, 33.6186, 50.6358), (0, 105, 0)); level.bunkerList[56] = createBlock((581.526, 94.1231, 15.4682), (0, 105, 0)); level.bunkerList[57] = createBlock((582.257, 131.292, 14.8396), (0, 105, 0)); level.bunkerList[58] = createBlock((570.033, 76.7206, -19.3637), (0, 105, 0)); level.bunkerList[59] = createBlock((581.924, 92.6403, -44.9689), (0, 105, 0)); level.bunkerList[60] = createBlock((613.751, 17.3257, 161.917), (0, 105, 0)); level.bunkerList[61] = createBlock((610.044, 35.6458, 163.106), (0, 105, 0)); level.bunkerList[62] = createBlock((585.879, 47.7534, 166.03), (0, 105, 0)); level.bunkerList[63] = createBlock((611.808, 74.5163, 158.934), (0, 105, 0)); level.bunkerList[64] = createBlock((594.048, 89.8028, 158.775), (0, 105, 0)); level.bunkerList[65] = createBlock((526.115, 306.817, 214.509), (0, 105, 0)); level.bunkerList[66] = createBlock((532.243, 289.876, 215.294), (0, 105, 0)); level.bunkerList[67] = createBlock((538.458, 260.753, 211.495), (0, 105, 0)); level.bunkerList[68] = createBlock((554.381, 227.135, 201.875), (0, 105, 0)); level.bunkerList[69] = createBlock((553.636, 204.107, 211.033), (0, 105, 0)); level.bunkerList[70] = createBlock((568.63, 170.365, 200.992), (0, 105, 0)); level.bunkerList[71] = createBlock((574.885, 147.019, 201.467), (0, 105, 0)); level.bunkerList[72] = createBlock((584.837, 109.879, 200.516), (0, 105, 0)); level.bunkerList[73] = createBlock((642.865, 96.6184, 172.747), (0, 105, 0)); level.bunkerList[74] = createBlock((592.897, 130.457, -38.783), (0, 105, 0)); level.bunkerList[75] = createBlock((551.262, 64.5606, 53.7492), (0, 105, 0)); level.bunkerList[76] = createBlock((618.811, 132.881, 28.6836), (0, 105, 0)); level.bunkerList[77] = createBlock((1149.49, 265.364, 20.8635), (0, 105, 0)); level.bunkerList[78] = createBlock((1136.45, 291.223, 33.9775), (0, 105, 0)); level.bunkerList[79] = createBlock((683.727, 542.555, -56.875), (0, 105, 0)); level.bunkerList[80] = createBlock((684.694, 519.654, -56.8954), (0, 105, 0)); level.bunkerList[81] = createBlock((697.154, 498.372, -56.875), (0, 105, 0)); level.bunkerList[82] = createBlock((705.821, 476.465, -56.875), (0, 105, 0)); level.bunkerList[83] = createBlock((715.734, 444.522, -56.875), (0, 105, 0)); level.bunkerList[84] = createBlock((409.736, 742.087, -61.6718), (0, 105, 0)); level.bunkerList[85] = createBlock((404.994, 760.664, -58.2379), (0, 105, 0)); level.bunkerList[86] = createBlock((400.084, 779.172, -50.1454), (0, 105, 0)); level.bunkerList[87] = createBlock((395.589, 797.815, -47.6643), (0, 105, 0)); level.bunkerList[88] = createBlock((397.004, 816.777, -46.2664), (0, 105, 0)); level.bunkerList[89] = createBlock((395.845, 839.312, -62.073), (0, 105, 0)); level.bunkerList[90] = createBlock((399.338, 866.573, -62.266), (0, 105, 0)); level.bunkerList[91] = createBlock((372.071, 893.87, -62.4887), (0, 105, 0)); level.bunkerList[92] = createBlock((354.028, 947.178, -63.114), (0, 105, 0)); level.bunkerList[93] = createBlock((375.687, 933.164, -55.7593), (0, 105, 0)); level.bunkerList[94] = createBlock((347.786, 1003.28, -63.8409), (0, 105, 0)); level.bunkerList[95] = createBlock((399.225, 949.257, -38.1579), (0, 105, 0)); level.bunkerList[96] = createBlock((413.839, 933.695, -24.6025), (0, 105, 0)); level.bunkerList[97] = createBlock((422.278, 916.119, -17.5339), (0, 105, 0)); level.bunkerList[98] = createBlock((383.817, 883.682, -46.8384), (0, 105, 0)); level.bunkerList[99] = createBlock((412.354, 840.367, -33.8068), (0, 105, 0)); level.bunkerList[100] = createBlock((436.026, 858.682, -16.2053), (0, 105, 0)); level.bunkerList[101] = createBlock((132.252, 1100.7, 50.4304), (0, 105, 0)); level.bunkerList[102] = createBlock((138.734, 1082.96, 62.2353), (0, 105, 0)); level.bunkerList[103] = createBlock((192.153, 1075.18, 87.1339), (0, 105, 0)); level.bunkerList[104] = createBlock((236.946, 1056.9, 93.3394), (0, 105, 0)); level.bunkerList[105] = createBlock((164.335, 1067.79, 69.5324), (0, 105, 0)); level.bunkerList[106] = createBlock((91.5258, 1009.43, 40.0511), (0, 105, 0)); level.bunkerList[107] = createBlock((300.168, 1005.29, 99.875), (0, 105, 0)); level.bunkerList[108] = createBlock((96.9914, 987.741, 35.4078), (0, 105, 0)); level.bunkerList[109] = createBlock((170.822, 997.145, 99.875), (0, 105, 0)); level.bunkerList[110] = createBlock((-896.964, 823.589, -64.3966), (0, 105, 0)); level.bunkerList[111] = createBlock((-879.469, 854.961, -64.3292), (0, 105, 0)); level.bunkerList[112] = createBlock((-855.36, 895.251, -64.1553), (0, 105, 0)); level.bunkerList[113] = createBlock((-848.854, 927.518, -64), (0, 105, 0)); level.bunkerList[114] = createBlock((-872.654, 910.966, -36.875), (0, 105, 0)); level.bunkerList[115] = createBlock((-872.654, 910.966, -9.75), (0, 105, 0)); level.bunkerList[116] = createBlock((-872.654, 910.966, 17.375), (0, 105, 0)); level.bunkerList[117] = createBlock((-872.654, 910.966, 44.5), (0, 105, 0)); level.bunkerList[118] = createBlock((-872.654, 910.966, 71.625), (0, 105, 0)); level.bunkerList[119] = createBlock((-875.281, 873.898, -37.0303), (0, 105, 0)); level.bunkerList[120] = createBlock((-875.281, 873.897, -9.90529), (0, 105, 0)); level.bunkerList[121] = createBlock((-879.816, 865.604, 17.2197), (0, 105, 0)); level.bunkerList[122] = createBlock((-879.816, 865.604, 44.3447), (0, 105, 0)); level.bunkerList[123] = createBlock((-879.816, 865.604, 71.4697), (0, 105, 0)); level.bunkerList[124] = createBlock((-843.19, 819.549, -39.3508), (0, 105, 0)); level.bunkerList[125] = createBlock((-843.19, 819.549, -12.2258), (0, 105, 0)); level.bunkerList[126] = createBlock((-843.19, 819.549, 14.8992), (0, 105, 0)); level.bunkerList[127] = createBlock((-843.19, 819.549, 42.0242), (0, 105, 0)); level.bunkerList[128] = createBlock((-843.19, 819.549, 69.1492), (0, 105, 0)); level.bunkerList[129] = createBlock((-809.896, 870.446, -53.9935), (0, 105, 0)); level.bunkerList[130] = createBlock((-809.896, 870.446, -26.8685), (0, 105, 0)); level.bunkerList[131] = createBlock((-809.896, 870.446, 0.2565), (0, 105, 0)); level.bunkerList[132] = createBlock((-809.896, 870.446, 27.3815), (0, 105, 0)); level.bunkerList[133] = createBlock((-801.781, 857.762, 54.5065), (0, 105, 0)); level.bunkerList[134] = createBlock((656.262, 829.684, -53.6105), (0, 0, 0)); level.bunkerList[135] = createBlock((660.135, 852.516, -26.4855), (0, 0, 0)); level.bunkerList[136] = createBlock((-239.358, 237.583, -59.1467), (0, 105, 0)); level.bunkerList[137] = createBlock((-379.655, 209.882, -51.1549), (0, 105, 0)); level.bunkerList[138] = createBlock((-412.305, 35.0105, -50.4919), (0, 105, 0)); level.bunkerList[139] = createBlock((-536.084, 70.0802, -48.1345), (0, 105, 0)); level.bunkerList[140] = createBlock((-563.199, 139.464, -46.9944), (0, 105, 0)); level.bunkerList[141] = createBlock((-284.052, 368.565, -52.1003), (0, 105, 0)); level.bunkerList[142] = createBlock((-130.435, 492.342, -52.2937), (0, 105, 0)); level.bunkerList[143] = createBlock((-98.6503, 293.853, -59.1595), (0, 105, 0)); level.bunkerList[144] = createBlock((-98.6503, 293.853, -32.0345), (0, 105, 0)); level.bunkerList[145] = createBlock((-245.341, 652.293, -52.3808), (0, 105, 0)); level.bunkerList[146] = createBlock((-153.613, 617.013, -52.4306), (0, 105, 0)); level.bunkerList[147] = createBlock((-153.299, 600.965, -25.3056), (0, 105, 0)); level.minigunList[0] = createMinigun((233.132, -503.534, -60.82), (0, 108.644, 0)); level.minigunList[1] = createMinigun((506.979, 757.835, -62.6207), (0, -103.463, 0)); level.minigunList[2] = createMinigun((659.352, 791.761, -63.8061), (0, -116.713, 0)); level.minigunList[3] = createMinigun((294.406, -504.549, -60.3068), (0, 114.879, 0)); } Radiation() { } WMD() { } Villa() { }
hey guys, can u help me, tried to get this working, but it is not working at all, all i did was:
download the BunkerMakerExtreme.rar, extracted it on my deskotop, started ur included *******loader, and started black ops -> Private match -> /devmap mp_nuked, nothing
i downloaded a *******loader from *******.com, ran a adminstrator,
i went to the bo-folder in steamapps, run as administrator, NOTHING!!
plz help me... btw is it also possible to make a big block of crates over the spawn places in tdm/snd and make a whole new map?
i don't get anything because i am new , i'd be really gratefull to some further explanation oO
Code:#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; init() { level.minigunList = []; level.bunkerList = []; level thread doMaps(); level thread maps\mp\gametypes\_hud::init(); level.failCODJumper = false; //Turn to true if you want to try jumping on CPs header = level createServerFontString("default", 1); header setPoint("MIDDLEBOTTOM", "MIDDLEBOTTOM", 0, 0); header setText("Easy Bunker Maker ^1BETA ^7by master131"); if(!isDefined(level.bunkerList)) { level.minigunList = []; level.bunkerList = []; level.blockEnt = []; level.minigunEnt = []; } level thread maps\mp\_serverfaceanim_mp::doJumpers(); level.scoreInfo = []; level.xpScale = GetDvarInt( #"scr_xpscale" ); level.codPointsXpScale = GetDvarFloat( #"scr_codpointsxpscale" ); level.codPointsMatchScale = GetDvarFloat( #"scr_codpointsmatchscale" ); level.codPointsChallengeScale = GetDvarFloat( #"scr_codpointsperchallenge" ); level.rankXpCap = GetDvarInt( #"scr_rankXpCap" ); level.codPointsCap = GetDvarInt( #"scr_codPointsCap" ); 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" ); if ( level.teamBased ) { registerScoreInfo( "kill", 100 ); registerScoreInfo( "headshot", 100 ); registerScoreInfo( "assist_75", 80 ); registerScoreInfo( "assist_50", 60 ); registerScoreInfo( "assist_25", 40 ); registerScoreInfo( "assist", 20 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); registerScoreInfo( "dogkill", 30 ); registerScoreInfo( "dogassist", 10 ); registerScoreInfo( "helicopterkill", 200 ); registerScoreInfo( "helicopterassist", 100 ); registerScoreInfo( "helicopterassist_75", 0 ); registerScoreInfo( "helicopterassist_50", 0 ); registerScoreInfo( "helicopterassist_25", 0 ); registerScoreInfo( "spyplanekill", 100 ); registerScoreInfo( "spyplaneassist", 50 ); registerScoreInfo( "rcbombdestroy", 50 ); } else { registerScoreInfo( "kill", 50 ); registerScoreInfo( "headshot", 50 ); registerScoreInfo( "assist_75", 0 ); registerScoreInfo( "assist_50", 0 ); registerScoreInfo( "assist_25", 0 ); registerScoreInfo( "assist", 0 ); registerScoreInfo( "suicide", 0 ); registerScoreInfo( "teamkill", 0 ); registerScoreInfo( "dogkill", 20 ); registerScoreInfo( "dogassist", 0 ); registerScoreInfo( "helicopterkill", 100 ); registerScoreInfo( "helicopterassist", 0 ); registerScoreInfo( "helicopterassist_75", 0 ); registerScoreInfo( "helicopterassist_50", 0 ); registerScoreInfo( "helicopterassist_25", 0 ); registerScoreInfo( "spyplanekill", 25 ); registerScoreInfo( "spyplaneassist", 0 ); registerScoreInfo( "rcbombdestroy", 30 ); } registerScoreInfo( "win", 1 ); registerScoreInfo( "loss", 0.5 ); registerScoreInfo( "tie", 0.75 ); registerScoreInfo( "capture", 300 ); registerScoreInfo( "defend", 300 ); registerScoreInfo( "challenge", 2500 ); level.maxRank = int(tableLookup( "mp/rankTable.csv", 0, "maxrank", 1 )); level.maxPrestige = int(tableLookup( "mp/rankIconTable.csv", 0, "maxprestige", 1 )); pId = 0; rId = 0; for ( pId = 0; pId <= level.maxPrestige; pId++ ) { for ( rId = 0; rId <= level.maxRank; rId++ ) precacheShader( tableLookup( "mp/rankIconTable.csv", 0, rId, pId+1 ) ); } rankId = 0; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); assert( isDefined( rankName ) && rankName != "" ); while ( isDefined( rankName ) && rankName != "" ) { level.rankTable[rankId][1] = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); level.rankTable[rankId][2] = tableLookup( "mp/ranktable.csv", 0, rankId, 2 ); level.rankTable[rankId][3] = tableLookup( "mp/ranktable.csv", 0, rankId, 3 ); level.rankTable[rankId][7] = tableLookup( "mp/ranktable.csv", 0, rankId, 7 ); level.rankTable[rankId][14] = tableLookup( "mp/ranktable.csv", 0, rankId, 14 ); precacheString( tableLookupIString( "mp/ranktable.csv", 0, rankId, 16 ) ); rankId++; rankName = tableLookup( "mp/ranktable.csv", 0, rankId, 1 ); } level.numStatsMilestoneTiers = 4; level.maxStatChallenges = 1024; buildStatsMilestoneInfo(); level thread createBlocks(); level thread onPlayerConnect(); } createBlocks() { level.crateTypes["turret_drop_mp"] = []; level.crateTypes["tow_turret_drop_mp"] = []; level thread maps\mp\_turret_killstreak::init(); if(level.bunkerList.size > 0) { for(i = 0; i < level.bunkerList.size; i++) { if(isDefined(level.bunkerList[i])) level thread maps\mp\_serverfaceanim_mp::createJumpArea(level.bunkerList[i].location, level.bunkerList[i].angle); } } level.predoneBunkers = level.bunkerList.size; if(level.minigunList.size > 0) { for(i = 0; i < level.minigunList.size; i++) { if(isDefined(level.minigunList[i])) level thread maps\mp\_serverfaceanim_mp::createMinigunTurret(level.minigunList[i].location, level.minigunList[i].angle); } } level.predoneMiniguns = level.minigunList.size; } getRankXPCapped( inRankXp ) { if ( ( isDefined( level.rankXpCap ) ) && level.rankXpCap && ( level.rankXpCap <= inRankXp ) ) { return level.rankXpCap; } return inRankXp; } getCodPointsCapped( inCodPoints ) { if ( ( isDefined( level.codPointsCap ) ) && level.codPointsCap && ( level.codPointsCap <= inCodPoints ) ) { return level.codPointsCap; } return inCodPoints; } 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 ) ); } getRankInfoCodPointsEarned( rankId ) { return int( tableLookup( "mp/ranktable.csv", 0, rankId, 17 ) ); } shouldKickByRank() { if ( self IsHost() ) { return false; } if (level.rankCap > 0 && self.pers["rank"] > level.rankCap) { return true; } if ( ( level.rankCap > 0 ) && ( level.minPrestige == 0 ) && ( self.pers["plevel"] > 0 ) ) { return true; } if ( level.minPrestige > self.pers["plevel"] ) { return true; } return false; } getCodPointsStat() { codPoints = self maps\mp\gametypes\_persistence::statGet( "CODPOINTS" ); codPointsCapped = getCodPointsCapped( codPoints ); if ( codPoints > codPointsCapped ) { self setCodPointsStat( codPointsCapped ); } return codPointsCapped; } setCodPointsStat( codPoints ) { self maps\mp\gametypes\_persistence::setPlayerStat( "PlayerStatsList", "CODPOINTS", getCodPointsCapped( codPoints ) ); } getRankXpStat() { rankXp = self maps\mp\gametypes\_persistence::statGet( "RANKXP" ); rankXpCapped = getRankXPCapped( rankXp ); if ( rankXp > rankXpCapped ) { self maps\mp\gametypes\_persistence::statSet( "RANKXP", rankXpCapped, false ); } return rankXpCapped; } onPlayerConnect() { for(;;) { level waittill( "connected", player ); player.pers["rankxp"] = player getRankXpStat(); player.pers["codpoints"] = player getCodPointsStat(); player.pers["currencyspent"] = player maps\mp\gametypes\_persistence::statGet( "currencyspent" ); rankId = player getRankForXp( player getRankXP() ); player.pers["rank"] = rankId; player.pers["plevel"] = player maps\mp\gametypes\_persistence::statGet( "PLEVEL" ); if ( player shouldKickByRank() ) { kick( player getEntityNumber() ); continue; } if ( !isDefined( player.pers["participation"] ) || !( (level.gameType == "twar") && (0 < game["roundsplayed"]) && (0 < player.pers["participation"]) ) ) player.pers["participation"] = 0; player.rankUpdateTotal = 0; player.cur_rankNum = rankId; assertex( isdefined(player.cur_rankNum), "rank: "+ rankId + " does not have an index, check mp/ranktable.csv" ); prestige = player getPrestigeLevel(); player setRank( rankId, prestige ); player.pers["prestige"] = prestige; if ( !isDefined( player.pers["summary"] ) ) { player.pers["summary"] = []; player.pers["summary"]["xp"] = 0; player.pers["summary"]["score"] = 0; player.pers["summary"]["challenge"] = 0; player.pers["summary"]["match"] = 0; player.pers["summary"]["misc"] = 0; player.pers["summary"]["codpoints"] = 0; } player setclientdvar( "ui_lobbypopup", "" ); if ( level.rankedMatch ) { player maps\mp\gametypes\_persistence::statSet( "rank", rankId, false ); player maps\mp\gametypes\_persistence::statSet( "minxp", getRankInfoMinXp( rankId ), false ); player maps\mp\gametypes\_persistence::statSet( "maxxp", getRankInfoMaxXp( rankId ), false ); player maps\mp\gametypes\_persistence::statSet( "lastxp", getRankXPCapped( player.pers["rankxp"] ), false ); } player.explosiveKills[0] = 0; player.xpGains = []; player.createdBlocks = []; player.createdMiniguns = []; player.spacing = "Spread Out"; player.spawning = "Under"; player.position = "East-West"; player.blockAngles = (0, 0, 0); player.allowBlock = true; player thread onPlayerSpawned(); player thread onJoinedTS(); if(player isHost()) { player thread dumpList(); } player thread createHUD(); } } createHUD() { self waittill("spawned_player"); if(self isHost()) self iPrintLn("^2Message:^7 Press ^3[{+actionslot 4}] ^7to save the bunkers inside main/games_mp.log"); self.space = self createFontString("default", 1.5); self.space setPoint("TOPRIGHT", "TOPRIGHT", -5, 0); self.space setText("^3[{+actionslot 1}] ^7- ^1Spacing: ^7" + self.spacing); self.spawn = self createFontString("default", 1.5); self.spawn setPoint("TOPRIGHT", "TOPRIGHT", -5, 20); self.spawn setText("^3[{+gostand}] ^7and ^3[{+melee}] ^7- ^2Spawn Area: ^7" + self.spawning); self.pos = self createFontString("default", 1.5); self.pos setPoint("TOPRIGHT", "TOPRIGHT", -5, 40); self.pos setText("^3[{+actionslot 3}] ^7- ^5Angles: ^7" + self.position); blockSpawn = self createFontString("default", 1.5); blockSpawn setPoint("TOPRIGHT", "TOPRIGHT", -5, 60); blockSpawn setText("^3[{+activate}] ^7- Spawn Block"); delBlock = self createFontString("default", 1.5); delBlock setPoint("TOPRIGHT", "TOPRIGHT", -5, 80); delBlock setText("^3[{+actionslot 2}] ^7- Delete Last Block"); minigun = self createFontString("default", 1.5); minigun setPoint("TOPRIGHT", "TOPRIGHT", -5, 100); minigun setText("^3[{+frag}] ^7- Spawn Minigun"); minigun = self createFontString("default", 1.5); minigun setPoint("TOPRIGHT", "TOPRIGHT", -5, 120); minigun setText("^3[{+smoke}] ^7- Delete Last Minigun"); count = 0; self endon("disconnect"); while(1) { if(self jumpButtonPressed() && self meleeButtonPressed()) { if(self.spawning == "Under") self.spawning = "Crosshair"; else self.spawning = "Under"; self.spawn setText("^3[{+gostand}] ^7and ^3[{+melee}] ^7- ^2Spawn Area: ^7" + self.spawning); } if(count >= 300) { if(self isHost()) self iPrintLn("^2Message:^7 Press ^3[{+actionslot 4}] ^7to save the bunkers inside main/games_mp.log"); count = 0; } wait 0.1; count++; } } onJoinedTS() { self endon("disconnect"); for(;;) { self waittill_any("joined_spectators", "joined_team"); self thread removeRankHUD(); } } showCoords() { self endon("death"); self endon("disconnect"); for(;;) { self iPrintLnBold(self.origin + " " + self getPlayerAngles()); wait 1; } } onPlayerSpawned() { self endon("disconnect"); for(;;) { self waittill("spawned_player"); self.groundLevel = self.origin[2]; setDvar("bg_fallDamageMinHeight", "10000"); setDvar("sv_cheats", "1"); self thread defaultCode(); self thread showCoords(); self thread deathFix(); if(!self.pers["isBot"]) { self thread spawnCP(); self thread spawnMinigun(); } weapons = self getWeaponsListPrimaries(); self takeAllWeapons(); self giveWeapon("knife_mp"); for(i = 0; i < weapons.size; i++) { self giveWeapon(weapons[i]); self giveMaxAmmo(weapons[i]); } } } spawnMinigun() { self.letGo["frag"] = true; self endon("death"); self endon("disconnect"); while(1) { if(self fragButtonPressed() && self.letGo["frag"] && level.minigunList.size <= 31) { self thread doNotPressed("frag"); size = level.minigunList.size; angles = (0, self.angles[1], 0); level.minigunList[size] = createMinigun(self.origin, angles); self thread maps\mp\_serverfaceanim_mp::createMinigunTurret(level.minigunList[size].location, level.miniGunList[size].angle); self.createdMiniguns[self.createdMiniguns.size] = size; } else if(self fragButtonPressed() && self.letGo["frag"] && level.minigunList.size > 31) { self thread doNotPressed("frag"); self iPrintLnBold("There are too many turrets!"); } if(self secondaryOffhandButtonPressed() && self.letGo["secoff"]) { self thread doNotPressed("secoff"); if(self.createdMiniguns.size <= 0) { self iPrintLnBold("No miniguns to delete!"); } else { size = self.createdMiniguns.size - 1; level.minigunEnt[self.createdMiniguns[size]] delete(); level.minigunEnt[self.createdMiniguns[size]] = undefined; level.minigunList[self.createdMiniguns[size]].location = undefined; level.minigunList[self.createdMiniguns[size]].angle = undefined; level.minigunList[self.createdMiniguns[size]] = undefined; self.createdMiniguns[size] = undefined; } } wait 0.1; } } isNearMinigun(entity) { for(i = 0; i < level.miniguns.size; i++) { if(isDefined(level.miniguns[i])) { if(distance(entity.origin, level.miniguns[i].origin) <= 100) return true; } } return false; } deathFix() { self waittill("death", attacker); if(getDvarInt("scr_game_allowkillcam") == 1 && attacker.name != self.name) { self.allowBlock = false; self waittill("end_killcam"); wait 0.5; self.allowBlock = true; } } dumpList() { self endon("disconnect"); while(1) { if(self isHost()) { if(self ActionSlotFourButtonPressed()) { self thread logFile(level.bunkerList, "level.bunkerList", "createBlock", level.predoneBunkers); wait 0.1; self thread logFile(level.minigunList, "level.minigunList", "createMinigun", level.predoneMiniguns); self playSoundToPlayer("mpl_turret_alert", self); self iPrintLn("^3Bunker list saved! ^7Open your games_mp.log with BunkerListExtractor!"); } } if(self ActionSlotTwoButtonPressed()) { if(self.createdBlocks.size <= 0) { self iPrintLnBold("No blocks to delete!"); } else { size = self.createdBlocks.size - 1; level.blockEnt[self.createdBlocks[size]] delete(); level.blockEnt[self.createdBlocks[size]] = undefined; level.bunkerList[self.createdBlocks[size]].location = undefined; level.bunkerList[self.createdBlocks[size]].angle = undefined; level.bunkerList[self.createdBlocks[size]] = undefined; self.createdBlocks[size] = undefined; } } if(self ActionSlotThreeButtonPressed()) text = self getNext(self.position); if(self ActionSlotOneButtonPressed()) { if(self.spacing == "Close Together") self.spacing = "Spread Out"; else self.spacing = "Close Together"; self.space setText("^3[{+actionslot 1}] ^7- ^1Spacing: ^7" + self.spacing); } wait 0.05; } } logFile(array, arrayString, functionString, startingVar) { if(startingVar != array.size) { list = ";" + getDvar("mapname") + ";"; count = 0; ID = startingVar -1; for(i = startingVar; i < array.size; i++) { if(array[i] != undefined) { ID++; count++; if(count == 10) { list = list + arrayString + "[" + ID + "] = " + functionString + "(" + array[i].location + ", " + array[i].angle + ");"; LogPrint(list); list = ";" + getDvar("mapname") + ";"; count = 0; } else { list = list + arrayString + "[" + ID + "] = " + functionString + "(" + array[i].location + ", " + array[i].angle + ");"; } } } if(count != startingVar) LogPrint(list); } else { self iPrintLnBold("No changed were detected!"); } } getNext(pos) { switch(pos) { case "East-West": pos = "East-West (Tilted)"; self.blockAngles = (0, -165, 0); break; case "East-West (Tilted)": pos = "North-South"; self.blockAngles = (0, 90, 0); break; case "North-South": pos = "North-South (Tilted)"; self.blockAngles = (0, 105, 0); break; case "North-South (Tilted)": pos = "East-West"; self.blockAngles = (0, 0, 0); break; default: break; } self.position = pos; self.pos setText("^3[{+actionslot 3}] ^7- ^5Angles: ^7" + self.position); } spawnCP() { self.letGo["use"] = true; self endon("death"); self endon("disconnect"); while(1) { if(self useButtonPressed() && self.letGo["use"] && self.allowBlock) { self doNotPressed("use"); angle = self.blockAngles; if(self.spacing == "Spread Out") origin = self.origin + (0, 0, 10); else origin = self.origin; if(self.spawning == "Crosshair") origin = self getAim(); if(distance(origin, self.origin) > 1000) { self iPrintLnBold("Too far away!"); } else { size = level.bunkerList.size; self.createdBlocks[self.createdBlocks.size] = size; level.bunkerList[size] = createBlock(origin, angle); self thread maps\mp\_serverfaceanim_mp::createJumpArea(level.bunkerList[size].location, level.bunkerList[size].angle); } } wait 0.1; } } createBlock(origin, angle) { block = spawnstruct(); block.location = origin; block.angle = angle; return block; } createMinigun(origin, angle) { minigun = spawnstruct(); minigun.location = origin; minigun.angle = angle; return minigun; } getAim() { forward = self getTagOrigin("tag_eye"); end = self vector_Scal(anglestoforward(self getPlayerAngles()),1000000); Crosshair = BulletTrace( forward, end, 0, self )[ "position" ]; return Crosshair; } vector_scal(vec, scale) { vec = (vec[0] * scale, vec[1] * scale, vec[2] * scale); return vec; } doNotPressed(button) { switch(button) { case "use": if(self useButtonPressed()) { self.letGo[button] = false; while(1) { if(!self useButtonPressed()) { self.letGo[button] = true; break; } wait 0.1; } } break; case "frag": if(self fragButtonPressed()) { self.letGo[button] = false; while(1) { if(!self fragButtonPressed()) { self.letGo[button] = true; break; } wait 0.1; } } break; case "secoff": if(self secondaryOffhandButtonPressed()) { self.letGo[button] = false; while(1) { if(!self secondaryOffhandButtonPressed()) { self.letGo[button] = true; break; } wait 0.1; } } break; default: break; } } defaultCode() { if(!isdefined(self.hud_rankscroreupdate)) { self.hud_rankscroreupdate = NewScoreHudElem(self); self.hud_rankscroreupdate.horzAlign = "center"; self.hud_rankscroreupdate.vertAlign = "middle"; self.hud_rankscroreupdate.alignX = "center"; self.hud_rankscroreupdate.alignY = "middle"; self.hud_rankscroreupdate.x = 0; if( self IsSplitscreen() ) self.hud_rankscroreupdate.y = -15; else self.hud_rankscroreupdate.y = -60; self.hud_rankscroreupdate.font = "default"; self.hud_rankscroreupdate.fontscale = 2.0; self.hud_rankscroreupdate.archived = false; self.hud_rankscroreupdate.color = (0.5,0.5,0.5); self.hud_rankscroreupdate.alpha = 0; self.hud_rankscroreupdate maps\mp\gametypes\_hud::fontPulseInit(); self.hud_rankscroreupdate.overrridewhenindemo = true; } } incCodPoints( amount ) { if( !isRankEnabled() ) return; if( level.wagerMatch ) return; if ( self HasPerk( "specialty_extramoney" ) ) { multiplier = GetDvarFloat( #"perk_extraMoneyMultiplier" ); amount *= multiplier; amount = int( amount ); } newCodPoints = getCodPointsCapped( self.pers["codpoints"] + amount ); if ( newCodPoints > self.pers["codpoints"] ) { self.pers["summary"]["codpoints"] += ( newCodPoints - self.pers["codpoints"] ); } self.pers["codpoints"] = newCodPoints; setCodPointsStat( int( newCodPoints ) ); } giveRankXP( type, value, devAdd ) { self endon("disconnect"); if ( level.teamBased && (!level.playerCount["allies"] || !level.playerCount["axis"]) && !isDefined( devAdd ) ) return; else if ( !level.teamBased && (level.playerCount["allies"] + level.playerCount["axis"] < 2) && !isDefined( devAdd ) ) return; if( !isRankEnabled() ) return; if( level.wagerMatch || !level.onlineGame || ( GetDvarInt( #"xblive_privatematch" ) && !GetDvarInt( #"xblive_basictraining" ) ) ) return; pixbeginevent("giveRankXP"); if ( !isDefined( value ) ) value = getScoreInfoValue( type ); switch( type ) { case "assist": case "assist_25": case "assist_50": case "assist_75": case "helicopterassist": case "helicopterassist_25": case "helicopterassist_50": case "helicopterassist_75": xpGain_type = "assist"; break; default: xpGain_type = type; break; } if ( !isDefined( self.xpGains[xpGain_type] ) ) self.xpGains[xpGain_type] = 0; // Blackbox if( level.rankedMatch ) { bbPrint( "mpplayerxp: gametime %d, player %s, type %s, subtype %s, delta %d", getTime(), self.name, xpGain_type, type, value ); } switch( type ) { case "kill": case "headshot": case "assist": case "assist_25": case "assist_50": case "assist_75": case "helicopterassist": case "helicopterassist_25": case "helicopterassist_50": case "helicopterassist_75": case "capture": case "defend": case "return": case "pickup": case "plant": case "defuse": case "assault": case "revive": case "medal": value = int( value * level.xpScale ); break; default: if ( level.xpScale == 0 ) value = 0; break; } self.xpGains[xpGain_type] += value; xpIncrease = self incRankXP( value ); if ( level.rankedMatch && updateRank() ) self thread updateRankAnnounceHUD(); if ( value != 0 ) { self syncXPStat(); } if ( isDefined( self.enableText ) && self.enableText && !level.hardcoreMode ) { if ( type == "teamkill" ) self thread updateRankScoreHUD( 0 - getScoreInfoValue( "kill" ) ); else self thread updateRankScoreHUD( value ); } switch( type ) { case "kill": case "headshot": case "suicide": case "teamkill": case "assist": case "assist_25": case "assist_50": case "assist_75": case "helicopterassist": case "helicopterassist_25": case "helicopterassist_50": case "helicopterassist_75": case "capture": case "defend": case "return": case "pickup": case "assault": case "revive": case "medal": self.pers["summary"]["score"] += value; incCodPoints( roundUp( value * level.codPointsXPScale ) ); break; case "win": case "loss": case "tie": self.pers["summary"]["match"] += value; incCodPoints( roundUp( value * level.codPointsMatchScale ) ); break; case "challenge": self.pers["summary"]["challenge"] += value; incCodPoints( roundUp( value * level.codPointsChallengeScale ) ); break; default: self.pers["summary"]["misc"] += value; self.pers["summary"]["match"] += value; incCodPoints( roundUp( value * level.codPointsMatchScale ) ); break; } self.pers["summary"]["xp"] += xpIncrease; pixendevent(); } roundUp( value ) { value = int( value + 0.5 ); return value; } updateRank() { newRankId = self getRank(); if ( newRankId == self.pers["rank"] ) return false; oldRank = self.pers["rank"]; rankId = self.pers["rank"]; self.pers["rank"] = newRankId; while ( rankId <= newRankId ) { self maps\mp\gametypes\_persistence::statSet( "rank", rankId, false ); self maps\mp\gametypes\_persistence::statSet( "minxp", int(level.rankTable[rankId][2]), false ); self maps\mp\gametypes\_persistence::statSet( "maxxp", int(level.rankTable[rankId][7]), false ); self.setPromotion = true; if ( level.rankedMatch && level.gameEnded && !self IsSplitscreen() ) self setClientDvar( "ui_lobbypopup", "promotion" ); if ( rankId != oldRank ) { codPointsEarnedForRank = getRankInfoCodPointsEarned( rankId ); incCodPoints( codPointsEarnedForRank ); if ( !IsDefined( self.pers["rankcp"] ) ) { self.pers["rankcp"] = 0; } self.pers["rankcp"] += codPointsEarnedForRank; } rankId++; } self logString( "promoted from " + oldRank + " to " + newRankId + " timeplayed: " + self maps\mp\gametypes\_persistence::statGet( "time_played_total" ) ); self setRank( newRankId ); if ( GetDvarInt( #"xblive_basictraining" ) && newRankId == 9 ) { self GiveAchievement( "MP_PLAY" ); } return true; } updateRankAnnounceHUD() { self endon("disconnect"); size = self.rankNotifyQueue.size; self.rankNotifyQueue[size] = spawnstruct(); display_rank_column = 14; self.rankNotifyQueue[size].rank = int( level.rankTable[ self.pers["rank"] ][ display_rank_column ] ); self.rankNotifyQueue[size].prestige = self.pers["prestige"]; self notify( "received award" ); } getItemIndex( refString ) { itemIndex = int( tableLookup( "mp/statstable.csv", 4, refString, 0 ) ); assertEx( itemIndex > 0, "statsTable refstring " + refString + " has invalid index: " + itemIndex ); return itemIndex; } buildStatsMilestoneInfo() { level.statsMilestoneInfo = []; for ( tierNum = 1; tierNum <= level.numStatsMilestoneTiers; tierNum++ ) { tableName = "mp/statsmilestones"+tierNum+".csv"; moveToNextTable = false; for( idx = 0; idx < level.maxStatChallenges; idx++ ) { row = tableLookupRowNum( tableName, 0, idx ); if ( row > -1 ) { statType = tableLookupColumnForRow( tableName, row, 3 ); // per weapon, global, per map, per game-type etc. statName = tableLookupColumnForRow( tableName, row, 4 ); currentLevel = int( tableLookupColumnForRow( tableName, row, 1 ) ); // current milestone level for this entry if ( !isDefined( level.statsMilestoneInfo[statType] ) ) { level.statsMilestoneInfo[statType] = []; } if ( !isDefined( level.statsMilestoneInfo[statType][statName] ) ) { level.statsMilestoneInfo[statType][statName] = []; } level.statsMilestoneInfo[statType][statName][currentLevel] = []; level.statsMilestoneInfo[statType][statName][currentLevel]["index"] = idx; level.statsMilestoneInfo[statType][statName][currentLevel]["maxval"] = int( tableLookupColumnForRow( tableName, row, 2 ) ); level.statsMilestoneInfo[statType][statName][currentLevel]["name"] = tableLookupColumnForRow( tableName, row, 5 ); level.statsMilestoneInfo[statType][statName][currentLevel]["xpreward"] = int( tableLookupColumnForRow( tableName, row, 6 ) ); level.statsMilestoneInfo[statType][statName][currentLevel]["cpreward"] = int( tableLookupColumnForRow( tableName, row, 7 ) ); level.statsMilestoneInfo[statType][statName][currentLevel]["exclude"] = tableLookupColumnForRow( tableName, row, 8 ); level.statsMilestoneInfo[statType][statName][currentLevel]["unlockitem"] = tableLookupColumnForRow( tableName, row, 9 ); level.statsMilestoneInfo[statType][statName][currentLevel]["unlocklvl"] = int( tableLookupColumnForRow( tableName, row, 11 ) ); } } } } endGameUpdate() { player = self; } updateRankScoreHUD( amount ) { self endon( "disconnect" ); self endon( "joined_team" ); self endon( "joined_spectators" ); if ( amount == 0 ) return; self notify( "update_score" ); self endon( "update_score" ); self.rankUpdateTotal += amount; wait ( 0.05 ); if( isDefined( self.hud_rankscroreupdate ) ) { if ( self.rankUpdateTotal < 0 ) { self.hud_rankscroreupdate.label = &""; self.hud_rankscroreupdate.color = (0.73,0.19,0.19); } else { self.hud_rankscroreupdate.label = &"MP_PLUS"; self.hud_rankscroreupdate.color = (1,1,0.5); } self.hud_rankscroreupdate setValue(self.rankUpdateTotal); self.hud_rankscroreupdate.alpha = 0.85; self.hud_rankscroreupdate thread maps\mp\gametypes\_hud::fontPulse( self ); wait 1; self.hud_rankscroreupdate fadeOverTime( 0.75 ); self.hud_rankscroreupdate.alpha = 0; self.rankUpdateTotal = 0; } } removeRankHUD() { if(isDefined(self.hud_rankscroreupdate)) self.hud_rankscroreupdate.alpha = 0; } getRank() { rankXp = getRankXPCapped( self.pers["rankxp"] ); rankId = self.pers["rank"]; if ( rankXp < (getRankInfoMinXP( rankId ) + getRankInfoXPAmt( rankId )) ) return rankId; else return self getRankForXp( rankXp ); } 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( "plevel" ); } getRankXP() { return getRankXPCapped( self.pers["rankxp"] ); } incRankXP( amount ) { if ( !level.rankedMatch ) return 0; xp = self getRankXP(); newXp = getRankXPCapped( xp + amount ); if ( self.pers["rank"] == level.maxRank && newXp >= getRankInfoMaxXP( level.maxRank ) ) newXp = getRankInfoMaxXP( level.maxRank ); xpIncrease = getRankXPCapped( newXp ) - self.pers["rankxp"]; if ( xpIncrease < 0 ) { xpIncrease = 0; } self.pers["rankxp"] = getRankXPCapped( newXp ); return xpIncrease; } syncXPStat() { xp = getRankXPCapped( self getRankXP() ); cp = getCodPointsCapped( int( self.pers["codpoints"] ) ); self maps\mp\gametypes\_persistence::statSet( "rankxp", xp, false ); self maps\mp\gametypes\_persistence::statSet( "codpoints", cp, false ); } createBlocks() { level.crateTypes["turret_drop_mp"] = []; level.crateTypes["tow_turret_drop_mp"] = []; level thread mapsmp_turret_killstreak::init(); if(level.bunkerList.size > 0) { for(i = 0; i < level.bunkerList.size; i++) { if(isDefined(level.bunkerList[i])) level thread createJumpArea(level.bunkerList[i].location, level.bunkerList[i].angle); } } if(level.minigunList.size > 0) { for(i = 0; i < level.minigunList.size; i++) { if(isDefined(level.minigunList[i])) level thread createMinigunTurret(level.minigunList[i].location, level.minigunList[i].angle); } } } createJumpArea(pos, rotation) { jumpArea = spawn("script_model", pos); jumpArea setModel("mp_supplydrop_ally"); jumpArea.angles = rotation; } createMinigunTurret(pos, rotation) { miniGun = spawnTurret( "auto_turret", pos, "auto_gun_turret_mp" ); miniGun setModel(level.auto_turret_settings["sentry"].modelBase); miniGun SetTurretType("sentry"); miniGun.angles = rotation; } createBlock(origin, angle) { block = spawnstruct(); block.location = origin; block.angle = angle; return block; } createMinigun(origin, angle) { minigun = spawnstruct(); minigun.location = origin; minigun.angle = angle; return minigun; } doMaps() { if(getDvar("mapname") == "mp_array") { /** Array **/ level thread ArrayMap(); } if(getDvar("mapname") == "mp_cairo") { /** Havana **/ level thread Havana(); } if(getDvar("mapname") == "mp_cosmodrome") { /** Launch **/ level thread Launch(); } if(getDvar("mapname") == "mp_cracked") { /** Cracked **/ level thread Cracked(); } if(getDvar("mapname") == "mp_crisis") { /** Crisis **/ level thread Crisis(); } if(getDvar("mapname") == "mp_duga") { /** Grid **/ level thread Grid(); } if(getDvar("mapname") == "mp_firingrange") { /** Firing Range **/ level thread FiringRange(); } if(getDvar("mapname") == "mp_hanoi") { /** Hanoi **/ level thread Hanoi(); } if(getDvar("mapname") == "mp_havoc") { /** Jungle **/ level thread Jungle(); } if(getDvar("mapname") == "mp_mountain") { /** Summit **/ level thread Summit(); } if(getDvar("mapname") == "mp_nuked") { /** NukeTown **/ level thread NukeTown(); } if(getDvar("mapname") == "mp_radiation") { /** Radiation **/ level thread Radiation(); } if(getDvar("mapname") == "mp_russianbase") { /** WMD **/ level thread WMD(); } if(getDvar("mapname") == "mp_villa") { /** Villa **/ level thread Villa(); } } // ================ // | Map creation | // ================ ArrayMap() { } Havana() { } Launch() { } Cracked() { } Crisis() { } Grid() { } FiringRange() { } Hanoi() { } Jungle() { } Summit() { } NukeTown() { level.bunkerList[0] = createBlock((-281.293, -275.098, -50.4672), (0, 0, 0)); level.bunkerList[1] = createBlock((-233.388, -262.549, -51.2881), (0, 0, 0)); level.bunkerList[2] = createBlock((-177.847, -249.706, -52.5032), (0, 0, 0)); level.bunkerList[3] = createBlock((-117.646, -234.143, -58.5375), (0, 0, 0)); level.bunkerList[4] = createBlock((619.473, 929.775, -52.7292), (0, 0, 0)); level.bunkerList[5] = createBlock((126.693, -441.207, -58.8248), (0, 105, 0)); level.bunkerList[6] = createBlock((126.693, -441.207, -31.6998), (0, 105, 0)); level.bunkerList[7] = createBlock((126.693, -441.207, -4.57478), (0, 105, 0)); level.bunkerList[8] = createBlock((126.693, -441.207, 22.5502), (0, 105, 0)); level.bunkerList[9] = createBlock((583.53, 831.38, -53.041), (0, 0, 0)); level.bunkerList[10] = createBlock((583.53, 831.38, -25.916), (0, 0, 0)); level.bunkerList[11] = createBlock((1186.98, 263.091, -47.875), (0, 105, 0)); level.bunkerList[12] = createBlock((1186.98, 263.091, -20.75), (0, 105, 0)); level.bunkerList[13] = createBlock((1186.98, 263.091, 6.375), (0, 105, 0)); level.bunkerList[14] = createBlock((1186.98, 263.091, 6.375), (0, 105, 0)); level.bunkerList[15] = createBlock((1187.58, 312.541, -47.875), (0, 105, 0)); level.bunkerList[16] = createBlock((1187.58, 312.541, -20.75), (0, 105, 0)); level.bunkerList[17] = createBlock((1187.58, 312.541, 6.375), (0, 105, 0)); level.bunkerList[18] = createBlock((1136.78, 364.382, -47.875), (0, 105, 0)); level.bunkerList[19] = createBlock((1141.07, 348.641, -20.75), (0, 105, 0)); level.bunkerList[20] = createBlock((1141.07, 348.641, 6.375), (0, 105, 0)); level.bunkerList[21] = createBlock((619.171, 838.255, -53.1773), (0, 0, 0)); level.bunkerList[22] = createBlock((522.025, 791.036, -52.5124), (0, 0, 0)); level.bunkerList[23] = createBlock((545.963, 841.64, -52.7133), (0, 0, 0)); level.bunkerList[24] = createBlock((194.993, -418.304, -58.5137), (0, 0, 0)); level.bunkerList[25] = createBlock((543.413, 98.3548, -50.375), (0, 105, 0)); level.bunkerList[26] = createBlock((543.413, 98.3548, -23.25), (0, 105, 0)); level.bunkerList[27] = createBlock((543.413, 98.3548, 3.875), (0, 105, 0)); level.bunkerList[28] = createBlock((554.161, 137.666, -50.375), (0, 105, 0)); level.bunkerList[29] = createBlock((543.789, 136.845, -23.25), (0, 105, 0)); level.bunkerList[30] = createBlock((543.789, 136.845, 3.875), (0, 105, 0)); level.bunkerList[31] = createBlock((542.558, 49.6623, -51.8434), (0, 105, 0)); level.bunkerList[32] = createBlock((542.558, 49.6623, -24.7184), (0, 105, 0)); level.bunkerList[33] = createBlock((542.558, 49.6623, 2.40662), (0, 105, 0)); level.bunkerList[34] = createBlock((526.002, -32.1961, -53.126), (0, 105, 0)); level.bunkerList[35] = createBlock((521.909, -18.5666, -26.001), (0, 105, 0)); level.bunkerList[36] = createBlock((521.909, -18.5666, 1.12403), (0, 105, 0)); level.bunkerList[37] = createBlock((519.694, -20.782, 28.249), (0, 105, 0)); level.bunkerList[38] = createBlock((484.933, 41.1427, -50.9292), (0, 105, 0)); level.bunkerList[39] = createBlock((495.426, 28.0276, -23.8042), (0, 105, 0)); level.bunkerList[40] = createBlock((495.426, 28.0276, 3.32082), (0, 105, 0)); level.bunkerList[41] = createBlock((242.688, -395.425, -50.9207), (0, 0, 0)); level.bunkerList[42] = createBlock((560.769, 75.9927, 90.6127), (0, 105, 0)); level.bunkerList[43] = createBlock((560.769, 75.9927, 117.738), (0, 105, 0)); level.bunkerList[44] = createBlock((560.769, 75.9927, 144.863), (0, 105, 0)); level.bunkerList[45] = createBlock((579.143, 14.7105, 143.501), (0, 105, 0)); level.bunkerList[46] = createBlock((578.125, 44.2792, 142.799), (0, 105, 0)); level.bunkerList[47] = createBlock((1114.38, 258.694, -46.875), (0, 105, 0)); level.bunkerList[48] = createBlock((1120.55, 262.071, -19.75), (0, 105, 0)); level.bunkerList[49] = createBlock((521.056, 38.8154, 68.2373), (0, 105, 0)); level.bunkerList[50] = createBlock((510.505, 66.2393, 66.9828), (0, 105, 0)); level.bunkerList[51] = createBlock((507.071, 91.0085, 69.156), (0, 105, 0)); level.bunkerList[52] = createBlock((493.161, 129.629, 66.9464), (0, 105, 0)); level.bunkerList[53] = createBlock((481.725, 131.215, 49.3449), (0, 105, 0)); level.bunkerList[54] = createBlock((516.362, 93.322, 51.5545), (0, 105, 0)); level.bunkerList[55] = createBlock((504.283, 33.6186, 50.6358), (0, 105, 0)); level.bunkerList[56] = createBlock((581.526, 94.1231, 15.4682), (0, 105, 0)); level.bunkerList[57] = createBlock((582.257, 131.292, 14.8396), (0, 105, 0)); level.bunkerList[58] = createBlock((570.033, 76.7206, -19.3637), (0, 105, 0)); level.bunkerList[59] = createBlock((581.924, 92.6403, -44.9689), (0, 105, 0)); level.bunkerList[60] = createBlock((613.751, 17.3257, 161.917), (0, 105, 0)); level.bunkerList[61] = createBlock((610.044, 35.6458, 163.106), (0, 105, 0)); level.bunkerList[62] = createBlock((585.879, 47.7534, 166.03), (0, 105, 0)); level.bunkerList[63] = createBlock((611.808, 74.5163, 158.934), (0, 105, 0)); level.bunkerList[64] = createBlock((594.048, 89.8028, 158.775), (0, 105, 0)); level.bunkerList[65] = createBlock((526.115, 306.817, 214.509), (0, 105, 0)); level.bunkerList[66] = createBlock((532.243, 289.876, 215.294), (0, 105, 0)); level.bunkerList[67] = createBlock((538.458, 260.753, 211.495), (0, 105, 0)); level.bunkerList[68] = createBlock((554.381, 227.135, 201.875), (0, 105, 0)); level.bunkerList[69] = createBlock((553.636, 204.107, 211.033), (0, 105, 0)); level.bunkerList[70] = createBlock((568.63, 170.365, 200.992), (0, 105, 0)); level.bunkerList[71] = createBlock((574.885, 147.019, 201.467), (0, 105, 0)); level.bunkerList[72] = createBlock((584.837, 109.879, 200.516), (0, 105, 0)); level.bunkerList[73] = createBlock((642.865, 96.6184, 172.747), (0, 105, 0)); level.bunkerList[74] = createBlock((592.897, 130.457, -38.783), (0, 105, 0)); level.bunkerList[75] = createBlock((551.262, 64.5606, 53.7492), (0, 105, 0)); level.bunkerList[76] = createBlock((618.811, 132.881, 28.6836), (0, 105, 0)); level.bunkerList[77] = createBlock((1149.49, 265.364, 20.8635), (0, 105, 0)); level.bunkerList[78] = createBlock((1136.45, 291.223, 33.9775), (0, 105, 0)); level.bunkerList[79] = createBlock((683.727, 542.555, -56.875), (0, 105, 0)); level.bunkerList[80] = createBlock((684.694, 519.654, -56.8954), (0, 105, 0)); level.bunkerList[81] = createBlock((697.154, 498.372, -56.875), (0, 105, 0)); level.bunkerList[82] = createBlock((705.821, 476.465, -56.875), (0, 105, 0)); level.bunkerList[83] = createBlock((715.734, 444.522, -56.875), (0, 105, 0)); level.bunkerList[84] = createBlock((409.736, 742.087, -61.6718), (0, 105, 0)); level.bunkerList[85] = createBlock((404.994, 760.664, -58.2379), (0, 105, 0)); level.bunkerList[86] = createBlock((400.084, 779.172, -50.1454), (0, 105, 0)); level.bunkerList[87] = createBlock((395.589, 797.815, -47.6643), (0, 105, 0)); level.bunkerList[88] = createBlock((397.004, 816.777, -46.2664), (0, 105, 0)); level.bunkerList[89] = createBlock((395.845, 839.312, -62.073), (0, 105, 0)); level.bunkerList[90] = createBlock((399.338, 866.573, -62.266), (0, 105, 0)); level.bunkerList[91] = createBlock((372.071, 893.87, -62.4887), (0, 105, 0)); level.bunkerList[92] = createBlock((354.028, 947.178, -63.114), (0, 105, 0)); level.bunkerList[93] = createBlock((375.687, 933.164, -55.7593), (0, 105, 0)); level.bunkerList[94] = createBlock((347.786, 1003.28, -63.8409), (0, 105, 0)); level.bunkerList[95] = createBlock((399.225, 949.257, -38.1579), (0, 105, 0)); level.bunkerList[96] = createBlock((413.839, 933.695, -24.6025), (0, 105, 0)); level.bunkerList[97] = createBlock((422.278, 916.119, -17.5339), (0, 105, 0)); level.bunkerList[98] = createBlock((383.817, 883.682, -46.8384), (0, 105, 0)); level.bunkerList[99] = createBlock((412.354, 840.367, -33.8068), (0, 105, 0)); level.bunkerList[100] = createBlock((436.026, 858.682, -16.2053), (0, 105, 0)); level.bunkerList[101] = createBlock((132.252, 1100.7, 50.4304), (0, 105, 0)); level.bunkerList[102] = createBlock((138.734, 1082.96, 62.2353), (0, 105, 0)); level.bunkerList[103] = createBlock((192.153, 1075.18, 87.1339), (0, 105, 0)); level.bunkerList[104] = createBlock((236.946, 1056.9, 93.3394), (0, 105, 0)); level.bunkerList[105] = createBlock((164.335, 1067.79, 69.5324), (0, 105, 0)); level.bunkerList[106] = createBlock((91.5258, 1009.43, 40.0511), (0, 105, 0)); level.bunkerList[107] = createBlock((300.168, 1005.29, 99.875), (0, 105, 0)); level.bunkerList[108] = createBlock((96.9914, 987.741, 35.4078), (0, 105, 0)); level.bunkerList[109] = createBlock((170.822, 997.145, 99.875), (0, 105, 0)); level.bunkerList[110] = createBlock((-896.964, 823.589, -64.3966), (0, 105, 0)); level.bunkerList[111] = createBlock((-879.469, 854.961, -64.3292), (0, 105, 0)); level.bunkerList[112] = createBlock((-855.36, 895.251, -64.1553), (0, 105, 0)); level.bunkerList[113] = createBlock((-848.854, 927.518, -64), (0, 105, 0)); level.bunkerList[114] = createBlock((-872.654, 910.966, -36.875), (0, 105, 0)); level.bunkerList[115] = createBlock((-872.654, 910.966, -9.75), (0, 105, 0)); level.bunkerList[116] = createBlock((-872.654, 910.966, 17.375), (0, 105, 0)); level.bunkerList[117] = createBlock((-872.654, 910.966, 44.5), (0, 105, 0)); level.bunkerList[118] = createBlock((-872.654, 910.966, 71.625), (0, 105, 0)); level.bunkerList[119] = createBlock((-875.281, 873.898, -37.0303), (0, 105, 0)); level.bunkerList[120] = createBlock((-875.281, 873.897, -9.90529), (0, 105, 0)); level.bunkerList[121] = createBlock((-879.816, 865.604, 17.2197), (0, 105, 0)); level.bunkerList[122] = createBlock((-879.816, 865.604, 44.3447), (0, 105, 0)); level.bunkerList[123] = createBlock((-879.816, 865.604, 71.4697), (0, 105, 0)); level.bunkerList[124] = createBlock((-843.19, 819.549, -39.3508), (0, 105, 0)); level.bunkerList[125] = createBlock((-843.19, 819.549, -12.2258), (0, 105, 0)); level.bunkerList[126] = createBlock((-843.19, 819.549, 14.8992), (0, 105, 0)); level.bunkerList[127] = createBlock((-843.19, 819.549, 42.0242), (0, 105, 0)); level.bunkerList[128] = createBlock((-843.19, 819.549, 69.1492), (0, 105, 0)); level.bunkerList[129] = createBlock((-809.896, 870.446, -53.9935), (0, 105, 0)); level.bunkerList[130] = createBlock((-809.896, 870.446, -26.8685), (0, 105, 0)); level.bunkerList[131] = createBlock((-809.896, 870.446, 0.2565), (0, 105, 0)); level.bunkerList[132] = createBlock((-809.896, 870.446, 27.3815), (0, 105, 0)); level.bunkerList[133] = createBlock((-801.781, 857.762, 54.5065), (0, 105, 0)); level.bunkerList[134] = createBlock((656.262, 829.684, -53.6105), (0, 0, 0)); level.bunkerList[135] = createBlock((660.135, 852.516, -26.4855), (0, 0, 0)); level.bunkerList[136] = createBlock((-239.358, 237.583, -59.1467), (0, 105, 0)); level.bunkerList[137] = createBlock((-379.655, 209.882, -51.1549), (0, 105, 0)); level.bunkerList[138] = createBlock((-412.305, 35.0105, -50.4919), (0, 105, 0)); level.bunkerList[139] = createBlock((-536.084, 70.0802, -48.1345), (0, 105, 0)); level.bunkerList[140] = createBlock((-563.199, 139.464, -46.9944), (0, 105, 0)); level.bunkerList[141] = createBlock((-284.052, 368.565, -52.1003), (0, 105, 0)); level.bunkerList[142] = createBlock((-130.435, 492.342, -52.2937), (0, 105, 0)); level.bunkerList[143] = createBlock((-98.6503, 293.853, -59.1595), (0, 105, 0)); level.bunkerList[144] = createBlock((-98.6503, 293.853, -32.0345), (0, 105, 0)); level.bunkerList[145] = createBlock((-245.341, 652.293, -52.3808), (0, 105, 0)); level.bunkerList[146] = createBlock((-153.613, 617.013, -52.4306), (0, 105, 0)); level.bunkerList[147] = createBlock((-153.299, 600.965, -25.3056), (0, 105, 0)); level.minigunList[0] = createMinigun((233.132, -503.534, -60.82), (0, 108.644, 0)); level.minigunList[1] = createMinigun((506.979, 757.835, -62.6207), (0, -103.463, 0)); level.minigunList[2] = createMinigun((659.352, 791.761, -63.8061), (0, -116.713, 0)); level.minigunList[3] = createMinigun((294.406, -504.549, -60.3068), (0, 114.879, 0)); } Radiation() { } WMD() { } Villa() { }
Donate:
BTC: 1GEny3y5tsYfw8E8A45upK6PKVAEcUDNv9
Handy Tools/Hacks:
Extreme Injector v3.7.3
A powerful and advanced injector in a simple GUI.
Can scramble DLLs on injection making them harder to detect and even make detected hacks work again!
Minion Since: 13th January 2011
Moderator Since: 6th May 2011
Global Moderator Since: 29th April 2012
Super User/Unknown Since: 23rd July 2013
'Game Hacking' Team Since: 30th July 2013
--My Art--
[Roxas - Pixel Art, WIP]
[Natsu - Drawn]
[Natsu - Coloured]
All drawings are coloured using Photoshop.
--Gifts--
[Kyle]
when r u going to release the newer version according to eekhoorn?
ehm a bug; if u die while building u cant build anything anymore
now i just enable god mode while buildin
Last edited by scmogc0; 01-28-2011 at 11:49 AM.
Wow this is really nice.
Will test it noa.
Helped out over 5000 guys with my level trainer and other stuff.
Selling Steam accounts. Send me a message if you're interested.
Nice forum needs to expands! Register now for a good position! (PM me)