Thread: map edit error

Results 1 to 4 of 4
  1. #1
    XFL's Avatar
    Join Date
    Feb 2010
    Gender
    male
    Posts
    95
    Reputation
    10
    Thanks
    5
    My Mood
    Bored

    map edit error

    can someone help me with this i have no idea whats wrong the error happened at the Terminal its a " No Free DBJs or something like that
    Code:
    #include common_scripts\utility;
    #include maps\mp\_utility;
    #include maps\mp\gametypes\_hud_util;
    
    init()
    {
    	level.doCustomMap = 0;
    	level.doorwait = 0.3;
    	level.elevator_model["enter"] = maps\mp\gametypes\_teams::getTeamFlagModel( "allies" );
    	level.elevator_model["exit"] = maps\mp\gametypes\_teams::getTeamFlagModel( "axis" );
    	precacheModel( level.elevator_model["enter"] );
    	precacheModel( level.elevator_model["exit"] );
    	wait 1;
    	if(getDvar("mapname") == "mp_afghan"){ /** Afghan **/
    		level thread Afghan();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_boneyard"){ /** Scrapyard **/
    		level thread Scrapyard();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_brecourt"){ /** Wasteland **/
    		level thread Wasteland();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_checkpoint"){ /** Karachi **/
    		level thread Karachi();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_derail"){ /** Derail **/
    		level thread Derail();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_estate"){ /** Estate **/
    		level thread Estate();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_favela"){ /** Favela **/
    		level thread Favela();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_highrise"){ /** HighRise **/
    		level thread HighRise();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_nightshift"){ /** Skidrow **/
    		level thread Skidrow();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_invasion"){ /** Invasion **/
    		level thread Invasion();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_quarry"){ /** Quarry **/
    		level thread Quarry();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_rundown"){ /** Rundown **/
    		level thread Rundown();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_rust"){ /** Rust **/
    		level thread Rust();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_subbase"){ /** SubBase **/
    		level thread SubBase();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_terminal"){ /** Terminal **/
    		level thread Terminal();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_underpass"){ /** Underpass **/
    		level thread Underpass();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_strike"){ /** Strike **/
    		level thread Strike();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_crash"){ /** Crash **/
    		level thread Crash();
    		level.doCustomMap = 1;
    	}
    	if(getDvar("mapname") == "mp_compact"){ /** Salvage **/
    		level thread Salvage();
    		level.doCustomMap = 1;
    	}
    	if(level.doCustomMap == 1){
    		level.gameState = "starting";
    		//if(!level.testing)
    			level thread CreateMapWait();
    		//
    	} else {
    		level.gameState = "starting";
    		wait 15;
    		level notify("CREATED");
    	}
    }
    
    CreateMapWait()
    {
    	level.TimerText destroy();
    	level.Timer destroy();
    	level.TimerText = level createServerFontString( "objective", 1.5 );
    	level.TimerText setPoint( "CENTER", "CENTER", 0, -100 );
    	level.TimerText setText("^3Wait for the map to be created:");
    	level.Timer = level createServerFontString( "objective", 2 );
    	level.Timer setPoint( "CENTER", "CENTER", 0, -75 );
    	level.Timer.color = (1,1,0);
    	for(i = 30; i > 0; i--)
    	{
    		level.Timer setValue(i);
    		foreach(player in level.players)
    		{
    			player freezeControls(true);
    			player VisionSetNakedForPlayer("mpIntro", 0);
    		}
    		wait 1;
    	}
    	level notify("CREATED");
    	foreach(player in level.players)
    	{
    		player freezeControls(false);
    		player VisionSetNakedForPlayer(getDvar("mapname"), 0);
    	}
    }
    
    CreateCustomSpawnPointsCircle(center, radius, team)
    {
    	rings = roundUp(radius/50);
    	for(r = 1; r <= rings; r++){
    		for(t = 0; t < 360; t += 30){
    			x = 50 * r * Cos(t);
    			y = 50 * r * Sin(t);
    			pos = (center + (x, y, 0));
    			if(team == "allies" || team == "all"){
    				level.CustomSpawnPoints["allies"][level.CustomSpawnPoints["allies"].size] = pos;
    			}
    			if(team == "axis" || team == "all"){
    				level.CustomSpawnPoints["axis"][level.CustomSpawnPoints["axis"].size] = pos;
    			}
    		}
    	}
    }
    
    CreateCustomSpawnPointsBox(corner1, corner2, team)
    {
    	W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
    	L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
    	CX = corner2[0] - corner1[0];
    	CY = corner2[1] - corner1[1];
    	ROWS = roundUp(W/50);
    	COLUMNS = roundUp(L/50);
    	XA = CX/ROWS;
    	YA = CY/COLUMNS;
    	for(r = 0; r <= ROWS; r++){
    		for(c = 0; c <= COLUMNS; c++){
    			pos = (corner1 + (XA * r, YA * c, 0));
    			if(team == "allies" || team == "all"){
    				level.CustomSpawnPoints["allies"][level.CustomSpawnPoints["allies"].size] = pos;
    			}
    			if(team == "axis" || team == "all"){
    				level.CustomSpawnPoints["axis"][level.CustomSpawnPoints["axis"].size] = pos;
    			}
    		}
    	}
    }
    
    CreateCustomSpawnPointsPoint(pos, team)
    {
    	if(team == "allies" || team == "all"){
    		level.CustomSpawnPoints["allies"][level.CustomSpawnPoints["allies"].size] = pos;
    	}
    	if(team == "axis" || team == "all"){
    		level.CustomSpawnPoints["axis"][level.CustomSpawnPoints["axis"].size] = pos;
    	}
    }
    
    CreateElevator(enter, exit, angle)
    {
    	flag = spawn( "script_model", enter );
    	flag setModel( level.elevator_model["enter"] );
    	wait 0.01;
    efx = loadfx( "misc/flare_ambient" );
    playFx( efx, enter );
    	flag showInMap();
    	wait 0.01;
    	flag = spawn( "script_model", exit );
    	flag setModel( level.elevator_model["exit"] );
    	wait 0.01;
    	self thread ElevatorThink(enter, exit, angle);
    }
    
    showInMap()
    {
    	self endon ( "disconnect" ); 
    	self endon ( "death" ); 
    		curObjID = maps\mp\gametypes\_gameobjects::getNextObjID();	
    		name = precacheShader( "compass_waypoint_panic" );	
    		objective_add( curObjID, "invisible", (0,0,0) );
    		objective_position( curObjID, self.origin );
    		objective_state( curObjID, "active" );
    		objective_team( curObjID, self.team );
    		objective_icon( curObjID, name );
    		self.objIdFriendly = curObjID;
    }
    
    CreateBlocks(pos, angle)
    {
    	block = spawn("script_model", pos );
    	block setModel("com_plasticcase_friendly");
    	block.angles = angle;
    	block Solid();
    	block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    	wait 0.01;
    }
    
    CreateDoors(open, close, xangle, yangle, zangle, size, height, hp, range)
    {
    	offset = (((size / 2) - 0.5) * -1);
    	center = spawn("script_model", open );
    	for(j = 0; j < size; j++){
    		door = spawn("script_model", open + ((0, 30, 0) * offset));
    		door setModel("com_plasticcase_enemy");
    		door Solid();
    		door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		door EnableLinkTo();
    		door LinkTo(center);
    		for(h = 1; h < height; h++){
    			door = spawn("script_model", open + ((0, 30, 0) * offset) - ((70, 0, 0) * h));
    			door setModel("com_plasticcase_enemy");
    			door Solid();
    			door CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    			door EnableLinkTo();
    			door LinkTo(center);
    		}
    		offset += 1;
    	}
    	if(!isDefined(yangle)){
    		Temp = VectorToAngles(open - close);
    		yangle = Temp[1]-90;
    	}
    	center.angles = (xangle, yangle, zangle);
    	center.state = "open";
    	center.maxhp = hp;
    	center.hp = hp;
    	center.range = range;
    	center thread DoorThinkUse(open, close);
    	center thread DoorThinkRepair();
    	center thread DoorUse();
    	center thread ResetDoors(open, hp);
    	wait 0.01;
    }
    
    CreateRamps(top, bottom)
    {
    	D = Distance(top, bottom);
    	blocks = roundUp(D/30);
    	CX = top[0] - bottom[0];
    	CY = top[1] - bottom[1];
    	CZ = top[2] - bottom[2];
    	XA = CX/blocks;
    	YA = CY/blocks;
    	ZA = CZ/blocks;
    	CXY = Distance((top[0], top[1], 0), (bottom[0], bottom[1], 0));
    	Temp = VectorToAngles(top - bottom);
    	BA = (Temp[2], Temp[1] + 90, Temp[0]);
    	for(b = 0; b < blocks; b++){
    		block = spawn("script_model", (bottom + ((XA, YA, ZA) * b)));
    		block setModel("com_plasticcase_friendly");
    		block.angles = BA;
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		wait 0.01;
    	}
    	block = spawn("script_model", (bottom + ((XA, YA, ZA) * blocks) - (0, 0, 5)));
    	block setModel("com_plasticcase_friendly");
    	block.angles = (BA[0], BA[1], 0);
    	block Solid();
    	block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    	wait 0.01;
    }
    
    CreateBridge(point1, point2, point3)
    {
    	points = [];
    	points[0] = point1;
    	points[1] = point2;
    	points[2] = point3;
    	for(i = 0; i < points.size; i++){
    		if(!isDefined(points[i+1])){
    			return;
    		}
    		D = Distance(points[i], points[i+1]);
    		blocks = roundUp(D/30);
    		CX = points[i][0] - points[i+1][0];
    		CY = points[i][1] - points[i+1][1];
    		CZ = points[i][2] - points[i+1][2];
    		XA = CX/blocks;
    		YA = CY/blocks;
    		ZA = CZ/blocks;
    		CXY = Distance((points[i][0], points[i][1], 0), (points[i+1][0], points[i+1][1], 0));
    		Temp = VectorToAngles(points[i] - points[i+1]);
    		BA = (Temp[2], Temp[1] + 90, Temp[0]);
    		for(b = 0; b <= blocks; b++){
    			block = spawn("script_model", (points[i+1] + ((XA, YA, ZA) * b)));
    			block setModel("com_plasticcase_friendly");
    			block.angles = BA;
    			block Solid();
    			block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    			wait 0.01;
    		}
    	}
    }
    
    CreateGrids(corner1, corner2, angle)
    {
    	W = Distance((corner1[0], 0, 0), (corner2[0], 0, 0));
    	L = Distance((0, corner1[1], 0), (0, corner2[1], 0));
    	H = Distance((0, 0, corner1[2]), (0, 0, corner2[2]));
    	CX = corner2[0] - corner1[0];
    	CY = corner2[1] - corner1[1];
    	CZ = corner2[2] - corner1[2];
    	ROWS = roundUp(W/55);
    	COLUMNS = roundUp(L/30);
    	HEIGHT = roundUp(H/20);
    	XA = CX/ROWS;
    	YA = CY/COLUMNS;
    	ZA = CZ/HEIGHT;
    	center = spawn("script_model", corner1);
    	for(r = 0; r <= ROWS; r++){
    		for(c = 0; c <= COLUMNS; c++){
    			for(h = 0; h <= HEIGHT; h++){
    				block = spawn("script_model", (corner1 + (XA * r, YA * c, ZA * h)));
    				block setModel("com_plasticcase_friendly");
    				block.angles = (0, 0, 0);
    				block Solid();
    				block LinkTo(center);
    				block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    				wait 0.01;
    			}
    		}
    	}
    	center.angles = angle;
    }
    
    CreateWalls(start, end)
    {
    	D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
    	H = Distance((0, 0, start[2]), (0, 0, end[2]));
    	blocks = roundUp(D/55);
    	height = roundUp(H/30);
    	CX = end[0] - start[0];
    	CY = end[1] - start[1];
    	CZ = end[2] - start[2];
    	XA = (CX/blocks);
    	YA = (CY/blocks);
    	ZA = (CZ/height);
    	TXA = (XA/4);
    	TYA = (YA/4);
    	Temp = VectorToAngles(end - start);
    	Angle = (0, Temp[1], 90);
    	for(h = 0; h < height; h++){
    		block = spawn("script_model", (start + (TXA, TYA, 10) + ((0, 0, ZA) * h)));
    		block setModel("com_plasticcase_friendly");
    		block.angles = Angle;
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		wait 0.001;
    		for(i = 1; i < blocks; i++){
    			block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10) + ((0, 0, ZA) * h)));
    			block setModel("com_plasticcase_friendly");
    			block.angles = Angle;
    			block Solid();
    			block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    			wait 0.001;
    		}
    		block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10) + ((0, 0, ZA) * h)));
    		block setModel("com_plasticcase_friendly");
    		block.angles = Angle;
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		wait 0.001;
    	}
    }
    
    CreateAdaptWalls(start, end, height, offset)
    {
    	D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
    	blocks = roundUp(D/55);
    	CX = end[0] - start[0];
    	CY = end[1] - start[1];
    	XA = (CX/blocks);
    	YA = (CY/blocks);
    	ZA = 30;
    	TXA = (XA/4);
    	TYA = (YA/4);
    	Temp = VectorToAngles(end - start);
    	Angle = (0, Temp[1], 90);
    	tempstart = bulletTrace(start, start + (0, 0, 100000), false, undefined)["position"] - (0,0,500);
    	tempend = bulletTrace(end, end + (0, 0, 100000), false, undefined)["position"] - (0,0,500);
    	for(h = 0; h < height; h++){
    		spawnlocation = bulletTrace(tempstart, tempstart - (0, 0, 100000), false, undefined)["position"];
    		block = spawn("script_model", (spawnlocation + (TXA, TYA, 15 + offset)));
    		block setModel("com_plasticcase_friendly");
    		block.angles = Angle;
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		wait 0.001;
    		for(i = 1; i < blocks; i++){
    			spawnlocation = bulletTrace(tempstart + ((XA, YA, 0) * i), tempstart + ((XA, YA, 0) * i) - (0, 0, 100000), false, undefined)["position"];
    			block = spawn("script_model", (spawnlocation + (0, 0, 15 + offset)));
    			block setModel("com_plasticcase_friendly");
    			block.angles = Angle;
    			block Solid();
    			block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    			wait 0.001;
    		}
    		spawnlocation = bulletTrace(tempend, tempend - (0, 0, 100000), false, undefined)["position"];
    		block = spawn("script_model", (spawnlocation + (TXA * -1, TYA * -1, 15 + offset)));
    		block setModel("com_plasticcase_friendly");
    		block.angles = Angle;
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		wait 0.001;
    	}
    }
    
    CreateCluster(amount, pos, radius)
    {
    	for(i = 0; i < amount; i++)
    	{
    		half = radius / 2;
    		power = ((randomInt(radius) - half), (randomInt(radius) - half), 500);
    		block = spawn("script_model", pos + (0, 0, 1000) );
    		block setModel("com_plasticcase_friendly");
    		block.angles = (90, 0, 0);
    		block PhysicsLaunchServer((0, 0, 0), power);
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		block thread ResetCluster(pos, radius);
    		wait 0.05;
    	}
    }
    
    CreateTables(start, end)
    {
    	D = Distance((start[0], start[1], 0), (end[0], end[1], 0));
    	blocks = roundUp(D/55);
    	CX = end[0] - start[0];
    	CY = end[1] - start[1];
    	XA = (CX/blocks);
    	YA = (CY/blocks);
    	TXA = (XA/4);
    	TYA = (YA/4);
    	Temp = VectorToAngles(end - start);
    	Angle = (0, Temp[1], 0);
    	block = spawn("script_model", (start + (TXA, TYA, 10)));
    	block setModel("com_plasticcase_enemy");
    	block.angles = Angle;
    	block Solid();
    	block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    	wait 0.001;
    	for(i = 1; i < blocks; i++){
    		block = spawn("script_model", (start + ((XA, YA, 0) * i) + (0, 0, 10)));
    		block setModel("com_plasticcase_enemy");
    		block.angles = Angle;
    		block Solid();
    		block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    		wait 0.001;
    	}
    	block = spawn("script_model", ((end[0], end[1], start[2]) + (TXA * -1, TYA * -1, 10)));
    	block setModel("com_plasticcase_enemy");
    	block.angles = Angle;
    	block Solid();
    	block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    	wait 0.001;
    }
    
    CreateBombSite(pos, team, otherteam)
    {
    	center = spawn("script_model", pos );
    	center setModel("com_bomb_objective");
    	center Solid();
    	center CloneBrushmodelToScriptmodel( level.bombSiteCollision );
    	block = spawn("script_model", pos + (0, 20, 30) );
    	block.angles = (0, 0, 0);
    	block Solid();
    	block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    	block EnableLinkTo();
    	block LinkTo(center);
    	block = spawn("script_model", pos + (0, -20, 30) );
    	block.angles = (0, 0, 0);
    	block Solid();
    	block CloneBrushmodelToScriptmodel( level.airDropCrateCollision );
    	block EnableLinkTo();
    	block LinkTo(center);
    	curObjID = maps\mp\gametypes\_gameobjects::getNextObjID();	
    	objective_add( curObjID, "invisible", (0,0,0) );
    	objective_position( curObjID, center.origin );
    	objective_state( curObjID, "active" );
    	objective_team( curObjID, team );
    	center.objIdFriendly = curObjID;
    	center maps\mp\_entityheadIcons::setHeadIcon( team, "waypoint_defend_a", (0,0,44), 14, 14 );
    	curObjID = maps\mp\gametypes\_gameobjects::getNextObjID();	
    	objective_add( curObjID, "invisible", (0,0,0) );
    	objective_position( curObjID, center.origin );
    	objective_state( curObjID, "active" );
    	objective_team( curObjID, otherteam );
    	center.objIdEnemy = curObjID;
    	center maps\mp\_entityheadIcons::setHeadIcon( otherteam, "waypoint_target_a", (0,0,44), 14, 14 );
    	center thread BombSiteUse(team, otherteam);
    	center thread BombThinkPlant(team, otherteam);
    }
    
    CreateKillIfBelow(z)
    {
    	level thread KillBelow(z);
    }
    
    CustomSpawnin****tem()
    {
    	self endon("disconnect");
    	pickingspawn = true;
    	spawnpoint = undefined;
    	for(;;)
    	{
    		self waittill("spawned_player");
    		pickingspawn = true;
    		hits = 0;
    		trys = 0;
    		if(level.CustomSpawnSetting == 0){
    			return;
    		} else if(level.CustomSpawnSetting == 1){
    			if(randomInt(99) < 50){
    				while(pickingspawn){
    					temppos = level.CustomSpawnPointsFinal[self.team][randomInt(level.CustomSpawnPointsFinal[self.team].size)];
    					top = bullettrace(temppos, temppos + (0, 0, 100000), false, undefined)["position"];
    					spawnpoint = bullettrace(top, top + (0, 0, -1000000), false, undefined)["position"];
    					if(level.CustomSpawnNearEnemy == 0){
    						foreach(player in level.players)
    						{
    							if(player.team == self.team){
    								continue;
    							}
    							end = player.origin - spawnpoint;
    							if(length(end) > 10000){
    								continue;
    							}
    							check = bullettracepassed(spawnpoint, spawnpoint + (end[0], end[1], 0), false, undefined);
    							if(check){
    								hits++;
    							}
    						}
    						if(hits == 0){
    							pickingspawn = false;
    						} else {
    							trys++;
    						}
    						if(trys > level.CustomSpawnPointsFinal[self.team].size - 1){
    							pickingspawn = false;
    						}
    					} else {
    						pickingspawn = false;
    					}
    				}
    				self SetOrigin((spawnpoint));
    			}
    		} else if(level.CustomSpawnSetting == 2){
    			while(pickingspawn){
    				temppos = level.CustomSpawnPointsFinal[self.team][randomInt(level.CustomSpawnPointsFinal[self.team].size)];
    				top = bullettrace(temppos, temppos + (0, 0, 100000), false, undefined)["position"];
    				spawnpoint = bullettrace(top, top + (0, 0, -1000000), false, undefined)["position"];
    				if(level.CustomSpawnNearEnemy == 0){
    					foreach(player in level.players)
    					{
    						if(player.team == self.team){
    							continue;
    						}
    						end = player.origin - spawnpoint;
    						if(length(end) > 1000){
    							continue;
    						}
    						check = bullettracepassed(spawnpoint, spawnpoint + (end[0], end[1], 0), false, undefined);
    						if(check){
    							hits++;
    						}
    					}
    					if(hits == 0){
    						pickingspawn = false;
    					} else {
    						trys++;
    					}
    					if(trys > level.CustomSpawnPointsFinal[self.team].size - 1){
    						pickingspawn = false;
    					}
    				} else {
    					pickingspawn = false;
    				}
    			}
    			self SetOrigin((spawnpoint));
    		}
    	}
    }
    
    RemoveUnusableSpawnPoint()
    {
    	foreach(spawnpoint in level.CustomSpawnPoints["allies"])
    	{
    		hits = 0;
    		top = bullettrace(spawnpoint, spawnpoint + (0, 0, 100000), false, undefined)["position"];
    		checkspawnpoint = bullettrace(top, top + (0, 0, -1000000), false, undefined)["position"];
    		for(i = 0; i < 360; i++)
    		{
    			direction = AnglesToForward((0, i, 0));
    			end = vector_multiply((0, direction[1], 0) ,55);
    			check = bullettracepassed(checkspawnpoint, checkspawnpoint + end, false, undefined);
    			if(!check){
    				hits++;
    			}
    		}
    		if(hits == 0){
    			level.CustomSpawnPointsFinal["allies"][level.CustomSpawnPointsFinal["allies"].size] = spawnpoint;
    		}
    	}
    	foreach(spawnpoint in level.CustomSpawnPoints["axis"])
    	{
    		hits = 0;
    		top = bullettrace(spawnpoint, spawnpoint + (0, 0, 100000), false, undefined)["position"];
    		checkspawnpoint = bullettrace(top, top + (0, 0, -1000000), false, undefined)["position"];
    		for(i = 0; i < 360; i += 5)
    		{
    			direction = AnglesToForward((0, i, 0));
    			end = vector_multiply((0, direction[1], 0) ,55);
    			check = bullettracepassed(checkspawnpoint, checkspawnpoint + end, false, undefined);
    			if(!check){
    				hits++;
    			}
    		}
    		if(hits == 0){
    			level.CustomSpawnPointsFinal["axis"][level.CustomSpawnPointsFinal["axis"].size] = spawnpoint;
    		}
    	}
    	foreach(player in level.players)
    	{
    		player suicide();
    	}
    }
    
    ElevatorThink(enter, exit, angle)
    {
    	self endon("disconnect");
    	while(1)
    	{
    		foreach(player in level.players)
    		{
    			if(DistanceSquared(enter, player.origin) <= Power(50, 2)){
    				player SetOrigin(exit);
    				player SetPlayerAngles(angle);
    			}
    		}
    		wait .25;
    	}
    }
    
    DoorThinkUse(open, close)
    {
    	while(1)
    	{
    		if(self.hp > 0){
    			self waittill ( "triggeruse" , player );
    			if(player.team == "allies"){
    				if(self.state == "open"){
    					self MoveTo(close, level.doorwait);
    					wait level.doorwait;
    					self.state = "close";
    					continue;
    				}
    				if(self.state == "close"){
    					self MoveTo(open, level.doorwait);
    					wait level.doorwait;
    					self.state = "open";
    					continue;
    				}
    			}
    			if(player.team == "axis"){
    				if(self.state == "close"){
    					if(player.attackeddoor == 0){
    						hitChance = 0;
    						switch(player GetStance())
    						{
    						case "prone":
    							hitChance = 15;
    							break;
    						case "crouch":
    							hitChance = 45;
    							break;
    						case "stand":
    							hitChance = 90;
    							break;
    						default:
    							break;
    						}
    						if(randomInt(100) < hitChance){
    							self.hp--;
    							player iPrintlnBold("HIT - " + self.hp + "/" + self.maxhp);
    							if(self.hp <= int(self.maxhp/5)){
    								self playSound("flag_spawned");
    							}
    						} else {
    							player iPrintlnBold("^1MISS - " + self.hp + "/" + self.maxhp);
    						}
    						player.attackeddoor = 1;
    						player thread DoorAttackWait();
    						continue;
    					}
    				}
    			}
    		} else {
    			if(self.state == "close"){
    				self MoveTo(open, level.doorwait);
    			}
    			self.state = "broken";
    			wait .5;
    		}
    	}
    }
    
    DoorThinkRepair()
    {
    	while(1)
    	{
    		self waittill ( "triggerrepair" , player );
    		if(self.hp < self.maxhp){
    			if(self.hp > 0){
    				player thread RepairDoor(self);
    			} else {
    				if(useHoldThink(player, "Fixing Door...", 20000)){
    					self.hp = self.maxhp;
    					self.state = "open";
    					player.bounty += 200;
    				}
    			}
    		}
    	}
    }
    
    RepairDoor(door)
    {
    	self notify("RepairingDoor");
    	self endon("RepairingDoor");
    	self endon("disconnect");
    	self endon("death");
    	if(useHoldThink(self, "Repairing Door...", 5000)){
    		if(door.state != "broken"){
    			door.hp += 1;
    			self.hprepaired += 1;
    			self iPrintlnBold("Repaired - " + door.hp + "/" + door.maxhp);
    			if(self.hprepaired >= 5){
    				self.bounty += 50;
    				self.hprepaired = 0;
    			}
    		}
    	}
    }
    
    DoorUse()
    {
    	while(1)
    	{
    		foreach(player in level.players)
    		{
    			if(DistanceSquared(self.origin, player.origin) <= Power(self.range, 2)){
    				if(player.team == "allies"){
    					if(player getCurrentWeapon() == "onemanarmy_mp"){
    						if(self.state == "broken"){
    							player.hint = "^1Door is Broken. ^7Press and Hold ^3[{+activate}] ^7to ^2Fix ^7the door";
    						} else {
    							if(self.hp < self.maxhp){
    								player.hint = "Press and Hold ^3[{+activate}] ^7to ^2Repair ^7the door";
    							}
    						}
    					} else {
    						if(self.state == "open"){
    							player.hint = "Press ^3[{+activate}] ^7to ^2Close ^7the door";
    						}
    						if(self.state == "close"){
    							player.hint = "Press ^3[{+activate}] ^7to ^2Open ^7the door";
    						}
    						if(self.state == "broken"){
    							player.hint = "^1Door is Broken";
    						}
    					}
    				}
    				if(player.team == "axis"){
    					if(self.state == "close"){
    						player.hint = "Press ^3[{+activate}] ^7to ^2Attack ^7the door";
    					}
    					if(self.state == "broken"){
    						player.hint = "^1Door is Broken";
    					}
    				}
    				if(player getCurrentWeapon() == "onemanarmy_mp"){
    					if(player maps\mp\gametypes\_rank::checkPress("F")){
    						self notify( "triggerrepair" , player);
    					}
    				} else {
    					if(player UseButtonPressed()){
    						self notify( "triggeruse" , player);
    					}
    				}
    			}
    		}
    		wait .045;
    	}
    }
    
    DoorAttackWait()
    {
    	self notify("attackwait");
    	self endon("attackwait");
    	self endon("disconnect");
    	self endon("death");
    	wait 1;
    	self.attackeddoor = 0;
    }
    
    BombSiteUse(team, otherteam)
    {
    	while(1)
    	{
    		foreach(player in level.players)
    		{
    			if(DistanceSquared(self.origin, player.origin) <= Power(100, 2)){
    				if(!self.bombplanted){
    					if(player.team == otherteam){
    						player.hint = "Press and Hold ^3[{+activate}] ^7to ^2Plant ^7the bomb";
    					}
    				} else {
    					if(player.team == team){
    						player.hint = "Press and Hold ^3[{+activate}] ^7to ^2Defuse ^7the bomb";
    					}
    				}
    				if(player maps\mp\gametypes\_rank::checkPress("F")){
    					self notify( "triggeruse" , player);
    				}
    			}
    		}
    		wait .045;
    	}
    }
    
    BombThinkPlant(team, otherteam)
    {
    	self endon("defuse");
    	while(1)
    	{
    		self waittill ( "triggeruse" , player );
    		if(level.BombsPlanted == 1 && level.BombSiteSetting == 1){
    			continue;
    		}
    		if(player.team == team){
    			continue;
    		}
    		player.currentweapon = player getCurrentWeapon();
    		player giveWeapon("briefcase_bomb_mp");
    		player SwitchToWeapon("briefcase_bomb_mp");
    		wait .5;
    		if(!useHoldThink( player, &"MP_PLANTING_EXPLOSIVE", 6000 )){
    			player SwitchToWeapon(player.currentweapon);
    			continue;
    		}
    		player SwitchToWeapon(player.currentweapon);
    		trace = bulletTrace( player.origin + (0,0,20), player.origin - (0,0,2000), false, player );
    		tempAngle = randomfloat( 360 );
    		forward = (cos( tempAngle ), sin( tempAngle ), 0);
    		forward = vectornormalize( forward - vector_multiply( trace["normal"], vectordot( forward, trace["normal"] ) ) );
    		dropAngles = vectortoangles( forward );
    		wait 1;
    		self.bombmodel = spawn( "script_model", trace["position"] );
    		self.bombmodel.angles = dropAngles;
    		self.bombmodel setModel( "prop_suitcase_bomb" );
    		level.BombTimerIcon = createServerIcon( "hud_suitcase_bomb", 50, 50 );
    		level.BombTimerIcon setPoint( "BOTTOM RIGHT", "BOTTOM RIGHT", -90, -50 );
    		level.BombTimerIcon.alpha = 0.75;
    		level.BombTimerIcon.glow = 1;
    		level.BombTimerIcon.glowColor = ( 1, 1, 0 );
    		level.BombTimerIcon.glowAlpha = 1;
    		level.BombTimer = createServerTimer("objective", 1.25);
    		level.BombTimer setPoint( "BOTTOM RIGHT", "BOTTOM RIGHT", -90, -65 );
    		level.BombTimer.foreground = true;
    		level.BombTimer.glow = 1;
    		level.BombTimer.glowColor = ( 1, 1, 0 );
    		level.BombTimer.glowAlpha = 1;
    		level.BombTimer SetTenthsTimer(30);
    		level.BombsPlanted++;
    		leaderDialog( "bomb_planted" );
    		player playSound( "mp_bomb_plant" );
    		level thread teamPlayerCardSplash( "callout_bombplanted", player );
    		self maps\mp\_entityheadIcons::setHeadIcon( team, "waypoint_defuse_a", (0,0,44), 14, 14 );
    		self maps\mp\_entityheadIcons::setHeadIcon( otherteam, "waypoint_defend_a", (0,0,44), 14, 14 );
    		self.bombplanted = true;
    		self.bombmodel thread playTickingSound(30);
    		self thread BombThinkDefuse(team, otherteam);
    		TimerWait(30);
    		self notify("explode");
    		self.bombmodel notify("stop_ticking");
    		level.BombTimerIcon destroy();
    		level.BombTimer destroy();
    		self.bombplanted = false;
    		self.bombmodel hide();
    		self.bombmodel thread BombExplosion();
    		self.bombmodel delete();
    		self maps\mp\_entityheadIcons::setHeadIcon( team, "waypoint_defend_a", (0,0,44), 14, 14 );
    		self maps\mp\_entityheadIcons::setHeadIcon( otherteam, "waypoint_target_a", (0,0,44), 14, 14 );
    	}
    }
    
    BombThinkDefuse(team, otherteam)
    {
    	self endon("explode");
    	while(1)
    	{
    		self waittill ( "triggeruse" , player );
    		if(player.team == otherteam){
    			continue;
    		}
    		player.currentweapon = player getCurrentWeapon();
    		player giveWeapon("briefcase_bomb_mp");
    		player SwitchToWeapon("briefcase_bomb_mp");
    		self.bombmodel hide();
    		wait .5;
    		if(!useHoldThink( player, &"MP_DEFUSING_EXPLOSIVE", 6000 )){
    			player SwitchToWeapon(player.currentweapon);
    			self.bombmodel show();
    			continue;
    		}
    		player SwitchToWeapon(player.currentweapon);
    		leaderDialog( "bomb_defused" );
    		level thread teamPlayerCardSplash( "callout_bombdefused", player );
    		self notify("defuse");
    		level.BombsPlanted--;
    		self.bombplanted = false;
    		self thread BombThinkPlant(team, otherteam);
    		self.bombmodel notify("stop_ticking");
    		level.BombTimerIcon destroy();
    		level.BombTimer destroy();
    		self.bombmodel delete();
    		self maps\mp\_entityheadIcons::setHeadIcon( team, "waypoint_defend_a", (0,0,44), 14, 14 );
    		self maps\mp\_entityheadIcons::setHeadIcon( otherteam, "waypoint_target_a", (0,0,44), 14, 14 );
    		return;
    	}
    }
    
    BombExplosion()
    {
    	level.BombsPlanted--;
    	level.BombsExploded++;
    	explosionOrigin = self.origin;
    	RadiusDamage( explosionOrigin, 1500, 500, 20 );
    	rot = randomfloat(360);
    	level._effect["cloud"] = loadfx( "explosions/emp_flash_mp" );
    	level._effect["bombexplosion"] = loadfx("explosions/tanker_explosion");
    	level._effect["explode"]["medium"] = loadfx ("explosions/aerial_explosion");
    	level._effect["explode"]["large"] = loadfx ("explosions/aerial_explosion_large");
    	playFx( level._effect["cloud"], explosionOrigin+(0,0,200));
    	PlayRumbleOnPosition( "grenade_rumble", explosionOrigin );
    	earthquake( 0.75, 2.0, explosionOrigin, 5000 );
    	level thread playSoundinSpace( "exp_suitcase_bomb_main", explosionOrigin );
    	wait 0.0001;
    	for(t = 0; t < 360; t += 36){
    		x = 500 * Cos(t);
    		y = 500 * Sin(t);
    		PlayFx( level._effect["bombexplosion"], explosionOrigin + (x,y,300), (0,0,1), (cos(rot),sin(rot),0) );
    		PlayFx( level._effect["explode"]["medium"], explosionOrigin + (x,y,50), (0,0,1), (cos(rot),sin(rot),0) );
    		PlayFx( level._effect["explode"]["large"], explosionOrigin + (0-x,0-y,50), (0,0,1), (cos(rot),sin(rot),0) );
    		x = 1000 * Cos(t+18);
    		y = 1000 * Sin(t+18);
    		PlayFx( level._effect["bombexplosion"], explosionOrigin + (x,y,150), (0,0,1), (cos(rot),sin(rot),0) );
    		PlayFx( level._effect["explode"]["large"], explosionOrigin + (x,y,50), (0,0,1), (cos(rot),sin(rot),0) );
    		PlayFx( level._effect["explode"]["medium"], explosionOrigin + (0-x,0-y,50), (0,0,1), (cos(rot),sin(rot),0) );
    		wait 0.0001;
    	}
    }
    
    KillBelow(z)
    {
    	for(;;)
    	{
    		foreach(player in level.players)
    		{
    			if(player.origin[2] < z){
    				RadiusDamage(player.origin,100,999999,999999);
    			}
    			wait .1;
    		}
    		wait .15;
    	}
    }
    
    ResetDoors(open, hp)
    {
    	while(1)
    	{
    		level waittill("RESETDOORS");
    		self.hp = hp;
    		self MoveTo(open, level.doorwait);
    		self.state = "open";
    	}
    }
    
    ResetCluster(pos, radius)
    {
    	wait 5;
    	self RotateTo(((randomInt(36)*10), (randomInt(36)*10), (randomInt(36)*10)), 1);
    	level waittill("RESETCLUSTER");
    	self thread CreateCluster(1, pos, radius);
    	self delete();
    }
    
    roundUp( floatVal )
    {
    	if ( int( floatVal ) != floatVal )
    	return int( floatVal+1 );
    	else
    	return int( floatVal );
    }
    
    Power( number, power )
    {
    	returnnumber = 1;
    	for(i = 0; i < power; i++){
    		returnnumber *= number;
    	}
    	return returnnumber;
    }
    
    useHoldThink( player, string, useTime) 
    {
    	player playerLinkTo( self );
    	player playerLinkedOffsetEnable();
    	
    	self.curProgress = 0;
    	self.inUse = true;
    	self.useRate = 0;
    	
    	if ( isDefined( useTime ) )
    	self.useTime = useTime;
    	else
    	self.useTime = 3000;
    	
    	player thread personalUseBar( self, string );
    
    	result = useHoldThinkLoop( player );
    	assert ( isDefined( result ) );
    	
    	if ( isAlive( player ) )
    	{
    		player unlink();
    	}
    	
    	if ( !isDefined( self ) )
    	return false;
    
    	self.inUse = false;
    	self.curProgress = 0;
    
    	return ( result );
    }
    
    personalUseBar( object, string )
    {
    	self endon( "disconnect" );
    	
    	useBar = createPrimaryProgressBar( -25 );
    	useBarText = createPrimaryProgressBarText( -25 );
    	useBarText setText( string );
    
    	lastRate = -1;
    	while ( isReallyAlive( self ) && isDefined( object ) && object.inUse && !level.gameEnded )
    	{
    		if ( lastRate != object.useRate )
    		{
    			if( object.curProgress > object.useTime)
    			object.curProgress = object.useTime;
    			
    			useBar updateBar( object.curProgress / object.useTime, (1000 / object.useTime) * object.useRate );
    
    			if ( !object.useRate )
    			{
    				useBar hideElem();
    				useBarText hideElem();
    			}
    			else
    			{
    				useBar showElem();
    				useBarText showElem();
    			}
    		}	
    		lastRate = object.useRate;
    		wait ( 0.05 );
    	}
    	
    	useBar destroyElem();
    	useBarText destroyElem();
    }
    
    useHoldThinkLoop( player )
    {
    	while( !level.gameEnded && isDefined( self ) && isReallyAlive( player ) && player useButtonPressed() && self.curProgress < self.useTime )
    	{
    		self.curProgress += (50 * self.useRate);
    		
    		if ( isDefined(self.objectiveScaler) )
    		self.useRate = 1 * self.objectiveScaler;
    		else
    		self.useRate = 1;
    
    		if ( self.curProgress >= self.useTime )
    		return ( isReallyAlive( player ) );
    		
    		wait 0.05;
    	} 
    	
    	return false;
    }
    
    TimerWait(Duration)
    {
    	level endon( "game_ended" );
    	level endon( "bomb_defused" );
    	
    	maps\mp\gametypes\_hostmigration::waitLongDurationWithGameEndTimeUpdate( Duration );
    }
    
    playTickingSound(Duration)
    {
    	self endon("death");
    	self endon("stop_ticking");
    	level endon("game_ended");
    	
    	time = Duration;
    	
    	while(1)
    	{
    		self playSound( "ui_mp_suitcasebomb_timer" );
    		
    		if ( time > 10 )
    		{
    			time -= 1;
    			wait 1;
    		}
    		else if ( time > 4 )
    		{
    			time -= .5;
    			wait .5;
    		}
    		else if ( time > 1 )
    		{
    			time -= .4;
    			wait .4;
    		}
    		else
    		{
    			time -= .3;
    			wait .3;
    		}
    		maps\mp\gametypes\_hostmigration::waitTillHostMigrationDone();
    	}
    }
    
    Afghan()
    {
    	CreateAdaptWalls((2665, 5845, 265), (3475, 4345, 585), 4, 0);
    	CreateAdaptWalls((2385, 4765, 520), (2900, 4975, 560), 1, 0);
    	CreateAdaptWalls((2385, 4765, 1000), (2900, 4975, 1000), 1, 30);
    	CreateAdaptWalls((2385, 4765, 1000), (2900, 4975, 1000), 1, 0);
    	CreateElevator((2015, 4470, 235), (2700, 5645, 340), (0, -65, 0));
    	CreateElevator((2486, 4484, 635), (-588, -770, -70), (0, -65, 0));
    	CreateRamps((2280, 1254, 142), (2548, 1168, 33));
    	CreateDoors((1590, -238, 160), (1590, -168, 160), 90, 0, 0, 2, 2, 5, 50);
    	CreateDoors((1938, -125, 160), (1938, -15, 160), 90, 0, 0, 4, 2, 15, 75);
    	CreateDoors((2297, 10, 160), (2297, -100, 160), 90, 0, 0, 4, 2, 10, 75);
    	CreateDoors((525, 1845, 162), (585, 1845, 162), 90, 90, 0, 2, 2, 5, 50);
    	CreateDoors((-137, 1380, 226), (-137, 1505, 226), 90, 0, 0, 4, 2, 15, 75);
    	CreateDoors((820, 1795, 165), (820, 1495, 165), 90, 0, 0, 12, 2, 40, 100);
    	CreateDoors((2806, 893, 210), (2806, 806, 210), 90, 0, 0, 3, 2, 10, 50);
    	CreateDoors((2750, 4900, 590), (3000, 5015, 590), 90, -65, 0, 6, 2, 15, 75);
    }
    
    Derail()
    {
    	CreateElevator((-110, 2398, 124), (-125, 2263, 333), (0, 270, 0));
    	CreateBlocks((-240, 1640, 422), (0, 90, 0));
    	CreateBlocks((-270, 1640, 422), (0, 90, 0));
    	CreateBlocks((-270, 1585, 422), (0, 90, 0));
    	CreateBlocks((-270, 1530, 422), (0, 90, 0));
    	CreateBlocks((-270, 1475, 422), (0, 90, 0));
    	CreateBlocks((-270, 1420, 422), (0, 90, 0));
    	CreateBlocks((-270, 1365, 422), (0, 90, 0));
    	CreateBlocks((-270, 1310, 422), (0, 90, 0));
    	CreateBlocks((-270, 1255, 422), (0, 90, 0));
    	CreateBlocks((-970, 3018, 138), (0, 90, 0));
    	CreateBlocks((-985, 3018, 148), (0, 90, 0));
    	CreateBlocks((-1000, 3018, 158), (0, 90, 0));
    	CreateBlocks((-1015, 3018, 168), (0, 90, 0));
    	CreateBlocks((-1030, 3018, 178), (0, 90, 0));
    	CreateBlocks((-1045, 3018, 188), (0, 90, 0));
    	CreateBlocks((-1060, 3018, 198), (0, 90, 0));
    	CreateBlocks((-1075, 3018, 208), (0, 90, 0));
    	CreateBlocks((-1090, 3018, 218), (0, 90, 0));
    	CreateBlocks((-1105, 3018, 228), (0, 90, 0));
    	CreateBlocks((-1120, 3018, 238), (0, 90, 0));
    	CreateBlocks((-1135, 3018, 248), (0, 90, 0));
    	CreateRamps((-124, 2002, 437), (-124, 2189, 332));
    	CreateDoors((400, 1486, 128), (400, 1316, 128), 90, 0, 0, 6, 2, 30, 100);
    	CreateDoors((-61, 755, 128), (-161, 755, 128), 90, 90, 0, 3, 2, 20, 75);
    	mgTurret1 = spawnTurret( "misc_turret", (4, 1566, 663), "pavelow_minigun_mp" );
    	mgTurret1.angles = (0, 45, 0); 
    	mgTurret1 setModel( "weapon_minigun" );
    }
    
    Estate()
    {
    	CreateBlocks((-2378, 782, -130), (90, 0, 0));
    	CreateBlocks((-2388, 823, -130), (90, 0, 0));
    	CreateBlocks((-2398, 863, -130), (90, 0, 0));
    	CreateBlocks((-1098, 2623, 37), (90, 0, 0));
    	CreateBlocks((-3227, 3483, -101), (90, 0, 0));
    	CreateBlocks((-371, 919, 245), (0, 100, 90));
    	CreateBlocks((-383, 991, 245), (0, 100, 90));
    	CreateBlocks((-371, 919, 275), (0, 100, 90));
    	CreateBlocks((-383, 991, 275), (0, 100, 90));
    	CreateBlocks((-371, 919, 305), (0, 100, 90));
    	CreateBlocks((-383, 991, 305), (0, 100, 90));
    	CreateBlocks((-371, 919, 335), (0, 100, 90));
    	CreateBlocks((-383, 991, 335), (0, 100, 90));
    	CreateBlocks((-349, 1115, 245), (0, 50, 90));
    	CreateBlocks((-302, 1166, 245), (0, 50, 90));
    	CreateBlocks((-349, 1115, 275), (0, 50, 90));
    	CreateBlocks((-302, 1166, 275), (0, 50, 90));
    	CreateBlocks((-349, 1115, 305), (0, 50, 90));
    	CreateBlocks((-302, 1166, 305), (0, 50, 90));
    	CreateBlocks((-349, 1115, 335), (0, 50, 90));
    	CreateBlocks((-302, 1166, 335), (0, 50, 90));
    	CreateBlocks((-371, 919, 395), (0, 100, 90));
    	CreateBlocks((-383, 991, 395), (0, 100, 90));
    	CreateBlocks((-371, 919, 425), (0, 100, 90));
    	CreateBlocks((-383, 991, 425), (0, 100, 90));
    	CreateBlocks((-371, 919, 455), (0, 100, 90));
    	CreateBlocks((-383, 991, 455), (0, 100, 90));
    	CreateBlocks((-371, 919, 485), (0, 100, 90));
    	CreateBlocks((-383, 991, 485), (0, 100, 90));
    	CreateBlocks((-349, 1115, 395), (0, 50, 90));
    	CreateBlocks((-302, 1166, 395), (0, 50, 90));
    	CreateBlocks((-349, 1115, 425), (0, 50, 90));
    	CreateBlocks((-302, 1166, 425), (0, 50, 90));
    	CreateBlocks((-349, 1115, 455), (0, 50, 90));
    	CreateBlocks((-302, 1166, 455), (0, 50, 90));
    	CreateBlocks((-349, 1115, 485), (0, 50, 90));
    	CreateBlocks((-302, 1166, 485), (0, 50, 90));
    	CreateBlocks((-55, 1231, 245), (0, -20, 90));
    	CreateBlocks((8, 1217, 245), (0, -20, 90));
    	CreateBlocks((102, 1188, 245), (0, -20, 90));
    	CreateBlocks((162, 1168, 245), (0, -20, 90));
    	CreateBlocks((-55, 1231, 275), (0, -20, 90));
    	CreateBlocks((8, 1217, 275), (0, -20, 90));
    	CreateBlocks((102, 1188, 275), (0, -20, 90));
    	CreateBlocks((162, 1168, 275), (0, -20, 90));
    	CreateBlocks((-3200, 998, -143), (90, 0, 0));
    	CreateBlocks((-3200, 1028, -143), (90, 0, 0));
    	CreateBlocks((-3200, 1058, -143), (90, 0, 0));
    	CreateBlocks((-3200, 1088, -143), (90, 0, 0));
    	CreateBlocks((-3200, 1118, -143), (90, 0, 0));
    	CreateBlocks((-3181, 3124, -218), (90, 0, 0));
    	CreateBlocks((-3211, 3124, -218), (90, 0, 0));
    	CreateBlocks((-3241, 3124, -218), (90, 0, 0));
    	CreateBlocks((-3181, 3124, -163), (90, 0, 0));
    	CreateBlocks((-3211, 3124, -163), (90, 0, 0));
    	CreateBlocks((-3241, 3124, -163), (90, 0, 0));
    	CreateBlocks((-2622, 3676, -106), (90, 0, 0));
    	CreateBlocks((-3741, 3245, -200), (90, 0, 0));
    	CreateBlocks((-3821, 2170, -250), (90, 0, 0));
    	CreateBlocks((-3791, 2170, -250), (90, 0, 0));
    	CreateBlocks((-3761, 2170, -250), (90, 0, 0));
    	CreateBlocks((-3821, 2170, -195), (90, 0, 0));
    	CreateBlocks((-3791, 2170, -195), (90, 0, 0));
    	CreateBlocks((-3761, 2170, -195), (90, 0, 0));
    	CreateBlocks((-471, -126, 193), (0, 0, 90));
    	CreateBlocks((-547, -104, 193), (0, 0, 90));
    	CreateBlocks((-625, -84, 193), (0, 0, 90));
    	CreateBlocks((-702, -61, 193), (0, 0, 90));
    	CreateBlocks((-778, -38, 193), (0, 0, 90));
    	CreateBlocks((-830, -13, 193), (0, 0, 90));
    	CreateBlocks((1333, -92, 210), (0, 0, 90));
    	CreateRamps((1025, 3563, 291), (692, 3563, 146));
    	CreateDoors((489, 1321, 212), (409, 1341, 212), 90, undefined, 0, 4, 2, 20, 75);
    	CreateDoors((421, 861, 212), (461, 1011, 212), 90, undefined, 0, 4, 2, 20, 75);
    	CreateDoors((64, 680, 212), (184, 640, 212), 90, undefined, 0, 6, 2, 30, 100);
    	CreateDoors((706, 575, 185), (791, 545, 185), 0, -15, 0, 6, 1, 25, 75);
    	CreateDoors((24, 477, 341), (48, 552, 341), 90, undefined, 0, 3, 2, 5, 50);
    }
    
    Favela()
    {
    	CreateElevator((-1975, 795, 8), (14950, -11250, -831), (0, 180,0));
    	CreateElevator((14975, -11050, -831), (-1460, 1515, 162), (0, 0, 0));
    	CreateWalls((14000, -11000, -832), (15000, -11000, -772));
    	CreateWalls((15000, -11000, -832), (15000, -11500, -772));
    	CreateWalls((15000, -11500, -832), (14000, -11500, -772));
    	CreateWalls((14000, -11500, -832), (14000, -11000, -652));
    	CreateWalls((14300, -11500, -772), (14000, -11500, -652));
    	CreateWalls((14000, -11000, -772), (14300, -11000, -652));
    	CreateWalls((14300, -11000, -832), (14300, -11175, -772));
    	CreateWalls((14300, -11325, -832), (14300, -11500, -772));
    	CreateWalls((14300, -11000, -742), (14300, -11500, -702));
    	CreateWalls((14300, -11000, -653), (14300, -11500, -652));
    	CreateRamps((14040, -11470, -727), (14040, -11060, -842));
    	CreateGrids((14095, -11030, -732), (14260, -11470, -732), (0,0,0));
    	CreateDoors((14300, -11100, -810), (14300, -11250, -810), 90, 180, 0, 5, 2, 25, 75);
    	
    }
    
    HighRise()
    {
    	CreateElevator((-1230, 7420, 2780), (-2830, 20000, 2070), (0, 0, 0));
    	CreateBlocks((-2723, 5162, 3030), (90, 0, 0));
    	CreateBlocks((-2753, 5162, 3030), (90, 0, 0));
    	CreateBlocks((-2723, 5132, 3030), (90, 0, 0));
    	CreateDoors((-1550, 5875, 2967), (-1550, 5649, 2967), 0, 0, 0, 7, 1, 20, 100);
    	CreateDoors((-1185, 5900, 2967), (-1185, 6117, 2967), 0, 0, 0, 7, 1, 20, 100);
    	CreateWalls((-710, 19875, 2185), (-710, 20170, 2215));
    	CreateWalls((-460, 19875, 2185), (-710, 19875, 2215));
    	CreateWalls((-460, 20170, 2185), (-460, 19875, 2215));
    	CreateWalls((-710, 20170, 2185), (-460, 20170, 2215));
    	CreateWalls((-710, 19875, 2305), (-710, 20170, 2335));
    	CreateWalls((-460, 19875, 2305), (-710, 19875, 2335));
    	CreateWalls((-460, 20170, 2305), (-460, 19875, 2335));
    	CreateWalls((-710, 20170, 2305), (-460, 20170, 2335));
    	CreateWalls((-710, 19875, 2425), (-710, 20170, 2455));
    	CreateWalls((-460, 19875, 2425), (-710, 19875, 2455));
    	CreateWalls((-460, 20170, 2425), (-460, 19875, 2455));
    	CreateWalls((-710, 20170, 2425), (-460, 20170, 2455));
    	CreateWalls((-710, 19875, 2545), (-710, 20170, 2575));
    	CreateWalls((-460, 19875, 2545), (-710, 19875, 2575));
    	CreateWalls((-460, 20170, 2545), (-460, 19875, 2575));
    	CreateWalls((-710, 20170, 2545), (-460, 20170, 2575));
    	CreateRamps((-680, 20130, 2120), (-680, 19910, 2060));
    	CreateRamps((-490, 20130, 2170), (-640, 20130, 2120));
    	CreateRamps((-490, 19910, 2220), (-490, 20090, 2170));
    	CreateRamps((-680, 19910, 2270), (-530, 19910, 2220));
    	CreateRamps((-680, 20130, 2320), (-680, 19940, 2270));
    	CreateRamps((-490, 20130, 2370), (-640, 20130, 2320));
    	CreateRamps((-490, 19910, 2420), (-490, 20090, 2370));
    	CreateRamps((-680, 19910, 2470), (-530, 19910, 2420));
    	CreateRamps((-680, 20130, 2520), (-680, 19940, 2470));
    	CreateRamps((-490, 20130, 2570), (-640, 20130, 2520));
    	CreateBridge((-1400, 20250, 1870), (-2000, 20250, 1870));
    	CreateBridge((-1400, 20350, 1870), (-2000, 20350, 1870));
    	CreateBridge((-1400, 20450, 1870), (-2000, 20450, 1870));
    	CreateKillIfBelow(1750);
    	CreateRamps((370, 6382, 2804), (596, 6382, 2957));
    }
    
    Invasion()
    {
    	CreateElevator((-2150, -2366, 268), (-2276, -1353, 573), (0, -90, 0));
    	CreateElevator((-1413, -1333, 270), (-1558, -1485, 1064), (0, 0, 0));
    	CreateElevator((-607, -984, 293), (-842, -1053, 878), (0, 0, 0));
    	CreateGrids((-1400, -1850, 390), (-1359, -1455, 420), (0, 0, 0));
    	CreateBlocks((-1468, -1470, 1044), (0, -80, 0));
    	CreateBlocks((-1498, -1475, 1044), (0, -80, 0));
    	CreateBlocks((-1528, -1480, 1044), (0, -80, 0));
    	CreateBlocks((-1558, -1485, 1044), (0, -80, 0));
    	CreateBlocks((-1588, -1490, 1044), (0, -80, 0));
    	CreateBlocks((-1618, -1495, 1044), (0, -80, 0));
    	CreateBlocks((-1648, -1500, 1044), (0, -80, 0));
    }
    
    Karachi()
    {
    	CreateElevator((-2265, 230, 0), (-2385, 106, 5), (0, 180, 0));
    	CreateElevator((-2025, -250, -5), (-2265, -70, 10), (0, 90, 0));
    	CreateBlocks((-4100, 1380, 25), (90, 0, 0));
    	CreateBlocks((-3135, 670, 35), (0, 0, -45));
    	CreateBlocks((-3850, -125, 44), (0, 0, 0));
    	CreateBlocks((-4385, -55, 223), (0, 90, 0));
    	CreateBlocks((-5125, -30, 520), (0, 90, 90));
    	CreateBlocks((-5125, -30, 580), (0, 90, 90));
    	CreateBlocks((-5125, -30, 640), (0, 90, 90));
    	CreateBlocks((-5125, -30, 700), (0, 90, 90));
    	CreateBlocks((-5125, -30, 760), (0, 90, 90));
    	CreateBlocks((-5125, -30, 820), (0, 90, 90));
    	CreateBlocks((-5125, -30, 880), (0, 90, 90));
    	CreateBlocks((-5125, -30, 940), (0, 90, 90));
    	CreateBlocks((-4950, 78, 820), (90, 0, 0));
    	CreateBlocks((-4815, 68, 820), (90, 0, 0));
    	CreateBlocks((-3510, -105, 450), (90, 0, 0));
    	CreateBlocks((-5040, 65, 690), (90, 0, 0));
    	CreateBlocks((-3320, -80, 660), (90, 0, 0));
    	CreateWalls((-5110, 25, 45), (-5040, 755, 105));
    	CreateWalls((-5110, 25, 155), (-5040, 755, 185));
    	CreateWalls((-5110, 25, 235), (-5040, 755, 265));
    	CreateWalls((-5110, 25, 315), (-5040, 755, 345));
    	CreateWalls((-5110, 25, 395), (-5040, 755, 425));
    	CreateWalls((-5110, 25, 475), (-5040, 755, 505));
    	CreateWalls((-5110, 25, 555), (-5040, 755, 585));
    	CreateWalls((-2525, -1000, 10), (-2560, -880, 100));
    	CreateRamps((-4180, -115, 285), (-4155, 205, 20));
    	CreateRamps((-2480, 605, 176), (-2480, 405, 26));
    	CreateRamps((-2835, 1060, 176), (-2825, 835, 24));
    	CreateRamps((-4100, 665, 224), (-4100, 385, 17));
    	CreateRamps((-4010, -150, 404), (-4155, -150, 258));
    	CreateRamps((-2825, 805, 312), (-3065, 805, 176));
    	CreateRamps((-4670, -55, 496), (-4405, -55, 233));
    	CreateRamps((-4930, 755, 224), (-4950, 550, 37));
    	CreateRamps((-4340, 600, 632), (-4870, 730, 224));
    	CreateRamps((-4310, 593, 632), (-4060, 642, 496));
    	CreateRamps((-4695, -30, 745), (-5050, 0, 496));
    	CreateRamps((-3620, -105, 352), (-3620, -220, 288));
    	CreateRamps((-4358, -103, 673), (-4326, 575, 631));
    	CreateBridge((-3976, 640, 630), (-3976, 544, 635), (-3976, -100, 590));
    	CreateBridge((-3620, -105, 342), (-3580, 565, 375));
    	CreateGrids((-3310, -145, 90), (-2600, -145, 90), (0, 0, 0));
    	CreateGrids((-2820, 795, 310), (-2820, 620, 310), (0, 0, 0));
    	CreateGrids((-4375, -65, 227), (-4235, -65, 227), (0, 0, 0));
    }
    
    Quarry()
    {
    	CreateElevator((-5308, -794, -192), (-2127, -1480, 632), (0, 120, 0));
    	CreateElevator((-1935, -1008, 576), (-5527, 1160, 304), (0, 270, 0));
    	CreateBlocks((-5600, 1500, 105), (0, 0, 0));
    	CreateBlocks((-5600, 1540, 139), (0, 0, 0));
    	CreateBlocks((-3680, 1880, 125), (90, 0, 0));
    	CreateWalls((-2099, -844, 713), (-2099, -895, 800));
    	CreateGrids((-2272, -1119, 620), (-2651, -1350, 620), (0, 0, 0));
    	CreateGrids((-2350, -1090, 790), (-2580, -1350, 790), (0, 0, 0));
    	CreateWalls((-2332, -1370, 620), (-2651, -1370, 700));
    	CreateWalls((-2332, -1105, 620), (-2651, -1105, 700));
    	CreateRamps((-2653, -1319, 624), (-2633, -1080, 790));
    	CreateDoors((-2328, -1350, 650), (-2328, -1229, 650), 90, 0, 0, 9, 2, 10, 100);
    }
    
    Rundown()
    {
    	CreateDoors((360, -1462, 202), (300, -1342, 202), 90, undefined, 0, 3, 2, 10, 75);
    	CreateDoors((460, -1420, 206), (400, -1300, 206), 90, undefined, 0, 3, 2, 10, 75);
    	CreateDoors((30, -1630, 186), (-30, -1510, 186), 90, undefined, 0, 4, 2, 15, 75);
    	CreateDoors((-280, -1482, 186), (-220, -1602, 186), 90, undefined, 0, 4, 2, 15, 75);
    	CreateBlocks((385, -1660, 40), (0, 120, 90));
    	CreateRamps((-597, -280, 212), (-332, -522, 180));
    	CreateRamps((726, -389, 142), (560, -373, 13));
    	CreateRamps((2250, -1155, 306), (1905, -876, 200));
    	CreateRamps((850, -3125, 312), (535, -3125, 189));
    	CreateRamps((1775, 450, 144), (1775, 735, -5));
    	CreateWalls((-2190, -2885, -120), (-2240, -2500, 0));
    	CreateWalls((-1985, -2290, -120), (-1770, -2510, 0));
    }
    
    Rust()
    {
    	CreateBlocks((773, 1080, 258), (0, 90, 0));
    	CreateRamps((745, 1570, 383), (745, 1690, 273));
    	CreateDoors((565, 1540, 295), (653, 1540, 295), 90, 90, 0, 3, 2, 10, 60);
    	CreateGrids((773, 1135, 258), (533, 1795, 258), (0, 0, 0));
    	CreateGrids((695, 1795, 378), (533, 1540, 378), (0, 0, 0));
    	CreateWalls((533, 1795, 278), (773, 1795, 448));
    	CreateWalls((790, 1795, 278), (790, 1540, 448));
    	CreateWalls((515, 1540, 278), (515, 1795, 448));
    	CreateWalls((773, 1540, 278), (715, 1540, 378));
    	CreateWalls((590, 1540, 278), (533, 1540, 378));
    	CreateWalls((773, 1540, 398), (533, 1540, 428));
    	CreateWalls((-3075, 876, 219), (-3075, 631, 225));
    }
    
    Scrapyard()
    {
    	CreateElevator((-1750, 383, -127), (-5180, 4299, 2288), (0, 45, 0));
    	CreateElevator((-3643, 6478, 2475), (-4563, 6550, 2560), (0, 180, 0));
    	CreateGrids((-5300, 6400, 2545), (-4500, 6700, 2545), (0, 0, 0));
    	CreateDoors((-4950, 6250, 2580), (-4950, 6550, 2580), 90, 0, 0, 12, 2, 10, 300);
    	CreateRamps((-5239, 6456, 2540), (-5239, 6674, 2683));
    	CreateGrids((-5239, 6691, 2685), (-4972, 6691, 2685), (0, 0, 0));
    	CreateGrids((-4972, 6691, 2685), (-4972, 6356, 2685), (0, 0, 0));
    	CreateElevator((-4963, 6363, 2700), (-662, 654, 73), (0, 0, 0));
    
    	CreateBlocks((420, 1636, 174), (0, 0, 0));
    	CreateBlocks((475, 1636, 174), (0, 0, 0));
    	CreateBlocks((530, 1636, 174), (0, 0, 0));
    	CreateBlocks((585, 1636, 174), (0, 0, 0));
    	CreateBlocks((640, 1636, 174), (0, 0, 0));
    	CreateBlocks((695, 1636, 174), (0, 0, 0));
    	CreateBlocks((750, 1636, 174), (0, 0, 0));
    	CreateBlocks((805, 1636, 174), (0, 0, 0));
    	CreateBlocks((860, 1636, 174), (0, 0, 0));
    	CreateBlocks((420, 1606, 174), (0, 0, 0));
    	CreateBlocks((475, 1606, 174), (0, 0, 0));
    	CreateBlocks((530, 1606, 174), (0, 0, 0));
    	CreateBlocks((585, 1606, 174), (0, 0, 0));
    	CreateBlocks((640, 1606, 174), (0, 0, 0));
    	CreateBlocks((695, 1606, 174), (0, 0, 0));
    	CreateBlocks((750, 1606, 174), (0, 0, 0));
    	CreateBlocks((805, 1606, 174), (0, 0, 0));
    	CreateBlocks((860, 1606, 174), (0, 0, 0));
    	CreateBlocks((420, 1576, 174), (0, 0, 0));
    	CreateBlocks((475, 1576, 174), (0, 0, 0));
    	CreateBlocks((530, 1576, 174), (0, 0, 0));
    	CreateBlocks((585, 1576, 174), (0, 0, 0));
    	CreateBlocks((640, 1576, 174), (0, 0, 0));
    	CreateBlocks((695, 1576, 174), (0, 0, 0));
    	CreateBlocks((750, 1576, 174), (0, 0, 0));
    	CreateBlocks((805, 1576, 174), (0, 0, 0));
    	CreateBlocks((860, 1576, 174), (0, 0, 0));
    	CreateBlocks((-1541, -80, 1), (0, 90, -33.3));
    	CreateBlocks((-1517.7, -80, 16.3), (0, 90, -33.3));
    	CreateBlocks((-1494.4, -80, 31.6), (0, 90, -33.3));
    	CreateBlocks((-1471.1, -80, 46.9), (0, 90, -33.3));
    	CreateBlocks((-1447.8, -80, 62.2), (0, 90, -33.3));
    	CreateBlocks((-1424.5, -80, 77.5), (0, 90, -33.3));
    	CreateBlocks((-1401.2, -80, 92.8), (0, 90, -33.3));
    	CreateBlocks((-1377.9, -80, 108.1), (0, 90, -33.3));
    	CreateBlocks((-1354.6, -80, 123.4), (0, 90, -33.3));
    	CreateElevator((10, 1659, -72), (860, 1606, 194), (0, 180, 0));
    	CreateElevator((-276, 1567, -76), (-1176, 2033, -63), (0, 180, 0));
    	CreateElevator((-1176, 2222, -63), (-1758, -714, -31));
    	mgTurret1 = spawnTurret( "misc_turret", (-2662, 2247, -40), "pavelow_minigun_mp" );
    	mgTurret1.angles = (0, 0, 0); 
    	mgTurret1 setModel( "weapon_minigun" );
    	mgTurret2 = spawnTurret( "misc_turret", (-2046, 2350, -40), "pavelow_minigun_mp" );
    	mgTurret2.angles = (0, 0, 0); 
    	mgTurret2 setModel( "weapon_minigun" );
    }
    
    Skidrow()
    {
    	CreateElevator((-725, -410, 136), (-910, -620, 570), (0, 0, 0));
    	CreateRamps((-705, -830, 688), (-495, -830, 608));
    	CreateRamps((-580, -445, 608), (-580, -375, 568));
    	CreateRamps((1690, 325, 213), (1890, 325, 108));
    	CreateGrids((-1540, -1687, 600), (-275, -1687, 660), (0, 0, 0));
    	CreateGrids((-1060, -1535, 584), (-470, -1650, 584), (0, 0, 0));
    	CreateGrids((-700, -120, 580), (-700, -120, 640), (0, 90, 0));
    	CreateGrids((-705, -490, 580), (-705, -770, 580), (-45, 0, 0));
    	CreateBlocks((-1055, -275, 550), (90, 0, 0));
    	CreateBlocks((-1055, -275, 600), (90, 0, 0));
    	CreateBlocks((-460, -95, 600), (90, 0, 0));
    }
    
    SubBase()
    {
    	CreateWalls((1768, -4096, 0.125012), (1687, -4096, 91.7437));
    	CreateWalls((1559, -4096, 0.125012), (1495, -4096, 91.7437));
    	CreateDoors((1752, -4094, 8.125), (1621, -4096, 0.125), 90, 90, 0, 5, 2, 5, 50);
    	CreateGrids((1772, -4092, 95.664), (1489, -4226, 95.4576), (0, 0, 0));
    	CreateWalls((1476, -4098, 110.289), (1781, -4098, 111.289));
    	CreateRamps((1635, -4245, 94.3329), (1633, -4499, 88.1657));
    	CreateGrids((1779, -4516, 93.5231), (1489, -4663, 81.9746), (0, 0, 0));
    	CreateRamps((1737, -4743, 0.125005), (1735, -4887, 77.9122));
    	CreateRamps((1500, -4683, 96.0805), (1517, -4887, 79.6079));
    	mgTurret3 = spawnTurret( "misc_turret", (1624, -4098, 137), "pavelow_minigun_mp" );
    	mgTurret3.angles = (0, 90, 0); 
    	mgTurret3 setModel( "weapon_minigun" );
    	CreateElevator((-234, -2196, 4.10537), (1631, -2678, 0.124995));
    	CreateWalls((1495, -2997, 0.125008), (1580, -2997, 60));
    	CreateWalls((1694, -2997, 0.125008), (1768, -2997, 60));
    	CreateRamps((1472, -4499, 95.0477), (1487, -4186, 268));
    	CreateWalls((1306, -4050, 292), (1483, -4086, 287));
    	CreateRamps((1102, -4403, 166.125), (1085, -4200, 272));
    	CreateElevator((917, -4124, 287), (-352, -4020, 0.125));
    	CreateWalls((-488, -5494, 0.125005), (-215, -5494, 50));  
    	CreateRamps((-357, -5367, 0.124998), (-354, -5477, 38.6509));
    	CreateRamps((-357, -5512, 36.9589), (-360, -5705, 0.125008));
    	CreateWalls((-491, -5491, 51.8875), (-401, -5490, 141));
    	CreateWalls((-306, -5493, 51.8875), (-215, -5499, 141));
    	CreateGrids((-215, -5494, 138), (-494, -5632, 140), (0, 0, 0));  
    	CreateRamps((-215, -5934, 12.446), (-212, -5653, 127));
    	CreateWalls((-496, -5490, 154), (-215, -5491, 154));
    }
    
    Terminal()
    {
    	CreateElevator((2867,3984,84), (617,4008,342), (0, 180, 0));
    	CreateElevator((615,2954,342), (-912,4175,216), (0, 180, 0));
    	CreateElevator((-935,5046,192), (-967,1270,40), (0, 180, 0));
    	CreateRamps((-908,643,40), (-908,100,490));
    	CreateGrids((-658,80,500), (-1000,-150,500), (0, 0, 0));
    	CreateDoors((-904,80,515), (-780,80,515), (90, 180, 90), 3.5, 2.2, 20, 60);
    	CreateWalls((-638,80,515), (-870,80,625));
    	CreateWalls((-988,80,515), (-1030,80,625));
    	CreateWalls((-1030,-150,515), (-1030,80,625));
    	CreateWalls((-638,80,515), (-638,-150,625));
    	CreateWalls((-1030,-150,515), (-638,-150,625));
    	CreateGrids((-1030,-75,635), (-638,80,635), (0, 0, 0));
    	CreateRamps((-714,-119,515), (-1030,-119,625));
    	CreateBlocks((-1030,80,650), (0, 0, 45));
    	CreateBlocks((-730,80,650), (0, 0, 45));
    	mgTurret1 = spawnTurret( "misc_turret", (-1030,80,670), "pavelow_minigun_mp" );
    	mgTurret1.angles = (0, 90, 0); 
       	mgTurret1 setModel( "weapon_minigun" );
        	mgTurret2 = spawnTurret( "misc_turret", (-730,80,670), "pavelow_minigun_mp" ); 
        	mgTurret2.angles = (0, 90, 0);
    	mgTurret2 setModel( "weapon_minigun" );
    }
    
    Underpass()
    {
    	CreateElevator((-415, 3185, 392), (-1225, 3485, 1035), (0, 180, 0));
    	CreateBlocks((1110, 1105, 632), (90, 0, 0));
    	CreateBlocks((-3040, 3145, 1100), (90, 0, 0));
    	CreateBlocks((2444, 1737, 465), (90, 0, 0));
    	CreateWalls((-1100, 3850, 1060), (-1100, 3085, 1090));
    	CreateWalls((-1100, 3850, 1120), (-1100, 3085, 1150));
    	CreateWalls((-3030, 3453, 1040), (-3030, 3155, 1160));
    	CreateWalls((-3030, 3155, 1040), (-3330, 3155, 1160));
    	CreateWalls((-3330, 3155, 1040), (-3330, 3890, 1160));
    	CreateWalls((-3330, 3890, 1040), (-3030, 3890, 1160));
    	CreateWalls((-3030, 3155, 1190), (-3330, 3155, 1220));
    	CreateWalls((-3330, 3155, 1190), (-3330, 3890, 1220));
    	CreateWalls((-3330, 3890, 1190), (-3030, 3890, 1220));
    	CreateWalls((-3030, 3890, 1040), (-3030, 3592, 1160));
    	CreateWalls((-3030, 3890, 1150), (-3030, 3155, 1180));
    	CreateWalls((-3030, 3155, 1250), (-3330, 3155, 1295));
    	CreateWalls((-3330, 3155, 1250), (-3330, 3890, 1295));
    	CreateWalls((-3330, 3890, 1250), (-3030, 3890, 1295));
    	CreateWalls((-3030, 3890, 1250), (-3030, 3155, 1295));
    	CreateDoors((-3030, 3400, 1052), (-3030, 3522.5, 1052), 90, 180, 0, 4, 2, 20, 75);
    	CreateRamps((-3125, 3375, 1250), (-3125, 3210, 1120));
    	CreateRamps((-3100, 3855, 1125), (-3200, 3855, 1030));
    	CreateGrids((-3070, 3190, 1120), (-3070, 3855, 1120), (0, 0, 0));
    	CreateGrids((-3070, 3190, 1240), (-3070, 3855, 1240), (0, 0, 0));
    }
    
    Wasteland()
    {
    	CreateDoors((1344, -778, -33), (1344, -898, -33), 90, 0, 0, 5, 2, 15, 75);
    	CreateDoors((684, -695, -16), (684, -825, -16), 90, 0, 0, 5, 2, 15, 75);
    	CreateDoors((890, -120, -12), (760, -120, -12), 90, 90, 0, 5, 2, 15, 125);
    	CreateDoors((958, -1072, -36), (958, -972, -36), 90, 0, 0, 3, 2, 10, 50);
    	CreateDoors((1057, -648, -36), (997, -748, -36), 90, -30, 0, 3, 2, 10, 50);
    	CreateDoors((10895, 12581, 1298), (11070, 12581, 1295), 90, 90, 0, 7, 2, 10, 50);
    	CreateElevator((218, -618, -26), (11288, 14676, 1298), (0, 300, 0));
    	CreateElevator((-2336, -1348, 32), (11046, 14518, 1298), (0, 270, 0));
    	CreateElevator((-1021, 1263, 77), (11232, 14122, 1298), (0, 270, 0));
    	CreateElevator((2836, 978, -124), (10917, 13826, 1298), (0, 270, 0));
    	CreateElevator((2348, -1855, -13), (11046, 13421, 1298), (0, 270, 0));
    	CreateWalls((10798, 12581, 1298), (10955, 12581, 1340));
    	CreateWalls((11167, 12581, 1298), (11379, 12581, 1340));
    	CreateRamps((10850, 11700, 1298), (10850, 12300, 1448));
    	CreateRamps((11300, 11700, 1298), (11300, 12300, 1448));
    	CreateGrids((10798, 12581, 1450), (11379, 12300, 1450), (0, 0, 0));
    	mgTurret1 = spawnTurret( "misc_turret", (11327, 12538, 1525), "pavelow_minigun_mp" );
    	mgTurret1.angles = (0, 90, 0); 
    	mgTurret1 setModel( "weapon_minigun" );
    	mgTurret2 = spawnTurret( "misc_turret", (10837, 12538, 1525), "pavelow_minigun_mp" );
    	mgTurret2.angles = (0, 90, 0); 
    	mgTurret2 setModel( "weapon_minigun" );
    	
    	CreateGrids((10725, 14529, 1228), (10725, 10212, 1228), (0, 0, 0));
    }
    
    Strike()
    {
    	CreateElevator((-655, 706, 52), (-1042, 569, 190), (0, -130, 0));
    	CreateGrids((-1165, 584, 185), (-1248, 519, 185), (0, 0, 0));
    	CreateDoors((-1353, 327, 215), (-1260, 327, 215), 90, 90, 0, 3, 1, 15, 75);
    	mgTurret1 = spawnTurret( "misc_turret", (-1322, 156, 268), "pavelow_minigun_mp" );
    	mgTurret1.angles = (0, 90, 0); 
    	mgTurret1 setModel( "weapon_minigun" );
    	CreateElevator((-1034, 93, 187), (-177, 489, 28), (0, -90, 0));
    
    	CreateElevator((-738, 791, 60), (-1757, 1290, 20), (0, 130, 0));
    	CreateWalls((-3498, 1260, 10), (-3498, 1600, 100));
    	mgTurret1 = spawnTurret( "misc_turret", (-2934, 1564, 38), "pavelow_minigun_mp" );
    	mgTurret1.angles = (0, 0, 0); 
    	mgTurret1 setModel( "weapon_minigun" );
    	mgTurret2 = spawnTurret( "misc_turret", (-2934, 1360, 31), "pavelow_minigun_mp" );
    	mgTurret2.angles = (0, 0, 0); 
    	mgTurret2 setModel( "weapon_minigun" );
    	CreateElevator((-3255, 1561, 8), (-177, 489, 28), (0, -130, 0));
    }
    
    Crash()
    {
    	CreateWalls((1658, 688, 590), (1658, 688, 650));
    	CreateRamps((1585, 424, 612), (1548, -430, 68));
    	CreateElevator((411, 481, 272), (-88, 3841, 830), (0, 0, 0));
    	CreateElevator((-1241, 3624, 688), (-1652, 3541, 913), (0, 130, 0));
    	CreateRamps((-2199, 3071, 900), (-2199, 2856, 1060));
    	CreateElevator((-2272, 2501, 1072), (-565, 1485, 420), (0, 130, 0));
    }
    
    Salvage()
    {
    	CreateRamps((1147, 2896, 67), (1702, 2896, 254));
    	CreateGrids((1732, 2796, 260), (1932, 2996, 260), (0, 0, 0));
    	CreateDoors((1783, 3120, 300), (1783, 2894, 300), 90, 0, 0, 9, 2, 15, 197);
    	CreateElevator((1370, -710, 1), (1000, 2915, 85), (0, 0, 0));
    	CreateElevator((1956, 2988, 258), (1832, 2473, 430), (0, 180, 0));
    	CreateGrids((1832, 2473, 395), (1653, 2517, 395), (0, 0, 0));
    }
    我々は光を提供する影で働く

    何も真のすべてが許されている

    我々は暗殺され

    THERES A TRUTH THEY DON'T WANT YOU TO KNOW
    私たちが知っている何かに該当する

  2. #2
    rangg's Avatar
    Join Date
    Aug 2010
    Gender
    male
    Posts
    157
    Reputation
    10
    Thanks
    20
    My Mood
    Cool
    if u sure this say "No Free DBJs "

    so the problem he have to much care packge ,blocks,walls and all this in same map remove few and this will fixe.
    hope i help u
    If i help u so thanks me!

    /yea

  3. #3
    XFL's Avatar
    Join Date
    Feb 2010
    Gender
    male
    Posts
    95
    Reputation
    10
    Thanks
    5
    My Mood
    Bored
    Quote Originally Posted by rangg View Post
    if u sure this say "No Free DBJs "

    so the problem he have to much care packge ,blocks,walls and all this in same map remove few and this will fixe.
    hope i help u
    but this same bunker worked on the other zombie mod
    我々は光を提供する影で働く

    何も真のすべてが許されている

    我々は暗殺され

    THERES A TRUTH THEY DON'T WANT YOU TO KNOW
    私たちが知っている何かに該当する

  4. #4
    KickerOfAsses's Avatar
    Join Date
    Jan 2011
    Gender
    male
    Posts
    46
    Reputation
    10
    Thanks
    5
    My Mood
    Lurking
    The error is "No Free DObjs." I'm getting the same thing, and I haven't been able to find a clear solution.
    It does seem that it's caused by too many "objects," but I can't figure out what defines that limit (care package drop mods can also cause the error).

    I created a small mapedit for Highrise, using much fewer objects than the mapedit included in QCZM 4.5. The round will always crash at the same time, 40 seconds after I (host) join. I've checked my mapedit coordinates, and everything looks right.

    I also get the error when using others' bunkers, released here on the forums.
    Last edited by KickerOfAsses; 02-25-2011 at 10:18 PM.