summaryrefslogtreecommitdiff
path: root/src/map/pc.c
diff options
context:
space:
mode:
Diffstat (limited to 'src/map/pc.c')
-rw-r--r--src/map/pc.c11
1 files changed, 6 insertions, 5 deletions
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)