Post: Announcement: New MW3 Playlists!
12-16-2011, 04:36 AM #1
-Xcuz-
Banned
(adsbygoogle = window.adsbygoogle || []).push({}); New playlists are confirmed for Call of Duty: Modern Warfare 3!

Robert Bowling(FourTwoZero)-
Originally posted by another user
Friday, December 16th, we're updating the playlists on Modern Warfare 3 to introduce some new game modes as well as change up some existing ones.

The biggest change you'lll notice is the addition of Community Playlists. This is where we will add popular or unique private match modes to the public playlists, so you can start ranking up on them! The first playlist changes for Modern Warfare 3 multiplayer are listed below:

DROP ZONE

Get to the drop zone to earn points, the first team to 7500 points wins the round, but thats not all. As long as the Drop Zone is occupied, a care package will drop every 15 seconds, which ever team has the most members in the drop zone at that point "owns" the care package, but anyone can steal it. This is the only way to earn air support in this mode, all other pointstreaks are disabled. You'll earn 20 points per team member, for every second they're in the drop zone plus 20 XP individually for your time spent in the zone. Kills are worth 50 XP in this mode.

Custom Settings: Pointstreaks (besides those obtained through in-game care packages) are disabled.

Hardcore HQ Ricochet

We'll be adding Hardcore Headquarters to the Hardcore Team Tactical playlist.

Hardcore Ricochet

We'll be converting all Hardcore modes to Ricochet variant as a response to team killing. This means, any friendly fire, is applied to the attacker, rather than the victim. So choose your shots wisely and any attempt to team kill will simply kill yourself.




Twitter:
[img]https://i1200.photobucket.com/albums/bb333/iXcuz/other crap/Capture-2.png[/img]
(adsbygoogle = window.adsbygoogle || []).push({});

The following 4 users say thank you to -Xcuz- for this useful post:

AgentSexyPig, AMNE, Dingus98, Omfg Jon
12-16-2011, 07:47 AM #11
-Xcuz-
Banned
Originally posted by Marvilla View Post
Drop Zone kind of LegendOfThuder's idea


I have no idea who that is. I'm guessing a YouTube/Machinima partner? :p
12-16-2011, 08:26 AM #12
Porter_Justice
Cake is a lie
If that mode is a campfest then don't play it and profit?

Was hoping for a Support Killstreaks disabled game mode... Tisk tisk :carling:
12-16-2011, 08:34 AM #13
Grumpfy
cameltóe, french much?
Originally posted by Xcuz
I have no idea who that is. I'm guessing a YouTube/Machinima partner? :p


Yeah, 402THUNDER402
12-16-2011, 09:01 AM #14
Honk
Brute
tested that game mode in private match before it got released to public. Its basically HQ with care packages. Sounds not so bad and i dont think that camping outside of the HQ would be a good idea cause you wont get any air support streaks. Allright every 1 get specialist and motion sensors out.
12-16-2011, 01:09 PM #15
NeedaLifeSoon
Retired Life
Domination with one flag?
I could see a tube fest depending on the size if the drop zone.

The spawn points may be an issue if your defending and tour team gets wiped out by a tube and spawn in the other side of the map.

The initial capture could be key.

When they say your team owns the care package, I assume they mean anyone on your team can take it in 2 seconds.

I just fear it will be all tubes and rpg's
12-16-2011, 02:00 PM #16
TheJaRniBoi
Why So Serious?
lol:

Originally posted by another user

DROP ZONE

Get to the drop zone to earn points, the first team to 7500 points wins the round, but thats not all. As long as the Drop Zone is occupied, a care package will drop every 15 seconds, which ever team has the most members in the drop zone at that point "owns" the care package, but anyone can steal it. This is the only way to earn air support in this mode, all other pointstreaks are disabled. You'll earn 20 points per team member, for every second they're in the drop zone plus 20 XP individually for your time spent in the zone. Kills are worth 50 XP in this mode.



This was found way before IW announced it. I found it in the GSC files. It called grnd.GSC and i posted info about it in the exploit section. You get every killstreak in the game this includes assault and support.

Grinder Airdrop Possibilities:
     
airdrop_grnd,uav, 25,
airdrop_grnd,counter_uav, 25,
airdrop_grnd,deployable_vest, 21,
airdrop_grnd,sentry, 21,
airdrop_grnd,remote_mg_turret, 17,
airdrop_grnd,ims, 17,
airdrop_grnd,triple_uav, 13,
airdrop_grnd,predator_missile, 13,
airdrop_grnd,airdrop_trap, 11,
airdrop_grnd,precision_airstrike, 9,
airdrop_grnd,stealth_airstrike, 9,
airdrop_grnd,helicopter, 9,
airdrop_grnd,remote_tank, 7,
airdrop_grnd,sam_turret, 7,
airdrop_grnd,remote_uav, 7,
airdrop_grnd,littlebird_support, 4,
airdrop_grnd,airdrop_juggernaut_recon, 4,
airdrop_grnd,littlebird_flock, 2,
airdrop_grnd,helicopter_flares, 2,
airdrop_grnd,remote_mortar, 2,
airdrop_grnd,ac130, 2,
airdrop_grnd,airdrop_juggernaut, 1,
airdrop_grnd,osprey_gunner, 1,
airdrop_grnd,emp, 1,


Grinder (Drop Zone) GSC:
    #include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

/*
Drop Zone
Objective: Score points for your team over time by holding the drop zone.
Periodic carepackage awarded to player who's been in drop zone the longest.
Map ends: When one team reaches the score limit, or time limit is reached
Respawning: No wait / Near teammates / Near drop zone

Level requirementss
------------------
Start Spawnpoints:
classname mp_sab_spawn_allies_start, mp_sab_spawn_axis_start

Spawnpoints:
classname mp_tdm_spawn
All players spawn from these. The spawnpoint chosen is dependent on the current locations of drop zone, teammates, and enemies
at the time of spawn. Players generally spawn behind their teammates relative to the direction of enemies.

Spectator Spawnpoints:
classname mp_global_intermission
Spectators spawn from these and intermission is viewed from these positions.
Atleast one is required, any more and they are randomly chosen between.
*/

GRND_ZONE_TOUCH_RADIUS = 300;
GRND_ZONE_DROP_RADIUS = 72;

main()
{
if(getdvar("mapname") == "mp_background")
return;

maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();

if ( isUsingMatchRulesData() )
{
level.initializeMatchRules = ::initializeMatchRules;
[[level.initializeMatchRules]]();
level thread reInitializeMatchRulesOnMigration();
}
else
{
registerRoundSwitchDvar( level.gameType, 0, 0, 9 );
registerTimeLimitDvar( level.gameType, 10 );
registerScoreLimitDvar( level.gameType, 20000 );
registerRoundLimitDvar( level.gameType, 1 );
registerWinLimitDvar( level.gameType, 1 );
registerNumLivesDvar( level.gameType, 0 );
registerHalfTimeDvar( level.gameType, 0 );

level.matchRules_dropTime = 30;
level.matchRules_zoneSwitchTime = 120;
level.matchRules_damageMultiplier = 0;
level.matchRules_vampirism = 0;
}

level.teamBased = true;
level.onPrecacheGameType = :GaspnPrecacheGameType;
level.onStartGameType = :GaspnStartGameType;
level.getSpawnPoint = ::getSpawnPoint;
level.onSpawnPlayer = :GaspnSpawnPlayer;

if ( level.matchRules_damageMultiplier || level.matchRules_vampirism )
level.modifyPlayerDamage = maps\mp\gametypes\_damage::gamemodeModifyPlayerDamage;

level.grnd_fx["smoke"] = loadFx( "smoke/airdrop_flare_mp_effect_now" );
level.grnd_fx["flare"] = loadFx( "smoke/signal_smoke_airdrop" );

createZones();
}


initializeMatchRules()
{
// set common values
setCommonRulesFromMatchRulesData();

// set everything else (private match options, default .cfg file values, and what normally is registered in the 'else' below)
level.matchRules_dropTime = GetMatchRulesData( "grndData", "dropTime" );
level.matchRules_zoneSwitchTime = 60 * GetMatchRulesData( "grndData", "zoneSwitchTime" );

SetDynamicDvar( "scr_grnd_roundswitch", 0 );
registerRoundSwitchDvar( "grnd", 0, 0, 9 );
SetDynamicDvar( "scr_grnd_roundlimit", 1 );
registerRoundLimitDvar( "grnd", 1 );
SetDynamicDvar( "scr_grnd_winlimit", 1 );
registerWinLimitDvar( "grnd", 1 );
SetDynamicDvar( "scr_grnd_halftime", 0 );
registerHalfTimeDvar( "grnd", 0 );

SetDynamicDvar( "scr_grnd_promode", 0 );
}


onPrecacheGameType()
{
precacheShader( "waypoint_captureneutral" );
precacheShader( "waypoint_capture" );
precacheShader( "waypoint_defend" );

precacheModel( "prop_flag_neutral" );

precacheString( &"OBJECTIVES_GRND" );
precacheString( &"OBJECTIVES_GRND_SCORE" );
precacheString( &"OBJECTIVES_GRND_HINT" );
precacheString( &"OBJECTIVES_GRND_CONFIRM" );
precacheString( &"MP_CALLING_AIRDROP" );
precacheString( &"MP_NEXT_DROP_ZONE_IN" );

precacheModel( "weapon_us_smoke_grenade_burnt2" );
}


onStartGameType()
{
setClientNameMode("auto_change");

if ( !isdefined( game["switchedsides"] ) )
game["switchedsides"] = false;

setObjectiveText( "allies", &"OBJECTIVES_GRND" );
setObjectiveText( "axis", &"OBJECTIVES_GRND" );

if ( level.splitscreen )
{
setObjectiveScoreText( "allies", &"OBJECTIVES_GRND" );
setObjectiveScoreText( "axis", &"OBJECTIVES_GRND" );
}
else
{
setObjectiveScoreText( "allies", &"OBJECTIVES_GRND_SCORE" );
setObjectiveScoreText( "axis", &"OBJECTIVES_GRND_SCORE" );
}
setObjectiveHintText( "allies", &"OBJECTIVES_GRND_HINT" );
setObjectiveHintText( "axis", &"OBJECTIVES_GRND_HINT" );

level.spawnMins = ( 0, 0, 0 );
level.spawnMaxs = ( 0, 0, 0 );
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_sab_spawn_allies_start" );
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_sab_spawn_axis_start" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_tdm_spawn" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_tdm_spawn" );
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
setMapCenter( level.mapCenter );

// get the central loction for first DZ using the SAB bomb, before it is removed
centerLocObj = getEnt( "sab_bomb", "targetname" );
level.grnd_centerLoc = centerLocObj.origin;

maps\mp\gametypes\_rank::registerScoreInfo( "zone_kill", 100 );
maps\mp\gametypes\_rank::registerScoreInfo( "zone_tick", 20 );

allowed[0] = level.gameType;
allowed[1] = "tdm";

maps\mp\gametypes\_gameobjects::main(allowed);

level.grnd_timerDisplay = createServerTimer( "objective", 1.4 );
level.grnd_timerDisplay setPoint( "TOPLEFT", "TOPLEFT", 115, 5 );
level.grnd_timerDisplay.label = &"MP_NEXT_DROP_ZONE_IN";
level.grnd_timerDisplay.alpha = 0;
level.grnd_timerDisplay.archived = false;
level.grnd_timerDisplay.hideWhenInMenu = true;
thread hideHudElementOnGameEnd( level.grnd_timerDisplay );

initFirstZone();
}


initFirstZone()
{
level.zonesCycling = false;

// find the closest zone to center
shortestDistance = 999999;
shortestDistanceIndex = 0;
for ( i=0; i<level.grnd_dropZones[level.script].size; i++ )
{
dropZone = level.grnd_dropZones[level.script][i];
distToCenter = distance2d( level.grnd_centerLoc, dropZone );
if ( distToCenter < shortestDistance )
{
shortestDistance = distToCenter;
shortestDistanceIndex = i;
}
}
level.grnd_initialIndex = shortestDistanceIndex;
initilPos = level.grnd_dropZones[level.script][shortestDistanceIndex];

// create marker
level.grnd_zone = spawn( "script_model", initilPos );
level.grnd_zone.origin = initilPos;
level.grnd_zone.angles = ( 90, 0, 0 );
level.grnd_zone setModel( "weapon_us_smoke_grenade_burnt2" );

// spawning
level.favorCloseSpawnEnt = level.grnd_zone;
level.favorCloseSpawnScalar = 5;

// make the rest
level thread initZones();
}


initZones()
{
level.grnd_zones = [];
for ( i=0; i<level.grnd_dropZones[level.script].size; i++ )
{
dropZone = level.grnd_dropZones[level.script][i];
level.grnd_zones[i] = spawn( "script_origin", dropZone );
level.grnd_zones[i].origin = dropZone;
wait( 0.05 );
}

level.grnd_zones[level.grnd_initialIndex] delete();
level.grnd_zones[level.grnd_initialIndex] = undefined;
level.grnd_zones = array_removeUndefined( level.grnd_zones );
}


getSpawnPoint()
{
if ( level.inGracePeriod )
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_" + self.pers["team"] + "_start" );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random( spawnPoints );
}
else
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
}

return spawnPoint;
}


onSpawnPlayer()
{
// in/out zone indicator
if ( !isDefined( self.inGrindZone ) )
{
level thread setPlayerMessages( self );

// let the first player in activate this
if ( !level.zonesCycling )
{
level thread cycleZones();
level thread locationScoring();
}
}

level notify ( "spawned_player" );
}


setPlayerMessages( player )
{
level endon( "game_ended" );

gameFlagWait( "prematch_done" );

// points
player.inGrindZonePoints = 0;

// hud indicator
player.grndHUDText = player createFontString( "small", 1.6 );
player.grndHUDText setPoint( "TOP LEFT", "TOP LEFT", 115, 22 );
player.grndHUDText.alpha = 1;
player.grndHUDText.hideWhenInMenu = true;
level thread hideHudElementOnGameEnd( player.grndHUDText );

// hud icon
player.grndHeadIcon = level.grnd_zone maps\mp\_entityheadIcons::setHeadIcon( player, "waypoint_captureneutral", (0,0,0), 14, 14, undefined, undefined, undefined, undefined, undefined, false );

// minimap waypoint
player.grndObjId = maps\mp\gametypes\_gameobjects::getNextObjID();
objective_add( player.grndObjId, "invisible", (0,0,0) );
objective_player( player.grndObjId, player getEntityNumber() );
Objective_OnEntity( player.grndObjId, level.grnd_zone );
objective_icon( player.grndObjId, "waypoint_captureneutral" );
objective_state( player.grndObjId, "active" );

if ( distance2D( level.grnd_zone.origin, player.origin ) < GRND_ZONE_TOUCH_RADIUS )
{
player.inGrindZone = true;
player.grndHUDText setText( &"OBJECTIVES_GRND_CONFIRM" );
player.grndHUDText.color = (0.6,1,0.6);
player.grndHeadIcon.alpha = 0;
}
else
{
player.inGrindZone = false;
player.grndHUDText setText( &"OBJECTIVES_GRND_HINT" );
player.grndHUDText.color = (1,0.6,0.6);
player.grndHeadIcon.alpha = 0.85;
}

player.grnd_wasSpectator = false;
if ( player.team == "spectator" )
{
player.inGrindZone = false;
player.inGrindZonePoints = 0;
player.grndHeadIcon.alpha = 0;
player.grndHUDText.alpha = 0;
player.grnd_wasSpectator = true;
}

player thread grndTracking();
}


getNextZone()
{
pos = undefined;
index = undefined;

if ( level.grnd_zones.size > 2 )
{
// get the distance to the current zone from all the remaining zones
// set index and save furthest and closest along the way
closestDistance = 999999;
furthestDistance = 0;
for ( i=0; i<level.grnd_zones.size; i++ )
{
level.grnd_zones[i].index = i;
level.grnd_zones[i].distToZone = distance( level.grnd_zones[i].origin, level.grnd_zone.origin );
if ( level.grnd_zones[i].distToZone > furthestDistance )
furthestDistance = level.grnd_zones[i].distToZone;
else if ( level.grnd_zones[i].distToZone < closestDistance )
closestDistance = level.grnd_zones[i].distToZone;
}

// try to get a grouping of far zones to randomly choose from
farZones = [];
closeZones = [];
halfDistance = int( ( closestDistance + furthestDistance ) / 2 );
for ( i=0; i<level.grnd_zones.size; i++ )
{
if ( level.grnd_zones[i].distToZone >= halfDistance )
farZones[farZones.size] = level.grnd_zones[i];
else
closeZones[closeZones.size] = level.grnd_zones[i];
}
zone = undefined;
if ( farZones.size > 1 )
zone = farZones[ randomIntRange( 0, farZones.size ) ];
else
zone = farZones[0];
index = zone.index;
}
else if ( level.grnd_zones.size == 2 )
{
distanceA = distance( level.grnd_zones[0].origin, level.grnd_zone.origin );
distanceB = distance( level.grnd_zones[1].origin, level.grnd_zone.origin );
if ( distanceA > distanceB )
index = 0;
else
index = 1;
}
else if ( level.grnd_zones.size == 1 )
{
index = 0;
}

if ( isDefined( index ) )
{
pos = level.grnd_zones[index].origin;
level.grnd_zones[index] delete();
level.grnd_zones[index] = undefined;
level.grnd_zones = array_removeUndefined( level.grnd_zones );
}
else
{
// start all over
pos = level.grnd_dropZones[level.script][level.grnd_initialIndex];
level thread initZones();
}

return pos;
}


cycleZones()
{
level endon( "game_ended" );

gameFlagWait( "prematch_done" );

while( true )
{
initialScores["axis"] = game["teamScores"]["axis"];
initialScores["allies"] = game["teamScores"]["allies"];

// move zone
pos = undefined;
if ( !level.zonesCycling )
{
level.zonesCycling = true;
pos = level.grnd_zone.origin;
}
else
{
pos = getNextZone();
StopFxOnTag( level.grnd_fx["smoke"], level.grnd_zone, "tag_fx" );
wait( 0.05 );
}
traceStart = pos;
traceEnd = pos + (0,0,-1000);
trace = bulletTrace( traceStart, traceEnd, false, undefined );
level.grnd_zone.origin = trace["position"]+(0,0,1);

// smoke
wait( 0.05 );
PlayFxOnTag( level.grnd_fx["smoke"], level.grnd_zone, "tag_fx" );

// reset drops
if ( level.matchRules_dropTime )
level thread randomDrops();

// wait
level.grnd_timerDisplay.label = &"MP_NEXT_DROP_ZONE_IN";
level.grnd_timerDisplay setTimer( level.matchRules_zoneSwitchTime );
level.grnd_timerDisplay.alpha = 1;
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( level.matchRules_zoneSwitchTime );
level.grnd_timerDisplay.alpha = 0;

// audio cue for progress
if ( game["teamScores"]["axis"] - initialScores["axis"] > game["teamScores"]["allies"] - initialScores["allies"] )
{
playSoundOnPlayers( "mp_obj_captured", "axis" );
playSoundOnPlayers( "mp_enemy_obj_captured", "allies" );
}
else if ( game["teamScores"]["allies"] - initialScores["allies"] > game["teamScores"]["axis"] - initialScores["axis"] )
{
playSoundOnPlayers( "mp_obj_captured", "allies" );
playSoundOnPlayers( "mp_enemy_obj_captured", "axis" );
}
}
}


grndTracking()
{
self endon( "disconnect" );
level endon( "game_ended" );

while( true )
{
if ( !self.grnd_wasSpectator && self.team == "spectator" )
{
self.inGrindZone = false;
self.inGrindZonePoints = 0;
self.grndHeadIcon.alpha = 0;
self.grndHUDText.alpha = 0;
self.grnd_wasSpectator = true;
}
else if ( self.team != "spectator" )
{
if ( ( self.grnd_wasSpectator || !self.inGrindZone ) && distance2D( level.grnd_zone.origin, self.origin ) < GRND_ZONE_TOUCH_RADIUS )
{
self.inGrindZone = true;
self.inGrindZonePoints = 0;
self.grndHUDText setText( &"OBJECTIVES_GRND_CONFIRM" );
self.grndHUDText.color = (0.6,1,0.6);
self.grndHUDText.alpha = 1;
self.grndHeadIcon.alpha = 0;
}
else if ( ( self.grnd_wasSpectator || self.inGrindZone ) && distance2D( level.grnd_zone.origin, self.origin ) >= GRND_ZONE_TOUCH_RADIUS )
{
self.inGrindZone = false;
self.inGrindZonePoints = 0;
self.grndHUDText setText( &"OBJECTIVES_GRND_HINT" );
self.grndHUDText.color = (1,0.6,0.6);
self.grndHUDText.alpha = 1;
self.grndHeadIcon.alpha = 0.85;
}
self.grnd_wasSpectator = false;
}

wait( 0.05 );
}
}


locationScoring()
{
level endon( "game_ended" );

gameFlagWait( "prematch_done" );

score = maps\mp\gametypes\_rank::getScoreInfoValue( "zone_tick" );
assert( isDefined( score ) );

while( true )
{
numPlayers["axis"] = 0;
numPlayers["allies"] = 0;

// score
foreach( player in level.players )
{
if ( isDefined( player.inGrindZone ) && isAlive( player ) && distance2D( level.grnd_zone.origin, player.origin ) < GRND_ZONE_TOUCH_RADIUS )
{
numPlayers[player.pers["team"]]++;
player.inGrindZonePoints += score;
}
}
if ( numPlayers["axis"] )
maps\mp\gametypes\_gamescore::giveTeamScoreForObjective( "axis", score * numPlayers["axis"] );
if ( numPlayers["allies"] )
maps\mp\gametypes\_gamescore::giveTeamScoreForObjective( "allies", score * numPlayers["allies"] );

// waypoints and compasspings
if ( numPlayers["axis"] == numPlayers["allies"] )
{
foreach( player in level.players )
{
if ( isDefined( player.inGrindZone ) )
{
player.grndHeadIcon setShader( "waypoint_captureneutral", 14, 14 );
player.grndHeadIcon setWaypoint( false, false, false, false );
objective_icon( player.grndObjId, "waypoint_captureneutral" );
}
}
}
else
{
foreach( player in level.players )
{
if ( isDefined( player.inGrindZone ) )
{
if ( numPlayers[player.pers["team"]] > numPlayers[level.otherTeam[player.pers["team"]]] )
{
player.grndHeadIcon setShader( "waypoint_defend", 14, 14 );
player.grndHeadIcon setWaypoint( false, false, false, false );
objective_icon( player.grndObjId, "waypoint_defend" );
}
else
{
player.grndHeadIcon setShader( "waypoint_capture", 14, 14 );
player.grndHeadIcon setWaypoint( false, false, false, false );
objective_icon( player.grndObjId, "waypoint_capture" );
}
}
}
}

// wait
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( 1.0 );
}
}

randomDrops()
{
level endon( "game_ended" );
level notify( "reset_grnd_drops" );
level endon( "reset_grnd_drops" );

// try for no repeats per zone
level.grnd_previousCrateTypes = [];

while( true )
{
owner = getBestPlayer();
numIncomingVehicles = 1;
if( isDefined( owner ) &&
currentActiveVehicleCount() < maxVehiclesAllowed() &&
level.fauxVehicleCount + numIncomingVehicles < maxVehiclesAllowed() &&
level.numDropCrates < 8 )
{
owner thread maps\mp\gametypes\_rank::xpEventPopup( &"SPLASHES_EARNED_CAREPACKAGE" );
thread teamPlayerCardSplash( "callout_earned_carepackage", owner );
owner thread leaderDialog( level.otherTeam[ owner.team ] + "_enemy_airdrop_assault_inbound", level.otherTeam[ owner.team ] );
owner thread leaderDialog( owner.team + "_friendly_airdrop_assault_inbound", owner.team );
playSoundOnPlayers( "mp_war_objective_taken", owner.team );
playSoundOnPlayers( "mp_war_objective_lost", level.otherTeam[owner.team] );

position = level.grnd_zone.origin + ( randomIntRange( (-1*GRND_ZONE_DROP_RADIUS), GRND_ZONE_DROP_RADIUS ), randomIntRange( (-1*GRND_ZONE_DROP_RADIUS), GRND_ZONE_DROP_RADIUS ), 0 );

crateType = getDropZoneCrateType();
if ( isSubStr( toLower( crateType ), "juggernaut" ) )
{
level thread maps\mp\killstreaks\_airdrop::doC130FlyBy( owner, position, randomFloat( 360 ), crateType );
}
else if ( crateType == "mega" )
{
level thread maps\mp\killstreaks\_airdrop::doMegaC130FlyBy( owner, position, randomFloat( 360 ), "airdrop_grnd", -360 );
}
else
{
level thread maps\mp\killstreaks\_airdrop::doFlyBy( owner, position, randomFloat( 360 ), "airdrop_grnd", 0, crateType );
}

waitTime = level.matchRules_dropTime;
}
else
waitTime = 0.5;

maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( waitTime );
}
}


getBestPlayer()
{
bestPlayer = undefined;
bestPlayerPoints = 0;

// find the player with the currently highest accumulated points in the zone
foreach ( player in level.players )
{
if ( isAlive( player ) )
{
if ( distance2D( level.grnd_zone.origin, player.origin ) < GRND_ZONE_TOUCH_RADIUS && player.inGrindZonePoints > bestPlayerPoints )
{
bestPlayer = player;
bestPlayerPoints = player.inGrindZonePoints;
}
}
}

// may return undefined
return bestPlayer;
}


getDropZoneCrateType()
{
crateType = undefined;
if ( !isDefined( level.grnd_previousCrateTypes["mega"] ) && level.numDropCrates == 0 && randomIntRange( 0, 100 ) < 5 )
{
crateType = "mega";
}
else
{
if ( level.grnd_previousCrateTypes.size )
{
maxTries = 200;
while( maxTries )
{
crateType = maps\mp\killstreaks\_airdrop::getRandomCrateType( "airdrop_grnd" );
if ( isDefined( level.grnd_previousCrateTypes[crateType] ) )
crateType = undefined;
else
break;

maxTries--;
}
}

if ( !isDefined( crateType ) )
crateType = maps\mp\killstreaks\_airdrop::getRandomCrateType( "airdrop_grnd" );
}

// track it
level.grnd_previousCrateTypes[crateType] = 1;
if ( level.grnd_previousCrateTypes.size == 15 )
level.grnd_previousCrateTypes = [];

return crateType;
}


hideHudElementOnGameEnd( hudElement )
{
level waittill("game_ended");
hudElement.alpha = 0;
}


createZones()
{
level.grnd_dropZones = [];

// future way
dropZones = getEntArray( "grnd_dropZone", "targetname" );
if ( isDefined( dropZones ) && dropZones.size )
{
i=0;
foreach ( dropZone in dropZones )
{
level.grnd_dropZones[level.script][i] = dropZone.origin;
i++;
}
}
else
{
// current way
level.grnd_dropZones["mp_seatown"][0] = (-1226, -1399, 204);
level.grnd_dropZones["mp_seatown"][1] = (1048, 886, 22Cool Man (aka Tustin);
level.grnd_dropZones["mp_seatown"][2] = (-1982, 1494, 229);
level.grnd_dropZones["mp_seatown"][3] = (-2297, -855, 210);
level.grnd_dropZones["mp_seatown"][4] = (-2261, -334, 24Cool Man (aka Tustin);
level.grnd_dropZones["mp_seatown"][5] = (-2048, 512, 24Cool Man (aka Tustin);
level.grnd_dropZones["mp_seatown"][6] = (-1439, 1065, 72);
level.grnd_dropZones["mp_seatown"][7] = (-410, 982, 127);
level.grnd_dropZones["mp_seatown"][8] = (-666, -217, 226);
level.grnd_dropZones["mp_seatown"][9] = (-523, -875, 260);
level.grnd_dropZones["mp_seatown"][10] = (-345, -1449, 254);
level.grnd_dropZones["mp_seatown"][11] = (1167, -533, 294);
level.grnd_dropZones["mp_seatown"][12] = (367, 991, 179);
level.grnd_dropZones["mp_seatown"][13] = (1106, 219, 292);

level.grnd_dropZones["mp_dome"][0] = (97, 898, -240);
level.grnd_dropZones["mp_dome"][1] = (-226, 1464, -231);
level.grnd_dropZones["mp_dome"][2] = (-603, 194, -35Cool Man (aka Tustin);
level.grnd_dropZones["mp_dome"][3] = (814, -406, -335);
level.grnd_dropZones["mp_dome"][4] = (5, 1975, -231);
level.grnd_dropZones["mp_dome"][5] = (-673, 1100, -284);
level.grnd_dropZones["mp_dome"][6] = (669, 1028, -255);
level.grnd_dropZones["mp_dome"][7] = (1231, 807, -267);
level.grnd_dropZones["mp_dome"][8] = (709, 210, -342);
level.grnd_dropZones["mp_dome"][9] = (1223, 10, -336);
level.grnd_dropZones["mp_dome"][10] = (-222, 418, -333);
level.grnd_dropZones["mp_dome"][11] = (501, -183, -330);

level.grnd_dropZones["mp_plaza2"][0] = (221, 440, 754);
level.grnd_dropZones["mp_plaza2"][1] = (155, 1763, 66Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][2] = (-430, 1871, 691);
level.grnd_dropZones["mp_plaza2"][3] = (-1190, 1759, 66Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][4] = (-1273, 1279, 829);
level.grnd_dropZones["mp_plaza2"][5] = (-593, 1274, 676);
level.grnd_dropZones["mp_plaza2"][6] = (-251, 1006, 722);
level.grnd_dropZones["mp_plaza2"][7] = (80, 1343, 676);
level.grnd_dropZones["mp_plaza2"][8] = (397, -99, 70Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][9] = (-1109, 92, 741);
level.grnd_dropZones["mp_plaza2"][10] = (-280, -195, 700);
level.grnd_dropZones["mp_plaza2"][11] = (28, -1600, 66Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][12] = (764, -1752, 669);

level.grnd_dropZones["mp_mogadishu"][0] = (1448, 1945, 39);
level.grnd_dropZones["mp_mogadishu"][1] = (1499, -1193, 15);
level.grnd_dropZones["mp_mogadishu"][2] = (791, -880, 16);
level.grnd_dropZones["mp_mogadishu"][3] = (38, -1007, 16);
level.grnd_dropZones["mp_mogadishu"][4] = (-691, -260, 22);
level.grnd_dropZones["mp_mogadishu"][5] = (2, 52, 2);
level.grnd_dropZones["mp_mogadishu"][6] = (664, 69, 12);
level.grnd_dropZones["mp_mogadishu"][7] = (1676, 251, -1);
level.grnd_dropZones["mp_mogadishu"][8] = (2314, 1860, 63);
level.grnd_dropZones["mp_mogadishu"][9] = (73, 858, 3);
level.grnd_dropZones["mp_mogadishu"][10] = (710, 837, 16);
level.grnd_dropZones["mp_mogadishu"][11] = (-549, 829, 2);
level.grnd_dropZones["mp_mogadishu"][12] = (34, 1850, 84);
level.grnd_dropZones["mp_mogadishu"][13] = (-778, 2614, 157);
level.grnd_dropZones["mp_mogadishu"][14] = (-204, 3206, 152);
level.grnd_dropZones["mp_mogadishu"][15] = (752, 3189, 14Cool Man (aka Tustin);
level.grnd_dropZones["mp_mogadishu"][16] = (692, 2354, 95);

level.grnd_dropZones["mp_paris"][0] = (-931, -921, 110);
level.grnd_dropZones["mp_paris"][1] = (1597, 1768, 47);
level.grnd_dropZones["mp_paris"][2] = (716, 1809, 33);
level.grnd_dropZones["mp_paris"][3] = (258, 2074, 36);
level.grnd_dropZones["mp_paris"][4] = (459, 1067, 37);
level.grnd_dropZones["mp_paris"][5] = (852, 1350, 11Cool Man (aka Tustin);
level.grnd_dropZones["mp_paris"][6] = (1601, 897, 45);
level.grnd_dropZones["mp_paris"][7] = (1286, 420, 41);
level.grnd_dropZones["mp_paris"][8] = (1613, 181, 172);
level.grnd_dropZones["mp_paris"][9] = (466, -752, 67);
level.grnd_dropZones["mp_paris"][10] = (994, -625, 50);
level.grnd_dropZones["mp_paris"][11] = (-211, -60, 63);
level.grnd_dropZones["mp_paris"][12] = (-742, 177, 133);
level.grnd_dropZones["mp_paris"][13] = (-1532, 100, 250);
level.grnd_dropZones["mp_paris"][14] = (-343, 1922, 121);
level.grnd_dropZones["mp_paris"][15] = (-1127, 1555, 284);
level.grnd_dropZones["mp_paris"][16] = (-2025, 1327, 316);
level.grnd_dropZones["mp_paris"][17] = (-1039, 841, 187);

level.grnd_dropZones["mp_exchange"][0] = (-614, 1286, 113);
level.grnd_dropZones["mp_exchange"][1] = (182, 1155, 14Cool Man (aka Tustin);
level.grnd_dropZones["mp_exchange"][2] = (1018, 1254, 120);
level.grnd_dropZones["mp_exchange"][3] = (2182, 1322, 145);
level.grnd_dropZones["mp_exchange"][4] = (655, 815, 13);
level.grnd_dropZones["mp_exchange"][5] = (761, -312, -1Cool Man (aka Tustin);
level.grnd_dropZones["mp_exchange"][6] = (761, -771, 112);
level.grnd_dropZones["mp_exchange"][7] = (635, -1450, 110);
level.grnd_dropZones["mp_exchange"][8] = (152, -1538, 96);
level.grnd_dropZones["mp_exchange"][9] = (303, -824, 8Cool Man (aka Tustin);
level.grnd_dropZones["mp_exchange"][10] = (-953, -768, 45);
level.grnd_dropZones["mp_exchange"][11] = (2392, 1305, 144);
level.grnd_dropZones["mp_exchange"][12] = (1634, 1329, 151);
level.grnd_dropZones["mp_exchange"][13] = (1315, 743, 159);

level.grnd_dropZones["mp_bootleg"][0] = (-1432, 1404, Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][1] = (-1017, 1787, -39);
level.grnd_dropZones["mp_bootleg"][2] = (-590, 1514, -43);
level.grnd_dropZones["mp_bootleg"][3] = (-588, 614, -12);
level.grnd_dropZones["mp_bootleg"][4] = (-1732, 84, 11);
level.grnd_dropZones["mp_bootleg"][5] = (-1809, -302, 140);
level.grnd_dropZones["mp_bootleg"][6] = (-1649, -1147, 92);
level.grnd_dropZones["mp_bootleg"][7] = (-884, -1035, -4);
level.grnd_dropZones["mp_bootleg"][8] = (-719, -1673, 60);
level.grnd_dropZones["mp_bootleg"][9] = (-335, -2111, 60);
level.grnd_dropZones["mp_bootleg"][10] = (208, -1955, 6Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][11] = (-198, -1726, 60);
level.grnd_dropZones["mp_bootleg"][12] = (100, -1101, -9);
level.grnd_dropZones["mp_bootleg"][13] = (-427, -100, -Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][14] = (949, -1132, -10);
level.grnd_dropZones["mp_bootleg"][15] = (884, 1182, -2Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][16] = (242, 1194, -45);

level.grnd_dropZones["mp_carbon"][0] = (-3330, -3392, 3630);
level.grnd_dropZones["mp_carbon"][1] = (-3635, -3735, 3630);
level.grnd_dropZones["mp_carbon"][2] = (-3625, -4189, 3633);
level.grnd_dropZones["mp_carbon"][3] = (-2992, -4339, 3627);
level.grnd_dropZones["mp_carbon"][4] = (-2925, -4999, 3673);
level.grnd_dropZones["mp_carbon"][5] = (-2573, -4771, 3784);
level.grnd_dropZones["mp_carbon"][6] = (-1705, -4643, 3813);
level.grnd_dropZones["mp_carbon"][7] = (-1799, -3957, 3813);
level.grnd_dropZones["mp_carbon"][8] = (-2141, -3647, 3815);
level.grnd_dropZones["mp_carbon"][9] = (-3212, -2879, 3807);
level.grnd_dropZones["mp_carbon"][10] = (-1623, -3339, 380Cool Man (aka Tustin);
level.grnd_dropZones["mp_carbon"][11] = (-1223, -4234, 3834);
level.grnd_dropZones["mp_carbon"][12] = (-896, -4888, 3944);
level.grnd_dropZones["mp_carbon"][13] = (-228, -4535, 3975);
level.grnd_dropZones["mp_carbon"][14] = (-257, -3865, 3956);
level.grnd_dropZones["mp_carbon"][15] = (-215, -3260, 3967);
level.grnd_dropZones["mp_carbon"][16] = (-535, -3798, 3966);

level.grnd_dropZones["mp_hardhat"][0] = (2035, -229, 246);
level.grnd_dropZones["mp_hardhat"][1] = (1959, -772, 352);
level.grnd_dropZones["mp_hardhat"][2] = (1883, -1384, 351);
level.grnd_dropZones["mp_hardhat"][3] = (848, -1520, 334);
level.grnd_dropZones["mp_hardhat"][4] = (1326, -1380, 342);
level.grnd_dropZones["mp_hardhat"][5] = (-338, -1273, 34Cool Man (aka Tustin);
level.grnd_dropZones["mp_hardhat"][6] = (-821, -884, 34Cool Man (aka Tustin);
level.grnd_dropZones["mp_hardhat"][7] = (-920, -290, 230);
level.grnd_dropZones["mp_hardhat"][8] = (-463, -250, 333);
level.grnd_dropZones["mp_hardhat"][9] = (-741, 208, 245);
level.grnd_dropZones["mp_hardhat"][10] = (-201, 806, 437);
level.grnd_dropZones["mp_hardhat"][11] = (224, 980, 436);
level.grnd_dropZones["mp_hardhat"][12] = (1125, 656, 255);
level.grnd_dropZones["mp_hardhat"][13] = (1531, 1241, 364);
level.grnd_dropZones["mp_hardhat"][14] = (1522, 542, 244);

level.grnd_dropZones["mp_alpha"][0] = (-1979, 1653, 14Cool Man (aka Tustin);
level.grnd_dropZones["mp_alpha"][1] = (-1392, 1623, 60);
level.grnd_dropZones["mp_alpha"][2] = (-1697, 1205, 52);
level.grnd_dropZones["mp_alpha"][3] = (-1671, 692, 54);
level.grnd_dropZones["mp_alpha"][4] = (-572, -272, 55);
level.grnd_dropZones["mp_alpha"][5] = (634, -345, 52);
level.grnd_dropZones["mp_alpha"][6] = (391, 121, 60);
level.grnd_dropZones["mp_alpha"][7] = (291, 1271, 60);
level.grnd_dropZones["mp_alpha"][8] = (-459, 868, 52);
level.grnd_dropZones["mp_alpha"][9] = (-353, 1334, 52);
level.grnd_dropZones["mp_alpha"][10] = (-37, 1637, 52);
level.grnd_dropZones["mp_alpha"][11] = (-5, 2226, 52);
level.grnd_dropZones["mp_alpha"][12] = (-407, 2198, 196);

level.grnd_dropZones["mp_village"][0] = (647, 1891, 332);
level.grnd_dropZones["mp_village"][1] = (-26, 1749, 334);
level.grnd_dropZones["mp_village"][2] = (104, 1292, 323);
level.grnd_dropZones["mp_village"][3] = (-1064, 1552, 322);
level.grnd_dropZones["mp_village"][4] = (-599, 886, 37Cool Man (aka Tustin);
level.grnd_dropZones["mp_village"][5] = (-1038, 569, 317);
level.grnd_dropZones["mp_village"][6] = (-1899, 1217, 336);
level.grnd_dropZones["mp_village"][7] = (-1540, 289, 304);
level.grnd_dropZones["mp_village"][8] = (-454, -277, 270);
level.grnd_dropZones["mp_village"][9] = (-1734, -790, 365);
level.grnd_dropZones["mp_village"][10] = (-1418, -1371, 431);
level.grnd_dropZones["mp_village"][11] = (-928, -749, 417);
level.grnd_dropZones["mp_village"][12] = (-861, -2105, 40Cool Man (aka Tustin);
level.grnd_dropZones["mp_village"][13] = (-191, -1550, 400);
level.grnd_dropZones["mp_village"][14] = (357, -678, 245);
level.grnd_dropZones["mp_village"][15] = (-216, 295, 223);
level.grnd_dropZones["mp_village"][16] = (162, -199, 229);
level.grnd_dropZones["mp_village"][17] = (179, -3052, 447);
level.grnd_dropZones["mp_village"][18] = (510, -1790, 375);
level.grnd_dropZones["mp_village"][19] = (1089, -615, 39Cool Man (aka Tustin);
level.grnd_dropZones["mp_village"][20] = (1631, 394, 297);
level.grnd_dropZones["mp_village"][21] = (1007, 1385, 337);
level.grnd_dropZones["mp_village"][22] = (992, 248, 330);
level.grnd_dropZones["mp_village"][23] = (551, 732, 386);

level.grnd_dropZones["mp_lambeth"][0] = (-293, -1286, -180);
level.grnd_dropZones["mp_lambeth"][1] = (-938, -785, -130);
level.grnd_dropZones["mp_lambeth"][2] = (-375, -250, -187);
level.grnd_dropZones["mp_lambeth"][3] = (-355, 409, -196);
level.grnd_dropZones["mp_lambeth"][4] = (161, -5, -181);
level.grnd_dropZones["mp_lambeth"][5] = (682, -407, -197);
level.grnd_dropZones["mp_lambeth"][6] = (694, 263, -196);
level.grnd_dropZones["mp_lambeth"][7] = (690, 1158, -243);
level.grnd_dropZones["mp_lambeth"][8] = (1181, 801, -67);
level.grnd_dropZones["mp_lambeth"][9] = (1281, 1248, -257);
level.grnd_dropZones["mp_lambeth"][10] = (2057, 757, -249);
level.grnd_dropZones["mp_lambeth"][11] = (1470, -1040, -109);
level.grnd_dropZones["mp_lambeth"][12] = (1761, -258, -210);
level.grnd_dropZones["mp_lambeth"][13] = (2800, -652, -186);
level.grnd_dropZones["mp_lambeth"][14] = (2785, 445, -244);
level.grnd_dropZones["mp_lambeth"][15] = (2751, 1090, -263);
level.grnd_dropZones["mp_lambeth"][16] = (1535, 1980, -214);
level.grnd_dropZones["mp_lambeth"][17] = (1262, 2602, -213);
level.grnd_dropZones["mp_lambeth"][18] = (419, 2218, -183);
level.grnd_dropZones["mp_lambeth"][19] = (170, 1631, -182);
level.grnd_dropZones["mp_lambeth"][20] = (-606, 1549, -201);
level.grnd_dropZones["mp_lambeth"][21] = (-1199, 1030, -196);

level.grnd_dropZones["mp_radar"][0] = (-3482, -498, 1222);
level.grnd_dropZones["mp_radar"][1] = (-4263, -124, 1229);
level.grnd_dropZones["mp_radar"][2] = (-4006, 827, 123Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][3] = (-3375, 342, 1222);
level.grnd_dropZones["mp_radar"][4] = (-4623, 531, 129Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][5] = (-5157, 877, 1200);
level.grnd_dropZones["mp_radar"][6] = (-5950, 1071, 1305);
level.grnd_dropZones["mp_radar"][7] = (-6509, 1660, 1299);
level.grnd_dropZones["mp_radar"][8] = (-7013, 2955, 1359);
level.grnd_dropZones["mp_radar"][9] = (-6333, 3473, 1421);
level.grnd_dropZones["mp_radar"][10] = (-5675, 2923, 138Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][11] = (-7119, 4357, 1380);
level.grnd_dropZones["mp_radar"][12] = (-5487, 4077, 1356);
level.grnd_dropZones["mp_radar"][13] = (-5736, 2960, 1407);
level.grnd_dropZones["mp_radar"][14] = (-4908, 3281, 1225);
level.grnd_dropZones["mp_radar"][15] = (-4421, 4071, 126Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][16] = (-4979, 1816, 1205);
level.grnd_dropZones["mp_radar"][17] = (-4874, 2306, 1223);

level.grnd_dropZones["mp_interchange"][0] = (2465, -402, 149);
level.grnd_dropZones["mp_interchange"][1] = (2128, 199, 6Cool Man (aka Tustin);
level.grnd_dropZones["mp_interchange"][2] = (1280, 1263, 126);
level.grnd_dropZones["mp_interchange"][3] = (762, 1747, 114);
level.grnd_dropZones["mp_interchange"][4] = (-9, 1836, 3Cool Man (aka Tustin);
level.grnd_dropZones["mp_interchange"][5] = (-284, 1171, 159);
level.grnd_dropZones["mp_interchange"][6] = (-1028, 944, 31);
level.grnd_dropZones["mp_interchange"][7] = (-256, 264, 126);
level.grnd_dropZones["mp_interchange"][8] = (462, -463, 15Cool Man (aka Tustin);
level.grnd_dropZones["mp_interchange"][9] = (1029, -1045, 179);
level.grnd_dropZones["mp_interchange"][10] = (1760, -1434, 142);
level.grnd_dropZones["mp_interchange"][11] = (1538, -361, 142);
level.grnd_dropZones["mp_interchange"][12] = (1150, -2977, 171);
level.grnd_dropZones["mp_interchange"][13] = (371, -2883, 209);
level.grnd_dropZones["mp_interchange"][14] = (399, -2149, 220);

level.grnd_dropZones["mp_underground"][0] = (-602, 3072, -6Cool Man (aka Tustin);
level.grnd_dropZones["mp_underground"][1] = (-285, 2551, -215);
level.grnd_dropZones["mp_underground"][2] = (574, 2656, -40);
level.grnd_dropZones["mp_underground"][3] = (-627, 1579, -196);
level.grnd_dropZones["mp_underground"][4] = (28, 1556, -196);
level.grnd_dropZones["mp_underground"][5] = (727, 1615, -196);
level.grnd_dropZones["mp_underground"][6] = (-1491, 1268, -196);
level.grnd_dropZones["mp_underground"][7] = (-1370, 1757, -196);
level.grnd_dropZones["mp_underground"][8] = (-1259, 599, -156);
level.grnd_dropZones["mp_underground"][9] = (-959, -26, 60);
level.grnd_dropZones["mp_underground"][10] = (-303, -562, 60);
level.grnd_dropZones["mp_underground"][11] = (193, -922, 60);
level.grnd_dropZones["mp_underground"][12] = (305, 817, -6Cool Man (aka Tustin);
level.grnd_dropZones["mp_underground"][13] = (-276, 370, -6Cool Man (aka Tustin);

level.grnd_dropZones["mp_bravo"][0] = (-1359, 608, 975);
level.grnd_dropZones["mp_bravo"][1] = (-1686, 313, 991);
level.grnd_dropZones["mp_bravo"][2] = (-1228, 41, 976);
level.grnd_dropZones["mp_bravo"][3] = (-732, -715, 1032);
level.grnd_dropZones["mp_bravo"][4] = (31, -771, 103Cool Man (aka Tustin);
level.grnd_dropZones["mp_bravo"][5] = (986, -833, 1116);
level.grnd_dropZones["mp_bravo"][6] = (1800, -577, 1229);
level.grnd_dropZones["mp_bravo"][7] = (1588, -55, 1181);
level.grnd_dropZones["mp_bravo"][8] = (619, 916, 1175);
level.grnd_dropZones["mp_bravo"][9] = (-129, 1310, 122Cool Man (aka Tustin);
level.grnd_dropZones["mp_bravo"][10] = (-726, 1272, 126Cool Man (aka Tustin);
level.grnd_dropZones["mp_bravo"][11] = (-741, 752, 1053);
level.grnd_dropZones["mp_bravo"][12] = (6, -136, 1282);
}
}


Grinder Airdrop post 1 by me - You must login or register to view this content.

Grinder Airdop Post 2 by me - You must login or register to view this content.

The following 2 users say thank you to TheJaRniBoi for this useful post:

Matiomo1906, Vectriixx
12-16-2011, 02:02 PM #17
Assassin
Easter Egg!
Originally posted by CODGlitcha
lol:




This was found way before IW announced it. I found it in the GSC files. It called grnd.GSC and i posted info about it in the exploit section. You get every killstreak in the game this includes assault and support.

Grinder Airdrop Possibilities:
     
airdrop_grnd,uav, 25,
airdrop_grnd,counter_uav, 25,
airdrop_grnd,deployable_vest, 21,
airdrop_grnd,sentry, 21,
airdrop_grnd,remote_mg_turret, 17,
airdrop_grnd,ims, 17,
airdrop_grnd,triple_uav, 13,
airdrop_grnd,predator_missile, 13,
airdrop_grnd,airdrop_trap, 11,
airdrop_grnd,precision_airstrike, 9,
airdrop_grnd,stealth_airstrike, 9,
airdrop_grnd,helicopter, 9,
airdrop_grnd,remote_tank, 7,
airdrop_grnd,sam_turret, 7,
airdrop_grnd,remote_uav, 7,
airdrop_grnd,littlebird_support, 4,
airdrop_grnd,airdrop_juggernaut_recon, 4,
airdrop_grnd,littlebird_flock, 2,
airdrop_grnd,helicopter_flares, 2,
airdrop_grnd,remote_mortar, 2,
airdrop_grnd,ac130, 2,
airdrop_grnd,airdrop_juggernaut, 1,
airdrop_grnd,osprey_gunner, 1,
airdrop_grnd,emp, 1,


Grinder (Drop Zone) GSC:
    #include common_scripts\utility;
#include maps\mp\_utility;
#include maps\mp\gametypes\_hud_util;

/*
Drop Zone
Objective: Score points for your team over time by holding the drop zone.
Periodic carepackage awarded to player who's been in drop zone the longest.
Map ends: When one team reaches the score limit, or time limit is reached
Respawning: No wait / Near teammates / Near drop zone

Level requirementss
------------------
Start Spawnpoints:
classname mp_sab_spawn_allies_start, mp_sab_spawn_axis_start

Spawnpoints:
classname mp_tdm_spawn
All players spawn from these. The spawnpoint chosen is dependent on the current locations of drop zone, teammates, and enemies
at the time of spawn. Players generally spawn behind their teammates relative to the direction of enemies.

Spectator Spawnpoints:
classname mp_global_intermission
Spectators spawn from these and intermission is viewed from these positions.
Atleast one is required, any more and they are randomly chosen between.
*/

GRND_ZONE_TOUCH_RADIUS = 300;
GRND_ZONE_DROP_RADIUS = 72;

main()
{
if(getdvar("mapname") == "mp_background")
return;

maps\mp\gametypes\_globallogic::init();
maps\mp\gametypes\_callbacksetup::SetupCallbacks();
maps\mp\gametypes\_globallogic::SetupCallbacks();

if ( isUsingMatchRulesData() )
{
level.initializeMatchRules = ::initializeMatchRules;
[[level.initializeMatchRules]]();
level thread reInitializeMatchRulesOnMigration();
}
else
{
registerRoundSwitchDvar( level.gameType, 0, 0, 9 );
registerTimeLimitDvar( level.gameType, 10 );
registerScoreLimitDvar( level.gameType, 20000 );
registerRoundLimitDvar( level.gameType, 1 );
registerWinLimitDvar( level.gameType, 1 );
registerNumLivesDvar( level.gameType, 0 );
registerHalfTimeDvar( level.gameType, 0 );

level.matchRules_dropTime = 30;
level.matchRules_zoneSwitchTime = 120;
level.matchRules_damageMultiplier = 0;
level.matchRules_vampirism = 0;
}

level.teamBased = true;
level.onPrecacheGameType = :GaspnPrecacheGameType;
level.onStartGameType = :GaspnStartGameType;
level.getSpawnPoint = ::getSpawnPoint;
level.onSpawnPlayer = :GaspnSpawnPlayer;

if ( level.matchRules_damageMultiplier || level.matchRules_vampirism )
level.modifyPlayerDamage = maps\mp\gametypes\_damage::gamemodeModifyPlayerDamage;

level.grnd_fx["smoke"] = loadFx( "smoke/airdrop_flare_mp_effect_now" );
level.grnd_fx["flare"] = loadFx( "smoke/signal_smoke_airdrop" );

createZones();
}


initializeMatchRules()
{
// set common values
setCommonRulesFromMatchRulesData();

// set everything else (private match options, default .cfg file values, and what normally is registered in the 'else' below)
level.matchRules_dropTime = GetMatchRulesData( "grndData", "dropTime" );
level.matchRules_zoneSwitchTime = 60 * GetMatchRulesData( "grndData", "zoneSwitchTime" );

SetDynamicDvar( "scr_grnd_roundswitch", 0 );
registerRoundSwitchDvar( "grnd", 0, 0, 9 );
SetDynamicDvar( "scr_grnd_roundlimit", 1 );
registerRoundLimitDvar( "grnd", 1 );
SetDynamicDvar( "scr_grnd_winlimit", 1 );
registerWinLimitDvar( "grnd", 1 );
SetDynamicDvar( "scr_grnd_halftime", 0 );
registerHalfTimeDvar( "grnd", 0 );

SetDynamicDvar( "scr_grnd_promode", 0 );
}


onPrecacheGameType()
{
precacheShader( "waypoint_captureneutral" );
precacheShader( "waypoint_capture" );
precacheShader( "waypoint_defend" );

precacheModel( "prop_flag_neutral" );

precacheString( &"OBJECTIVES_GRND" );
precacheString( &"OBJECTIVES_GRND_SCORE" );
precacheString( &"OBJECTIVES_GRND_HINT" );
precacheString( &"OBJECTIVES_GRND_CONFIRM" );
precacheString( &"MP_CALLING_AIRDROP" );
precacheString( &"MP_NEXT_DROP_ZONE_IN" );

precacheModel( "weapon_us_smoke_grenade_burnt2" );
}


onStartGameType()
{
setClientNameMode("auto_change");

if ( !isdefined( game["switchedsides"] ) )
game["switchedsides"] = false;

setObjectiveText( "allies", &"OBJECTIVES_GRND" );
setObjectiveText( "axis", &"OBJECTIVES_GRND" );

if ( level.splitscreen )
{
setObjectiveScoreText( "allies", &"OBJECTIVES_GRND" );
setObjectiveScoreText( "axis", &"OBJECTIVES_GRND" );
}
else
{
setObjectiveScoreText( "allies", &"OBJECTIVES_GRND_SCORE" );
setObjectiveScoreText( "axis", &"OBJECTIVES_GRND_SCORE" );
}
setObjectiveHintText( "allies", &"OBJECTIVES_GRND_HINT" );
setObjectiveHintText( "axis", &"OBJECTIVES_GRND_HINT" );

level.spawnMins = ( 0, 0, 0 );
level.spawnMaxs = ( 0, 0, 0 );
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_sab_spawn_allies_start" );
maps\mp\gametypes\_spawnlogic::placeSpawnPoints( "mp_sab_spawn_axis_start" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "allies", "mp_tdm_spawn" );
maps\mp\gametypes\_spawnlogic::addSpawnPoints( "axis", "mp_tdm_spawn" );
level.mapCenter = maps\mp\gametypes\_spawnlogic::findBoxCenter( level.spawnMins, level.spawnMaxs );
setMapCenter( level.mapCenter );

// get the central loction for first DZ using the SAB bomb, before it is removed
centerLocObj = getEnt( "sab_bomb", "targetname" );
level.grnd_centerLoc = centerLocObj.origin;

maps\mp\gametypes\_rank::registerScoreInfo( "zone_kill", 100 );
maps\mp\gametypes\_rank::registerScoreInfo( "zone_tick", 20 );

allowed[0] = level.gameType;
allowed[1] = "tdm";

maps\mp\gametypes\_gameobjects::main(allowed);

level.grnd_timerDisplay = createServerTimer( "objective", 1.4 );
level.grnd_timerDisplay setPoint( "TOPLEFT", "TOPLEFT", 115, 5 );
level.grnd_timerDisplay.label = &"MP_NEXT_DROP_ZONE_IN";
level.grnd_timerDisplay.alpha = 0;
level.grnd_timerDisplay.archived = false;
level.grnd_timerDisplay.hideWhenInMenu = true;
thread hideHudElementOnGameEnd( level.grnd_timerDisplay );

initFirstZone();
}


initFirstZone()
{
level.zonesCycling = false;

// find the closest zone to center
shortestDistance = 999999;
shortestDistanceIndex = 0;
for ( i=0; i<level.grnd_dropZones[level.script].size; i++ )
{
dropZone = level.grnd_dropZones[level.script][i];
distToCenter = distance2d( level.grnd_centerLoc, dropZone );
if ( distToCenter < shortestDistance )
{
shortestDistance = distToCenter;
shortestDistanceIndex = i;
}
}
level.grnd_initialIndex = shortestDistanceIndex;
initilPos = level.grnd_dropZones[level.script][shortestDistanceIndex];

// create marker
level.grnd_zone = spawn( "script_model", initilPos );
level.grnd_zone.origin = initilPos;
level.grnd_zone.angles = ( 90, 0, 0 );
level.grnd_zone setModel( "weapon_us_smoke_grenade_burnt2" );

// spawning
level.favorCloseSpawnEnt = level.grnd_zone;
level.favorCloseSpawnScalar = 5;

// make the rest
level thread initZones();
}


initZones()
{
level.grnd_zones = [];
for ( i=0; i<level.grnd_dropZones[level.script].size; i++ )
{
dropZone = level.grnd_dropZones[level.script][i];
level.grnd_zones[i] = spawn( "script_origin", dropZone );
level.grnd_zones[i].origin = dropZone;
wait( 0.05 );
}

level.grnd_zones[level.grnd_initialIndex] delete();
level.grnd_zones[level.grnd_initialIndex] = undefined;
level.grnd_zones = array_removeUndefined( level.grnd_zones );
}


getSpawnPoint()
{
if ( level.inGracePeriod )
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getSpawnpointArray( "mp_sab_spawn_" + self.pers["team"] + "_start" );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_Random( spawnPoints );
}
else
{
spawnPoints = maps\mp\gametypes\_spawnlogic::getTeamSpawnPoints( self.pers["team"] );
spawnPoint = maps\mp\gametypes\_spawnlogic::getSpawnpoint_NearTeam( spawnPoints );
}

return spawnPoint;
}


onSpawnPlayer()
{
// in/out zone indicator
if ( !isDefined( self.inGrindZone ) )
{
level thread setPlayerMessages( self );

// let the first player in activate this
if ( !level.zonesCycling )
{
level thread cycleZones();
level thread locationScoring();
}
}

level notify ( "spawned_player" );
}


setPlayerMessages( player )
{
level endon( "game_ended" );

gameFlagWait( "prematch_done" );

// points
player.inGrindZonePoints = 0;

// hud indicator
player.grndHUDText = player createFontString( "small", 1.6 );
player.grndHUDText setPoint( "TOP LEFT", "TOP LEFT", 115, 22 );
player.grndHUDText.alpha = 1;
player.grndHUDText.hideWhenInMenu = true;
level thread hideHudElementOnGameEnd( player.grndHUDText );

// hud icon
player.grndHeadIcon = level.grnd_zone maps\mp\_entityheadIcons::setHeadIcon( player, "waypoint_captureneutral", (0,0,0), 14, 14, undefined, undefined, undefined, undefined, undefined, false );

// minimap waypoint
player.grndObjId = maps\mp\gametypes\_gameobjects::getNextObjID();
objective_add( player.grndObjId, "invisible", (0,0,0) );
objective_player( player.grndObjId, player getEntityNumber() );
Objective_OnEntity( player.grndObjId, level.grnd_zone );
objective_icon( player.grndObjId, "waypoint_captureneutral" );
objective_state( player.grndObjId, "active" );

if ( distance2D( level.grnd_zone.origin, player.origin ) < GRND_ZONE_TOUCH_RADIUS )
{
player.inGrindZone = true;
player.grndHUDText setText( &"OBJECTIVES_GRND_CONFIRM" );
player.grndHUDText.color = (0.6,1,0.6);
player.grndHeadIcon.alpha = 0;
}
else
{
player.inGrindZone = false;
player.grndHUDText setText( &"OBJECTIVES_GRND_HINT" );
player.grndHUDText.color = (1,0.6,0.6);
player.grndHeadIcon.alpha = 0.85;
}

player.grnd_wasSpectator = false;
if ( player.team == "spectator" )
{
player.inGrindZone = false;
player.inGrindZonePoints = 0;
player.grndHeadIcon.alpha = 0;
player.grndHUDText.alpha = 0;
player.grnd_wasSpectator = true;
}

player thread grndTracking();
}


getNextZone()
{
pos = undefined;
index = undefined;

if ( level.grnd_zones.size > 2 )
{
// get the distance to the current zone from all the remaining zones
// set index and save furthest and closest along the way
closestDistance = 999999;
furthestDistance = 0;
for ( i=0; i<level.grnd_zones.size; i++ )
{
level.grnd_zones[i].index = i;
level.grnd_zones[i].distToZone = distance( level.grnd_zones[i].origin, level.grnd_zone.origin );
if ( level.grnd_zones[i].distToZone > furthestDistance )
furthestDistance = level.grnd_zones[i].distToZone;
else if ( level.grnd_zones[i].distToZone < closestDistance )
closestDistance = level.grnd_zones[i].distToZone;
}

// try to get a grouping of far zones to randomly choose from
farZones = [];
closeZones = [];
halfDistance = int( ( closestDistance + furthestDistance ) / 2 );
for ( i=0; i<level.grnd_zones.size; i++ )
{
if ( level.grnd_zones[i].distToZone >= halfDistance )
farZones[farZones.size] = level.grnd_zones[i];
else
closeZones[closeZones.size] = level.grnd_zones[i];
}
zone = undefined;
if ( farZones.size > 1 )
zone = farZones[ randomIntRange( 0, farZones.size ) ];
else
zone = farZones[0];
index = zone.index;
}
else if ( level.grnd_zones.size == 2 )
{
distanceA = distance( level.grnd_zones[0].origin, level.grnd_zone.origin );
distanceB = distance( level.grnd_zones[1].origin, level.grnd_zone.origin );
if ( distanceA > distanceB )
index = 0;
else
index = 1;
}
else if ( level.grnd_zones.size == 1 )
{
index = 0;
}

if ( isDefined( index ) )
{
pos = level.grnd_zones[index].origin;
level.grnd_zones[index] delete();
level.grnd_zones[index] = undefined;
level.grnd_zones = array_removeUndefined( level.grnd_zones );
}
else
{
// start all over
pos = level.grnd_dropZones[level.script][level.grnd_initialIndex];
level thread initZones();
}

return pos;
}


cycleZones()
{
level endon( "game_ended" );

gameFlagWait( "prematch_done" );

while( true )
{
initialScores["axis"] = game["teamScores"]["axis"];
initialScores["allies"] = game["teamScores"]["allies"];

// move zone
pos = undefined;
if ( !level.zonesCycling )
{
level.zonesCycling = true;
pos = level.grnd_zone.origin;
}
else
{
pos = getNextZone();
StopFxOnTag( level.grnd_fx["smoke"], level.grnd_zone, "tag_fx" );
wait( 0.05 );
}
traceStart = pos;
traceEnd = pos + (0,0,-1000);
trace = bulletTrace( traceStart, traceEnd, false, undefined );
level.grnd_zone.origin = trace["position"]+(0,0,1);

// smoke
wait( 0.05 );
PlayFxOnTag( level.grnd_fx["smoke"], level.grnd_zone, "tag_fx" );

// reset drops
if ( level.matchRules_dropTime )
level thread randomDrops();

// wait
level.grnd_timerDisplay.label = &"MP_NEXT_DROP_ZONE_IN";
level.grnd_timerDisplay setTimer( level.matchRules_zoneSwitchTime );
level.grnd_timerDisplay.alpha = 1;
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( level.matchRules_zoneSwitchTime );
level.grnd_timerDisplay.alpha = 0;

// audio cue for progress
if ( game["teamScores"]["axis"] - initialScores["axis"] > game["teamScores"]["allies"] - initialScores["allies"] )
{
playSoundOnPlayers( "mp_obj_captured", "axis" );
playSoundOnPlayers( "mp_enemy_obj_captured", "allies" );
}
else if ( game["teamScores"]["allies"] - initialScores["allies"] > game["teamScores"]["axis"] - initialScores["axis"] )
{
playSoundOnPlayers( "mp_obj_captured", "allies" );
playSoundOnPlayers( "mp_enemy_obj_captured", "axis" );
}
}
}


grndTracking()
{
self endon( "disconnect" );
level endon( "game_ended" );

while( true )
{
if ( !self.grnd_wasSpectator && self.team == "spectator" )
{
self.inGrindZone = false;
self.inGrindZonePoints = 0;
self.grndHeadIcon.alpha = 0;
self.grndHUDText.alpha = 0;
self.grnd_wasSpectator = true;
}
else if ( self.team != "spectator" )
{
if ( ( self.grnd_wasSpectator || !self.inGrindZone ) && distance2D( level.grnd_zone.origin, self.origin ) < GRND_ZONE_TOUCH_RADIUS )
{
self.inGrindZone = true;
self.inGrindZonePoints = 0;
self.grndHUDText setText( &"OBJECTIVES_GRND_CONFIRM" );
self.grndHUDText.color = (0.6,1,0.6);
self.grndHUDText.alpha = 1;
self.grndHeadIcon.alpha = 0;
}
else if ( ( self.grnd_wasSpectator || self.inGrindZone ) && distance2D( level.grnd_zone.origin, self.origin ) >= GRND_ZONE_TOUCH_RADIUS )
{
self.inGrindZone = false;
self.inGrindZonePoints = 0;
self.grndHUDText setText( &"OBJECTIVES_GRND_HINT" );
self.grndHUDText.color = (1,0.6,0.6);
self.grndHUDText.alpha = 1;
self.grndHeadIcon.alpha = 0.85;
}
self.grnd_wasSpectator = false;
}

wait( 0.05 );
}
}


locationScoring()
{
level endon( "game_ended" );

gameFlagWait( "prematch_done" );

score = maps\mp\gametypes\_rank::getScoreInfoValue( "zone_tick" );
assert( isDefined( score ) );

while( true )
{
numPlayers["axis"] = 0;
numPlayers["allies"] = 0;

// score
foreach( player in level.players )
{
if ( isDefined( player.inGrindZone ) && isAlive( player ) && distance2D( level.grnd_zone.origin, player.origin ) < GRND_ZONE_TOUCH_RADIUS )
{
numPlayers[player.pers["team"]]++;
player.inGrindZonePoints += score;
}
}
if ( numPlayers["axis"] )
maps\mp\gametypes\_gamescore::giveTeamScoreForObjective( "axis", score * numPlayers["axis"] );
if ( numPlayers["allies"] )
maps\mp\gametypes\_gamescore::giveTeamScoreForObjective( "allies", score * numPlayers["allies"] );

// waypoints and compasspings
if ( numPlayers["axis"] == numPlayers["allies"] )
{
foreach( player in level.players )
{
if ( isDefined( player.inGrindZone ) )
{
player.grndHeadIcon setShader( "waypoint_captureneutral", 14, 14 );
player.grndHeadIcon setWaypoint( false, false, false, false );
objective_icon( player.grndObjId, "waypoint_captureneutral" );
}
}
}
else
{
foreach( player in level.players )
{
if ( isDefined( player.inGrindZone ) )
{
if ( numPlayers[player.pers["team"]] > numPlayers[level.otherTeam[player.pers["team"]]] )
{
player.grndHeadIcon setShader( "waypoint_defend", 14, 14 );
player.grndHeadIcon setWaypoint( false, false, false, false );
objective_icon( player.grndObjId, "waypoint_defend" );
}
else
{
player.grndHeadIcon setShader( "waypoint_capture", 14, 14 );
player.grndHeadIcon setWaypoint( false, false, false, false );
objective_icon( player.grndObjId, "waypoint_capture" );
}
}
}
}

// wait
maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( 1.0 );
}
}

randomDrops()
{
level endon( "game_ended" );
level notify( "reset_grnd_drops" );
level endon( "reset_grnd_drops" );

// try for no repeats per zone
level.grnd_previousCrateTypes = [];

while( true )
{
owner = getBestPlayer();
numIncomingVehicles = 1;
if( isDefined( owner ) &&
currentActiveVehicleCount() < maxVehiclesAllowed() &&
level.fauxVehicleCount + numIncomingVehicles < maxVehiclesAllowed() &&
level.numDropCrates < 8 )
{
owner thread maps\mp\gametypes\_rank::xpEventPopup( &"SPLASHES_EARNED_CAREPACKAGE" );
thread teamPlayerCardSplash( "callout_earned_carepackage", owner );
owner thread leaderDialog( level.otherTeam[ owner.team ] + "_enemy_airdrop_assault_inbound", level.otherTeam[ owner.team ] );
owner thread leaderDialog( owner.team + "_friendly_airdrop_assault_inbound", owner.team );
playSoundOnPlayers( "mp_war_objective_taken", owner.team );
playSoundOnPlayers( "mp_war_objective_lost", level.otherTeam[owner.team] );

position = level.grnd_zone.origin + ( randomIntRange( (-1*GRND_ZONE_DROP_RADIUS), GRND_ZONE_DROP_RADIUS ), randomIntRange( (-1*GRND_ZONE_DROP_RADIUS), GRND_ZONE_DROP_RADIUS ), 0 );

crateType = getDropZoneCrateType();
if ( isSubStr( toLower( crateType ), "juggernaut" ) )
{
level thread maps\mp\killstreaks\_airdrop::doC130FlyBy( owner, position, randomFloat( 360 ), crateType );
}
else if ( crateType == "mega" )
{
level thread maps\mp\killstreaks\_airdrop::doMegaC130FlyBy( owner, position, randomFloat( 360 ), "airdrop_grnd", -360 );
}
else
{
level thread maps\mp\killstreaks\_airdrop::doFlyBy( owner, position, randomFloat( 360 ), "airdrop_grnd", 0, crateType );
}

waitTime = level.matchRules_dropTime;
}
else
waitTime = 0.5;

maps\mp\gametypes\_hostmigration::waitLongDurationWithHostMigrationPause( waitTime );
}
}


getBestPlayer()
{
bestPlayer = undefined;
bestPlayerPoints = 0;

// find the player with the currently highest accumulated points in the zone
foreach ( player in level.players )
{
if ( isAlive( player ) )
{
if ( distance2D( level.grnd_zone.origin, player.origin ) < GRND_ZONE_TOUCH_RADIUS && player.inGrindZonePoints > bestPlayerPoints )
{
bestPlayer = player;
bestPlayerPoints = player.inGrindZonePoints;
}
}
}

// may return undefined
return bestPlayer;
}


getDropZoneCrateType()
{
crateType = undefined;
if ( !isDefined( level.grnd_previousCrateTypes["mega"] ) && level.numDropCrates == 0 && randomIntRange( 0, 100 ) < 5 )
{
crateType = "mega";
}
else
{
if ( level.grnd_previousCrateTypes.size )
{
maxTries = 200;
while( maxTries )
{
crateType = maps\mp\killstreaks\_airdrop::getRandomCrateType( "airdrop_grnd" );
if ( isDefined( level.grnd_previousCrateTypes[crateType] ) )
crateType = undefined;
else
break;

maxTries--;
}
}

if ( !isDefined( crateType ) )
crateType = maps\mp\killstreaks\_airdrop::getRandomCrateType( "airdrop_grnd" );
}

// track it
level.grnd_previousCrateTypes[crateType] = 1;
if ( level.grnd_previousCrateTypes.size == 15 )
level.grnd_previousCrateTypes = [];

return crateType;
}


hideHudElementOnGameEnd( hudElement )
{
level waittill("game_ended");
hudElement.alpha = 0;
}


createZones()
{
level.grnd_dropZones = [];

// future way
dropZones = getEntArray( "grnd_dropZone", "targetname" );
if ( isDefined( dropZones ) && dropZones.size )
{
i=0;
foreach ( dropZone in dropZones )
{
level.grnd_dropZones[level.script][i] = dropZone.origin;
i++;
}
}
else
{
// current way
level.grnd_dropZones["mp_seatown"][0] = (-1226, -1399, 204);
level.grnd_dropZones["mp_seatown"][1] = (1048, 886, 22Cool Man (aka Tustin);
level.grnd_dropZones["mp_seatown"][2] = (-1982, 1494, 229);
level.grnd_dropZones["mp_seatown"][3] = (-2297, -855, 210);
level.grnd_dropZones["mp_seatown"][4] = (-2261, -334, 24Cool Man (aka Tustin);
level.grnd_dropZones["mp_seatown"][5] = (-2048, 512, 24Cool Man (aka Tustin);
level.grnd_dropZones["mp_seatown"][6] = (-1439, 1065, 72);
level.grnd_dropZones["mp_seatown"][7] = (-410, 982, 127);
level.grnd_dropZones["mp_seatown"][8] = (-666, -217, 226);
level.grnd_dropZones["mp_seatown"][9] = (-523, -875, 260);
level.grnd_dropZones["mp_seatown"][10] = (-345, -1449, 254);
level.grnd_dropZones["mp_seatown"][11] = (1167, -533, 294);
level.grnd_dropZones["mp_seatown"][12] = (367, 991, 179);
level.grnd_dropZones["mp_seatown"][13] = (1106, 219, 292);

level.grnd_dropZones["mp_dome"][0] = (97, 898, -240);
level.grnd_dropZones["mp_dome"][1] = (-226, 1464, -231);
level.grnd_dropZones["mp_dome"][2] = (-603, 194, -35Cool Man (aka Tustin);
level.grnd_dropZones["mp_dome"][3] = (814, -406, -335);
level.grnd_dropZones["mp_dome"][4] = (5, 1975, -231);
level.grnd_dropZones["mp_dome"][5] = (-673, 1100, -284);
level.grnd_dropZones["mp_dome"][6] = (669, 1028, -255);
level.grnd_dropZones["mp_dome"][7] = (1231, 807, -267);
level.grnd_dropZones["mp_dome"][8] = (709, 210, -342);
level.grnd_dropZones["mp_dome"][9] = (1223, 10, -336);
level.grnd_dropZones["mp_dome"][10] = (-222, 418, -333);
level.grnd_dropZones["mp_dome"][11] = (501, -183, -330);

level.grnd_dropZones["mp_plaza2"][0] = (221, 440, 754);
level.grnd_dropZones["mp_plaza2"][1] = (155, 1763, 66Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][2] = (-430, 1871, 691);
level.grnd_dropZones["mp_plaza2"][3] = (-1190, 1759, 66Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][4] = (-1273, 1279, 829);
level.grnd_dropZones["mp_plaza2"][5] = (-593, 1274, 676);
level.grnd_dropZones["mp_plaza2"][6] = (-251, 1006, 722);
level.grnd_dropZones["mp_plaza2"][7] = (80, 1343, 676);
level.grnd_dropZones["mp_plaza2"][8] = (397, -99, 70Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][9] = (-1109, 92, 741);
level.grnd_dropZones["mp_plaza2"][10] = (-280, -195, 700);
level.grnd_dropZones["mp_plaza2"][11] = (28, -1600, 66Cool Man (aka Tustin);
level.grnd_dropZones["mp_plaza2"][12] = (764, -1752, 669);

level.grnd_dropZones["mp_mogadishu"][0] = (1448, 1945, 39);
level.grnd_dropZones["mp_mogadishu"][1] = (1499, -1193, 15);
level.grnd_dropZones["mp_mogadishu"][2] = (791, -880, 16);
level.grnd_dropZones["mp_mogadishu"][3] = (38, -1007, 16);
level.grnd_dropZones["mp_mogadishu"][4] = (-691, -260, 22);
level.grnd_dropZones["mp_mogadishu"][5] = (2, 52, 2);
level.grnd_dropZones["mp_mogadishu"][6] = (664, 69, 12);
level.grnd_dropZones["mp_mogadishu"][7] = (1676, 251, -1);
level.grnd_dropZones["mp_mogadishu"][8] = (2314, 1860, 63);
level.grnd_dropZones["mp_mogadishu"][9] = (73, 858, 3);
level.grnd_dropZones["mp_mogadishu"][10] = (710, 837, 16);
level.grnd_dropZones["mp_mogadishu"][11] = (-549, 829, 2);
level.grnd_dropZones["mp_mogadishu"][12] = (34, 1850, 84);
level.grnd_dropZones["mp_mogadishu"][13] = (-778, 2614, 157);
level.grnd_dropZones["mp_mogadishu"][14] = (-204, 3206, 152);
level.grnd_dropZones["mp_mogadishu"][15] = (752, 3189, 14Cool Man (aka Tustin);
level.grnd_dropZones["mp_mogadishu"][16] = (692, 2354, 95);

level.grnd_dropZones["mp_paris"][0] = (-931, -921, 110);
level.grnd_dropZones["mp_paris"][1] = (1597, 1768, 47);
level.grnd_dropZones["mp_paris"][2] = (716, 1809, 33);
level.grnd_dropZones["mp_paris"][3] = (258, 2074, 36);
level.grnd_dropZones["mp_paris"][4] = (459, 1067, 37);
level.grnd_dropZones["mp_paris"][5] = (852, 1350, 11Cool Man (aka Tustin);
level.grnd_dropZones["mp_paris"][6] = (1601, 897, 45);
level.grnd_dropZones["mp_paris"][7] = (1286, 420, 41);
level.grnd_dropZones["mp_paris"][8] = (1613, 181, 172);
level.grnd_dropZones["mp_paris"][9] = (466, -752, 67);
level.grnd_dropZones["mp_paris"][10] = (994, -625, 50);
level.grnd_dropZones["mp_paris"][11] = (-211, -60, 63);
level.grnd_dropZones["mp_paris"][12] = (-742, 177, 133);
level.grnd_dropZones["mp_paris"][13] = (-1532, 100, 250);
level.grnd_dropZones["mp_paris"][14] = (-343, 1922, 121);
level.grnd_dropZones["mp_paris"][15] = (-1127, 1555, 284);
level.grnd_dropZones["mp_paris"][16] = (-2025, 1327, 316);
level.grnd_dropZones["mp_paris"][17] = (-1039, 841, 187);

level.grnd_dropZones["mp_exchange"][0] = (-614, 1286, 113);
level.grnd_dropZones["mp_exchange"][1] = (182, 1155, 14Cool Man (aka Tustin);
level.grnd_dropZones["mp_exchange"][2] = (1018, 1254, 120);
level.grnd_dropZones["mp_exchange"][3] = (2182, 1322, 145);
level.grnd_dropZones["mp_exchange"][4] = (655, 815, 13);
level.grnd_dropZones["mp_exchange"][5] = (761, -312, -1Cool Man (aka Tustin);
level.grnd_dropZones["mp_exchange"][6] = (761, -771, 112);
level.grnd_dropZones["mp_exchange"][7] = (635, -1450, 110);
level.grnd_dropZones["mp_exchange"][8] = (152, -1538, 96);
level.grnd_dropZones["mp_exchange"][9] = (303, -824, 8Cool Man (aka Tustin);
level.grnd_dropZones["mp_exchange"][10] = (-953, -768, 45);
level.grnd_dropZones["mp_exchange"][11] = (2392, 1305, 144);
level.grnd_dropZones["mp_exchange"][12] = (1634, 1329, 151);
level.grnd_dropZones["mp_exchange"][13] = (1315, 743, 159);

level.grnd_dropZones["mp_bootleg"][0] = (-1432, 1404, Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][1] = (-1017, 1787, -39);
level.grnd_dropZones["mp_bootleg"][2] = (-590, 1514, -43);
level.grnd_dropZones["mp_bootleg"][3] = (-588, 614, -12);
level.grnd_dropZones["mp_bootleg"][4] = (-1732, 84, 11);
level.grnd_dropZones["mp_bootleg"][5] = (-1809, -302, 140);
level.grnd_dropZones["mp_bootleg"][6] = (-1649, -1147, 92);
level.grnd_dropZones["mp_bootleg"][7] = (-884, -1035, -4);
level.grnd_dropZones["mp_bootleg"][8] = (-719, -1673, 60);
level.grnd_dropZones["mp_bootleg"][9] = (-335, -2111, 60);
level.grnd_dropZones["mp_bootleg"][10] = (208, -1955, 6Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][11] = (-198, -1726, 60);
level.grnd_dropZones["mp_bootleg"][12] = (100, -1101, -9);
level.grnd_dropZones["mp_bootleg"][13] = (-427, -100, -Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][14] = (949, -1132, -10);
level.grnd_dropZones["mp_bootleg"][15] = (884, 1182, -2Cool Man (aka Tustin);
level.grnd_dropZones["mp_bootleg"][16] = (242, 1194, -45);

level.grnd_dropZones["mp_carbon"][0] = (-3330, -3392, 3630);
level.grnd_dropZones["mp_carbon"][1] = (-3635, -3735, 3630);
level.grnd_dropZones["mp_carbon"][2] = (-3625, -4189, 3633);
level.grnd_dropZones["mp_carbon"][3] = (-2992, -4339, 3627);
level.grnd_dropZones["mp_carbon"][4] = (-2925, -4999, 3673);
level.grnd_dropZones["mp_carbon"][5] = (-2573, -4771, 3784);
level.grnd_dropZones["mp_carbon"][6] = (-1705, -4643, 3813);
level.grnd_dropZones["mp_carbon"][7] = (-1799, -3957, 3813);
level.grnd_dropZones["mp_carbon"][8] = (-2141, -3647, 3815);
level.grnd_dropZones["mp_carbon"][9] = (-3212, -2879, 3807);
level.grnd_dropZones["mp_carbon"][10] = (-1623, -3339, 380Cool Man (aka Tustin);
level.grnd_dropZones["mp_carbon"][11] = (-1223, -4234, 3834);
level.grnd_dropZones["mp_carbon"][12] = (-896, -4888, 3944);
level.grnd_dropZones["mp_carbon"][13] = (-228, -4535, 3975);
level.grnd_dropZones["mp_carbon"][14] = (-257, -3865, 3956);
level.grnd_dropZones["mp_carbon"][15] = (-215, -3260, 3967);
level.grnd_dropZones["mp_carbon"][16] = (-535, -3798, 3966);

level.grnd_dropZones["mp_hardhat"][0] = (2035, -229, 246);
level.grnd_dropZones["mp_hardhat"][1] = (1959, -772, 352);
level.grnd_dropZones["mp_hardhat"][2] = (1883, -1384, 351);
level.grnd_dropZones["mp_hardhat"][3] = (848, -1520, 334);
level.grnd_dropZones["mp_hardhat"][4] = (1326, -1380, 342);
level.grnd_dropZones["mp_hardhat"][5] = (-338, -1273, 34Cool Man (aka Tustin);
level.grnd_dropZones["mp_hardhat"][6] = (-821, -884, 34Cool Man (aka Tustin);
level.grnd_dropZones["mp_hardhat"][7] = (-920, -290, 230);
level.grnd_dropZones["mp_hardhat"][8] = (-463, -250, 333);
level.grnd_dropZones["mp_hardhat"][9] = (-741, 208, 245);
level.grnd_dropZones["mp_hardhat"][10] = (-201, 806, 437);
level.grnd_dropZones["mp_hardhat"][11] = (224, 980, 436);
level.grnd_dropZones["mp_hardhat"][12] = (1125, 656, 255);
level.grnd_dropZones["mp_hardhat"][13] = (1531, 1241, 364);
level.grnd_dropZones["mp_hardhat"][14] = (1522, 542, 244);

level.grnd_dropZones["mp_alpha"][0] = (-1979, 1653, 14Cool Man (aka Tustin);
level.grnd_dropZones["mp_alpha"][1] = (-1392, 1623, 60);
level.grnd_dropZones["mp_alpha"][2] = (-1697, 1205, 52);
level.grnd_dropZones["mp_alpha"][3] = (-1671, 692, 54);
level.grnd_dropZones["mp_alpha"][4] = (-572, -272, 55);
level.grnd_dropZones["mp_alpha"][5] = (634, -345, 52);
level.grnd_dropZones["mp_alpha"][6] = (391, 121, 60);
level.grnd_dropZones["mp_alpha"][7] = (291, 1271, 60);
level.grnd_dropZones["mp_alpha"][8] = (-459, 868, 52);
level.grnd_dropZones["mp_alpha"][9] = (-353, 1334, 52);
level.grnd_dropZones["mp_alpha"][10] = (-37, 1637, 52);
level.grnd_dropZones["mp_alpha"][11] = (-5, 2226, 52);
level.grnd_dropZones["mp_alpha"][12] = (-407, 2198, 196);

level.grnd_dropZones["mp_village"][0] = (647, 1891, 332);
level.grnd_dropZones["mp_village"][1] = (-26, 1749, 334);
level.grnd_dropZones["mp_village"][2] = (104, 1292, 323);
level.grnd_dropZones["mp_village"][3] = (-1064, 1552, 322);
level.grnd_dropZones["mp_village"][4] = (-599, 886, 37Cool Man (aka Tustin);
level.grnd_dropZones["mp_village"][5] = (-1038, 569, 317);
level.grnd_dropZones["mp_village"][6] = (-1899, 1217, 336);
level.grnd_dropZones["mp_village"][7] = (-1540, 289, 304);
level.grnd_dropZones["mp_village"][8] = (-454, -277, 270);
level.grnd_dropZones["mp_village"][9] = (-1734, -790, 365);
level.grnd_dropZones["mp_village"][10] = (-1418, -1371, 431);
level.grnd_dropZones["mp_village"][11] = (-928, -749, 417);
level.grnd_dropZones["mp_village"][12] = (-861, -2105, 40Cool Man (aka Tustin);
level.grnd_dropZones["mp_village"][13] = (-191, -1550, 400);
level.grnd_dropZones["mp_village"][14] = (357, -678, 245);
level.grnd_dropZones["mp_village"][15] = (-216, 295, 223);
level.grnd_dropZones["mp_village"][16] = (162, -199, 229);
level.grnd_dropZones["mp_village"][17] = (179, -3052, 447);
level.grnd_dropZones["mp_village"][18] = (510, -1790, 375);
level.grnd_dropZones["mp_village"][19] = (1089, -615, 39Cool Man (aka Tustin);
level.grnd_dropZones["mp_village"][20] = (1631, 394, 297);
level.grnd_dropZones["mp_village"][21] = (1007, 1385, 337);
level.grnd_dropZones["mp_village"][22] = (992, 248, 330);
level.grnd_dropZones["mp_village"][23] = (551, 732, 386);

level.grnd_dropZones["mp_lambeth"][0] = (-293, -1286, -180);
level.grnd_dropZones["mp_lambeth"][1] = (-938, -785, -130);
level.grnd_dropZones["mp_lambeth"][2] = (-375, -250, -187);
level.grnd_dropZones["mp_lambeth"][3] = (-355, 409, -196);
level.grnd_dropZones["mp_lambeth"][4] = (161, -5, -181);
level.grnd_dropZones["mp_lambeth"][5] = (682, -407, -197);
level.grnd_dropZones["mp_lambeth"][6] = (694, 263, -196);
level.grnd_dropZones["mp_lambeth"][7] = (690, 1158, -243);
level.grnd_dropZones["mp_lambeth"][8] = (1181, 801, -67);
level.grnd_dropZones["mp_lambeth"][9] = (1281, 1248, -257);
level.grnd_dropZones["mp_lambeth"][10] = (2057, 757, -249);
level.grnd_dropZones["mp_lambeth"][11] = (1470, -1040, -109);
level.grnd_dropZones["mp_lambeth"][12] = (1761, -258, -210);
level.grnd_dropZones["mp_lambeth"][13] = (2800, -652, -186);
level.grnd_dropZones["mp_lambeth"][14] = (2785, 445, -244);
level.grnd_dropZones["mp_lambeth"][15] = (2751, 1090, -263);
level.grnd_dropZones["mp_lambeth"][16] = (1535, 1980, -214);
level.grnd_dropZones["mp_lambeth"][17] = (1262, 2602, -213);
level.grnd_dropZones["mp_lambeth"][18] = (419, 2218, -183);
level.grnd_dropZones["mp_lambeth"][19] = (170, 1631, -182);
level.grnd_dropZones["mp_lambeth"][20] = (-606, 1549, -201);
level.grnd_dropZones["mp_lambeth"][21] = (-1199, 1030, -196);

level.grnd_dropZones["mp_radar"][0] = (-3482, -498, 1222);
level.grnd_dropZones["mp_radar"][1] = (-4263, -124, 1229);
level.grnd_dropZones["mp_radar"][2] = (-4006, 827, 123Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][3] = (-3375, 342, 1222);
level.grnd_dropZones["mp_radar"][4] = (-4623, 531, 129Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][5] = (-5157, 877, 1200);
level.grnd_dropZones["mp_radar"][6] = (-5950, 1071, 1305);
level.grnd_dropZones["mp_radar"][7] = (-6509, 1660, 1299);
level.grnd_dropZones["mp_radar"][8] = (-7013, 2955, 1359);
level.grnd_dropZones["mp_radar"][9] = (-6333, 3473, 1421);
level.grnd_dropZones["mp_radar"][10] = (-5675, 2923, 138Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][11] = (-7119, 4357, 1380);
level.grnd_dropZones["mp_radar"][12] = (-5487, 4077, 1356);
level.grnd_dropZones["mp_radar"][13] = (-5736, 2960, 1407);
level.grnd_dropZones["mp_radar"][14] = (-4908, 3281, 1225);
level.grnd_dropZones["mp_radar"][15] = (-4421, 4071, 126Cool Man (aka Tustin);
level.grnd_dropZones["mp_radar"][16] = (-4979, 1816, 1205);
level.grnd_dropZones["mp_radar"][17] = (-4874, 2306, 1223);

level.grnd_dropZones["mp_interchange"][0] = (2465, -402, 149);
level.grnd_dropZones["mp_interchange"][1] = (2128, 199, 6Cool Man (aka Tustin);
level.grnd_dropZones["mp_interchange"][2] = (1280, 1263, 126);
level.grnd_dropZones["mp_interchange"][3] = (762, 1747, 114);
level.grnd_dropZones["mp_interchange"][4] = (-9, 1836, 3Cool Man (aka Tustin);
level.grnd_dropZones["mp_interchange"][5] = (-284, 1171, 159);
level.grnd_dropZones["mp_interchange"][6] = (-1028, 944, 31);
level.grnd_dropZones["mp_interchange"][7] = (-256, 264, 126);
level.grnd_dropZones["mp_interchange"][8] = (462, -463, 15Cool Man (aka Tustin);
level.grnd_dropZones["mp_interchange"][9] = (1029, -1045, 179);
level.grnd_dropZones["mp_interchange"][10] = (1760, -1434, 142);
level.grnd_dropZones["mp_interchange"][11] = (1538, -361, 142);
level.grnd_dropZones["mp_interchange"][12] = (1150, -2977, 171);
level.grnd_dropZones["mp_interchange"][13] = (371, -2883, 209);
level.grnd_dropZones["mp_interchange"][14] = (399, -2149, 220);

level.grnd_dropZones["mp_underground"][0] = (-602, 3072, -6Cool Man (aka Tustin);
level.grnd_dropZones["mp_underground"][1] = (-285, 2551, -215);
level.grnd_dropZones["mp_underground"][2] = (574, 2656, -40);
level.grnd_dropZones["mp_underground"][3] = (-627, 1579, -196);
level.grnd_dropZones["mp_underground"][4] = (28, 1556, -196);
level.grnd_dropZones["mp_underground"][5] = (727, 1615, -196);
level.grnd_dropZones["mp_underground"][6] = (-1491, 1268, -196);
level.grnd_dropZones["mp_underground"][7] = (-1370, 1757, -196);
level.grnd_dropZones["mp_underground"][8] = (-1259, 599, -156);
level.grnd_dropZones["mp_underground"][9] = (-959, -26, 60);
level.grnd_dropZones["mp_underground"][10] = (-303, -562, 60);
level.grnd_dropZones["mp_underground"][11] = (193, -922, 60);
level.grnd_dropZones["mp_underground"][12] = (305, 817, -6Cool Man (aka Tustin);
level.grnd_dropZones["mp_underground"][13] = (-276, 370, -6Cool Man (aka Tustin);

level.grnd_dropZones["mp_bravo"][0] = (-1359, 608, 975);
level.grnd_dropZones["mp_bravo"][1] = (-1686, 313, 991);
level.grnd_dropZones["mp_bravo"][2] = (-1228, 41, 976);
level.grnd_dropZones["mp_bravo"][3] = (-732, -715, 1032);
level.grnd_dropZones["mp_bravo"][4] = (31, -771, 103Cool Man (aka Tustin);
level.grnd_dropZones["mp_bravo"][5] = (986, -833, 1116);
level.grnd_dropZones["mp_bravo"][6] = (1800, -577, 1229);
level.grnd_dropZones["mp_bravo"][7] = (1588, -55, 1181);
level.grnd_dropZones["mp_bravo"][8] = (619, 916, 1175);
level.grnd_dropZones["mp_bravo"][9] = (-129, 1310, 122Cool Man (aka Tustin);
level.grnd_dropZones["mp_bravo"][10] = (-726, 1272, 126Cool Man (aka Tustin);
level.grnd_dropZones["mp_bravo"][11] = (-741, 752, 1053);
level.grnd_dropZones["mp_bravo"][12] = (6, -136, 1282);
}
}


Grinder Airdrop post 1 by me - You must login or register to view this content.


Everyone knows this.. this game mode was in private match when the game came out.. also use the spoiler thing.
12-16-2011, 02:31 PM #18
ResistTheSun
In Flames Much?
Originally posted by Aiiden View Post
Class when playing that new gamemode : Extreme conditioning, quickdraw + C4 & RPG = WIN !

Also let me ask something, when you unlock Blast Shield PRO it says resistance to flashes and stuns... I got the PRO version and it resists to nothing at all, I still get stunned and flashed Not Happy or Sad


Blast shield effects
Reduce explosive damage by 45%
50% resistance to flashes and stuns.

Vs

Flack jacket effects

Reduce explosive damage by 65%

Tactical Mask pro
Reduce effect of stuns and flashes by 90%

In other words they nerfed it compared to black ops. I believe the reason would be that you can't resupply flashes and stuns. IW should have left blast sheild the same as black ops. Maybe we would have less Assassin then.

Drop zone sounds like king of the hill with care packages..............

The following user thanked ResistTheSun for this useful post:

12-16-2011, 02:47 PM #19
SirBlazeAlot
I ROCK like a fossil
LOL F U team killers Smile

Copyright © 2026, NextGenUpdate.
All Rights Reserved.

Gray NextGenUpdate Logo