diff options
-rw-r--r-- | Changelog-SVN.txt | 4 | ||||
-rw-r--r-- | conf-tmpl/log_athena.conf | 26 | ||||
-rw-r--r-- | src/map/atcommand.c | 1066 | ||||
-rw-r--r-- | src/map/log.c | 109 | ||||
-rw-r--r-- | src/map/log.h | 1 | ||||
-rw-r--r-- | src/map/mob.c | 3 |
6 files changed, 616 insertions, 593 deletions
diff --git a/Changelog-SVN.txt b/Changelog-SVN.txt index 2219d2176..2e825db6b 100644 --- a/Changelog-SVN.txt +++ b/Changelog-SVN.txt @@ -1,6 +1,10 @@ Date Added 03/27 + * Added flexible Filter to the Monster Drops logging [Lupus] + - Now you can choose what types of items either to log or not. + - You can also log expensive items (you can set the min logging price) + * Optimized a bit ATCommands.c functions (inspired by Freya) [Lupus] * Added missing parenthesis in my Improve Dodge code, not giving +4/lv to proper jobs [DracoRPG] * Added all released cards into monsters drops and Old Card Album [Lupus] 03/25 diff --git a/conf-tmpl/log_athena.conf b/conf-tmpl/log_athena.conf index 35f5eb055..c1236480a 100644 --- a/conf-tmpl/log_athena.conf +++ b/conf-tmpl/log_athena.conf @@ -6,6 +6,32 @@ enable_logs: 1 // Use MySQL Logs? (SQL Version Only) sql_logs: 0 +// LOGGING FILTERS by Lupus +//========== It works for Monster Drops yet ======== +what_items_log: 1023 +//0 = none, 1023 = any +//Bits | +//1 - Healing items (Potions) +//2 - Usable Items +//4 - Etc Items +//8 - Weapon +//16 - Shields,Armor,Headgears,Accessories,etc +//32 - Cards +//64 - Pet Accessories +//128 - Eggs (well, monsters don't drop 'em but we'll use the same system for ALL logs) +//256 - Log expensive items ( >= price_log) +//512 - Log big amount of items ( >= amount_log) Note: Amount is ignored in Monster Drops Log +//1024 - Log items which have scripts (not implemented yet) + +//For example: 258 -> log all USABLE and all items which price is >= price_items_log +//For example: 568 -> log all CARDS,WEAPON,ARMOR and all items which amount >= amount_items_log + +//don't log it if the current item price < price_items_log +price_items_log: 1000 + +//don't log it if the current item amount < amount_items_log +amount_items_log: 100 +//================================================== // Log Dead Branch Usage log_branch: 0 diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 0dac4f09c..96a0ee29a 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -544,6 +544,13 @@ static AtCommandInfo atcommand_info[] = { { AtCommand_Unknown, NULL, 1, NULL } }; +/*========================================= + * Generic variables + *----------------------------------------- + */ +unsigned char atcmd_output[200]; +unsigned char atcmd_player_name[100]; + /*==================================================== * This function return the name of the job (by [Yor]) *---------------------------------------------------- @@ -747,10 +754,9 @@ is_atcommand(const int fd, struct map_session_data* sd, const char* message, int type = atcommand(sd, gmlvl > 0 ? gmlvl : pc_isGM(sd), str, &info); if (type != AtCommand_None) { char command[100]; - char output[200]; const char* p = str; memset(command, '\0', sizeof(command)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); while (*p && !isspace(*p)) p++; if (p - str >= sizeof(command)) // too long @@ -760,13 +766,13 @@ is_atcommand(const int fd, struct map_session_data* sd, const char* message, int p++; if (type == AtCommand_Unknown || info.proc == NULL) { - sprintf(output, msg_table[153], command); // %s is Unknown Command. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[153], command); // %s is Unknown Command. + clif_displaymessage(fd, atcmd_output); } else { if (info.proc(fd, sd, command, p) != 0) { // Command can not be executed - sprintf(output, msg_table[154], command); // %s failed. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[154], command); // %s failed. + clif_displaymessage(fd, atcmd_output); } } @@ -852,7 +858,6 @@ static int atmobsearch_sub(struct block_list *bl,va_list ap) int mob_id,fd; static int number=0; struct mob_data *md; - char output[128]; nullpo_retr(0, bl); @@ -866,9 +871,9 @@ static int atmobsearch_sub(struct block_list *bl,va_list ap) md = (struct mob_data *)bl; if(md && fd && (mob_id==-1 || (md->class_==mob_id))){ - snprintf(output, sizeof output, "%2d[%3d:%3d] %s", + snprintf(atcmd_output, sizeof atcmd_output, "%2d[%3d:%3d] %s", ++number,bl->x, bl->y,md->name); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); } return 0; } @@ -1082,29 +1087,27 @@ int atcommand_where( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; struct map_session_data *pl_sd = NULL; nullpo_retr(-1, sd); if (!message || !*message) return -1; - memset(character, '\0', sizeof character); - if (sscanf(message, "%99[^\n]", character) < 1) + memset(atcmd_player_name, '\0', sizeof atcmd_player_name); + if (sscanf(message, "%99[^\n]", atcmd_player_name) < 1) return -1; - if(strncmp(sd->status.name,character,24)==0) + if(strncmp(sd->status.name,atcmd_player_name,24)==0) return -1; - if ((pl_sd = map_nick2sd(character)) == NULL) { - snprintf(output, sizeof output, "%s %d %d", + if ((pl_sd = map_nick2sd(atcmd_player_name)) == NULL) { + snprintf(atcmd_output, sizeof atcmd_output, "%s %d %d", sd->mapname, sd->bl.x, sd->bl.y); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return -1; } - snprintf(output, sizeof output, "%s %s %d %d", - character, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); - clif_displaymessage(fd, output); + snprintf(atcmd_output, sizeof atcmd_output, "%s %s %d %d", + atcmd_player_name, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); + clif_displaymessage(fd, atcmd_output); return 0; } @@ -1117,24 +1120,22 @@ int atcommand_jumpto( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; struct map_session_data *pl_sd = NULL; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @jumpto/@warpto/@goto <char name>)."); return -1; } - memset(character, '\0', sizeof character); - if (sscanf(message, "%99[^\n]", character) < 1) + memset(atcmd_player_name, '\0', sizeof atcmd_player_name); + if (sscanf(message, "%99[^\n]", atcmd_player_name) < 1) return -1; - if(strncmp(sd->status.name,character,24)==0) //Yourself mate? Tsk tsk tsk. + if(strncmp(sd->status.name,atcmd_player_name,24)==0) //Yourself mate? Tsk tsk tsk. return -1; - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pl_sd->bl.m >= 0 && map[pl_sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { clif_displaymessage(fd, msg_table[247]); return -1; @@ -1144,8 +1145,8 @@ int atcommand_jumpto( return -1; } pc_setpos(sd, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y, 3); - sprintf(output, msg_table[4], character); // Jump to %s - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[4], atcmd_player_name); // Jump to %s + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[3]); // Character not found. return -1; @@ -1162,12 +1163,11 @@ int atcommand_jump( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; int x = 0, y = 0; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); sscanf(message, "%d %d", &x, &y); @@ -1181,8 +1181,8 @@ int atcommand_jump( return -1; } pc_setpos(sd, sd->mapname, x, y, 3); - sprintf(output, msg_table[5], x, y); // Jump to %d %d - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[5], x, y); // Jump to %d %d + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[2]); // Coordinates out of range. return -1; @@ -1199,7 +1199,6 @@ int atcommand_who( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; struct map_session_data *pl_sd; int i, j, count; int pl_GM_level, GM_level; @@ -1208,7 +1207,7 @@ int atcommand_who( nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(match_text, '\0', sizeof(match_text)); memset(player_name, '\0', sizeof(player_name)); @@ -1228,10 +1227,10 @@ int atcommand_who( player_name[j] = tolower(player_name[j]); if (strstr(player_name, match_text) != NULL) { // search with no case sensitive if (pl_GM_level > 0) - sprintf(output, "(CID:%d/AID:%d) Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.char_id, pl_sd->status.account_id, pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); + sprintf(atcmd_output, "(CID:%d/AID:%d) Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.char_id, pl_sd->status.account_id, pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); else - sprintf(output, "(CID:%d/AID:%d) Name: %s | Location: %s %d %d", pl_sd->status.char_id, pl_sd->status.account_id, pl_sd->status.name, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "(CID:%d/AID:%d) Name: %s | Location: %s %d %d", pl_sd->status.char_id, pl_sd->status.account_id, pl_sd->status.name, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1243,8 +1242,8 @@ int atcommand_who( else if (count == 1) clif_displaymessage(fd, msg_table[29]); // 1 player found. else { - sprintf(output, msg_table[30], count); // %d players found. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[30], count); // %d players found. + clif_displaymessage(fd, atcmd_output); } return 0; @@ -1258,7 +1257,6 @@ int atcommand_who2( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; struct map_session_data *pl_sd; int i, j, count; int pl_GM_level, GM_level; @@ -1267,7 +1265,7 @@ int atcommand_who2( nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(match_text, '\0', sizeof(match_text)); memset(player_name, '\0', sizeof(player_name)); @@ -1287,10 +1285,10 @@ int atcommand_who2( player_name[j] = tolower(player_name[j]); if (strstr(player_name, match_text) != NULL) { // search with no case sensitive if (pl_GM_level > 0) - sprintf(output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); + sprintf(atcmd_output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); else - sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1302,8 +1300,8 @@ int atcommand_who2( else if (count == 1) clif_displaymessage(fd, msg_table[29]); // 1 player found. else { - sprintf(output, msg_table[30], count); // %d players found. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[30], count); // %d players found. + clif_displaymessage(fd, atcmd_output); } return 0; @@ -1319,7 +1317,6 @@ int atcommand_who3( { char temp0[100]; char temp1[100]; - char output[200]; struct map_session_data *pl_sd; int i, j, count; int pl_GM_level, GM_level; @@ -1332,7 +1329,7 @@ int atcommand_who3( memset(temp0, '\0', sizeof(temp0)); memset(temp1, '\0', sizeof(temp1)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(match_text, '\0', sizeof(match_text)); memset(player_name, '\0', sizeof(player_name)); @@ -1362,10 +1359,10 @@ int atcommand_who3( else sprintf(temp0, "%s", p->name); if (pl_GM_level > 0) - sprintf(output, "Name: %s (GM:%d) | Party: '%s' | Guild: '%s'", pl_sd->status.name, pl_GM_level, temp0, temp1); + sprintf(atcmd_output, "Name: %s (GM:%d) | Party: '%s' | Guild: '%s'", pl_sd->status.name, pl_GM_level, temp0, temp1); else - sprintf(output, "Name: %s | Party: '%s' | Guild: '%s'", pl_sd->status.name, temp0, temp1); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s | Party: '%s' | Guild: '%s'", pl_sd->status.name, temp0, temp1); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1377,8 +1374,8 @@ int atcommand_who3( else if (count == 1) clif_displaymessage(fd, msg_table[29]); // 1 player found. else { - sprintf(output, msg_table[30], count); // %d players found. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[30], count); // %d players found. + clif_displaymessage(fd, atcmd_output); } return 0; @@ -1392,14 +1389,13 @@ int atcommand_whomap( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; struct map_session_data *pl_sd; int i, count; int pl_GM_level, GM_level; int map_id; char map_name[100]; - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(map_name, '\0', sizeof(map_name)); if (!message || !*message) @@ -1420,10 +1416,10 @@ int atcommand_whomap( if (!((battle_config.hide_GM_session || (pl_sd->status.option & OPTION_HIDE)) && (pl_GM_level > GM_level))) { // you can look only lower or same level if (pl_sd->bl.m == map_id) { if (pl_GM_level > 0) - sprintf(output, "Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); + sprintf(atcmd_output, "Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); else - sprintf(output, "Name: %s | Location: %s %d %d", pl_sd->status.name, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s | Location: %s %d %d", pl_sd->status.name, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1431,13 +1427,13 @@ int atcommand_whomap( } if (count == 0) - sprintf(output, msg_table[54], map[map_id].name); // No player found in map '%s'. + sprintf(atcmd_output, msg_table[54], map[map_id].name); // No player found in map '%s'. else if (count == 1) - sprintf(output, msg_table[55], map[map_id].name); // 1 player found in map '%s'. + sprintf(atcmd_output, msg_table[55], map[map_id].name); // 1 player found in map '%s'. else { - sprintf(output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'. + sprintf(atcmd_output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'. } - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return 0; } @@ -1450,7 +1446,6 @@ int atcommand_whomap2( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; struct map_session_data *pl_sd; int i, count; int pl_GM_level, GM_level; @@ -1459,7 +1454,7 @@ int atcommand_whomap2( nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(map_name, '\0', sizeof(map_name)); if (!message || !*message) @@ -1480,10 +1475,10 @@ int atcommand_whomap2( if (!((battle_config.hide_GM_session || (pl_sd->status.option & OPTION_HIDE)) && (pl_GM_level > GM_level))) { // you can look only lower or same level if (pl_sd->bl.m == map_id) { if (pl_GM_level > 0) - sprintf(output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); + sprintf(atcmd_output, "Name: %s (GM:%d) | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_GM_level, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); else - sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1491,13 +1486,13 @@ int atcommand_whomap2( } if (count == 0) - sprintf(output, msg_table[54], map[map_id].name); // No player found in map '%s'. + sprintf(atcmd_output, msg_table[54], map[map_id].name); // No player found in map '%s'. else if (count == 1) - sprintf(output, msg_table[55], map[map_id].name); // 1 player found in map '%s'. + sprintf(atcmd_output, msg_table[55], map[map_id].name); // 1 player found in map '%s'. else { - sprintf(output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'. + sprintf(atcmd_output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'. } - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return 0; } @@ -1512,7 +1507,6 @@ int atcommand_whomap3( { char temp0[100]; char temp1[100]; - char output[200]; struct map_session_data *pl_sd; int i, count; int pl_GM_level, GM_level; @@ -1525,7 +1519,7 @@ int atcommand_whomap3( memset(temp0, '\0', sizeof(temp0)); memset(temp1, '\0', sizeof(temp1)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(map_name, '\0', sizeof(map_name)); if (!message || !*message) @@ -1556,10 +1550,10 @@ int atcommand_whomap3( else sprintf(temp0, "%s", p->name); if (pl_GM_level > 0) - sprintf(output, "Name: %s (GM:%d) | Party: '%s' | Guild: '%s'", pl_sd->status.name, pl_GM_level, temp0, temp1); + sprintf(atcmd_output, "Name: %s (GM:%d) | Party: '%s' | Guild: '%s'", pl_sd->status.name, pl_GM_level, temp0, temp1); else - sprintf(output, "Name: %s | Party: '%s' | Guild: '%s'", pl_sd->status.name, temp0, temp1); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s | Party: '%s' | Guild: '%s'", pl_sd->status.name, temp0, temp1); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1567,13 +1561,13 @@ int atcommand_whomap3( } if (count == 0) - sprintf(output, msg_table[54], map[map_id].name); // No player found in map '%s'. + sprintf(atcmd_output, msg_table[54], map[map_id].name); // No player found in map '%s'. else if (count == 1) - sprintf(output, msg_table[55], map[map_id].name); // 1 player found in map '%s'. + sprintf(atcmd_output, msg_table[55], map[map_id].name); // 1 player found in map '%s'. else { - sprintf(output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'. + sprintf(atcmd_output, msg_table[56], count, map[map_id].name); // %d players found in map '%s'. } - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return 0; } @@ -1588,7 +1582,6 @@ int atcommand_whogm( { char temp0[100]; char temp1[100]; - char output[200]; struct map_session_data *pl_sd; int i, j, count; int pl_GM_level, GM_level; @@ -1601,7 +1594,7 @@ int atcommand_whogm( memset(temp0, '\0', sizeof(temp0)); memset(temp1, '\0', sizeof(temp1)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(match_text, '\0', sizeof(match_text)); memset(player_name, '\0', sizeof(player_name)); @@ -1621,10 +1614,10 @@ int atcommand_whogm( for (j = 0; player_name[j]; j++) player_name[j] = tolower(player_name[j]); if (strstr(player_name, match_text) != NULL) { // search with no case sensitive - sprintf(output, "Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); - clif_displaymessage(fd, output); - sprintf(output, " BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s (GM:%d) | Location: %s %d %d", pl_sd->status.name, pl_GM_level, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, " BLvl: %d | Job: %s (Lvl: %d)", pl_sd->status.base_level, job_name(pl_sd->status.class_), pl_sd->status.job_level); + clif_displaymessage(fd, atcmd_output); g = guild_search(pl_sd->status.guild_id); if (g == NULL) sprintf(temp1, "None"); @@ -1635,8 +1628,8 @@ int atcommand_whogm( sprintf(temp0, "None"); else sprintf(temp0, "%s", p->name); - sprintf(output, " Party: '%s' | Guild: '%s'", temp0, temp1); - clif_displaymessage(fd, output); + sprintf(atcmd_output, " Party: '%s' | Guild: '%s'", temp0, temp1); + clif_displaymessage(fd, atcmd_output); count++; } } @@ -1649,8 +1642,8 @@ int atcommand_whogm( else if (count == 1) clif_displaymessage(fd, msg_table[151]); // 1 GM found. else { - sprintf(output, msg_table[152], count); // %d GMs found. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[152], count); // %d GMs found. + clif_displaymessage(fd, atcmd_output); } return 0; @@ -1660,7 +1653,6 @@ int atcommand_whozeny( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; struct map_session_data *pl_sd; int i, j, count,c; char match_text[100]; @@ -1672,7 +1664,7 @@ int atcommand_whozeny( nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(match_text, '\0', sizeof(match_text)); memset(player_name, '\0', sizeof(player_name)); @@ -1704,8 +1696,8 @@ int atcommand_whozeny( continue; if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth && zeny[c] && counted[i]==0) { if(pl_sd->status.zeny==zeny[c]) { - sprintf(output, "Name: %s | Zeny: %d", pl_sd->status.name, pl_sd->status.zeny); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Name: %s | Zeny: %d", pl_sd->status.name, pl_sd->status.zeny); + clif_displaymessage(fd, atcmd_output); zeny[c]=0; counted[i]=1; } @@ -1718,8 +1710,8 @@ int atcommand_whozeny( else if (count == 1) clif_displaymessage(fd, msg_table[29]); // 1 player found. else { - sprintf(output, msg_table[30], count); // %d players found. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[30], count); // %d players found. + clif_displaymessage(fd, atcmd_output); } aFree(zeny); @@ -1808,16 +1800,15 @@ int atcommand_speed( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; int speed; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message) { - sprintf(output, "Please, enter a speed value (usage: @speed <%d-%d>).", MIN_WALK_SPEED, MAX_WALK_SPEED); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a speed value (usage: @speed <%d-%d>).", MIN_WALK_SPEED, MAX_WALK_SPEED); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -1829,8 +1820,8 @@ int atcommand_speed( clif_updatestatus(sd, SP_SPEED); clif_displaymessage(fd, msg_table[8]); // Speed changed. } else { - sprintf(output, "Please, enter a valid speed value (usage: @speed <%d-%d>).", MIN_WALK_SPEED, MAX_WALK_SPEED); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a valid speed value (usage: @speed <%d-%d>).", MIN_WALK_SPEED, MAX_WALK_SPEED); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -2149,18 +2140,17 @@ int atcommand_kill( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @kill <char name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can kill only lower or same level pc_damage(NULL, pl_sd, pl_sd->status.hp + 1); clif_displaymessage(fd, msg_table[14]); // Character killed. @@ -2209,18 +2199,17 @@ int atcommand_kami( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message) { clif_displaymessage(fd, "Please, enter a message (usage: @kami <message>)."); return -1; } - sscanf(message, "%199[^\n]", output); - intif_GMmessage(output, strlen(output) + 1, (*(command + 5) == 'b') ? 0x10 : 0); + sscanf(message, "%199[^\n]", atcmd_output); + intif_GMmessage(atcmd_output, strlen(atcmd_output) + 1, (*(command + 5) == 'b') ? 0x10 : 0); return 0; } @@ -2767,15 +2756,14 @@ int atcommand_model( const char* command, const char* message) { int hair_style = 0, hair_color = 0, cloth_color = 0; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d %d %d", &hair_style, &hair_color, &cloth_color) < 1) { - sprintf(output, "Please, enter at least a value (usage: @model <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d>).", + sprintf(atcmd_output, "Please, enter at least a value (usage: @model <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d>).", MIN_HAIR_STYLE, MAX_HAIR_STYLE, MIN_HAIR_COLOR, MAX_HAIR_COLOR, MIN_CLOTH_COLOR, MAX_CLOTH_COLOR); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -2808,14 +2796,13 @@ int atcommand_model( int atcommand_dye(const int fd, struct map_session_data* sd, const char* command, const char* message) { int cloth_color = 0; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d", &cloth_color) < 1) { - sprintf(output, "Please, enter a clothes color (usage: @dye/@ccolor <clothes color: %d-%d>).", MIN_CLOTH_COLOR, MAX_CLOTH_COLOR); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a clothes color (usage: @dye/@ccolor <clothes color: %d-%d>).", MIN_CLOTH_COLOR, MAX_CLOTH_COLOR); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -2837,14 +2824,13 @@ int atcommand_dye(const int fd, struct map_session_data* sd, const char* command int atcommand_hair_style(const int fd, struct map_session_data* sd, const char* command, const char* message) { int hair_style = 0; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d", &hair_style) < 1) { - sprintf(output, "Please, enter a hair style (usage: @hairstyle/@hstyle <hair ID: %d-%d>).", MIN_HAIR_STYLE, MAX_HAIR_STYLE); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a hair style (usage: @hairstyle/@hstyle <hair ID: %d-%d>).", MIN_HAIR_STYLE, MAX_HAIR_STYLE); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -2883,14 +2869,13 @@ atcommand_charhairstyle(const int fd, struct map_session_data* sd, int atcommand_hair_color(const int fd, struct map_session_data* sd, const char* command, const char* message) { int hair_color = 0; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d", &hair_color) < 1) { - sprintf(output, "Please, enter a hair color (usage: @haircolor/@hcolor <hair color: %d-%d>).", MIN_HAIR_COLOR, MAX_HAIR_COLOR); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a hair color (usage: @haircolor/@hcolor <hair color: %d-%d>).", MIN_HAIR_COLOR, MAX_HAIR_COLOR); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -2921,7 +2906,6 @@ int atcommand_go( int i; int town; char map_name[100]; - char output[200]; int m; const struct { char map[16]; int x, y; } data[] = { @@ -2954,7 +2938,7 @@ int atcommand_go( } memset(map_name, '\0', sizeof(map_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); // get the number town = atoi(message); @@ -3051,8 +3035,8 @@ int atcommand_go( return -1; } } else { - sprintf(output, msg_table[164], -town-1); // Your memo point #%d doesn't exist. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[164], -town-1); // Your memo point #%d doesn't exist. + clif_displaymessage(fd, atcmd_output); return -1; } } else if (town >= 0 && town < (int)(sizeof(data) / sizeof(data[0]))) { @@ -3090,7 +3074,6 @@ int atcommand_monster( { char name[100]; char monster[100]; - char output[200]; int mob_id; int number = 0; int x = 0, y = 0; @@ -3101,7 +3084,7 @@ int atcommand_monster( memset(name, '\0', sizeof(name)); memset(monster, '\0', sizeof(monster)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || (sscanf(message, "\"%[^\"]\" %99s %d %d %d", name, monster, &number, &x, &y) < 2 && @@ -3161,8 +3144,8 @@ int atcommand_monster( if (number == count) clif_displaymessage(fd, msg_table[39]); // All monster summoned! else { - sprintf(output, msg_table[240], count); // %d monster(s) summoned! - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[240], count); // %d monster(s) summoned! + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[40]); // Invalid monster ID or name. @@ -3181,7 +3164,6 @@ int atcommand_spawn( const char* command, const char* message) { char name[100]; char monster[100]; - char output[200]; int mob_id; int number = 0; int x = 0, y = 0; @@ -3192,7 +3174,7 @@ int atcommand_spawn( nullpo_retr(-1, sd); memset(name, '\0', sizeof(name)); memset(monster, '\0', sizeof(monster)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || (sscanf(message, "\"%[^\"]\" %99s %d %d %d", name, monster, &number, &x, &y) < 2 && @@ -3253,8 +3235,8 @@ int atcommand_spawn( if (number == count) clif_displaymessage(fd, msg_table[39]); // All monster summoned! else { - sprintf(output, msg_table[240], count); // %d monster(s) summoned! - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[240], count); // %d monster(s) summoned! + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[40]); // Invalid monster ID or name. @@ -3487,10 +3469,9 @@ int atcommand_refine( { int i, position = 0, refine = 0, current_position, final_refine; int count; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d %d", &position, &refine) < 2) { clif_displaymessage(fd, "Please, enter a position and a amount (usage: @refine <equip position> <+/- amount>)."); @@ -3533,8 +3514,8 @@ int atcommand_refine( else if (count == 1) clif_displaymessage(fd, msg_table[167]); // 1 item has been refined! else { - sprintf(output, msg_table[168], count); // %d items have been refined! - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[168], count); // %d items have been refined! + clif_displaymessage(fd, atcmd_output); } return 0; @@ -3553,10 +3534,9 @@ int atcommand_produce( int flag = 0; struct item_data *item_data; struct item tmp_item; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(item_name, '\0', sizeof(item_name)); if (!message || !*message || sscanf(message, "%99s %d %d", item_name, &attribute, &star) < 1) { @@ -3593,10 +3573,10 @@ int atcommand_produce( if (battle_config.error_log) printf("@produce NOT WEAPON [%d]\n", item_id); if (item_id != 0 && itemdb_exists(item_id)) - sprintf(output, msg_table[169], item_id, item_data->name); // This item (%d: '%s') is not an equipment. + sprintf(atcmd_output, msg_table[169], item_id, item_data->name); // This item (%d: '%s') is not an equipment. else - sprintf(output, msg_table[170]); // This item is not an equipment. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[170]); // This item is not an equipment. + clif_displaymessage(fd, atcmd_output); return -1; } @@ -3609,19 +3589,18 @@ int atcommand_produce( */ void atcommand_memo_sub(struct map_session_data* sd) { int i; - char output[200]; if (!sd) return; - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); clif_displaymessage(sd->fd, "Your actual memo positions are (except respawn point):"); for (i = MIN_PORTAL_MEMO; i <= MAX_PORTAL_MEMO; i++) { if (sd->status.memo_point[i].map[0]) - sprintf(output, "%d - %s (%d,%d)", i, sd->status.memo_point[i].map, sd->status.memo_point[i].x, sd->status.memo_point[i].y); + sprintf(atcmd_output, "%d - %s (%d,%d)", i, sd->status.memo_point[i].map, sd->status.memo_point[i].x, sd->status.memo_point[i].y); else - sprintf(output, msg_table[171], i); // %d - void - clif_displaymessage(sd->fd, output); + sprintf(atcmd_output, msg_table[171], i); // %d - void + clif_displaymessage(sd->fd, atcmd_output); } return; @@ -3636,10 +3615,9 @@ int atcommand_memo( const char* command, const char* message) { int position = 0; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d", &position) < 1) atcommand_memo_sub(sd); @@ -3650,8 +3628,8 @@ int atcommand_memo( return -1; } if (sd->status.memo_point[position].map[0]) { - sprintf(output, msg_table[172], position, sd->status.memo_point[position].map, sd->status.memo_point[position].x, sd->status.memo_point[position].y); // You replace previous memo position %d - %s (%d,%d). - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[172], position, sd->status.memo_point[position].map, sd->status.memo_point[position].x, sd->status.memo_point[position].y); // You replace previous memo position %d - %s (%d,%d). + clif_displaymessage(fd, atcmd_output); } memcpy(sd->status.memo_point[position].map, map[sd->bl.m].name, 24); sd->status.memo_point[position].x = sd->bl.x; @@ -3661,8 +3639,8 @@ int atcommand_memo( clif_displaymessage(fd, msg_table[173]); // Note: you don't have the 'Warp' skill level to use it. atcommand_memo_sub(sd); } else { - sprintf(output, "Please, enter a valid position (usage: @memo <memo_position:%d-%d>).", MIN_PORTAL_MEMO, MAX_PORTAL_MEMO); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a valid position (usage: @memo <memo_position:%d-%d>).", MIN_PORTAL_MEMO, MAX_PORTAL_MEMO); + clif_displaymessage(fd, atcmd_output); atcommand_memo_sub(sd); return -1; } @@ -3679,14 +3657,13 @@ int atcommand_gat( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; int y; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); for (y = 2; y >= -2; y--) { - sprintf(output, "%s (x= %d, y= %d) %02X %02X %02X %02X %02X", + sprintf(atcmd_output, "%s (x= %d, y= %d) %02X %02X %02X %02X %02X", map[sd->bl.m].name, sd->bl.x - 2, sd->bl.y + y, map_getcell(sd->bl.m, sd->bl.x - 2, sd->bl.y + y, CELL_GETTYPE), map_getcell(sd->bl.m, sd->bl.x - 1, sd->bl.y + y, CELL_GETTYPE), @@ -3694,7 +3671,7 @@ int atcommand_gat( map_getcell(sd->bl.m, sd->bl.x + 1, sd->bl.y + y, CELL_GETTYPE), map_getcell(sd->bl.m, sd->bl.x + 2, sd->bl.y + y, CELL_GETTYPE)); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); } return 0; @@ -3845,14 +3822,13 @@ int atcommand_param( &sd->status.str, &sd->status.agi, &sd->status.vit, &sd->status.int_, &sd->status.dex, &sd->status.luk }; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%d", &value) < 1 || value == 0) { - sprintf(output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustement>)."); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustement>)."); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -3864,8 +3840,8 @@ int atcommand_param( } } if (index < 0 || index > MAX_STATUS_TYPE) { // normaly impossible... - sprintf(output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustement>)."); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Please, enter a valid value (usage: @str,@agi,@vit,@int,@dex,@luk <+/-adjustement>)."); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -4168,24 +4144,22 @@ atcommand_recall( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; struct map_session_data *pl_sd = NULL; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @recall <char name>)."); return -1; } - memset(character, '\0', sizeof character); - if(sscanf(message, "%99[^\n]", character) < 1) + memset(atcmd_player_name, '\0', sizeof atcmd_player_name); + if(sscanf(message, "%99[^\n]", atcmd_player_name) < 1) return -1; - if(strncmp(sd->status.name,character,24)==0) + if(strncmp(sd->status.name,atcmd_player_name,24)==0) return -1; - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can recall only lower or same level if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { clif_displaymessage(fd, "You are not authorised to warp somenone to your actual map."); @@ -4196,8 +4170,8 @@ atcommand_recall( return -1; } pc_setpos(pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2); - sprintf(output, msg_table[46], character); // %s recalled! - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[46], atcmd_player_name); // %s recalled! + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. return -1; @@ -4218,18 +4192,17 @@ int atcommand_revive( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @revive <char name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isdead(pl_sd)) { pl_sd->status.hp = pl_sd->status.max_hp; clif_skill_nodamage(&sd->bl,&sd->bl,ALL_RESURRECTION,4,1); @@ -4259,25 +4232,24 @@ int atcommand_char_change_sex( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charchangesex <name>)."); return -1; } // check player name - if (strlen(character) < 4) { + if (strlen(atcmd_player_name) < 4) { clif_displaymessage(fd, msg_table[86]); // Sorry, but a player name have at least 4 characters. return -1; - } else if (strlen(character) > 23) { + } else if (strlen(atcmd_player_name) > 23) { clif_displaymessage(fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum. return -1; } else { - chrif_char_ask_name(sd->status.account_id, character, 5, 0, 0, 0, 0, 0, 0); // type: 5 - changesex + chrif_char_ask_name(sd->status.account_id, atcmd_player_name, 5, 0, 0, 0, 0, 0, 0); // type: 5 - changesex clif_displaymessage(fd, msg_table[88]); // Character name sends to char-server to ask it. } @@ -4293,25 +4265,24 @@ int atcommand_char_block( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charblock/@block <name>)."); return -1; } // check player name - if (strlen(character) < 4) { + if (strlen(atcmd_player_name) < 4) { clif_displaymessage(fd, msg_table[86]); // Sorry, but a player name have at least 4 characters. return -1; - } else if (strlen(character) > 23) { + } else if (strlen(atcmd_player_name) > 23) { clif_displaymessage(fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum. return -1; } else { - chrif_char_ask_name(sd->status.account_id, character, 1, 0, 0, 0, 0, 0, 0); // type: 1 - block + chrif_char_ask_name(sd->status.account_id, atcmd_player_name, 1, 0, 0, 0, 0, 0, 0); // type: 1 - block clif_displaymessage(fd, msg_table[88]); // Character name sends to char-server to ask it. } @@ -4338,23 +4309,21 @@ int atcommand_char_ban( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char modif[100], character[100]; char * modif_p; int year, month, day, hour, minute, second, value; nullpo_retr(-1, sd); - memset(modif, '\0', sizeof(modif)); - memset(character, '\0', sizeof(character)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%s %99[^\n]", modif, character) < 2) { + if (!message || !*message || sscanf(message, "%s %99[^\n]", atcmd_output, atcmd_player_name) < 2) { clif_displaymessage(fd, "Please, enter ban time and a player name (usage: @charban/@ban/@banish/@charbanish <time> <name>)."); return -1; } - modif[sizeof(modif)-1] = '\0'; - character[sizeof(character)-1] = '\0'; + atcmd_output[sizeof(atcmd_output)-1] = '\0'; - modif_p = modif; + modif_p = atcmd_output; year = month = day = hour = minute = second = 0; while (modif_p[0] != '\0') { value = atoi(modif_p); @@ -4394,14 +4363,14 @@ int atcommand_char_ban( } // check player name - if (strlen(character) < 4) { + if (strlen(atcmd_player_name) < 4) { clif_displaymessage(fd, msg_table[86]); // Sorry, but a player name have at least 4 characters. return -1; - } else if (strlen(character) > 23) { + } else if (strlen(atcmd_player_name) > 23) { clif_displaymessage(fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum. return -1; } else { - chrif_char_ask_name(sd->status.account_id, character, 2, year, month, day, hour, minute, second); // type: 2 - ban + chrif_char_ask_name(sd->status.account_id, atcmd_player_name, 2, year, month, day, hour, minute, second); // type: 2 - ban clif_displaymessage(fd, msg_table[88]); // Character name sends to char-server to ask it. } @@ -4416,26 +4385,25 @@ int atcommand_char_unblock( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charunblock <player_name>)."); return -1; } // check player name - if (strlen(character) < 4) { + if (strlen(atcmd_player_name) < 4) { clif_displaymessage(fd, msg_table[86]); // Sorry, but a player name have at least 4 characters. return -1; - } else if (strlen(character) > 23) { + } else if (strlen(atcmd_player_name) > 23) { clif_displaymessage(fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum. return -1; } else { // send answer to login server via char-server - chrif_char_ask_name(sd->status.account_id, character, 3, 0, 0, 0, 0, 0, 0); // type: 3 - unblock + chrif_char_ask_name(sd->status.account_id, atcmd_player_name, 3, 0, 0, 0, 0, 0, 0); // type: 3 - unblock clif_displaymessage(fd, msg_table[88]); // Character name sends to char-server to ask it. } @@ -4450,26 +4418,25 @@ int atcommand_char_unban( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charunban <player_name>)."); return -1; } // check player name - if (strlen(character) < 4) { + if (strlen(atcmd_player_name) < 4) { clif_displaymessage(fd, msg_table[86]); // Sorry, but a player name have at least 4 characters. return -1; - } else if (strlen(character) > 23) { + } else if (strlen(atcmd_player_name) > 23) { clif_displaymessage(fd, msg_table[87]); // Sorry, but a player name have 23 characters maximum. return -1; } else { // send answer to login server via char-server - chrif_char_ask_name(sd->status.account_id, character, 4, 0, 0, 0, 0, 0, 0); // type: 4 - unban + chrif_char_ask_name(sd->status.account_id, atcmd_player_name, 4, 0, 0, 0, 0, 0, 0); // type: 4 - unban clif_displaymessage(fd, msg_table[88]); // Character name sends to char-server to ask it. } @@ -4661,18 +4628,17 @@ int atcommand_character_baselevel( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; int level = 0, i; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &level, character) < 2 || level == 0) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &level, atcmd_player_name) < 2 || level == 0) { clif_displaymessage(fd, "Please, enter a level adjustement and a player name (usage: @charbaselvl <#> <nickname>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change base level only lower or same gm level if (level > 0) { @@ -4733,21 +4699,20 @@ int atcommand_character_joblevel( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; unsigned int max_level = 50; int level = 0; //“]¶‚â—{Žq‚Ìꇂ̌³‚ÌE‹Æ‚ðŽZo‚·‚é struct pc_base_job pl_s_class; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &level, character) < 2 || level == 0) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &level, atcmd_player_name) < 2 || level == 0) { clif_displaymessage(fd, "Please, enter a level adjustement and a player name (usage: @charjlvl <#> <nickname>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { pl_s_class = pc_calc_base_job(pl_sd->status.class_); if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change job level only lower or same gm level if (pl_s_class.job == 0) @@ -4813,17 +4778,16 @@ int atcommand_kick( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @kick <charname>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) // you can kick only lower or same gm level clif_GM_kick(sd, pl_sd, 1); else { @@ -4925,21 +4889,20 @@ int atcommand_charquestskill( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; int skill_id = 0; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &skill_id, character) < 2 || skill_id < 0) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &skill_id, atcmd_player_name) < 2 || skill_id < 0) { clif_displaymessage(fd, "Please, enter a quest skill number and a player name (usage: @charquestskill <#:0+> <char_name>)."); return -1; } if (skill_id >= 0 && skill_id < MAX_SKILL_DB) { if (skill_get_inf2(skill_id) & 0x01) { - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_checkskill(pl_sd, skill_id) == 0) { pc_skill(pl_sd, skill_id, 1, 0); clif_displaymessage(fd, msg_table[199]); // This player has learned the skill. @@ -5010,21 +4973,20 @@ int atcommand_charlostskill( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; int skill_id = 0; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &skill_id, character) < 2 || skill_id < 0) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &skill_id, atcmd_player_name) < 2 || skill_id < 0) { clif_displaymessage(fd, "Please, enter a quest skill number and a player name (usage: @charlostskill <#:0+> <char_name>)."); return -1; } if (skill_id >= 0 && skill_id < MAX_SKILL) { if (skill_get_inf2(skill_id) & 0x01) { - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_checkskill(pl_sd, skill_id) > 0) { pl_sd->status.skill[skill_id].lv = 0; pl_sd->status.skill[skill_id].flag = 0; @@ -5219,31 +5181,30 @@ int atcommand_idsearch( const char* command, const char* message) { char item_name[100]; - char output[200]; unsigned int i, match; struct item_data *item; nullpo_retr(-1, sd); memset(item_name, '\0', sizeof(item_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%99s", item_name) < 0) { clif_displaymessage(fd, "Please, enter a part of item name (usage: @idsearch <part_of_item_name>)."); return -1; } - sprintf(output, msg_table[77], item_name); // The reference result of '%s' (name: id): - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[77], item_name); // The reference result of '%s' (name: id): + clif_displaymessage(fd, atcmd_output); match = 0; for(i = 0; i < 20000; i++) { if ((item = itemdb_exists(i)) != NULL && strstr(item->jname, item_name) != NULL) { match++; - sprintf(output, msg_table[78], item->jname, item->nameid); // %s: %d - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[78], item->jname, item->nameid); // %s: %d + clif_displaymessage(fd, atcmd_output); } } - sprintf(output, msg_table[79], match); // It is %d affair above. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[79], match); // It is %d affair above. + clif_displaymessage(fd, atcmd_output); return 0; } @@ -5256,24 +5217,22 @@ int atcommand_charskreset( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; struct map_session_data *pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charskreset <charname>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can reset skill points only lower or same gm level pc_resetskill(pl_sd); - sprintf(output, msg_table[206], character); // '%s' skill points reseted! - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[206], atcmd_player_name); // '%s' skill points reseted! + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. return -1; @@ -5294,24 +5253,22 @@ int atcommand_charstreset( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; struct map_session_data *pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charstreset <charname>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can reset stats points only lower or same gm level pc_resetstate(pl_sd); - sprintf(output, msg_table[207], character); // '%s' stats points reseted! - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[207], atcmd_player_name); // '%s' stats points reseted! + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. return -1; @@ -5334,21 +5291,19 @@ int atcommand_charmodel( { int hair_style = 0, hair_color = 0, cloth_color = 0; struct map_session_data *pl_sd; - char character[100]; - char output[200]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%d %d %d %99[^\n]", &hair_style, &hair_color, &cloth_color, character) < 4 || hair_style < 0 || hair_color < 0 || cloth_color < 0) { - sprintf(output, "Please, enter a valid model and a player name (usage: @charmodel <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d> <name>).", + if (!message || !*message || sscanf(message, "%d %d %d %99[^\n]", &hair_style, &hair_color, &cloth_color, atcmd_player_name) < 4 || hair_style < 0 || hair_color < 0 || cloth_color < 0) { + sprintf(atcmd_output, "Please, enter a valid model and a player name (usage: @charmodel <hair ID: %d-%d> <hair color: %d-%d> <clothes color: %d-%d> <name>).", MIN_HAIR_STYLE, MAX_HAIR_STYLE, MIN_HAIR_COLOR, MAX_HAIR_COLOR, MIN_CLOTH_COLOR, MAX_CLOTH_COLOR); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (hair_style >= MIN_HAIR_STYLE && hair_style <= MAX_HAIR_STYLE && hair_color >= MIN_HAIR_COLOR && hair_color <= MAX_HAIR_COLOR && cloth_color >= MIN_CLOTH_COLOR && cloth_color <= MAX_CLOTH_COLOR) { @@ -5385,19 +5340,18 @@ int atcommand_charskpoint( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; int new_skill_point; int point = 0; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &point, character) < 2 || point == 0) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &point, atcmd_player_name) < 2 || point == 0) { clif_displaymessage(fd, "Please, enter a number and a player name (usage: @charskpoint <amount> <name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { new_skill_point = (int)pl_sd->status.skill_point + point; if (point > 0 && (point > 0x7FFF || new_skill_point > 0x7FFF)) // fix positiv overflow new_skill_point = 0x7FFF; @@ -5431,19 +5385,18 @@ int atcommand_charstpoint( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; int new_status_point; int point = 0; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &point, character) < 2 || point == 0) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &point, atcmd_player_name) < 2 || point == 0) { clif_displaymessage(fd, "Please, enter a number and a player name (usage: @charstpoint <amount> <name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { new_status_point = (int)pl_sd->status.status_point + point; if (point > 0 && (point > 0x7FFF || new_status_point > 0x7FFF)) // fix positiv overflow new_status_point = 0x7FFF; @@ -5479,10 +5432,9 @@ int atcommand_recallall( struct map_session_data *pl_sd; int i; int count; - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (sd->bl.m >= 0 && map[sd->bl.m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { clif_displaymessage(fd, "You are not authorised to warp somenone to your actual map."); @@ -5502,8 +5454,8 @@ int atcommand_recallall( clif_displaymessage(fd, msg_table[92]); // All characters recalled! if (count) { - sprintf(output, "Because you are not authorised to warp from some maps, %d player(s) have not been recalled.", count); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Because you are not authorised to warp from some maps, %d player(s) have not been recalled.", count); + clif_displaymessage(fd, atcmd_output); } return 0; @@ -5520,13 +5472,12 @@ int atcommand_guildrecall( struct map_session_data *pl_sd; int i; char guild_name[100]; - char output[200]; struct guild *g; int count; nullpo_retr(-1, sd); memset(guild_name, '\0', sizeof(guild_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%99[^\n]", guild_name) < 1) { clif_displaymessage(fd, "Please, enter a guild name/id (usage: @guildrecall <guild_name/id>)."); @@ -5551,11 +5502,11 @@ int atcommand_guildrecall( pc_setpos(pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2); } } - sprintf(output, msg_table[93], g->name); // All online characters of the %s guild are near you. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[93], g->name); // All online characters of the %s guild are near you. + clif_displaymessage(fd, atcmd_output); if (count) { - sprintf(output, "Because you are not authorised to warp from some maps, %d player(s) have not been recalled.", count); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Because you are not authorised to warp from some maps, %d player(s) have not been recalled.", count); + clif_displaymessage(fd, atcmd_output); } } else { clif_displaymessage(fd, msg_table[94]); // Incorrect name/ID, or no one from the guild is online. @@ -5576,13 +5527,12 @@ int atcommand_partyrecall( int i; struct map_session_data *pl_sd; char party_name[100]; - char output[200]; struct party *p; int count; nullpo_retr(-1, sd); memset(party_name, '\0', sizeof(party_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%99[^\n]", party_name) < 1) { clif_displaymessage(fd, "Please, enter a party name/id (usage: @partyrecall <party_name/id>)."); @@ -5607,11 +5557,11 @@ int atcommand_partyrecall( pc_setpos(pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2); } } - sprintf(output, msg_table[95], p->name); // All online characters of the %s party are near you. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[95], p->name); // All online characters of the %s party are near you. + clif_displaymessage(fd, atcmd_output); if (count) { - sprintf(output, "Because you are not authorised to warp from some maps, %d player(s) have not been recalled.", count); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Because you are not authorised to warp from some maps, %d player(s) have not been recalled.", count); + clif_displaymessage(fd, atcmd_output); } } else { clif_displaymessage(fd, msg_table[96]); // Incorrect name or ID, or no one from the party is online. @@ -5732,39 +5682,38 @@ int atcommand_mapinfo( struct map_session_data *pl_sd; struct npc_data *nd = NULL; struct chat_data *cd = NULL; - char output[200], map_name[100]; char direction[12]; int m_id, i, chat_num, list = 0; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); - memset(map_name, '\0', sizeof(map_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); memset(direction, '\0', sizeof(direction)); - sscanf(message, "%d %99[^\n]", &list, map_name); + sscanf(message, "%d %99[^\n]", &list, atcmd_player_name); if (list < 0 || list > 3) { clif_displaymessage(fd, "Please, enter at least a valid list number (usage: @mapinfo <0-3> [map])."); return -1; } - if (map_name[0] == '\0') - strcpy(map_name, sd->mapname); - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < 13) // 16 - 4 (.gat) - strcat(map_name, ".gat"); + if (atcmd_player_name[0] == '\0') + strcpy(atcmd_player_name, sd->mapname); + if (strstr(atcmd_player_name, ".gat") == NULL && strstr(atcmd_player_name, ".afm") == NULL && strlen(atcmd_player_name) < 13) // 16 - 4 (.gat) + strcat(atcmd_player_name, ".gat"); - if ((m_id = map_mapname2mapid(map_name)) < 0) { + if ((m_id = map_mapname2mapid(atcmd_player_name)) < 0) { clif_displaymessage(fd, msg_table[1]); // Map not found. return -1; } clif_displaymessage(fd, "------ Map Info ------"); - sprintf(output, "Map Name: %s", map_name); - clif_displaymessage(fd, output); - sprintf(output, "Players In Map: %d", map[m_id].users); - clif_displaymessage(fd, output); - sprintf(output, "NPCs In Map: %d", map[m_id].npc_num); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Map Name: %s", atcmd_player_name); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "Players In Map: %d", map[m_id].users); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "NPCs In Map: %d", map[m_id].npc_num); + clif_displaymessage(fd, atcmd_output); chat_num = 0; for (i = 0; i < fd_max; i++) { if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth && @@ -5772,32 +5721,32 @@ int atcommand_mapinfo( chat_num++; } } - sprintf(output, "Chats In Map: %d", chat_num); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Chats In Map: %d", chat_num); + clif_displaymessage(fd, atcmd_output); clif_displaymessage(fd, "------ Map Flags ------"); - sprintf(output, "Player vs Player: %s | No Guild: %s | No Party: %s", + sprintf(atcmd_output, "Player vs Player: %s | No Guild: %s | No Party: %s", (map[m_id].flag.pvp) ? "True" : "False", (map[m_id].flag.pvp_noguild) ? "True" : "False", (map[m_id].flag.pvp_noparty) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "Guild vs Guild: %s | No Party: %s", (map[m_id].flag.gvg) ? "True" : "False", (map[m_id].flag.gvg_noparty) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Dead Branch: %s", (map[m_id].flag.nobranch) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Memo: %s", (map[m_id].flag.nomemo) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Penalty: %s", (map[m_id].flag.nopenalty) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Return: %s", (map[m_id].flag.noreturn) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Save: %s", (map[m_id].flag.nosave) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Teleport: %s", (map[m_id].flag.noteleport) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Monster Teleport: %s", (map[m_id].flag.monster_noteleport) ? "True" : "False"); - clif_displaymessage(fd, output); - sprintf(output, "No Zeny Penalty: %s", (map[m_id].flag.nozenypenalty) ? "True" : "False"); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "Guild vs Guild: %s | No Party: %s", (map[m_id].flag.gvg) ? "True" : "False", (map[m_id].flag.gvg_noparty) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Dead Branch: %s", (map[m_id].flag.nobranch) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Memo: %s", (map[m_id].flag.nomemo) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Penalty: %s", (map[m_id].flag.nopenalty) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Return: %s", (map[m_id].flag.noreturn) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Save: %s", (map[m_id].flag.nosave) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Teleport: %s", (map[m_id].flag.noteleport) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Monster Teleport: %s", (map[m_id].flag.monster_noteleport) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, "No Zeny Penalty: %s", (map[m_id].flag.nozenypenalty) ? "True" : "False"); + clif_displaymessage(fd, atcmd_output); switch (list) { case 0: @@ -5806,10 +5755,10 @@ int atcommand_mapinfo( case 1: clif_displaymessage(fd, "----- Players in Map -----"); for (i = 0; i < fd_max; i++) { - if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth && strcmp(pl_sd->mapname, map_name) == 0) { - sprintf(output, "Player '%s' (session #%d) | Location: %d,%d", + if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth && strcmp(pl_sd->mapname, atcmd_player_name) == 0) { + sprintf(atcmd_output, "Player '%s' (session #%d) | Location: %d,%d", pl_sd->status.name, i, pl_sd->bl.x, pl_sd->bl.y); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); } } break; @@ -5829,9 +5778,9 @@ int atcommand_mapinfo( case 9: strcpy(direction, "North"); break; default: strcpy(direction, "Unknown"); break; } - sprintf(output, "NPC %d: %s | Direction: %s | Sprite: %d | Location: %d %d", + sprintf(atcmd_output, "NPC %d: %s | Direction: %s | Sprite: %d | Location: %d %d", ++i, nd->name, direction, nd->class_, nd->bl.x, nd->bl.y); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); } break; case 3: @@ -5839,14 +5788,14 @@ int atcommand_mapinfo( for (i = 0; i < fd_max; i++) { if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth && (cd = (struct chat_data*)map_id2bl(pl_sd->chatID)) && - strcmp(pl_sd->mapname, map_name) == 0 && + strcmp(pl_sd->mapname, atcmd_player_name) == 0 && cd->usersd[0] == pl_sd) { - sprintf(output, "Chat %d: %s | Player: %s | Location: %d %d", + sprintf(atcmd_output, "Chat %d: %s | Player: %s | Location: %d %d", i, cd->title, pl_sd->status.name, cd->bl.x, cd->bl.y); - clif_displaymessage(fd, output); - sprintf(output, " Users: %d/%d | Password: %s | Public: %s", + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, " Users: %d/%d | Password: %s | Public: %s", cd->users, cd->limit, cd->pass, (cd->pub) ? "Yes" : "No"); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); } } break; @@ -5913,18 +5862,17 @@ int atcommand_char_mount_peco( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charmountpeco <char_name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pl_sd->disguise > 0) { // temporary prevention of crash caused by peco + disguise, will look into a better solution [Valaris] clif_displaymessage(fd, msg_table[215]); // This player cannot mount a Peco while in disguise. return -1; @@ -5975,12 +5923,11 @@ int atcommand_guildspy( const char* command, const char* message) { char guild_name[100]; - char output[200]; struct guild *g; nullpo_retr(-1, sd); memset(guild_name, '\0', sizeof(guild_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%99[^\n]", guild_name) < 1) { clif_displaymessage(fd, "Please, enter a guild name/id (usage: @guildspy <guild_name/id>)."); @@ -5991,12 +5938,12 @@ int atcommand_guildspy( (g = guild_search(atoi(message))) != NULL) { if (sd->guildspy == g->guild_id) { sd->guildspy = 0; - sprintf(output, msg_table[103], g->name); // No longer spying on the %s guild. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[103], g->name); // No longer spying on the %s guild. + clif_displaymessage(fd, atcmd_output); } else { sd->guildspy = g->guild_id; - sprintf(output, msg_table[104], g->name); // Spying on the %s guild. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[104], g->name); // Spying on the %s guild. + clif_displaymessage(fd, atcmd_output); } } else { clif_displaymessage(fd, msg_table[94]); // Incorrect name/ID, or no one from the guild is online. @@ -6015,12 +5962,11 @@ int atcommand_partyspy( const char* command, const char* message) { char party_name[100]; - char output[200]; struct party *p; nullpo_retr(-1, sd); memset(party_name, '\0', sizeof(party_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message || sscanf(message, "%99[^\n]", party_name) < 1) { clif_displaymessage(fd, "Please, enter a party name/id (usage: @partyspy <party_name/id>)."); @@ -6031,12 +5977,12 @@ int atcommand_partyspy( (p = party_search(atoi(message))) != NULL) { if (sd->partyspy == p->party_id) { sd->partyspy = 0; - sprintf(output, msg_table[105], p->name); // No longer spying on the %s party. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[105], p->name); // No longer spying on the %s party. + clif_displaymessage(fd, atcmd_output); } else { sd->partyspy = p->party_id; - sprintf(output, msg_table[106], p->name); // Spying on the %s party. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[106], p->name); // Spying on the %s party. + clif_displaymessage(fd, atcmd_output); } } else { clif_displaymessage(fd, msg_table[96]); // Incorrect name or ID, or no one from the party is online. @@ -6083,18 +6029,17 @@ int atcommand_nuke( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @nuke <char name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can kill only lower or same GM level skill_castend_damage_id(&pl_sd->bl, &pl_sd->bl, NPC_SELFDESTRUCTION, 99, gettick(), 0); clif_displaymessage(fd, msg_table[109]); // Player has been nuked! @@ -6295,18 +6240,16 @@ int atcommand_chardelitem(const int fd, struct map_session_data* sd, const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; char item_name[100]; int i, number = 0, item_id, item_position, count; - char output[200]; struct item_data *item_data; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); memset(item_name, '\0', sizeof(item_name)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || !*message || sscanf(message, "%s %d %99[^\n]", item_name, &number, character) < 3 || number < 1) { + if (!message || !*message || sscanf(message, "%s %d %99[^\n]", item_name, &number, atcmd_player_name) < 3 || number < 1) { clif_displaymessage(fd, "Please, enter an item name/id, a quantity and a player name (usage: @chardelitem <item_name_or_ID> <quantity> <player>)."); return -1; } @@ -6317,7 +6260,7 @@ int atcommand_chardelitem(const int fd, struct map_session_data* sd, item_id = item_data->nameid; if (item_id > 500) { - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can kill only lower or same level item_position = pc_search_inventory(pl_sd, item_id); if (item_position >= 0) { @@ -6327,13 +6270,13 @@ int atcommand_chardelitem(const int fd, struct map_session_data* sd, count++; item_position = pc_search_inventory(pl_sd, item_id); // for next loop } - sprintf(output, msg_table[113], count); // %d item(s) removed by a GM. - clif_displaymessage(pl_sd->fd, output); + sprintf(atcmd_output, msg_table[113], count); // %d item(s) removed by a GM. + clif_displaymessage(pl_sd->fd, atcmd_output); if (number == count) - sprintf(output, msg_table[114], count); // %d item(s) removed from the player. + sprintf(atcmd_output, msg_table[114], count); // %d item(s) removed from the player. else - sprintf(output, msg_table[115], count, count, number); // %d item(s) removed. Player had only %d on %d items. - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[115], count, count, number); // %d item(s) removed. Player had only %d on %d items. + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[116]); // Character does not have the item. return -1; @@ -6363,19 +6306,18 @@ int atcommand_jail( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; int x, y; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @jail <char_name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can jail only lower or same GM switch(rand() % 2) { case 0: @@ -6416,17 +6358,16 @@ int atcommand_unjail( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @unjail/@discharge <char_name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can jail only lower or same GM if (pl_sd->bl.m != map_mapname2mapid("sec_pri.gat")) { clif_displaymessage(fd, msg_table[119]); // This player is not in jails. @@ -6588,18 +6529,17 @@ int atcommand_broadcast( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message) { clif_displaymessage(fd, "Please, enter a message (usage: @broadcast <message>)."); return -1; } - sprintf(output, "%s : %s", sd->status.name, message); - intif_GMmessage(output, strlen(output) + 1, 0); + sprintf(atcmd_output, "%s : %s", sd->status.name, message); + intif_GMmessage(atcmd_output, strlen(atcmd_output) + 1, 0); return 0; } @@ -6612,19 +6552,18 @@ int atcommand_localbroadcast( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; nullpo_retr(-1, sd); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); if (!message || !*message) { clif_displaymessage(fd, "Please, enter a message (usage: @localbroadcast <message>)."); return -1; } - sprintf(output, "%s : %s", sd->status.name, message); + sprintf(atcmd_output, "%s : %s", sd->status.name, message); - clif_GMmessage(&sd->bl, output, strlen(output) + 1, 1); // 1: ALL_SAMEMAP + clif_GMmessage(&sd->bl, atcmd_output, strlen(atcmd_output) + 1, 1); // 1: ALL_SAMEMAP return 0; } @@ -6638,15 +6577,14 @@ int atcommand_chardisguise( const char* command, const char* message) { int mob_id; - char character[100]; char mob_name[100]; struct map_session_data* pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); memset(mob_name, '\0', sizeof(mob_name)); - if (!message || !*message || sscanf(message, "%s %99[^\n]", mob_name, character) < 2) { + if (!message || !*message || sscanf(message, "%s %99[^\n]", mob_name, atcmd_player_name) < 2) { clif_displaymessage(fd, "Please, enter a Monster/NPC name/id and a player name (usage: @chardisguise <monster_name_or_monster_ID> <char name>)."); return -1; } @@ -6654,7 +6592,7 @@ int atcommand_chardisguise( if ((mob_id = mobdb_searchname(mob_name)) == 0) // check name first (to avoid possible name begining by a number) mob_id = atoi(mob_name); - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can disguise only lower or same level if ((mob_id >= 46 && mob_id <= 125) || (mob_id >= 700 && mob_id <= 718) || // NPC (mob_id >= 721 && mob_id <= 755) || (mob_id >= 757 && mob_id <= 811) || // NPC @@ -6692,18 +6630,17 @@ int atcommand_charundisguise( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; struct map_session_data* pl_sd; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charundisguise <char name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can undisguise only lower or same level if (pl_sd->disguise) { clif_clearchar(&pl_sd->bl, 9); @@ -6807,22 +6744,22 @@ atcommand_character_cart_list( const int fd, struct map_session_data* sd, const char* command, const char* message) { + char outputtmp[200]; struct map_session_data *pl_sd; struct item_data *item_data, *item_temp; int i, j, count, counter, counter2; - char character[100], output[200], outputtmp[200]; nullpo_retr(-1, sd); - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); memset(outputtmp, '\0', sizeof(outputtmp)); - if (!message || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player name (usage: @charitemlist <char name>)."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can look items only lower or same level counter = 0; count = 0; @@ -6831,39 +6768,39 @@ atcommand_character_cart_list( counter = counter + pl_sd->status.cart[i].amount; count++; if (count == 1) { - sprintf(output, "------ Cart items list of '%s' ------", pl_sd->status.name); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "------ Cart items list of '%s' ------", pl_sd->status.name); + clif_displaymessage(fd, atcmd_output); } if (pl_sd->status.cart[i].refine) - sprintf(output, "%d %s %+d (%s %+d, id: %d)", pl_sd->status.cart[i].amount, item_data->name, pl_sd->status.cart[i].refine, item_data->jname, pl_sd->status.cart[i].refine, pl_sd->status.cart[i].nameid); + sprintf(atcmd_output, "%d %s %+d (%s %+d, id: %d)", pl_sd->status.cart[i].amount, item_data->name, pl_sd->status.cart[i].refine, item_data->jname, pl_sd->status.cart[i].refine, pl_sd->status.cart[i].nameid); else - sprintf(output, "%d %s (%s, id: %d)", pl_sd->status.cart[i].amount, item_data->name, item_data->jname, pl_sd->status.cart[i].nameid); - clif_displaymessage(fd, output); - memset(output, '\0', sizeof(output)); + sprintf(atcmd_output, "%d %s (%s, id: %d)", pl_sd->status.cart[i].amount, item_data->name, item_data->jname, pl_sd->status.cart[i].nameid); + clif_displaymessage(fd, atcmd_output); + memset(atcmd_output, '\0', sizeof(atcmd_output)); counter2 = 0; for (j = 0; j < item_data->slot; j++) { if (pl_sd->status.cart[i].card[j]) { - if ((item_temp = itemdb_search(pl_sd->status.cart[i].card[j])) != NULL) { - if (output[0] == '\0') + if ( (item_temp = itemdb_search(pl_sd->status.cart[i].card[j])) != NULL) { + if (atcmd_output[0] == '\0') sprintf(outputtmp, " -> (card(s): #%d %s (%s), ", ++counter2, item_temp->name, item_temp->jname); else sprintf(outputtmp, "#%d %s (%s), ", ++counter2, item_temp->name, item_temp->jname); - strcat(output, outputtmp); + strcat(atcmd_output, outputtmp); } } } - if (output[0] != '\0') { - output[strlen(output) - 2] = ')'; - output[strlen(output) - 1] = '\0'; - clif_displaymessage(fd, output); + if (atcmd_output[0] != '\0') { + atcmd_output[strlen(atcmd_output) - 2] = ')'; + atcmd_output[strlen(atcmd_output) - 1] = '\0'; + clif_displaymessage(fd, atcmd_output); } } } if (count == 0) clif_displaymessage(fd, "No item found in the cart of this player."); else { - sprintf(output, "%d item(s) found in %d kind(s) of items.", counter, count); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "%d item(s) found in %d kind(s) of items.", counter, count); + clif_displaymessage(fd, atcmd_output); } } else { clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. @@ -6991,7 +6928,6 @@ int atcommand_npcmove(const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; int x = 0, y = 0; struct npc_data *nd = 0; nullpo_retr(-1, sd); @@ -7000,19 +6936,19 @@ atcommand_npcmove(const int fd, struct map_session_data* sd, if (!message || !*message) return -1; - memset(character, '\0', sizeof character); + memset(atcmd_player_name, '\0', sizeof atcmd_player_name); - if (sscanf(message, "%d %d %99[^\n]", &x, &y, character) < 3) { + if (sscanf(message, "%d %d %99[^\n]", &x, &y, atcmd_player_name) < 3) { clif_displaymessage(fd, "Usage: @npcmove <X> <Y> <npc_name>"); return -1; } - nullpo_retr(-1, (nd = npc_name2id(character))); + nullpo_retr(-1, (nd = npc_name2id(atcmd_player_name))); - npc_enable(character, 0); + npc_enable(atcmd_player_name, 0); nd->bl.x = x; nd->bl.y = y; - npc_enable(character, 1); + npc_enable(atcmd_player_name, 1); return 0; } @@ -7028,25 +6964,24 @@ atcommand_addwarp(const int fd, struct map_session_data* sd, const char* command, const char* message) { char w1[64], w3[64], w4[64]; - char map[30], output[200]; int x,y,ret; nullpo_retr(-1, sd); if (!message || !*message) return -1; - if (sscanf(message, "%99s %d %d[^\n]", map, &x, &y ) < 3) + if (sscanf(message, "%99s %d %d[^\n]", atcmd_player_name, &x, &y ) < 3) return -1; sprintf(w1,"%s,%d,%d", sd->mapname, sd->bl.x, sd->bl.y); - sprintf(w3,"%s%d%d%d%d", map,sd->bl.x, sd->bl.y, x, y); - sprintf(w4,"1,1,%s.gat,%d,%d", map, x, y); + sprintf(w3,"%s%d%d%d%d", atcmd_player_name,sd->bl.x, sd->bl.y, x, y); + sprintf(w4,"1,1,%s.gat,%d,%d", atcmd_player_name, x, y); ret = npc_parse_warp(w1, "warp", w3, w4); - sprintf(output, "New warp NPC => %s",w3); + sprintf(atcmd_output, "New warp NPC => %s",w3); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); return ret; } @@ -7216,9 +7151,8 @@ atcommand_skillid(const int fd, struct map_session_data* sd, while (skill_names[idx].id != 0) { if ((strnicmp(skill_names[idx].name, message, skillen) == 0) || (strnicmp(skill_names[idx].desc, message, skillen) == 0)) { - char output[255]; - sprintf(output, "skill %d: %s", skill_names[idx].id, skill_names[idx].desc); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "skill %d: %s", skill_names[idx].id, skill_names[idx].desc); + clif_displaymessage(fd, atcmd_output); } idx++; } @@ -7277,7 +7211,6 @@ atcommand_skilltree(const int fd, struct map_session_data* sd, int meets = 1, j, c=0, s=0; struct pc_base_job s_class; char target[255], *tbl; - char output[255]; struct skill_tree_entry *ent; nullpo_retr(-1, sd); @@ -7299,10 +7232,10 @@ atcommand_skilltree(const int fd, struct map_session_data* sd, tbl = job_name(c); - sprintf(output, "Player is using %s %s skill tree (%d basic points)", + sprintf(atcmd_output, "Player is using %s %s skill tree (%d basic points)", s_class.upper ? "upper" : "lower", tbl, pc_checkskill(pl_sd, 1)); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); for (j = 0; skill_tree[s][c][j].id != 0; j++) { if (skill_tree[s][c][j].id == skillnum) { @@ -7312,8 +7245,8 @@ atcommand_skilltree(const int fd, struct map_session_data* sd, } if (skillidx == -1) { - sprintf(output, "I do not believe the player can use that skill"); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "I do not believe the player can use that skill"); + clif_displaymessage(fd, atcmd_output); return 0; } @@ -7331,15 +7264,15 @@ atcommand_skilltree(const int fd, struct map_session_data* sd, desc = "Unknown skill"; else desc = skill_names[idx].desc; - sprintf(output, "player requires level %d of skill %s", + sprintf(atcmd_output, "player requires level %d of skill %s", ent->need[j].lv, desc); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); meets = 0; } if (meets == 1) { - sprintf(output, "I believe the player meets all the requirements for that skill"); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "I believe the player meets all the requirements for that skill"); + clif_displaymessage(fd, atcmd_output); } return 0; @@ -7397,28 +7330,27 @@ atcommand_divorce(const int fd, struct map_session_data* sd, const char* command, const char* message) { struct map_session_data *pl_sd = NULL; - char player[255], output[255]; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%[^\r\n]", player) != 1) { + if (!message || !*message || sscanf(message, "%[^\r\n]", atcmd_player_name) != 1) { clif_displaymessage(fd, "Usage: @divorce <player>."); return -1; } - if((pl_sd=map_nick2sd((char *) player)) != NULL) { + if((pl_sd=map_nick2sd((char *) atcmd_player_name)) != NULL) { if (pc_divorce(pl_sd) != 0) { - sprintf(output, "The divorce has failed.. Cannot find player '%s' or his(her) partner online.", player); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "The divorce has failed.. Cannot find player '%s' or his(her) partner online.", atcmd_player_name); + clif_displaymessage(fd, atcmd_output); return -1; } else { - sprintf(output, "'%s' and his(her) partner are now divorced.", player); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "'%s' and his(her) partner are now divorced.", atcmd_player_name); + clif_displaymessage(fd, atcmd_output); return 0; } } - sprintf(output, "Cannot find player '%s' online", player); - clif_displaymessage(fd, output); + sprintf(atcmd_output, "Cannot find player '%s' online", atcmd_player_name); + clif_displaymessage(fd, atcmd_output); return -1; } @@ -7764,7 +7696,6 @@ atcommand_mobsearch( const char* command, const char* message) { char mob_name[100]; - char output[100]; int mob_id,map_id = 0; nullpo_retr(-1, sd); @@ -7775,8 +7706,8 @@ atcommand_mobsearch( if ((mob_id = atoi(mob_name)) == 0) mob_id = mobdb_searchname(mob_name); if(mob_id !=-1 && (mob_id <= 1000 || mob_id >= 2000)){ - snprintf(output, sizeof output, "Invalid mob id %s!",mob_name); - clif_displaymessage(fd, output); + snprintf(atcmd_output, sizeof atcmd_output, "Invalid mob id %s!",mob_name); + clif_displaymessage(fd, atcmd_output); return 0; } if(mob_id == atoi(mob_name) && mob_db[mob_id].jname) @@ -7785,9 +7716,9 @@ atcommand_mobsearch( map_id = sd->bl.m; - snprintf(output, sizeof output, "Mob Search... %s %s", + snprintf(atcmd_output, sizeof atcmd_output, "Mob Search... %s %s", mob_name, sd->mapname); - clif_displaymessage(fd, output); + clif_displaymessage(fd, atcmd_output); map_foreachinarea(atmobsearch_sub, map_id, 0, 0, map[map_id].xs, map[map_id].ys, BL_MOB, mob_id, fd); @@ -8099,7 +8030,6 @@ atcommand_uptime( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char output[200]; long seconds = 0, day = 24*60*60, hour = 60*60, minute = 60, days = 0, hours = 0, minutes = 0; nullpo_retr(-1, sd); @@ -8112,9 +8042,9 @@ atcommand_uptime( minutes = seconds/minute; seconds -= (seconds/minute>0)?(seconds/minute)*minute:0; - snprintf(output, sizeof(output), msg_table[245], days, hours, minutes, seconds); + snprintf(atcmd_output, sizeof(atcmd_output), msg_table[245], days, hours, minutes, seconds); - clif_displaymessage(fd,output); + clif_displaymessage(fd,atcmd_output); return 0; } @@ -8144,16 +8074,15 @@ int atcommand_mute( const char* command, const char* message) { struct map_session_data *pl_sd = NULL; - char character[100]; int manner; nullpo_retr(-1, sd); - if (!message || !*message || sscanf(message, "%d %99[^\n]", &manner, character) < 1) { + if (!message || !*message || sscanf(message, "%d %99[^\n]", &manner, atcmd_player_name) < 1) { clif_displaymessage(fd, "Usage: @mute <time> <character name>."); return -1; } - if ((pl_sd = map_nick2sd(character)) != NULL) { + if ((pl_sd = map_nick2sd(atcmd_player_name)) != NULL) { pl_sd->status.manner -= manner; if(pl_sd->status.manner < 0) status_change_start(&pl_sd->bl,SC_NOCHAT,0,0,0,0,0,0); @@ -8338,16 +8267,14 @@ int atcommand_jumptoid( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; int cid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player CID (usage: @jumptoid/@warptoid/@gotoid <char id>)."); return -1; } @@ -8366,8 +8293,8 @@ int atcommand_jumptoid( return -1; } pc_setpos(sd, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y, 3); - sprintf(output, msg_table[4], pl_sd->status.name); // Jump to %s - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[4], pl_sd->status.name); // Jump to %s + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[154]); // Character not found. return -1; @@ -8393,16 +8320,14 @@ int atcommand_jumptoid2( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; int aid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player AID (usage: @jumptoid/@warptoid/@gotoid <account id>)."); return -1; } @@ -8421,8 +8346,8 @@ int atcommand_jumptoid2( return -1; } pc_setpos(sd, pl_sd->mapname, pl_sd->bl.x, pl_sd->bl.y, 3); - sprintf(output, msg_table[4], pl_sd->status.name); // Jump to %s - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[4], pl_sd->status.name); // Jump to %s + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[154]); // Character not found. return -1; @@ -8447,16 +8372,14 @@ int atcommand_recallid( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; int cid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player CID (usage: @recallid <char id>)."); return -1; } @@ -8476,8 +8399,8 @@ int atcommand_recallid( return -1; } pc_setpos(pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2); - sprintf(output, msg_table[46], pl_sd->status.name); // Jump to %s - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[46], pl_sd->status.name); // Jump to %s + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. return -1; @@ -8506,16 +8429,14 @@ int atcommand_recallid2( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; - char output[200]; int aid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); - memset(output, '\0', sizeof(output)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); - if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player AID (usage: @recallid2 <account id>)."); return -1; } @@ -8535,8 +8456,8 @@ int atcommand_recallid2( return -1; } pc_setpos(pl_sd, sd->mapname, sd->bl.x, sd->bl.y, 2); - sprintf(output, msg_table[46], pl_sd->status.name); // Jump to %s - clif_displaymessage(fd, output); + sprintf(atcmd_output, msg_table[46], pl_sd->status.name); // Jump to %s + clif_displaymessage(fd, atcmd_output); } else { clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. return -1; @@ -8566,13 +8487,12 @@ int atcommand_kickid( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; int cid=0; int session_id=0; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player CID (usage: @kickid <char id>)."); return -1; } @@ -8614,13 +8534,12 @@ int atcommand_kickid2( const char* command, const char* message) { struct map_session_data *pl_sd; - char character[100]; int aid=0; int session_id=0; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player AID (usage: @kickid2 <account id>)."); return -1; } @@ -8661,14 +8580,13 @@ int atcommand_reviveid( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; int cid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player CID (usage: @reviveid <char id>)."); return -1; } @@ -8712,14 +8630,13 @@ int atcommand_reviveid2( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; int aid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player AID (usage: @reviveid2 <account id>)."); return -1; } @@ -8763,14 +8680,13 @@ int atcommand_killid( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; int cid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (cid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player CID (usage: @killid <char id>)."); return -1; } @@ -8812,14 +8728,13 @@ int atcommand_killid2( const int fd, struct map_session_data* sd, const char* command, const char* message) { - char character[100]; int aid=0; int session_id=0; struct map_session_data *pl_sd; - memset(character, '\0', sizeof(character)); + memset(atcmd_player_name, '\0', sizeof(atcmd_player_name)); - if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", character) < 1) { + if (!message || (aid = atoi(message)) == 0 || !*message || sscanf(message, "%99[^\n]", atcmd_player_name) < 1) { clif_displaymessage(fd, "Please, enter a player AID (usage: @killid2 <account id>)."); return -1; } @@ -9034,90 +8949,99 @@ int atcommand_refreshonline( */ int atcommand_mobinfo( const int fd, struct map_session_data* sd, - const char* command, const char* message) { - static char msize[3][8]={"Small","Medium","Large"}; - static char mrace[12][12]={"Formless","Undead","Beast","Plant","Insect","Fish","Demon","Demi-Human","Angel","Dragon","Boss","Non-Boss"}; - static char melement[11][12]={"None","Neutral","Water","Earth","Fire","Wind","Poison","Holy","Dark","Ghost","Undead"}; - char monster[100]; - char output[200]; - char output2[200]; + const char* command, const char* message) +{ + unsigned char msize[3][7] = {"Small", "Medium", "Large"}; + unsigned char mrace[12][11] = {"Formless", "Undead", "Beast", "Plant", "Insect", "Fish", "Demon", "Demi-Human", "Angel", "Dragon", "Boss", "Non-Boss"}; + unsigned char melement[11][8] = {"None", "Neutral", "Water", "Earth", "Fire", "Wind", "Poison", "Holy", "Dark", "Ghost", "Undead"}; + char atcmd_output2[200]; struct item_data *item_data; + struct mob_db *mob; int mob_id; - int i,j; + int i, j; - nullpo_retr(-1, sd); - memset(monster, '\0', sizeof(monster)); - memset(output, '\0', sizeof(output)); + memset(atcmd_output, '\0', sizeof(atcmd_output)); + memset(atcmd_output2, '\0', sizeof(atcmd_output2)); - if (!message || !*message || - sscanf(message, "%99s", monster) < 1) { - clif_displaymessage(fd, msg_table[143]); // Give a monster name/id please. + if (!message || !*message) { + clif_displaymessage(fd, "Please, enter a Monster/NPC name/id (usage: @mobinfo <monster_name_or_monster_ID>)."); return -1; } + // If monster identifier/name argument is a name - if ((mob_id = mobdb_searchname(monster)) == 0) // check name first (to avoid possible name begining by a number) - mob_id = mobdb_checkid(atoi(monster)); + if ((mob_id = mobdb_searchname(message)) == 0) // check name first (to avoid possible name begining by a number) + mob_id = mobdb_checkid(atoi(message)); if (mob_id == 0) { clif_displaymessage(fd, msg_table[40]); // Invalid monster ID or name. return -1; } - sprintf(output, "N:%04i '%s'/'%s' %s", - mob_id,mob_db[mob_id].name,mob_db[mob_id].jname, mob_db[mob_id].mexp?"MVP!":""); - clif_displaymessage(fd, output); - sprintf(output, " Level:%i HP:%i SP:%i Base EXP:%i Job EXP:%i", - mob_db[mob_id].lv, mob_db[mob_id].max_hp, mob_db[mob_id].max_sp, mob_db[mob_id].base_exp, mob_db[mob_id].job_exp); - clif_displaymessage(fd, output); - sprintf(output, " DEF:%i MDEF:%i STR:%i AGI:%i VIT:%i INT:%i DEX:%i LUK:%i", - mob_db[mob_id].def, mob_db[mob_id].mdef, mob_db[mob_id].str, mob_db[mob_id].agi, mob_db[mob_id].vit, mob_db[mob_id].int_, mob_db[mob_id].dex, mob_db[mob_id].luk); - clif_displaymessage(fd, output); - if (mob_db[mob_id].element<20) { + + mob = &mob_db[mob_id]; + + // stats + if (mob->mexp) + sprintf(atcmd_output, "Monster (MVP): '%s'/'%s' (%d)", mob->name, mob->jname, mob_id); + else + sprintf(atcmd_output, "Monster: '%s'/'%s' (%d)", mob->name, mob->jname, mob_id); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, " Level:%d HP:%d SP:%d Base EXP:%d Job EXP:%d", mob->lv, mob->max_hp, mob->max_sp, mob->base_exp, mob->job_exp); + clif_displaymessage(fd, atcmd_output); + sprintf(atcmd_output, " DEF:%d MDEF:%d STR:%d AGI:%d VIT:%d INT:%d DEX:%d LUK:%d", mob->def, mob->mdef, mob->str, mob->agi, mob->vit, mob->int_, mob->dex, mob->luk); + clif_displaymessage(fd, atcmd_output); + if (mob->element < 20) { //Element - None, Level 0 - i = 0; j = 0; + i = 0; + j = 0; } else { - i = mob_db[mob_id].element%20+1; - j = mob_db[mob_id].element/20; - } - sprintf(output, " ATK:%i~%i Range:%i~%i~%i Size:%s Race:%s Element:%s(%i Lv)", - mob_db[mob_id].atk1,mob_db[mob_id].atk2, mob_db[mob_id].range, mob_db[mob_id].range2 ,mob_db[mob_id].range3, - msize[mob_db[mob_id].size],mrace[mob_db[mob_id].race], melement[i],j); - clif_displaymessage(fd, output); - if (mob_db[mob_id].mexp) { - //if MVP, then - sprintf(output, " MVP Bonus EXP:%i %02.02f%%", - mob_db[mob_id].mexp, (float)mob_db[mob_id].mexpper / 100); - clif_displaymessage(fd, output); - - strcpy(output," MVP Items:"); - for (i=0; i<3; i++) { - if ( mob_db[mob_id].mvpitem[i].nameid<=0 || mob_db[mob_id].mvpitem[i].p<=0) - continue; - if( (item_data = itemdb_search(mob_db[mob_id].mvpitem[i].nameid)) == NULL) - continue; - - sprintf(output2, " - %s %02.02f%%", - item_data->name, (float)mob_db[mob_id].mvpitem[i].p / 100); - strcat(output,output2); + i = mob->element % 20 + 1; + j = mob->element / 20; + } + sprintf(atcmd_output, " ATK:%d~%d Range:%d~%d~%d Size:%s Race: %s Element: %s (Lv:%d)", mob->atk1, mob->atk2, mob->range, mob->range2 , mob->range3, msize[mob->size], mrace[mob->race], melement[i], j); + clif_displaymessage(fd, atcmd_output); + // drops + clif_displaymessage(fd, " Drops:"); + strcpy(atcmd_output, " "); + j = 0; + for (i = 0; i < 10; i++) { + if (mob->dropitem[i].nameid <= 0 || (item_data = itemdb_search(mob->dropitem[i].nameid)) == NULL) + continue; + if (mob->dropitem[i].p > 0) { + sprintf(atcmd_output2, " - %s %02.02f%%", item_data->name, (float)mob->dropitem[i].p / 100); + strcat(atcmd_output, atcmd_output2); + if (++j % 3 == 0) { + clif_displaymessage(fd, atcmd_output); + strcpy(atcmd_output, " "); + } } - clif_displaymessage(fd, output); } - strcpy(output," Drops:"); - j=0; - for (i=0; i<10; i++) { // 8 -> 10 Lupus - if ( mob_db[mob_id].dropitem[i].nameid<=0 || mob_db[mob_id].dropitem[i].p<=0) - continue; - if( (item_data = itemdb_search(mob_db[mob_id].dropitem[i].nameid)) == NULL) - continue; - sprintf(output2, " - %s %02.02f%%", - item_data->name, (float)mob_db[mob_id].dropitem[i].p / 100); - strcat(output,output2); - if (++j>=3) { - j=0; - clif_displaymessage(fd, output); - strcpy(output," "); + if (j == 0) + clif_displaymessage(fd, "This monster has no drop."); + else if (j % 3 != 0) + clif_displaymessage(fd, atcmd_output); + // mvp + if (mob->mexp) { + sprintf(atcmd_output, " MVP Bonus EXP:%d %02.02f%%", mob->mexp, (float)mob->mexpper / 100); + clif_displaymessage(fd, atcmd_output); + strcpy(atcmd_output, " MVP Items:"); + j = 0; + for (i = 0; i < 3; i++) { + if (mob->mvpitem[i].nameid <= 0 || (item_data = itemdb_search(mob->mvpitem[i].nameid)) == NULL) + continue; + if (mob->mvpitem[i].p > 0) { + j++; + if (j == 1) + sprintf(atcmd_output2, " %s %02.02f%%", item_data->name, (float)mob->mvpitem[i].p / 100); + else + sprintf(atcmd_output2, " - %s %02.02f%%", item_data->name, (float)mob->mvpitem[i].p / 100); + strcat(atcmd_output, atcmd_output2); + } } + if (j == 0) + clif_displaymessage(fd, "This monster has no MVP drop."); + else + clif_displaymessage(fd, atcmd_output); } - clif_displaymessage(fd, output); + return 0; } - diff --git a/src/map/log.c b/src/map/log.c index e37aeae6b..df939488f 100644 --- a/src/map/log.c +++ b/src/map/log.c @@ -3,12 +3,57 @@ #include <stdio.h> #include <string.h> +#include "itemdb.h" #include "map.h" + #include "nullpo.h" #include "log.h" struct Log_Config log_config; +char timestring[255]; +time_t curtime; + +//0 = none, 1024 = any +//Bits | +//1 - Healing items (Potions) +//2 - Usable Items +//4 - Etc Items +//8 - Weapon +//16 - Shields,Armor,Headgears,Accessories,etc +//32 - Cards +//64 - Pet Accessories +//128 - Eggs (well, monsters don't drop 'em but we'll use the same system for ALL logs) +//256 - Log expensive items ( >= price_log) +//512 - Log big amount of items ( >= amount_log) +int slog_healing = 0; +int slog_usable = 0; +int slog_etc = 0; +int slog_weapon = 0; +int slog_armor = 0; +int slog_card = 0; +int slog_petacc = 0; +int slog_egg = 0; +int slog_expensive = 0; +int slog_amount = 0; + +//check if this item should be logger according the settings +int should_log_item(int nameid) { + struct item_data *item_data; + + if (nameid<512 || (item_data= itemdb_search(nameid)) == NULL) return 0; + + if (slog_expensive && item_data->value_buy >= log_config.price_items_log ) return item_data->nameid; + if (slog_healing && item_data->type == 0 ) return item_data->nameid; + if (slog_etc && item_data->type == 3 ) return item_data->nameid; + if (slog_weapon && item_data->type == 4 ) return item_data->nameid; + if (slog_armor && item_data->type == 5 ) return item_data->nameid; + if (slog_card && item_data->type == 6 ) return item_data->nameid; + if (slog_petacc && item_data->type == 8 ) return item_data->nameid; + if (slog_egg && item_data->type == 7 ) return item_data->nameid; + return 0; +} + int log_branch(struct map_session_data *sd) { FILE *logfp; @@ -25,8 +70,6 @@ int log_branch(struct map_session_data *sd) } else { #endif if((logfp=fopen(log_config.log_branch,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%s%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, sd->mapname, RETCODE); @@ -41,10 +84,16 @@ int log_branch(struct map_session_data *sd) int log_drop(struct map_session_data *sd, int monster_id, int *log_drop) { FILE *logfp; + int i,flag = 0; if(log_config.enable_logs <= 0) return 0; nullpo_retr(0, sd); + for (i = 0; i<10; i++) { //Should we log these items? [Lupus] + flag += should_log_item(log_drop[i]); + } + if (flag==0) return 0; //we skip logging this items set - they doesn't met our logging conditions [Lupus] + #ifndef TXT_ONLY if(log_config.sql_logs > 0) { @@ -54,7 +103,7 @@ int log_drop(struct map_session_data *sd, int monster_id, int *log_drop) } else { #endif if((logfp=fopen(log_config.log_drop,"a+")) != NULL) { - char timestring[255]; + time_t curtime; time(&curtime); @@ -65,7 +114,7 @@ int log_drop(struct map_session_data *sd, int monster_id, int *log_drop) #ifndef TXT_ONLY } #endif - return 0; + return 1; //Logged } int log_mvpdrop(struct map_session_data *sd, int monster_id, int *log_mvp) @@ -84,8 +133,6 @@ int log_mvpdrop(struct map_session_data *sd, int monster_id, int *log_mvp) } else { #endif if((logfp=fopen(log_config.log_mvpdrop,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, monster_id, log_mvp[0], log_mvp[1], RETCODE); @@ -112,8 +159,6 @@ int log_present(struct map_session_data *sd, int source_type, int nameid) } else { #endif if((logfp=fopen(log_config.log_present,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, source_type, nameid, RETCODE); @@ -140,8 +185,6 @@ int log_produce(struct map_session_data *sd, int nameid, int slot1, int slot2, i } else { #endif if((logfp=fopen(log_config.log_produce,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d\t%d,%d,%d\t%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, nameid, slot1, slot2, slot3, success, RETCODE); @@ -182,8 +225,6 @@ int log_refine(struct map_session_data *sd, int n, int success) } else { #endif if((logfp=fopen(log_config.log_refine,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%d,%d\t%d%d%d%d\t%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, sd->status.inventory[n].nameid, sd->status.inventory[n].refine, log_card[0], log_card[1], log_card[2], log_card[3], success, item_level, RETCODE); @@ -228,8 +269,6 @@ int log_trade(struct map_session_data *sd, struct map_session_data *target_sd, i } else { #endif if((logfp=fopen(log_config.log_trade,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%s[%d:%d]\t%d\t%d\t%d\t%d,%d,%d,%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, target_sd->status.name, target_sd->status.account_id, target_sd->status.char_id, log_nameid, log_amount, log_refine, log_card[0], log_card[1], log_card[2], log_card[3], RETCODE); @@ -271,8 +310,6 @@ int log_vend(struct map_session_data *sd,struct map_session_data *vsd,int n,int } else { #endif if((logfp=fopen(log_config.log_vend,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d:%d]\t%s[%d:%d]\t%d\t%d\t%d\t%d,%d,%d,%d\t%d%s", timestring, sd->status.name, sd->status.account_id, sd->status.char_id, vsd->status.name, vsd->status.account_id, vsd->status.char_id, log_nameid, log_amount, log_refine, log_card[0], log_card[1], log_card[2], log_card[3], zeny, RETCODE); @@ -299,8 +336,6 @@ int log_zeny(struct map_session_data *sd, struct map_session_data *target_sd,int } else { #endif if((logfp=fopen(log_config.log_trade,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d]\t%s[%d]\t%d\t%s", timestring, sd->status.name, sd->status.account_id, target_sd->status.name, target_sd->status.account_id, sd->deal_zeny, RETCODE); @@ -327,8 +362,6 @@ int log_atcommand(struct map_session_data *sd, const char *message) } else { #endif if((logfp=fopen(log_config.log_gm,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d]: %s%s",timestring,sd->status.name,sd->status.account_id,message,RETCODE); @@ -355,8 +388,6 @@ int log_npc(struct map_session_data *sd, const char *message) } else { #endif if((logfp=fopen(log_config.log_npc,"a+")) != NULL) { - char timestring[255]; - time_t curtime; time(&curtime); strftime(timestring, 254, "%m/%d/%Y %H:%M:%S", localtime(&curtime)); fprintf(logfp,"%s - %s[%d]: %s%s",timestring,sd->status.name,sd->status.account_id,message,RETCODE); @@ -379,6 +410,11 @@ int log_config_read(char *cfgName) return 1; } + //Default values + log_config.what_items_log = 1023; //log any items + log_config.price_items_log = 1000; + log_config.amount_items_log = 100; + while(fgets(line, sizeof(line) -1, fp)) { if(line[0] == '/' && line[1] == '/') @@ -390,6 +426,35 @@ int log_config_read(char *cfgName) log_config.enable_logs = (atoi(w2)); } else if(strcmpi(w1,"sql_logs") == 0) { log_config.sql_logs = (atoi(w2)); + } else if(strcmpi(w1,"what_items_log") == 0) { + log_config.what_items_log = (atoi(w2)); + +//Bits | +//1 - Healing items (Potions) +//2 - Usable Items +//4 - Etc Items +//8 - Weapon +//16 - Shields,Armor,Headgears,Accessories,etc +//32 - Cards +//64 - Pet Accessories +//128 - Eggs (well, monsters don't drop 'em but we'll use the same system for ALL logs) +//256 - Log expensive items ( >= price_log) +//512 - Log big amount of items ( >= amount_log) + slog_healing = log_config.what_items_log&1; + slog_usable = log_config.what_items_log&2; + slog_etc = log_config.what_items_log&4; + slog_weapon = log_config.what_items_log&8; + slog_armor = log_config.what_items_log&16; + slog_card = log_config.what_items_log&32; + slog_petacc = log_config.what_items_log&64; + slog_egg = log_config.what_items_log&128; + slog_expensive = log_config.what_items_log&256; + slog_amount = log_config.what_items_log&512; + + } else if(strcmpi(w1,"price_items_log") == 0) { + log_config.price_items_log = (atoi(w2)); + } else if(strcmpi(w1,"amount_items_log") == 0) { + log_config.amount_items_log = (atoi(w2)); } else if(strcmpi(w1,"log_branch") == 0) { log_config.branch = (atoi(w2)); } else if(strcmpi(w1,"log_drop") == 0) { diff --git a/src/map/log.h b/src/map/log.h index 9886329da..1c72d3f96 100644 --- a/src/map/log.h +++ b/src/map/log.h @@ -26,6 +26,7 @@ int log_config_read(char *cfgName); extern struct Log_Config { int enable_logs; int sql_logs; + int what_items_log,price_items_log,amount_items_log; int branch, drop, mvpdrop, present, produce, refine, trade, vend, zeny, gm, npc; char log_branch[32], log_drop[32], log_mvpdrop[32], log_present[32], log_produce[32], log_refine[32], log_trade[32], log_vend[32], log_gm[32], log_npc[32]; char log_branch_db[32], log_drop_db[32], log_mvpdrop_db[32], log_present_db[32], log_produce_db[32], log_refine_db[32], log_trade_db[32], log_vend_db[32], log_gm_db[32], log_npc_db[32]; diff --git a/src/map/mob.c b/src/map/mob.c index a4c93c2e4..76554f70b 100644 --- a/src/map/mob.c +++ b/src/map/mob.c @@ -2139,6 +2139,9 @@ int mob_timer_delete(int tid, unsigned int tick, int id, int data) nullpo_retr(0, bl); md = (struct mob_data *)bl; +//for Alchemist CANNIBALIZE [Lupus] + + mob_catch_delete(md,3); return 0; } |