From 050f7d33c4e4c849e8c4bc2f37a982d8a93811b8 Mon Sep 17 00:00:00 2001 From: valaris Date: Sat, 20 Nov 2004 17:04:06 +0000 Subject: * Added "nogo" mapflag to prevent the use of @go on a specified map. [Valaris] git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/athena@273 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog.txt | 1 + src/map/atcommand.c | 5 +++++ src/map/map.h | 1 + src/map/npc.c | 3 +++ src/map/script.c | 8 +++++++- 5 files changed, 17 insertions(+), 1 deletion(-) diff --git a/Changelog.txt b/Changelog.txt index 2daef642d..679be4f97 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,6 @@ Date Added 11/20 + * Added "nogo" mapflag to prevent the use of @go on a specified map. [Valaris] * Fixed small/big monster spawning crashing (mixed up the merge). [Valaris] * Fixed crash with upgrading TXT and having more than 256 accounts. [Valaris] * TXT upgrades will convert broken flag to attribute column. [Valaris] 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; } } -- cgit v1.2.3-70-g09d2