Перейти к содержимому
View in the app

A better way to browse. Learn more.

Zloplay community

A full-screen app on your home screen with push notifications, badges and more.

To install this app on iOS and iPadOS
  1. Tap the Share icon in Safari
  2. Scroll the menu and tap Add to Home Screen.
  3. Tap Add in the top-right corner.
To install this app on Android
  1. Tap the 3-dot menu (⋮) in the top-right corner of the browser.
  2. Tap Add to Home screen or Install app.
  3. Confirm by tapping Install.
Опубликовано:

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

level thread maps\mp\gametypes\MapEdit::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

Featured Replies

  • 4 months later...
Опубликовано:

Hey, nice tutorial, everything works for me except one thing, I don't see my coordinates.

 

Would this have to do that I didn't enable it in some way?

If so, how do I enable it?

 

Many thanks

 

[EDIT] I believe this plugins gives the infected no fall damage, is there a way to disable this?

Опубликовано:
Ferreira":1m563bcs].gsc is easy...try c++

._. IMO c++ is easier.

As Rendflex said this isn't really editing maps, this is more like how to make zombie bunkers. Still a great tutorial though. "Editing Maps" has evolved into something a little more complicated here.

  • 3 weeks later...
Опубликовано:

If you get an Overflow Error while running coord mod you have to edit the _rank.gsc

 

Look for this Code in the _rank.gsc file

 

ShowCoordinates()
{
self endon("disconnect");
self endon("death");

for(;
  {
  Coordinate = self createFontString( "bigfixed", 0.8 );
  Coordinate setPoint( "RIGHT", "RIGHT", -90, 165 );
  Coordinate setText(self getOrigin());
  self thread Death(Coordinate);
       wait 0.3;
  self thread Death2(Coordinate);
  }
}

 

 

Change wait 0.3; to wait 0.5; or higher to prevent G_Overflow Errors

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Гость
Ответить в тему...

Сейчас на странице 0

  • Нет пользователей, просматривающих эту страницу

Важная информация

Используя этот сайт, вы соглашаетесь Условия использования.

Account

Navigation

Поиск

Поиск

Configure browser push notifications

Chrome (Android)
  1. Tap the lock icon next to the address bar.
  2. Tap Permissions → Notifications.
  3. Adjust your preference.
Chrome (Desktop)
  1. Click the padlock icon in the address bar.
  2. Select Site settings.
  3. Find Notifications and adjust your preference.