git-svn-id: https://svn.code.sf.net/p/rathena/svn/athena@355 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
636123d3cf
commit
1102e9d06b
@ -1,5 +1,7 @@
|
|||||||
Date Added
|
Date Added
|
||||||
11/24
|
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]
|
* 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]
|
* Fixed char-txt crashing when closing, Codemaster free()'s. [MC Cameri]
|
||||||
* Skill Updates: - Updated guild skills (60%) [celest]
|
* Skill Updates: - Updated guild skills (60%) [celest]
|
||||||
|
@ -2,7 +2,7 @@
|
|||||||
// Translated by Peter Kieser <pfak@telus.net>
|
// Translated by Peter Kieser <pfak@telus.net>
|
||||||
|
|
||||||
// Set here the symbol that you want to use for your commands
|
// 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)
|
// except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
|
||||||
// With default character, all commands begin by a '@': <example> @revive
|
// With default character, all commands begin by a '@': <example> @revive
|
||||||
command_symbol: @
|
command_symbol: @
|
||||||
@ -40,6 +40,8 @@ command_symbol: @
|
|||||||
// 0: normal player commands
|
// 0: normal player commands
|
||||||
|
|
||||||
// Give server time. (6 same commands)
|
// Give server time. (6 same commands)
|
||||||
|
uptime: 0
|
||||||
|
changesex: 0
|
||||||
time: 0
|
time: 0
|
||||||
date: 0
|
date: 0
|
||||||
server_date: 0
|
server_date: 0
|
||||||
@ -119,9 +121,6 @@ mountpeco: 20
|
|||||||
who: 20
|
who: 20
|
||||||
whois: 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.
|
// Returns list of logged in characters with their job.
|
||||||
who2: 20
|
who2: 20
|
||||||
|
|
||||||
@ -172,12 +171,6 @@ kamib: 40
|
|||||||
// Enables you to go to a certain map, at (x,y) coordinates. (@mapmove + /mm or /mapmove)
|
// Enables you to go to a certain map, at (x,y) coordinates. (@mapmove + /mm or /mapmove)
|
||||||
mapmove: 40
|
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).
|
// Enables GVG on a map (2 same commands).
|
||||||
gvgon: 40
|
gvgon: 40
|
||||||
gpvpon: 40
|
gpvpon: 40
|
||||||
@ -294,9 +287,6 @@ useskill: 40
|
|||||||
// make another player killable
|
// make another player killable
|
||||||
charkillable: 40
|
charkillable: 40
|
||||||
|
|
||||||
// makes everyone on server do a random emote
|
|
||||||
happyhappyjoyjoy:40
|
|
||||||
|
|
||||||
//---------------------
|
//---------------------
|
||||||
// 50: Sub-GM+ commands
|
// 50: Sub-GM+ commands
|
||||||
|
|
||||||
@ -313,19 +303,12 @@ spawn: 50
|
|||||||
monster: 50
|
monster: 50
|
||||||
summon: 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.
|
// Spawns a monster with parameters not in same order of @spawn.
|
||||||
monster2: 50
|
monster2: 50
|
||||||
|
|
||||||
// To get a peco to (un)ride for another player.
|
// To get a peco to (un)ride for another player.
|
||||||
charmountpeco: 50
|
charmountpeco: 50
|
||||||
|
|
||||||
// Enables to give possibility to a player to rename his/her pet.
|
|
||||||
charpetrename: 50
|
|
||||||
|
|
||||||
|
|
||||||
//----------------
|
//----------------
|
||||||
// 60: GM commands
|
// 60: GM commands
|
||||||
@ -361,12 +344,6 @@ chardelitem: 60
|
|||||||
// Sets another persons job level.
|
// Sets another persons job level.
|
||||||
charjlvl: 60
|
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
|
// Gives another character status points
|
||||||
charstpoint: 60
|
charstpoint: 60
|
||||||
|
@ -1,14 +1,18 @@
|
|||||||
// Athena charcommand Configuration file.
|
// 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
|
// 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 '#'). You can set any character,
|
||||||
// except control-character (0x00-0x1f), '%' (party chat speaking) and '/' (standard ragnarok GM commands)
|
// 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: #
|
command_symbol: #
|
||||||
|
|
||||||
job: 60
|
job: 60
|
||||||
jobchange: 60
|
jobchange: 60
|
||||||
petrename: 50
|
petrename: 50
|
||||||
petfriendly: 50
|
petfriendly: 50
|
||||||
stats: 40
|
stats: 40
|
||||||
|
option: 60
|
||||||
|
save: 60
|
||||||
|
statsall: 40
|
@ -107,9 +107,7 @@ ATCOMMAND_FUNC(petrename);
|
|||||||
ATCOMMAND_FUNC(recall);
|
ATCOMMAND_FUNC(recall);
|
||||||
ATCOMMAND_FUNC(recallall);
|
ATCOMMAND_FUNC(recallall);
|
||||||
ATCOMMAND_FUNC(revive);
|
ATCOMMAND_FUNC(revive);
|
||||||
ATCOMMAND_FUNC(character_stats);
|
|
||||||
ATCOMMAND_FUNC(character_stats_all);
|
ATCOMMAND_FUNC(character_stats_all);
|
||||||
ATCOMMAND_FUNC(character_option);
|
|
||||||
ATCOMMAND_FUNC(character_save);
|
ATCOMMAND_FUNC(character_save);
|
||||||
ATCOMMAND_FUNC(night);
|
ATCOMMAND_FUNC(night);
|
||||||
ATCOMMAND_FUNC(day);
|
ATCOMMAND_FUNC(day);
|
||||||
@ -326,8 +324,6 @@ static AtCommandInfo atcommand_info[] = {
|
|||||||
{ AtCommand_PetRename, "@petrename", 1, atcommand_petrename },
|
{ AtCommand_PetRename, "@petrename", 1, atcommand_petrename },
|
||||||
{ AtCommand_Recall, "@recall", 60, atcommand_recall }, // + /recall
|
{ AtCommand_Recall, "@recall", 60, atcommand_recall }, // + /recall
|
||||||
{ AtCommand_Revive, "@revive", 60, atcommand_revive },
|
{ 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_Night, "@night", 80, atcommand_night },
|
||||||
{ AtCommand_Day, "@day", 80, atcommand_day },
|
{ AtCommand_Day, "@day", 80, atcommand_day },
|
||||||
{ AtCommand_Doom, "@doom", 80, atcommand_doom },
|
{ AtCommand_Doom, "@doom", 80, atcommand_doom },
|
||||||
@ -4055,51 +4051,6 @@ int atcommand_revive(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==========================================
|
|
||||||
*
|
|
||||||
*------------------------------------------
|
|
||||||
*/
|
|
||||||
//** 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>)
|
* charchangesex command (usage: charchangesex <player_name>)
|
||||||
*------------------------------------------
|
*------------------------------------------
|
||||||
@ -4320,57 +4271,6 @@ int atcommand_char_unban(
|
|||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
/*==========================================
|
|
||||||
*
|
|
||||||
*------------------------------------------
|
|
||||||
*/
|
|
||||||
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;
|
|
||||||
}
|
|
||||||
|
|
||||||
/*==========================================
|
/*==========================================
|
||||||
*
|
*
|
||||||
*------------------------------------------
|
*------------------------------------------
|
||||||
|
@ -85,7 +85,7 @@ enum AtCommandType {
|
|||||||
AtCommand_CharacterStats,
|
AtCommand_CharacterStats,
|
||||||
AtCommand_CharacterStatsAll,
|
AtCommand_CharacterStatsAll,
|
||||||
// AtCommand_CharacterOption, // Now #option
|
// AtCommand_CharacterOption, // Now #option
|
||||||
AtCommand_CharacterSave,
|
// AtCommand_CharacterSave, // Now #save
|
||||||
AtCommand_CharacterLoad,
|
AtCommand_CharacterLoad,
|
||||||
AtCommand_Night,
|
AtCommand_Night,
|
||||||
AtCommand_Day,
|
AtCommand_Day,
|
||||||
|
@ -39,6 +39,8 @@ CCMD_FUNC(petrename);
|
|||||||
CCMD_FUNC(petfriendly);
|
CCMD_FUNC(petfriendly);
|
||||||
CCMD_FUNC(stats);
|
CCMD_FUNC(stats);
|
||||||
CCMD_FUNC(option);
|
CCMD_FUNC(option);
|
||||||
|
CCMD_FUNC(save);
|
||||||
|
CCMD_FUNC(stats_all);
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
@ -64,6 +66,8 @@ static CharCommandInfo charcommand_info[] = {
|
|||||||
{ CharCommandPetFriendly, "#petfriendly", 50, charcommand_petfriendly },
|
{ CharCommandPetFriendly, "#petfriendly", 50, charcommand_petfriendly },
|
||||||
{ CharCommandStats, "#stats", 40, charcommand_stats },
|
{ CharCommandStats, "#stats", 40, charcommand_stats },
|
||||||
{ CharCommandOption, "#option", 60, charcommand_option },
|
{ CharCommandOption, "#option", 60, charcommand_option },
|
||||||
|
{ CharCommandSave, "#save", 60, charcommand_save },
|
||||||
|
{ CharCommandStatsAll, "#statsall", 40, charcommand_stats_all },
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
@ -560,3 +564,99 @@ int charcommand_option(
|
|||||||
|
|
||||||
return 0;
|
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;
|
||||||
|
}
|
||||||
|
@ -8,6 +8,8 @@ enum CharCommandType {
|
|||||||
CharCommandPetFriendly,
|
CharCommandPetFriendly,
|
||||||
CharCommandStats,
|
CharCommandStats,
|
||||||
CharCommandOption,
|
CharCommandOption,
|
||||||
|
CharCommandSave,
|
||||||
|
CharCommandStatsAll,
|
||||||
|
|
||||||
#ifdef TXT_ONLY
|
#ifdef TXT_ONLY
|
||||||
/* TXT_ONLY */
|
/* TXT_ONLY */
|
||||||
|
Loading…
x
Reference in New Issue
Block a user