Tutorial How to Edit Maps
Featured Replies
Сейчас на странице 0
- Нет пользователей, просматривающих эту страницу
A better way to browse. Learn more.
A full-screen app on your home screen with push notifications, badges and more.
Используя этот сайт, вы соглашаетесь Условия использования.
Decided i would try my hand at making a tutorial on the most simple of modding, editing maps.
in this tutorial i will be showing you how to edit maps on a zombie mod as this is the most likley place you will find a map edit.
This is really simple and you pretty much cannot go wrong.
Requirements:
FourDeltaOne
Coordinates finder
Maps to edit
zombie mod
Iq of over 60
there are plenty of zombie mods just do a quick search you will find plenty, especially on youtube .
Find my favourite attached. [attachment=1]zmv2.rar[/attachment]
coordinates finder is also attached, i have added a mapedit to it so you can see what youve built if it makes it easier [attachment=0]cords - Copy.rar[/attachment]
if you are not making your own mod skip to part 2
if you are making your own mod you will need to add a mapedit.gsc file to your mod and this code into it
#include common_scripts\utility; #include maps\mp\_utility; #include maps\mp\gametypes\_hud_util; //CONTAINS SOME GROUND BREAKING CODE ;D HAVE FUN! init() { level.doCustomMap = 0; level.doorwait = 2; 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(level.doCustomMap == 1){ level.gameState = "starting"; } if(getDvar("mapname") == "mp_crash"){ /** Crash **/ level thread Crash(); level.doCustomMap = 1; } } CreateElevator(enter, exit, angle) { flag = spawn( "script_model", enter ); flag setModel( level.elevator_model["enter"] ); wait 0.01; flag = spawn( "script_model", exit ); flag setModel( level.elevator_model["exit"] ); wait 0.01; self thread ElevatorThink(enter, exit, angle); } 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, angle, 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; } center.angles = angle; center.state = "open"; center.hp = hp; center.range = range; center thread DoorThink(open, close); 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) * )); 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; } 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; } } 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; } } ElevatorThink(enter, exit, angle) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(Distance(enter, player.origin) <= 50){ player SetOrigin(exit); player SetPlayerAngles(angle); } } wait .25; } } DoorThink(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"){ self.hp--; player iPrintlnBold("HIT"); wait 1; continue; } } } else { if(self.state == "close"){ self MoveTo(open, level.doorwait); } self.state = "broken"; wait .5; } } } drawTrampoline() { level.tramp = []; trampNum = 0; for(x=1;x<=18;x++) { for(y=1;y<=19;y++) { level.tramp[trampNum] = spawn("script_model", (0+(x*58), 0+(y*28),44.5)); level.tramp[trampNum] setModel("com_plasticcase_friendly"); trampNum++; } } } monitorTramp() { self endon("death"); self endon("disconnect"); for(; { foreach(pkg in level.tramp) { if(distance(self.origin, pkg.origin)<20){ self iprintln("You should be jumping!"); v = self getVelocity(); z = randomIntRange(700,900); pkg rotateYaw(360, 0.05); foreach(dbag in level.players) { if(distance(dbag, self)<15) self setVelocity((v[0],v[1],z+300)); else self setVelocity((v[0],v[1],z)); } } } wait 0.05; } } DoorUse(range) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(Distance(self.origin, player.origin) <= self.range){ if(player.team == "allies"){ 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.buttonPressed[ "+activate" ] == 1){ player.buttonPressed[ "+activate" ] = 0; self notify( "triggeruse" , player); } } } wait .045; } } 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 ); } CreateWeapon(weapon, weaponName, weaponCost, location, angle) { weaponModel = getWeaponModel( weapon ); if( weaponModel == "" ) weaponModel = weapon; if(!isDefined(angle)) angle = 0; weaponSpawn = spawn( "script_model", location + (0, 0, 60) ); weaponSpawn setModel( weaponModel ); weaponSpawn.angles = angle; weaponSpawn thread WeaponThink(weapon, weaponName, weaponCost, location); wait 0.01; } //---- Chrome Forge Patch ---- CreateForce(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(level.chopper_fx["light"]["belly"]); 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(level.chopper_fx["light"]["belly"]); 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(level.chopper_fx["light"]["belly"]); block.angles=Angle; block Solid(); block CloneBrushmodelToScriptmodel(level.airDropCrateCollision); wait 0.001; } } CreateTac(pos) { efx=loadfx("misc/flare_ambient"); playFx(efx,pos); wait 0.01; } CreateCircle(depart,pass1,pass2,pass3,pass4,arivee,angle,time) { Asc=spawn("script_model",depart); Asc setModel("com_plasticcase_friendly"); Asc.angles=angle; Asc Solid(); Asc CloneBrushmodelToScriptmodel(level.airDropCrateCollision); Asc thread Circle(depart,arivee,pass1,pass2,pass3,pass4,time); } Circle(depart,pass1,pass2,pass3,pass4,arivee,time) { while(1) { if(self.state=="open") { self MoveTo(depart,time); wait(time*1.5); self.state="op"; continue; } if(self.state=="op") { self MoveTo(pass1,time); wait(time); self.state="opi"; continue; } if(self.state=="opi") { self MoveTo(pass2,time); wait(time); self.state="opa"; continue; } if(self.state=="opa") { self MoveTo(pass3,time); wait(time); self.state="ope"; continue; } if(self.state=="ope") { self MoveTo(pass4,time); wait(time); self.state="close"; continue; } if(self.state=="close") { self MoveTo(arivee,time); wait(time); self.state="open"; continue; } } } SpawnWeapons(WFunc,Weapon,WeaponName,Location,TakeOnce,angle,gun) { self endon("disconnect"); gun delete(); weapon_model=getWeaponModel(Weapon); if(weapon_model=="")weapon_model=Weapon; Wep=spawn("script_model",Location+(0,0,0)); Wep setModel(weapon_model); Wep.angles=angle; for(; { foreach(player in level.players) { Radius=distance(Location,player.origin); if(Radius<80) { player setLowerMessage(WeaponName,"Press ^3B^7 to swap for "+WeaponName); if(player UseButtonPressed())wait 0.2; if(player UseButtonPressed()) { if(!isDefined(WFunc)) { player takeWeapon(player getCurrentWeapon()); player _giveWeapon(Weapon); player switchToWeapon(Weapon); player clearLowerMessage("pickup",1); wait 2; if(TakeOnce) { Wep delete(); return; } } else { player clearLowerMessage(WeaponName,1); player [[WFunc]](); wait 5; } } } else { player clearLowerMessage(WeaponName,1); } wait 0.1; } wait 0.5; } } CreateTurret(type,angles,location) { if(!isDefined(location)|| !isDefined(type))return; if(!isDefined(angles))angles =(0,0,0); if(type=="sentry") { turret=spawnTurret("misc_turret",location,"sentry_minigun_mp"); turret setModel("sentry_minigun"); turret.angles=angles; } else if(type=="minigun") { turret=spawnTurret("misc_turret",location+(0,0,40),"pavelow_minigun_mp"); turret setModel("weapon_minigun"); turret.angles=angles; } } SpawnModel(Model,Location) { self endon("disconnect"); Obj=spawn("script_model",Location); Obj PhysicsLaunchServer((0,0,0),(0,0,0)); Obj.angles=self.angles+(0,90,0); Obj setModel(Model); } WeaponThink(weapon, weaponName, weaponCost, location) { self endon("disconnect"); while(1) { foreach(player in level.players) { if(player.team != "axis") { if(distance(location, player.origin) < 25) { if(player hasWeapon( weapon )) { player.hint = "Press ^3[{+activate}] ^7to get ammo for " + weaponName + " - " + weaponCost; } else { player.hint = "Press ^3[{+activate}] ^7to buy " + weaponName + " - " + weaponCost; } if(player.buttonPressed["+activate"] == 1) { player.buttonPressed["+activate"] = 0; if(player.bounty >= weaponCost) { player.bounty -= weaponCost; player notify("CASH"); player _giveWeapon( weapon ); player switchToWeapon( weapon ); player giveMaxAmmo( weapon ); } else { player iPrintlnBold( game["strings"]["NOT_ENOUGH_CASH"] ); } } } } } wait .05; } } CreateCrate(pos,angles) { crate=spawn("script_model",pos); crate CloneBrushmodelToScriptmodel(level.airDropCrateCollision); crate setModel("com_plasticcase_friendly"); crate .angles=angles; } EliteWeaponBox(pos,WhatTeam) { if(!isDefined(WhatTeam)) { T=self.pers["team"]; } else { T=WhatTeam; } Mossy=spawn("script_model",pos+(0,0,15)); Mossy setModel("com_plasticcase_friendly"); Mossy.angles=self.angles+(0,90,0); Mossy Solid(); Mossy CloneBrushmodelToScriptmodel(level.airDropCrateCollision); Elite=spawn("script_model",pos); Elite.angles=self.angles+(0,90,0); Elite Solid(); RM=randomint(9999); for(; { foreach(P in level.players) { wait 0.05; if(P.pers["team"]!=T)continue; D=distance(pos,P.origin); if(D < 50) { P setLowerMessage(RM,"Press ^3B^7 for Random Weapon"); if(P UseButtonPressed()) { P clearLowerMessage(RM,1); i=.1; Wep=level.weaponList[randomint(level.weaponList.size)]; Elite setModel(getWeaponModel(Wep)); Elite MoveTo(pos+(0,0,55),0.9); while(i<.6) { OldWep=Wep; Wep=level.weaponList[randomint(level.weaponList.size)]; if(Wep!=OldWep) { Elite setModel(getWeaponModel(Wep)); } else { Wep=level.weaponList[randomint(level.weaponList.size)]; Elite setModel(getWeaponModel(Wep)); } wait i; i+=.02; } i=0; if(P GetWeaponsListPrimaries().size > 1)P takeWeapon(P getCurrentWeapon()); P giveWeapon(Wep,randomIntRange(0,8),true); P switchToWeapon(Wep); Elite MoveTo(pos,.01); wait .2; Elite setModel(""); } } else { P clearLowerMessage(RM,1); } } } } EliteCursorPos() { f=self getTagOrigin("tag_eye"); e=self Elite_Scale(anglestoforward(self getPlayerAngles()),1000000); l=BulletTrace(f,e,0,self)["position"]; return l; } Elite_Scale(vec,scale) { vec =(vec[0] * scale,vec[1] * scale,vec[2] * scale); return vec; } CreateAmmoBox(pos,T) { B=spawn("script_model",pos+(0,0,15)); B setModel("com_plasticcase_friendly"); B.angles=self.angles+(0,90,0); B Solid(); B CloneBrushmodelToScriptmodel(level.airDropCrateCollision); RAM=randomint(9999); for(; { foreach(P in level.players) { wait 0.05; if(IsDefined(T)&&P.pers["team"]!=T)continue; R=distance(pos,P.origin); if(R<50) { P setLowerMessage(RAM,"Press ^3B^7 to Refill Ammo"); if(P UseButtonPressed()) { P clearLowerMessage(RAM,1); p thread refillAmmo(); wait 1.5; } } else { P clearLowerMessage(RAM,1); } } } } refillAmmo() { weaponList=self GetWeaponsListAll(); if(self _hasPerk("specialty_tacticalinsertion")&&self getAmmoCount("flare_mp")<1)self _setPerk("specialty_tacticalinsertion"); foreach(weaponName in weaponList) { if(isSubStr(weaponName,"grenade")) { if(self getAmmoCount(weaponName)>=1)continue; } self giveMaxAmmo(weaponName); } } //---- Chrome Forge Patch ---- Afghan() { } Derail() { } Estate() { } Favela() { } HighRise() { CreateDoors((-3750.001, 3285.001, 4408.001), (-4070.001, 3285.001, 4408.001), (90, 90, 0), 10, 2, 30, 100); CreateWalls((-4230.001, 3285.001, 4408.001), (-4230.001, 2898.001, 4430.001)); CreateWalls((-4230.001, 2898.001, 4408.001), (-3667.001, 2898.001, 4430.001)); CreateWalls((-3667.001, 2898.001, 4408.001), (-3667.001, 3285.001, 4430.001)); CreateWalls((-3667.001, 3285.001, 4408.001), (-3900.001, 3285.001, 4430.001)); CreateWalls((-4230.001, 3285.001, 4458.001), (-4230.001, 2898.001, 4480.001)); CreateWalls((-4230.001, 2898.001, 4458.001), (-3667.001, 2898.001, 4480.001)); CreateWalls((-3667.001, 2898.001, 4458.001), (-3667.001, 3285.001, 4480.001)); CreateWalls((-3667.001, 3285.001, 4458.001), (-3900.001, 3285.001, 4480.001)); CreateWalls((-2620, 5847, 3000),(-2620, 5847, 3100)); //newest adds CreateGrids((-4230.001, 2898.001, 4500.001),(-3777, 3274, 4500.001)); CreateRamps((-3733, 3200, 4500), (-3733, 2992, 4400)); CreateWalls((-4230.001, 3285.001, 4530.001), (-4230.001, 2898.001, 4531.001)); CreateWalls((-4230.001, 2898.001, 4530.001), (-3667.001, 2898.001, 4531.001)); CreateWalls((-3667.001, 2898.001, 4530.001), (-3667.001, 3285.001, 4531.001)); CreateWalls((-3667.001, 3285.001, 4530.001), (-3900.001, 3285.001, 4531.001)); CreateWalls((-4230.001, 3285.001, 4600.001), (-4230.001, 2898.001, 4601.001)); CreateWalls((-4230.001, 2898.001, 4600.001), (-3667.001, 2898.001, 4601.001)); CreateWalls((-3667.001, 2898.001, 4600.001), (-3667.001, 3285.001, 4601.001)); CreateWalls((-3667.001, 3285.001, 4600.001), (-3900.001, 3285.001, 4601.001)); } Invasion() { CreateElevator((-1914,-1172,293),(-5354,1951,212)); CreateGrids((-5384,1595,193),(-5788,2120,193)); //CreateWalls((-5799,1590,207),(-5798,2125,415)); CreateWalls((-5798,2125,207),(-5527,2125,415)); CreateWalls((-5527,1590,207),(-5799,1590,415)); CreateWalls((-5527,1600,304),(-5519,2125,415)); CreateGrids((-5545,1604,370),(-5779,1800,370)); CreateRamps((-5767,1936,296),(-5768,1820,207)); CreateGrids((-5768,2095,290),(-5552,1936,290)); CreateRamps((-5552,1814,375),(-5552,1928,300)); //dan CreateWalls((-5527,1714, 304),(-5527,2125,200)); CreateDoors((-5527, 2000, 207), (-5527, 1742, 207), (90, 0, 0), 4, 2, 20, 60); CreateDoors((-5762, 1910, 300), (-5762, 1910, 350), (90, 90, 0), 2, 1, 20, 100); CreateDoors((-5559, 1853, 360), (-5559, 1853, 410), (90, 90, 0), 2, 1, 20, 100); } Karachi() { } Quarry() { } Rundown() { } 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, 20, 60); CreateGrids((773, 1135, 258), (533, 1795, 258), (0, 0, 0)); CreateGrids((695, 1795, 378), (533, 1540, 378), (0, 0, 0)); CreateGrids((773, 1540, 498), (630, 1795, 498), (0, 0, 0)); CreateRamps((560, 1795, 498), (560, 1600, 378)); CreateWalls((790, 1795, 278), (790, 1540, 378)); CreateWalls((790, 1795, 378), (790, 1630, 498)); CreateRamps((790, 1560, 378), (1200, 1560, 378)); CreateRamps((1200, 1560, 378), (1200, 1200, 378)); CreateGrids((1100, 1200, 378), (1300, 1000, 378), (0, 0, 0)); CreateWalls((1075, 1200, 378), (1140, 1200, 455)); CreateWalls((1270, 1200, 378), (1325, 1200, 455)); CreateDoors((1100, 1200, 378), (1200, 1200, 392), (90, 90, 0), 4, 1, 20, 80); CreateWalls((515, 1540, 278), (515, 1795, 498)); CreateWalls((773, 1540, 278), (715, 1540, 378)); CreateWalls((590, 1540, 278), (533, 1540, 378)); CreateWalls((773, 1540, 398), (533, 1540, 428)); CreateWalls((773, 1540, 458), (740, 1540, 498)); CreateWalls((566, 1540, 458), (533, 1540, 498)); //dans adds CreateGrids((773, 1540, 498), (630, 1795, 498), (0, 0, 0)); CreateWalls((773, 1540, 498), (533, 1540, 538)); CreateRamps((560, 1795, 498), (560, 1569, 378)); CreateDoors((670, 1720, 498), (560, 1720, 498), (0, 0, 0), 2, 1, 15, 80); CreateWalls((790, 1795, 498), (790, 1540, 660)); CreateWalls((515, 1540, 498), (515, 1795, 660)); CreateRamps((560, 1550, 498), (560, 1795, 620)); CreateDoors((670, 1690, 620), (560, 1690, 610), (0, 0, 0), 2, 1, 15, 80); CreateGrids((773, 1540, 620), (630, 1795, 620), (0, 0, 0)); CreateWalls((773, 1540, 620), (533, 1540, 660)); CreateWalls((773, 1540, 690), (533, 1540, 691)); CreateWalls((790, 1795, 690), (790, 1540, 691)); CreateWalls((515, 1540, 690), (515, 1795, 691)); self thread EliteWeaponBox((-684.506, -2780.11, -266.5)); } Scrapyard() { } Skidrow() { } SubBase() { } Terminal() { } Underpass() { } Wasteland() { } Crash () { //original by funky tidied by Dan (UD) CreateRamps((804, -270, 415), (798, -576, 362)); CreateRamps((917, -289, 415), (498, -289, 415)); //CreateRamps((917, -283, 395), (827, -289, 403)); CreateRamps((760, -345, 565), (542, -345, 395)); //added block by ramp CreateBlocks((515, -345, 415), (0, 90, 0)); CreateGrids((769, -350, 555), (899, -275, 555), (0, 0, 0)); CreateGrids((927, -281, 555), (1013, -274, 555), (0, 0, 0)); CreateElevator((1029, -281, 555), (1120, -1568, 244), (0, 0, 0)); CreateElevator((794, -1575, 244), (1779, -809, 71), (0, 0, 0)); CreateElevator((1790, -984, 207), (904, -284, 431), (0, 0, 0)); //deleted wall added 2 doors and new wall to defend flag CreateDoors((1562, -724, 284), (1562, -724, 215), (0, 0, 0), 2, 1, 15, 80); CreateBlocks((1587, -770, 230), (0, 0, 0)); CreateDoors((1417, -787, 207), (1417, -765, 207), (90, 90, 0), 2, 2, 25, 80); CreateWalls((1778, -823, 207), (1742, -823, 284)); }and this to the rank.gsc init
PART 2
1.)run the coordinates finder mod using the (very convinient) ingame mods function
2.)start the map you wish to edit
3.) open your mapedit.gsc folder (if you are using a zombie mod located in maps/mp/gametypes/mapedit.gsc)
4.)hit ctrl and f and search for the name of the map you wish to edit, i am going to do rust.
5.) you simply edit the locations of code, adding new things when needded
additional information
when you use the coordinates finder you will notice that you have 3 sets of numbers in brackets.. these are your coordinates of where you are standing/spectating. if you are familliar with graphs x,y,z
This is your location horizontally, vertically and your height.
most of this coding is selfexplanatory for the bits that arent here is some explanations
CreateGrids((773, 1540, 498), (630, 1795, 498), (0, 0, 0)); = creates grids/floor. make sure the height is always the same on this one or you will end up with a nice big block in the air
CreateDoors((1100, 1200, 378), (1200, 1200, 435), (90, 90, 0), 4, 1, 20, 80); creates doors the "(90, 90, 0)" are angles "4, 1, 20, 80);" 4 is how many horizontal blocks 1 is how many blocks high 20 is the hp 80 is the range. you may have to play with door angles to get them perfect with your edits, just have a mess around
CreateElevator((2578, 3274, 390),(-2901, -411, 2156), (0, 180, 0)); creates a flag/teleporter. as ever the first location is where you must go too the second where you will end up and again (0, 180, 0)) are angles.
im sorry for my poor spelling and perhaps bad explanations. let me know if i can help you in any other way by adding to this tutorial
if you care this is what i ended up with (rust)
//Dan (UD) 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, 20, 60); CreateGrids((773, 1135, 258), (533, 1795, 258), (0, 0, 0)); CreateGrids((695, 1795, 378), (533, 1540, 378), (0, 0, 0)); CreateGrids((773, 1540, 498), (630, 1795, 498), (0, 0, 0)); CreateRamps((560, 1795, 498), (560, 1600, 378)); CreateWalls((790, 1795, 278), (790, 1540, 378)); CreateWalls((790, 1795, 378), (790, 1630, 498)); CreateRamps((790, 1560, 378), (1200, 1560, 378)); CreateRamps((1200, 1560, 378), (1200, 1200, 378)); CreateGrids((1100, 1200, 378), (1300, 1000, 378), (0, 0, 0)); CreateWalls((1075, 1200, 378), (1140, 1200, 455)); CreateWalls((1270, 1200, 378), (1325, 1200, 455)); CreateDoors((1100, 1200, 378), (1200, 1200, 435), (90, 90, 0), 4, 1, 20, 80); CreateWalls((515, 1540, 278), (515, 1795, 498)); CreateWalls((773, 1540, 278), (715, 1540, 378)); CreateWalls((590, 1540, 278), (533, 1540, 378)); CreateWalls((773, 1540, 398), (533, 1540, 428)); CreateWalls((773, 1540, 458), (740, 1540, 498)); CreateWalls((566, 1540, 458), (533, 1540, 498)); CreateGrids((773, 1540, 498), (630, 1795, 498), (0, 0, 0)); CreateWalls((773, 1540, 498), (533, 1540, 538)); CreateRamps((560, 1795, 498), (560, 1569, 378)); CreateDoors((670, 1720, 498), (560, 1720, 498), (0, 0, 0), 2, 1, 20, 80); CreateWalls((790, 1795, 498), (790, 1540, 660)); CreateWalls((515, 1540, 498), (515, 1795, 660)); CreateRamps((560, 1550, 498), (560, 1795, 620)); CreateDoors((670, 1690, 620), (560, 1690, 610), (0, 0, 0), 2, 1, 25, 80); CreateGrids((773, 1540, 620), (630, 1795, 620), (0, 0, 0)); CreateWalls((773, 1540, 620), (533, 1540, 660)); CreateWalls((773, 1540, 725), (533, 1540, 726)); CreateWalls((790, 1795, 725), (790, 1540, 726)); CreateWalls((515, 1540, 725), (515, 1795, 726));i am the owner of the Ultimate Zombie Mod server feel free to pop in and test some of them out