summaryrefslogtreecommitdiff
path: root/src/map
diff options
context:
space:
mode:
authorvalaris <valaris@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-20 17:04:06 +0000
committervalaris <valaris@54d463be-8e91-2dee-dedb-b68131a5f0ec>2004-11-20 17:04:06 +0000
commit050f7d33c4e4c849e8c4bc2f37a982d8a93811b8 (patch)
treed22baa09846535eaed015534d4889f719f1b6487 /src/map
parentcf6c884771293b2ecd4b491225d4f6bf3476a224 (diff)
downloadhercules-050f7d33c4e4c849e8c4bc2f37a982d8a93811b8.tar.gz
hercules-050f7d33c4e4c849e8c4bc2f37a982d8a93811b8.tar.bz2
hercules-050f7d33c4e4c849e8c4bc2f37a982d8a93811b8.tar.xz
hercules-050f7d33c4e4c849e8c4bc2f37a982d8a93811b8.zip
* 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
Diffstat (limited to 'src/map')
-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;
}
}