- Made regen work always, like Hp/Sp Loss, it no longer displays healing numbers as well.
git-svn-id: https://svn.code.sf.net/p/rathena/svn/trunk@11118 54d463be-8e91-2dee-dedb-b68131a5f0ec
This commit is contained in:
parent
2084299342
commit
1f1dbd4927
@ -6886,11 +6886,11 @@ void pc_bleeding (struct map_session_data *sd, unsigned int diff_tick)
|
||||
//Character regen. Flag is used to know which types of regen can take place.
|
||||
//&1: HP regen
|
||||
//&2: SP regen
|
||||
void pc_regen (struct map_session_data *sd, unsigned int diff_tick, int flag)
|
||||
void pc_regen (struct map_session_data *sd, unsigned int diff_tick)
|
||||
{
|
||||
int hp = 0, sp = 0;
|
||||
|
||||
if (sd->hp_regen.value && flag&1) {
|
||||
if (sd->hp_regen.value) {
|
||||
sd->hp_regen.tick += diff_tick;
|
||||
while (sd->hp_regen.tick >= sd->hp_regen.rate) {
|
||||
hp += sd->hp_regen.value;
|
||||
@ -6898,7 +6898,7 @@ void pc_regen (struct map_session_data *sd, unsigned int diff_tick, int flag)
|
||||
}
|
||||
}
|
||||
|
||||
if (sd->sp_regen.value && flag&2) {
|
||||
if (sd->sp_regen.value) {
|
||||
sd->sp_regen.tick += diff_tick;
|
||||
while (sd->sp_regen.tick >= sd->sp_regen.rate) {
|
||||
sp += sd->sp_regen.value;
|
||||
@ -6907,7 +6907,7 @@ void pc_regen (struct map_session_data *sd, unsigned int diff_tick, int flag)
|
||||
}
|
||||
|
||||
if (hp > 0 || sp > 0)
|
||||
status_heal(&sd->bl, hp, sp, 2);
|
||||
status_heal(&sd->bl, hp, sp, 0);
|
||||
|
||||
return;
|
||||
}
|
||||
|
@ -264,7 +264,7 @@ struct map_session_data *pc_get_mother(struct map_session_data *sd);
|
||||
struct map_session_data *pc_get_child(struct map_session_data *sd);
|
||||
|
||||
void pc_bleeding (struct map_session_data *sd, unsigned int diff_tick);
|
||||
void pc_regen (struct map_session_data *sd, unsigned int diff_tick, int flag);
|
||||
void pc_regen (struct map_session_data *sd, unsigned int diff_tick);
|
||||
|
||||
int pc_set_gm_level(int account_id, int level);
|
||||
void pc_setstand(struct map_session_data *sd);
|
||||
|
@ -7133,8 +7133,12 @@ static int status_natural_heal(DBKey key,void * data,va_list ap)
|
||||
))
|
||||
flag=0;
|
||||
|
||||
if (sd && (sd->hp_loss.value || sd->sp_loss.value))
|
||||
if (sd) {
|
||||
if (sd->hp_loss.value || sd->sp_loss.value)
|
||||
pc_bleeding(sd, natural_heal_diff_tick);
|
||||
if (sd->hp_regen.value || sd->sp_regen.value)
|
||||
pc_regen(sd, natural_heal_diff_tick);
|
||||
}
|
||||
|
||||
if(flag&(RGN_SHP|RGN_SSP) && regen->ssregen &&
|
||||
(vd = status_get_viewdata(bl)) && vd->dead_sit == 2)
|
||||
@ -7237,10 +7241,6 @@ static int status_natural_heal(DBKey key,void * data,va_list ap)
|
||||
}
|
||||
}
|
||||
|
||||
//Bonus skill-like regen
|
||||
if (sd && (sd->hp_regen.value || sd->sp_regen.value))
|
||||
pc_regen(sd, natural_heal_diff_tick, (flag&RGN_SHP?1:0)|(flag&RGN_SSP?2:0));
|
||||
|
||||
if (!regen->sregen)
|
||||
return flag;
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user