From 2d6cf0c06e355b0e697b5372a03e189d75893502 Mon Sep 17 00:00:00 2001 From: FlavioJS Date: Thu, 19 Feb 2009 16:57:01 +0000 Subject: * Fixed impropper filling of w4 in npc_parsesrcfile when there are less than 4 fields. (bugreport:1063) * Simplified atcommand_spiritball. (deprecated msg_txt 204 and 205) git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@13538 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ conf/msg_athena.conf | 4 ++-- src/map/atcommand.c | 27 ++++++++------------------- src/map/npc.c | 11 ++++++++--- 4 files changed, 21 insertions(+), 24 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 183a368ee..546895757 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,9 @@ Date Added AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO INTO TRUNK. IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. +2009/02/19 + * Fixed impropper filling of w4 in npc_parsesrcfile when there are less than 4 fields. (bugreport:1063) [FlavioJS] + * Simplified atcommand_spiritball. (deprecated msg_txt 204 and 205) 2009/02/06 * Follow up to r13485. (bugreport:2741) [FlavioJS] - @spiritball creates spiritballs without timer (limited to the array size instead of 500) diff --git a/conf/msg_athena.conf b/conf/msg_athena.conf index 820544020..3e2eb4567 100644 --- a/conf/msg_athena.conf +++ b/conf/msg_athena.conf @@ -217,8 +217,8 @@ 201: You don't have this quest skill. 202: This player has forgotten the skill. 203: This player doesn't have this quest skill. -204: WARNING: more than 1000 spiritballs can CRASH your server and/or client! -205: You already have that number of spiritballs. +//204: FREE +//205: FREE 206: '%s' skill points reset. 207: '%s' stats points reset. 208: '%s' skill and stat points have been reset. diff --git a/src/map/atcommand.c b/src/map/atcommand.c index e5cd1c9e5..7139c6935 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -3717,30 +3717,19 @@ int atcommand_spiritball(const int fd, struct map_session_data* sd, const char* int number; nullpo_retr(-1, sd); - if (!message || !*message || (number = atoi(message)) < 0 || number >= max_spiritballs) { + if( !message || !*message || (number = atoi(message)) < 0 || number > max_spiritballs ) + { char msg[256]; - safesnprintf(msg, sizeof(msg), "Please, enter a spirit ball number (usage: @spiritball ).", max_spiritballs); + safesnprintf(msg, sizeof(msg), "Usage: @spiritball ", max_spiritballs); clif_displaymessage(fd, msg); return -1; } - if (number >= 0 && number <= max_spiritballs) { - if (sd->spiritball != number) { - if (sd->spiritball > 0) - pc_delspiritball(sd, sd->spiritball, 1); - sd->spiritball = number; - clif_spiritball(sd); - // no message, player can look the difference - if (number > 1000) - clif_displaymessage(fd, msg_txt(204)); // WARNING: more than 1000 spiritballs can CRASH your server and/or client! - } else { - clif_displaymessage(fd, msg_txt(205)); // You already have this number of spiritballs. - return -1; - } - } else { - clif_displaymessage(fd, msg_txt(37)); // An invalid number was specified. - return -1; - } + if( sd->spiritball > 0 ) + pc_delspiritball(sd, sd->spiritball, 1); + sd->spiritball = number; + clif_spiritball(sd); + // no message, player can look the difference return 0; } diff --git a/src/map/npc.c b/src/map/npc.c index a95b490d9..1014cc832 100644 --- a/src/map/npc.c +++ b/src/map/npc.c @@ -2875,9 +2875,14 @@ void npc_parsesrcfile(const char* filepath) // fill w4 (to end of line) if( pos[1]-pos[8] > ARRAYLENGTH(w4)-1 ) ShowWarning("npc_parsesrcfile: w4 truncated, too much data (%d) in file '%s', line '%d'.\n", pos[1]-pos[8], filepath, strline(buffer,p-buffer)); - i = min(pos[1]-pos[8], ARRAYLENGTH(w4)-1); - memcpy(w4, p+pos[8], i*sizeof(char)); - w4[i] = '\0'; + if( pos[8] != -1 ) + { + i = min(pos[1]-pos[8], ARRAYLENGTH(w4)-1); + memcpy(w4, p+pos[8], i*sizeof(char)); + w4[i] = '\0'; + } + else + w4[0] = '\0'; if( count < 3 ) {// Unknown syntax -- cgit v1.2.3-70-g09d2