diff options
-rw-r--r-- | Changelog.txt | 2 | ||||
-rw-r--r-- | conf-tmpl/atcommand_athena.conf | 29 | ||||
-rw-r--r-- | conf-tmpl/charcommand_athena.conf | 10 | ||||
-rw-r--r-- | src/map/atcommand.c | 100 | ||||
-rw-r--r-- | src/map/atcommand.h | 2 | ||||
-rw-r--r-- | src/map/charcommand.c | 100 | ||||
-rw-r--r-- | src/map/charcommand.h | 2 |
7 files changed, 115 insertions, 130 deletions
diff --git a/Changelog.txt b/Changelog.txt index 42cb10fd1..9fd00ee75 100644 --- a/Changelog.txt +++ b/Changelog.txt @@ -1,5 +1,7 @@ Date Added 11/24 + * @charstatsall is now #statsall [MC Cameri] + * @charsave is now #save [MC Cameri] * Updated most of jA's 1067; battle.c and skill.c might need more updates! [Codemaster] * Fixed char-txt crashing when closing, Codemaster free()'s. [MC Cameri] * Skill Updates: - Updated guild skills (60%) [celest] diff --git a/conf-tmpl/atcommand_athena.conf b/conf-tmpl/atcommand_athena.conf index de6937ed8..ae6f0204b 100644 --- a/conf-tmpl/atcommand_athena.conf +++ b/conf-tmpl/atcommand_athena.conf @@ -2,7 +2,7 @@ // Translated by Peter Kieser <pfak@telus.net> // Set here the symbol that you want to use for your commands -// Only 1 character is get (default is '@'). You can set any character, +// Only 1 character is get (default is character_savecharacter_save'@'). You can set any character, // except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands) // With default character, all commands begin by a '@': <example> @revive command_symbol: @ @@ -40,6 +40,8 @@ command_symbol: @ // 0: normal player commands // Give server time. (6 same commands) +uptime: 0 +changesex: 0 time: 0 date: 0 server_date: 0 @@ -119,9 +121,6 @@ mountpeco: 20 who: 20 whois: 20 -// Returns list of top 50 logged in characters and their zeny based on zeny sorted from highest amount to lowest. -whozeny: 20 - // Returns list of logged in characters with their job. who2: 20 @@ -172,12 +171,6 @@ kamib: 40 // Enables you to go to a certain map, at (x,y) coordinates. (@mapmove + /mm or /mapmove) mapmove: 40 -// Enables you to view other characters stats. -charstats: 40 - -// Shows Stats Of All Characters Online -charstatsall: 40 - // Enables GVG on a map (2 same commands). gvgon: 40 gpvpon: 40 @@ -294,9 +287,6 @@ useskill: 40 // make another player killable charkillable: 40 -// makes everyone on server do a random emote -happyhappyjoyjoy:40 - //--------------------- // 50: Sub-GM+ commands @@ -313,19 +303,12 @@ spawn: 50 monster: 50 summon: 50 -// Spawns monster in small or big size. -monstersmall: 50 -monsterbig: 50 - // Spawns a monster with parameters not in same order of @spawn. monster2: 50 // To get a peco to (un)ride for another player. charmountpeco: 50 -// Enables to give possibility to a player to rename his/her pet. -charpetrename: 50 - //---------------- // 60: GM commands @@ -361,12 +344,6 @@ chardelitem: 60 // Sets another persons job level. charjlvl: 60 -// Sets the job of another character (2 same commands). -charjob: 60 -charjobchange: 60 - -// Set options on another character. -charoption: 60 // Gives another character status points charstpoint: 60 diff --git a/conf-tmpl/charcommand_athena.conf b/conf-tmpl/charcommand_athena.conf index 2f80208df..109648d3f 100644 --- a/conf-tmpl/charcommand_athena.conf +++ b/conf-tmpl/charcommand_athena.conf @@ -1,14 +1,18 @@ // Athena charcommand Configuration file.
-// Created by MC Cameri for eAthena
+// Translated by Peter Kieser <pfak@telus.net>
// Set here the symbol that you want to use for your commands
// Only 1 character is get (default is '#'). You can set any character,
// except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
-// With default character, all commands begin by a '#', example: #revive
+// and '@' (Standard GM Commands)
+// With default character, all commands begin by a '#', example: #save SomePlayer
command_symbol: #
job: 60
jobchange: 60
petrename: 50
petfriendly: 50
-stats: 40
\ No newline at end of file +stats: 40
+option: 60
+save: 60
+statsall: 40
\ No newline at end of file diff --git a/src/map/atcommand.c b/src/map/atcommand.c index adeed29c6..fa0e7f7bd 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -107,9 +107,7 @@ ATCOMMAND_FUNC(petrename); ATCOMMAND_FUNC(recall); ATCOMMAND_FUNC(recallall); ATCOMMAND_FUNC(revive); -ATCOMMAND_FUNC(character_stats); ATCOMMAND_FUNC(character_stats_all); -ATCOMMAND_FUNC(character_option); ATCOMMAND_FUNC(character_save); ATCOMMAND_FUNC(night); ATCOMMAND_FUNC(day); @@ -326,8 +324,6 @@ static AtCommandInfo atcommand_info[] = { { AtCommand_PetRename, "@petrename", 1, atcommand_petrename }, { AtCommand_Recall, "@recall", 60, atcommand_recall }, // + /recall { AtCommand_Revive, "@revive", 60, atcommand_revive }, - { AtCommand_CharacterStatsAll, "@charstatsall", 40, atcommand_character_stats_all }, - { AtCommand_CharacterSave, "@charsave", 60, atcommand_character_save }, { AtCommand_Night, "@night", 80, atcommand_night }, { AtCommand_Day, "@day", 80, atcommand_day }, { AtCommand_Doom, "@doom", 80, atcommand_doom }, @@ -4056,51 +4052,6 @@ int atcommand_revive( } /*========================================== - * - *------------------------------------------ - */ -//** Character Stats All by fritz -int atcommand_character_stats_all(const int fd, struct map_session_data* sd, const char* command, const char* message) -{ - char output[1024], gmlevel[1024]; - int i; - int count; - struct map_session_data *pl_sd; - - memset(output, '\0', sizeof(output)); - memset(gmlevel, '\0', sizeof(gmlevel)); - - count = 0; - for(i = 0; i < fd_max; i++) { - if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) { - - if (pc_isGM(pl_sd) > 0) - sprintf(gmlevel, "| GM Lvl: %d", pc_isGM(pl_sd)); - else - sprintf(gmlevel, " "); - - sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d) | HP: %d/%d | SP: %d/%d", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level, pl_sd->status.hp, pl_sd->status.max_hp, pl_sd->status.sp, pl_sd->status.max_sp); - clif_displaymessage(fd, output); - sprintf(output, "STR: %d | AGI: %d | VIT: %d | INT: %d | DEX: %d | LUK: %d | Zeny: %d %s", pl_sd->status.str, pl_sd->status.agi, pl_sd->status.vit, pl_sd->status.int_, pl_sd->status.dex, pl_sd->status.luk, pl_sd->status.zeny, gmlevel); - clif_displaymessage(fd, output); - clif_displaymessage(fd, "--------"); - count++; - } - } - - if (count == 0) - clif_displaymessage(fd, msg_table[28]); // No player found. - 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); - } - - return 0; -} - -/*========================================== * charchangesex command (usage: charchangesex <player_name>) *------------------------------------------ */ @@ -4324,57 +4275,6 @@ int atcommand_char_unban( * *------------------------------------------ */ -int atcommand_character_save( - const int fd, struct map_session_data* sd, - const char* command, const char* message) -{ - char map_name[100]; - char character[100]; - struct map_session_data* pl_sd; - int x = 0, y = 0; - int m; - - memset(map_name, '\0', sizeof(map_name)); - memset(character, '\0', sizeof(character)); - - if (!message || !*message || sscanf(message, "%99s %d %d %99[^\n]", map_name, &x, &y, character) < 4 || x < 0 || y < 0) { - clif_displaymessage(fd, "Please, enter a valid save point and a player name (usage: @charsave <map> <x> <y> <charname>)."); - return -1; - } - - if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < 13) // 16 - 4 (.gat) - strcat(map_name, ".gat"); - - if ((pl_sd = map_nick2sd(character)) != NULL) { - if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change save point only to lower or same gm level - m = map_mapname2mapid(map_name); - if (m < 0) { - clif_displaymessage(fd, msg_table[1]); // Map not found. - return -1; - } else { - if (m >= 0 && map[m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) { - clif_displaymessage(fd, "You are not authorised to set this map as a save map."); - return -1; - } - pc_setsavepoint(pl_sd, map_name, x, y); - clif_displaymessage(fd, msg_table[57]); // Character's respawn point changed. - } - } else { - clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player. - return -1; - } - } else { - clif_displaymessage(fd, msg_table[3]); // Character not found. - return -1; - } - - return 0; -} - -/*========================================== - * - *------------------------------------------ - */ int atcommand_night( const int fd, struct map_session_data* sd, const char* command, const char* message) diff --git a/src/map/atcommand.h b/src/map/atcommand.h index f5e4fb11f..7db9de481 100644 --- a/src/map/atcommand.h +++ b/src/map/atcommand.h @@ -85,7 +85,7 @@ enum AtCommandType { AtCommand_CharacterStats, AtCommand_CharacterStatsAll, // AtCommand_CharacterOption, // Now #option - AtCommand_CharacterSave, +// AtCommand_CharacterSave, // Now #save AtCommand_CharacterLoad, AtCommand_Night, AtCommand_Day, diff --git a/src/map/charcommand.c b/src/map/charcommand.c index e2aa67424..763ae2ba2 100644 --- a/src/map/charcommand.c +++ b/src/map/charcommand.c @@ -39,6 +39,8 @@ CCMD_FUNC(petrename); CCMD_FUNC(petfriendly);
CCMD_FUNC(stats);
CCMD_FUNC(option);
+CCMD_FUNC(save);
+CCMD_FUNC(stats_all);
#ifdef TXT_ONLY
/* TXT_ONLY */
@@ -64,6 +66,8 @@ static CharCommandInfo charcommand_info[] = { { CharCommandPetFriendly, "#petfriendly", 50, charcommand_petfriendly },
{ CharCommandStats, "#stats", 40, charcommand_stats },
{ CharCommandOption, "#option", 60, charcommand_option },
+ { CharCommandSave, "#save", 60, charcommand_save },
+ { CharCommandStatsAll, "#statsall", 40, charcommand_stats_all },
#ifdef TXT_ONLY
/* TXT_ONLY */
@@ -560,3 +564,99 @@ int charcommand_option( return 0;
}
+
+/*==========================================
+ *
+ *------------------------------------------
+ */
+int charcommand_save(
+ const int fd, struct map_session_data* sd,
+ const char* command, const char* message)
+{
+ char map_name[100];
+ char character[100];
+ struct map_session_data* pl_sd;
+ int x = 0, y = 0;
+ int m;
+
+ memset(map_name, '\0', sizeof(map_name));
+ memset(character, '\0', sizeof(character));
+
+ if (!message || !*message || sscanf(message, "%99s %d %d %99[^\n]", map_name, &x, &y, character) < 4 || x < 0 || y < 0) {
+ clif_displaymessage(fd, "Please, enter a valid save point and a player name (usage: #save <map> <x> <y> <charname>).");
+ return -1;
+ }
+
+ if (strstr(map_name, ".gat") == NULL && strstr(map_name, ".afm") == NULL && strlen(map_name) < 13) // 16 - 4 (.gat)
+ strcat(map_name, ".gat");
+
+ if ((pl_sd = map_nick2sd(character)) != NULL) {
+ if (pc_isGM(sd) >= pc_isGM(pl_sd)) { // you can change save point only to lower or same gm level
+ m = map_mapname2mapid(map_name);
+ if (m < 0) {
+ clif_displaymessage(fd, msg_table[1]); // Map not found.
+ return -1;
+ } else {
+ if (m >= 0 && map[m].flag.nowarpto && battle_config.any_warp_GM_min_level > pc_isGM(sd)) {
+ clif_displaymessage(fd, "You are not authorised to set this map as a save map.");
+ return -1;
+ }
+ pc_setsavepoint(pl_sd, map_name, x, y);
+ clif_displaymessage(fd, msg_table[57]); // Character's respawn point changed.
+ }
+ } else {
+ clif_displaymessage(fd, msg_table[81]); // Your GM level don't authorise you to do this action on this player.
+ return -1;
+ }
+ } else {
+ clif_displaymessage(fd, msg_table[3]); // Character not found.
+ return -1;
+ }
+
+ return 0;
+}
+
+/*==========================================
+ *
+ *------------------------------------------
+ */
+//** Character Stats All by fritz
+int charcommand_stats_all(const int fd, struct map_session_data* sd, const char* command, const char* message)
+{
+ char output[1024], gmlevel[1024];
+ int i;
+ int count;
+ struct map_session_data *pl_sd;
+
+ memset(output, '\0', sizeof(output));
+ memset(gmlevel, '\0', sizeof(gmlevel));
+
+ count = 0;
+ for(i = 0; i < fd_max; i++) {
+ if (session[i] && (pl_sd = session[i]->session_data) && pl_sd->state.auth) {
+
+ if (pc_isGM(pl_sd) > 0)
+ sprintf(gmlevel, "| GM Lvl: %d", pc_isGM(pl_sd));
+ else
+ sprintf(gmlevel, " ");
+
+ sprintf(output, "Name: %s | BLvl: %d | Job: %s (Lvl: %d) | HP: %d/%d | SP: %d/%d", pl_sd->status.name, pl_sd->status.base_level, job_name(pl_sd->status.class), pl_sd->status.job_level, pl_sd->status.hp, pl_sd->status.max_hp, pl_sd->status.sp, pl_sd->status.max_sp);
+ clif_displaymessage(fd, output);
+ sprintf(output, "STR: %d | AGI: %d | VIT: %d | INT: %d | DEX: %d | LUK: %d | Zeny: %d %s", pl_sd->status.str, pl_sd->status.agi, pl_sd->status.vit, pl_sd->status.int_, pl_sd->status.dex, pl_sd->status.luk, pl_sd->status.zeny, gmlevel);
+ clif_displaymessage(fd, output);
+ clif_displaymessage(fd, "--------");
+ count++;
+ }
+ }
+
+ if (count == 0)
+ clif_displaymessage(fd, msg_table[28]); // No player found.
+ 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);
+ }
+
+ return 0;
+}
diff --git a/src/map/charcommand.h b/src/map/charcommand.h index 65efb8b96..fb9345a44 100644 --- a/src/map/charcommand.h +++ b/src/map/charcommand.h @@ -8,6 +8,8 @@ enum CharCommandType { CharCommandPetFriendly,
CharCommandStats,
CharCommandOption,
+ CharCommandSave,
+ CharCommandStatsAll,
#ifdef TXT_ONLY
/* TXT_ONLY */
|