summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/map/atcommand.c5
-rw-r--r--src/map/map.h1
-rw-r--r--src/map/npc.c3
-rw-r--r--src/map/script.c8
4 files changed, 16 insertions, 1 deletions
diff --git a/src/map/atcommand.c b/src/map/atcommand.c
index 2739a5cf8..265180932 100644
--- a/src/map/atcommand.c
+++ b/src/map/atcommand.c
@@ -2740,6 +2740,11 @@ int atcommand_go(
char output[200];
int m;
+ if(map[sd->bl.m].flag.nogo) {
+ clif_displaymessage(sd->fd,"You can not use @go on this map.");
+ return 0;
+ }
+
struct { char map[16]; int x, y; } data[] = {
{ "prontera.gat", 156, 191 }, // 0=Prontera
{ "morocc.gat", 156, 93 }, // 1=Morroc
diff --git a/src/map/map.h b/src/map/map.h
index e7f1811ee..1d0e6b900 100644
--- a/src/map/map.h
+++ b/src/map/map.h
@@ -517,6 +517,7 @@ struct map_data {
unsigned leaves : 1; // [Valaris]
unsigned rain : 1; // [Valaris]
unsigned indoors : 1; // celest
+ unsigned nogo : 1; // [Valaris]
} flag;
struct point save;
struct npc_data *npc[MAX_NPC_PER_MAP];
diff --git a/src/map/npc.c b/src/map/npc.c
index eea869aa5..ca15afa2b 100644
--- a/src/map/npc.c
+++ b/src/map/npc.c
@@ -2116,6 +2116,9 @@ static int npc_parse_mapflag(char *w1,char *w2,char *w3,char *w4)
else if (strcmpi(w3,"indoors")==0) { // celest
map[m].flag.indoors=1;
}
+ else if (strcmpi(w3,"nogo")==0) { // celest
+ map[m].flag.nogo=1;
+ }
return 0;
}
diff --git a/src/map/script.c b/src/map/script.c
index 667fc0b8e..4089159e9 100644
--- a/src/map/script.c
+++ b/src/map/script.c
@@ -4585,7 +4585,7 @@ int buildin_isloggedin(struct script_state *st)
*------------------------------------------
*/
enum { MF_NOMEMO,MF_NOTELEPORT,MF_NOSAVE,MF_NOBRANCH,MF_NOPENALTY,MF_NOZENYPENALTY,MF_PVP,MF_PVP_NOPARTY,MF_PVP_NOGUILD,MF_GVG,MF_GVG_NOPARTY,MF_NOTRADE,MF_NOSKILL, MF_NOWARP,MF_NOPVP,MF_NOICEWALL,
- MF_SNOW, MF_FOG, MF_SAKURA, MF_LEAVES, MF_RAIN, MF_INDOORS };
+ MF_SNOW, MF_FOG, MF_SAKURA, MF_LEAVES, MF_RAIN, MF_INDOORS, MF_NOGO };
int buildin_setmapflagnosave(struct script_state *st)
{
@@ -4674,6 +4674,9 @@ int buildin_setmapflag(struct script_state *st)
case MF_INDOORS: // celest
map[m].flag.indoors=1;
break;
+ case MF_NOGO: // celest
+ map[m].flag.nogo=1;
+ break;
}
}
@@ -4747,6 +4750,9 @@ int buildin_removemapflag(struct script_state *st)
case MF_INDOORS: // celest
map[m].flag.indoors=0;
break;
+ case MF_NOGO: // celest
+ map[m].flag.nogo=0;
+ break;
}
}