diff --git a/conf/msg_conf/map_msg.conf b/conf/msg_conf/map_msg.conf index 1a7b10459d..0b203cc6ef 100644 --- a/conf/msg_conf/map_msg.conf +++ b/conf/msg_conf/map_msg.conf @@ -930,7 +930,10 @@ // @reloadbarterdb 830: Barter database has been reloaded. -//831-899 free +// NoBank Mapflag +831: You cannot use the Bank on this map. + +//832-899 free //------------------------------------ // More atcommands message diff --git a/doc/mapflags.txt b/doc/mapflags.txt index 38716f2325..e46d520b8e 100644 --- a/doc/mapflags.txt +++ b/doc/mapflags.txt @@ -288,6 +288,12 @@ Disable the ability to capture pets on a map. --------------------------------------- +*nobank + +Disable Bank on a map. + +--------------------------------------- + ===================== | 2. Battle-related | ===================== diff --git a/src/map/atcommand.cpp b/src/map/atcommand.cpp index 22d4744715..5c2e84c125 100644 --- a/src/map/atcommand.cpp +++ b/src/map/atcommand.cpp @@ -4602,6 +4602,8 @@ ACMD_FUNC(mapinfo) { strcat(atcmd_output, " NoTomb |"); if (map_getmapflag(m_id, MF_NOCOSTUME)) strcat(atcmd_output, " NoCostume |"); + if (map_getmapflag(m_id, MF_NOBANK)) + strcat(atcmd_output, " NoBank |"); clif_displaymessage(fd, atcmd_output); switch (list) { diff --git a/src/map/clif.cpp b/src/map/clif.cpp index 3a7ff9bef0..e2931e6361 100644 --- a/src/map/clif.cpp +++ b/src/map/clif.cpp @@ -7487,6 +7487,10 @@ void clif_parse_BankOpen(int fd, map_session_data* sd) { clif_messagecolor(&sd->bl,color_table[COLOR_RED],msg_txt(sd,1496),false,SELF); //Banking is disabled return; } + if( map_getmapflag( sd->bl.m, MF_NOBANK ) ){ + clif_displaymessage( sd->fd, msg_txt( sd, 831 ) ); // You cannot use the Bank on this map. + return; + } else { struct s_packet_db* info = &packet_db[RFIFOW(fd,0)]; int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ? @@ -7558,6 +7562,10 @@ void clif_parse_BankCheck(int fd, map_session_data* sd) { clif_messagecolor(&sd->bl,color_table[COLOR_RED],msg_txt(sd,1496),false,SELF); //Banking is disabled return; } + if( map_getmapflag( sd->bl.m, MF_NOBANK ) ){ + clif_displaymessage( sd->fd, msg_txt( sd, 831 ) ); // You cannot use the Bank on this map. + return; + } else { struct s_packet_db* info = &packet_db[RFIFOW(fd,0)]; int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ? @@ -7594,6 +7602,10 @@ void clif_parse_BankDeposit(int fd, map_session_data* sd) { clif_messagecolor(&sd->bl,color_table[COLOR_RED],msg_txt(sd,1496),false,SELF); //Banking is disabled return; } + if( map_getmapflag( sd->bl.m, MF_NOBANK ) ){ + clif_displaymessage( sd->fd, msg_txt( sd, 831 ) ); // You cannot use the Bank on this map. + return; + } else { struct s_packet_db* info = &packet_db[RFIFOW(fd,0)]; int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ? @@ -7633,6 +7645,10 @@ void clif_parse_BankWithdraw(int fd, map_session_data* sd) { clif_messagecolor(&sd->bl,color_table[COLOR_RED],msg_txt(sd,1496),false,SELF); //Banking is disabled return; } + if( map_getmapflag( sd->bl.m, MF_NOBANK ) ){ + clif_displaymessage( sd->fd, msg_txt( sd, 831 ) ); // You cannot use the Bank on this map. + return; + } else { struct s_packet_db* info = &packet_db[RFIFOW(fd,0)]; int aid = RFIFOL(fd,info->pos[0]); //unused should we check vs fd ? diff --git a/src/map/map.hpp b/src/map/map.hpp index 5d5686e97b..e6a5cc9315 100644 --- a/src/map/map.hpp +++ b/src/map/map.hpp @@ -669,6 +669,7 @@ enum e_mapflag : int16 { MF_NOPETCAPTURE, MF_NOBUYINGSTORE, MF_NODYNAMICNPC, + MF_NOBANK, MF_MAX }; diff --git a/src/map/script_constants.hpp b/src/map/script_constants.hpp index 99f559db2f..0dc3cd6a97 100644 --- a/src/map/script_constants.hpp +++ b/src/map/script_constants.hpp @@ -537,6 +537,7 @@ export_constant(MF_NOPETCAPTURE); export_constant(MF_NOBUYINGSTORE); export_constant(MF_NODYNAMICNPC); + export_constant(MF_NOBANK); /* setcell types */ export_constant(CELL_WALKABLE);