- Fixed nocommand mapflag causing the "you can't use commands on this map" message to trigger one very single chat, instead of only for actual @/# command invocation.

git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@8817 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
skotlex 2006-09-20 00:16:34 +00:00
parent 2beeeee85c
commit 7c23227861
3 changed files with 25 additions and 18 deletions

View File

@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO
IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK.
2006/09/19
* Fixed nocommand mapflag causing the "you can't use commands on this map"
message to trigger one very single chat, instead of only for actual @/#
command invocation. [Skotlex]
* Added support for skipping empty string menu entries for the select()
command (just as `menu` has it already) [Skotlex]
* Fixed pc_set_hate_mob letting you place mobs on any of the three

View File

@ -807,17 +807,20 @@ is_atcommand(const int fd, struct map_session_data* sd, const char* message, int
if (!*str)
return AtCommand_None;
if (map[sd->bl.m].nocommand &&
(gmlvl > 0? gmlvl:pc_isGM(sd)) < map[sd->bl.m].nocommand)
{ //Command not allowed on this map.
sprintf(atcmd_output, msg_txt(143));
clif_displaymessage(fd, atcmd_output);
return AtCommand_None;
}
type = atcommand(sd, gmlvl > 0 ? gmlvl : pc_isGM(sd), str, &info);
if (!gmlvl) gmlvl = pc_isGM(sd);
type = atcommand(sd, gmlvl, str, &info);
if (type != AtCommand_None) {
char command[100];
const char* p = str;
if (map[sd->bl.m].nocommand &&
gmlvl < map[sd->bl.m].nocommand)
{ //Command not allowed on this map.
sprintf(atcmd_output, msg_txt(143));
clif_displaymessage(fd, atcmd_output);
return AtCommand_None;
}
malloc_tsetdword(command, '\0', sizeof(command));
malloc_tsetdword(atcmd_output, '\0', sizeof(atcmd_output));
while (*p && !isspace(*p))

View File

@ -148,20 +148,21 @@ is_charcommand(const int fd, struct map_session_data* sd, const char* message, i
if (!*str)
return CharCommand_None;
if (map[sd->bl.m].nocommand &&
(gmlvl > 0? gmlvl:pc_isGM(sd)) < map[sd->bl.m].nocommand)
{ //Command not allowed on this map.
char output[200];
sprintf(output, msg_table[143]);
clif_displaymessage(fd, output);
return AtCommand_None;
}
type = charcommand(sd, gmlvl > 0 ? gmlvl : pc_isGM(sd), str, &info);
if (!gmlvl) gmlvl = pc_isGM(sd);
type = charcommand(sd, gmlvl, str, &info);
if (type != CharCommand_None) {
char command[100];
char output[200];
const char* p = str;
if (map[sd->bl.m].nocommand &&
gmlvl < map[sd->bl.m].nocommand)
{ //Command not allowed on this map.
sprintf(output, msg_txt(143));
clif_displaymessage(fd, output);
return AtCommand_None;
}
malloc_tsetdword(command, '\0', sizeof(command));
malloc_tsetdword(output, '\0', sizeof(output));
while (*p && !isspace(*p))