diff options
author | mc_cameri <mc_cameri@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-12-21 22:44:37 +0000 |
---|---|---|
committer | mc_cameri <mc_cameri@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2004-12-21 22:44:37 +0000 |
commit | 98c2c3c621f32fdf36f23cfd09565f8af7753e7d (patch) | |
tree | 690421a25fb99ba752bcad32621efa2aed3830b1 /src/map/charcommand.c | |
parent | f58657930161cc0dc3f1f74d0c0ed99c6a0c8829 (diff) | |
download | hercules-98c2c3c621f32fdf36f23cfd09565f8af7753e7d.tar.gz hercules-98c2c3c621f32fdf36f23cfd09565f8af7753e7d.tar.bz2 hercules-98c2c3c621f32fdf36f23cfd09565f8af7753e7d.tar.xz hercules-98c2c3c621f32fdf36f23cfd09565f8af7753e7d.zip |
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/branches/stable@714 54d463be-8e91-2dee-dedb-b68131a5f0ec
Diffstat (limited to 'src/map/charcommand.c')
-rw-r--r-- | src/map/charcommand.c | 47 |
1 files changed, 47 insertions, 0 deletions
diff --git a/src/map/charcommand.c b/src/map/charcommand.c index 893266396..b5a3ba2f1 100644 --- a/src/map/charcommand.c +++ b/src/map/charcommand.c @@ -48,6 +48,7 @@ CCMD_FUNC(effect); CCMD_FUNC(storagelist); CCMD_FUNC(item); CCMD_FUNC(warp); +CCMD_FUNC(zeny); #ifdef TXT_ONLY /* TXT_ONLY */ @@ -84,6 +85,7 @@ static CharCommandInfo charcommand_info[] = { { CharCommandWarp, "#warp", 60, charcommand_warp }, { CharCommandWarp, "#rura", 60, charcommand_warp }, { CharCommandWarp, "#rura+", 60, charcommand_warp }, + { CharCommandZeny, "#zeny", 60, charcommand_zeny }, #ifdef TXT_ONLY /* TXT_ONLY */ @@ -1131,3 +1133,48 @@ int charcommand_warp( return 0; } + +/*========================================== + * #zeny <charname> + *------------------------------------------ + */ +int charcommand_zeny( + const int fd, struct map_session_data* sd, + const char* command, const char* message) +{ + struct map_session_data *pl_sd; + char character[100]; + int zeny = 0, new_zeny; + nullpo_retr(-1, sd); + + memset(character, '\0', sizeof(character)); + + if (!message || !*message || sscanf(message, "%d %99[^\n]", &zeny, character) < 2 || zeny == 0) { + clif_displaymessage(fd, "Please, enter a number and a player name (usage: #zeny <zeny> <name>)."); + return -1; + } + + if ((pl_sd = map_nick2sd(character)) != NULL) { + new_zeny = pl_sd->status.zeny + zeny; + if (zeny > 0 && (zeny > MAX_ZENY || new_zeny > MAX_ZENY)) // fix positiv overflow + new_zeny = MAX_ZENY; + else if (zeny < 0 && (zeny < -MAX_ZENY || new_zeny < 0)) // fix negativ overflow + new_zeny = 0; + if (new_zeny != pl_sd->status.zeny) { + pl_sd->status.zeny = new_zeny; + clif_updatestatus(pl_sd, SP_ZENY); + clif_displaymessage(fd, msg_table[211]); // Character's number of zenys changed! + } else { + if (zeny < 0) + clif_displaymessage(fd, msg_table[41]); // Impossible to decrease the number/value. + else + clif_displaymessage(fd, msg_table[149]); // Impossible to increase the number/value. + return -1; + } + } else { + clif_displaymessage(fd, msg_table[3]); // Character not found. + return -1; + } + + return 0; +} |