From 0c3055fdbf06b7ca736edaa63e9a414081cd847b Mon Sep 17 00:00:00 2001 From: skotlex Date: Tue, 28 Mar 2006 21:23:27 +0000 Subject: - Fixed (?) the Family recall warp skills. - Fixed pc_percentheal giving life when the rates are negative. - Fixed resetting stats losing the +52 bonus on high classes. git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@5793 54d463be-8e91-2dee-dedb-b68131a5f0ec --- Changelog-Trunk.txt | 3 +++ src/map/pc.c | 11 ++++++----- src/map/skill.c | 4 ++-- 3 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Changelog-Trunk.txt b/Changelog-Trunk.txt index b6065178d..500cd091c 100644 --- a/Changelog-Trunk.txt +++ b/Changelog-Trunk.txt @@ -4,6 +4,9 @@ AS OF SVN REV. 5091, WE ARE NOW USING TRUNK. ALL UNTESTED BUGFIXES/FEATURES GO IF YOU HAVE A WORKING AND TESTED BUGFIX PUT IT INTO STABLE AS WELL AS TRUNK. 2006/03/28 + * Fixed the Family recall warp skills. [Skotlex] + * Fixed pc_percentheal giving life when the rates are negative. [Skotlex] + * Fixed resetting stats losing the +52 bonus on high classes. [Skotlex] * Fixed Wedding support skills healing yourself instead of partner. [Skotlex] * Added a check to prevent knocking back the Emperium at all costs. diff --git a/src/map/pc.c b/src/map/pc.c index d2eee308d..57f4b8d50 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -4430,7 +4430,8 @@ int pc_resetstate(struct map_session_data* sd) int stat; stat = statp[sd->status.base_level]; if (sd->class_&JOBL_UPPER) - sd->status.status_point+=52; // extra 52+48=100 stat points + stat+=52; // extra 52+48=100 stat points + if (stat > USHRT_MAX) sd->status.status_point = USHRT_MAX; else @@ -5374,11 +5375,11 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp) } else { //hp < 0 hp = sd->status.max_hp*hp/100; - if (sd->status.hp <= hp) { + if (sd->status.hp <= -hp) { sd->status.hp = 0; pc_damage(NULL,sd,1); } else - sd->status.hp -= hp; + sd->status.hp += hp; } } if(sp) { @@ -5394,10 +5395,10 @@ int pc_percentheal(struct map_session_data *sd,int hp,int sp) sd->status.sp += sp; } else { //sp < 0 sp = sd->status.max_sp*sp/100; - if (sd->status.sp <= sp) + if (sd->status.sp <= -sp) sd->status.sp = 0; else - sd->status.sp -= sp; + sd->status.sp += sp; } } if(hp) diff --git a/src/map/skill.c b/src/map/skill.c index 25deef213..aa93b5d1b 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7276,10 +7276,10 @@ int skill_unit_onlimit(struct skill_unit *src,unsigned int tick) case UNT_CALLFAMILY: /* ‚ ‚È‚½‚É?‚¢‚½‚¢ */ { struct map_session_data *sd = NULL; - if(src->val1 && (sd = map_charid2sd(src->val1)) + if(sg->val1 && (sd = map_charid2sd(sg->val1)) && !map[sd->bl.m].flag.nowarp) pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3); - if(src->val2 && (sd = map_charid2sd(src->val2)) + if(sg->val2 && (sd = map_charid2sd(sg->val2)) && !map[sd->bl.m].flag.nowarp) pc_setpos(sd,map[src->bl.m].index,src->bl.x,src->bl.y,3); } -- cgit v1.2.3-70-g09d2