From 54f28419528e592b2d7628ce596fd49205be94d3 Mon Sep 17 00:00:00 2001 From: skotlex Date: Thu, 6 Apr 2006 13:49:29 +0000 Subject: - Modified @allstats to prevent negative/overflow issues. - Fixed HP/SP requirements for WE_MALE/WE_FEMALE - Fixed a typo in skill.h which fixes a compilation warning. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5925 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 2 ++ db/Changelog.txt | 2 ++ db/skill_require_db.txt | 4 ++-- src/map/atcommand.c | 14 ++++++++------ src/map/skill.h | 2 +- 5 files changed, 15 insertions(+), 9 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index 5d03b5d91..260aaf859 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -3,6 +3,8 @@ 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. +2006/04/06 + * Modified @allstats to prevent negative/overflow issues. [Skotlex] 2006/04/05 * Fixed undisguising not clearing the mob sprite for the disguised character. [Skotlex] diff --git a/db/Changelog.txt b/db/Changelog.txt index 6a0e2455c..59a549e16 100644 --- a/db/Changelog.txt +++ b/db/Changelog.txt @@ -27,6 +27,8 @@ ========================= +04/06 + * Fixed HP/SP requirements for WE_MALE/WE_FEMALE [Skotlex] 04/05 * Modified the item_db and added view_types to ammo: 1 arrows, 2 dagger (venom knife), 3 bullets, 4 shells, 5 grenades, 6 shurikens, 7 kunais. diff --git a/db/skill_require_db.txt b/db/skill_require_db.txt index 3ad4d6459..0030e86d0 100644 --- a/db/skill_require_db.txt +++ b/db/skill_require_db.txt @@ -255,8 +255,8 @@ 329,0,0,43:46:49:52:55:58:61:64:67:70,0,0,0,13:14,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //DC_FORTUNEKISS#幸運のキス# 330,0,0,40:45:50:55:60:65:70:75:80:85,0,0,0,13:14,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //DC_SERVICEFORYOU#サ?ビスフォ?ユ?# -334,0,0,1,10,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WE_MALE#君だけは護るよ# -335,0,0,1,0,10,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WE_FEMALE# なたに?くします# +334,0,0,1,-10,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WE_MALE#君だけは護るよ# +335,0,0,1,0,-10,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WE_FEMALE# なたに?くします# 336,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //WE_CALLPARTNER# なたに逢いたい# 337,0,0,1,0,0,0,99,0,0,none,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0 //ITM_TOMAHAWK## diff --git a/src/map/atcommand.c b/src/map/atcommand.c index 9cd75df42..089c88c3c 100644 --- a/src/map/atcommand.c +++ b/src/map/atcommand.c @@ -4205,7 +4205,7 @@ int atcommand_stat_all( const int fd, struct map_session_data* sd, const char* command, const char* message) { - int index, count, value = 0, new_value; + int index, count, value = 0, max, new_value; short* status[] = { &sd->status.str, &sd->status.agi, &sd->status.vit, &sd->status.int_, &sd->status.dex, &sd->status.luk @@ -4216,14 +4216,16 @@ int atcommand_stat_all( value = pc_maxparameter(sd); count = 0; + max = pc_maxparameter(sd); for (index = 0; index < (int)(sizeof(status) / sizeof(status[0])); index++) { - new_value = (int)*status[index] + value; - if (value > 0 && (value > pc_maxparameter(sd) || new_value > pc_maxparameter(sd))) // fix positiv overflow - new_value = pc_maxparameter(sd); - else if (value < 0 && (value < -(int)pc_maxparameter(sd) || new_value < 1)) // fix negative overflow + if (value > 0 && *status[index] > max - value) + new_value = max; + else if (value < 0 && *status[index] <= -value) new_value = 1; - + else + new_value = *status[index] +value; + if (new_value != (int)*status[index]) { *status[index] = new_value; clif_updatestatus(sd, SP_STR + index); diff --git a/src/map/skill.h b/src/map/skill.h index b34f413b6..f485e3394 100644 --- a/src/map/skill.h +++ b/src/map/skill.h @@ -165,7 +165,7 @@ int skill_get_unit_target( int id ); int skill_tree_get_max( int id, int b_class ); // Celest const char* skill_get_name( int id ); // [Skotlex] -void skill_isammoy_type(TBL_PC *sd, int skill); +int skill_isammotype(TBL_PC *sd, int skill); int skill_castend_id( int tid, unsigned int tick, int id,int data ); int skill_castend_pos( int tid, unsigned int tick, int id,int data ); int skill_castend_map( struct map_session_data *sd,int skill_num, const char *map); -- cgit v1.2.3-70-g09d2