From 1e96fe7d63e6ec25cad98a5b1bef1b81e2c00fb6 Mon Sep 17 00:00:00 2001 From: Lance Date: Thu, 16 Nov 2006 15:26:27 +0000 Subject: * Edited atcommand and charcommand syntax. Now it doesn't need the useless character name and ":". modified Changelog-Trunk.txt modified src/map/atcommand.c modified src/map/atcommand.h modified src/map/charcommand.c modified src/map/charcommand.h modified src/map/clif.c modified src/map/map.c modified src/map/script.c git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@9230 54d463be-8e91-2dee-dedb-b68131a5f0ec --- src/map/atcommand.c | 56 +++++++++++++++++++++++++++++------------------------ 1 file changed, 31 insertions(+), 25 deletions(-) (limited to 'src/map/atcommand.c') diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 7e641bd1e..213f864d5 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -776,37 +776,13 @@ int get_atcommand_level(const AtCommandType type) { return 100; // 100: command can not be used } -/*========================================== - *is_atcommand @コマンドに存在するかどうか確認する - *------------------------------------------ - */ AtCommandType -is_atcommand(const int fd, struct map_session_data* sd, const char* message, int gmlvl) { - const char* str = message; - int s_flag = 0; +atcommand_sub(const int fd, struct map_session_data* sd, const char* str, int gmlvl) { AtCommandInfo info; AtCommandType type; - nullpo_retr(AtCommand_None, sd); - - if (sd->sc.count && sd->sc.data[SC_NOCHAT].timer != -1 && sd->sc.data[SC_NOCHAT].val1&MANNER_NOCOMMAND) { - return AtCommand_Unknown; - } - - if (!message || !*message) - return AtCommand_None; - malloc_set(&info, 0, sizeof(info)); - str += strlen(sd->status.name); - while (*str && (isspace(*str) || (s_flag == 0 && *str == ':'))) { - if (*str == ':') - s_flag = 1; - str++; - } - if (!*str) - return AtCommand_None; - if (!gmlvl) gmlvl = pc_isGM(sd); type = atcommand(sd, gmlvl, str, &info); if (type != AtCommand_None) { char command[100]; @@ -847,6 +823,36 @@ is_atcommand(const int fd, struct map_session_data* sd, const char* message, int return AtCommand_None; } +/*========================================== + *is_atcommand @コマンドに存在するかどうか確認する + *------------------------------------------ + */ +AtCommandType +is_atcommand(const int fd, struct map_session_data* sd, const char* message) { + const char* str = message; + int s_flag = 0; + + nullpo_retr(AtCommand_None, sd); + + if (sd->sc.count && sd->sc.data[SC_NOCHAT].timer != -1 && sd->sc.data[SC_NOCHAT].val1&MANNER_NOCOMMAND) { + return AtCommand_Unknown; + } + + if (!message || !*message) + return AtCommand_None; + + str += strlen(sd->status.name); + while (*str && (isspace(*str) || (s_flag == 0 && *str == ':'))) { + if (*str == ':') + s_flag = 1; + str++; + } + if (!*str) + return AtCommand_None; + + return atcommand_sub(fd,sd,str,pc_isGM(sd)); +} + /*========================================== * *------------------------------------------ -- cgit v1.2.3-70-g09d2