diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/mercenary.c | 1 | ||||
-rw-r--r-- | src/map/skill.c | 2 | ||||
-rw-r--r-- | src/map/status.c | 9 |
3 files changed, 8 insertions, 4 deletions
diff --git a/src/map/mercenary.c b/src/map/mercenary.c index 2f5ed4d11..7cc58dc7d 100644 --- a/src/map/mercenary.c +++ b/src/map/mercenary.c @@ -330,6 +330,7 @@ int merc_hom_change_class(struct homun_data *hd, short class_) hd->homunculusDB = &homunculus_db[i];
hd->master->homunculus.class_ = class_;
status_set_viewdata(&hd->bl, class_);
+ merc_hom_calc_skilltree(hd->master);
return 1;
}
diff --git a/src/map/skill.c b/src/map/skill.c index ec464c961..e3fa451f0 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -5586,8 +5586,6 @@ int skill_castend_nodamage_id (struct block_list *src, struct block_list *bl, in case HLIF_CHANGE: //[orn] clif_skill_nodamage(src,bl,skillid,skilllv, sc_start(bl,type,100,skilllv,skill_get_time(skillid,skilllv))); - if (sd) - skill_blockpc_start(sd, skillid, skill_get_time2(skillid,skilllv)); if (hd) skill_blockmerc_start(hd, skillid, skill_get_time2(skillid,skilllv)); break; diff --git a/src/map/status.c b/src/map/status.c index ff770f624..7cd27b37a 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -5741,8 +5741,8 @@ int status_change_start(struct block_list *bl,int type,int rate,int val1,int val sc->data[type].val2 = 5*status->max_hp/100; status_heal(bl, status->max_hp, 0, 1); //Do not use percent_heal as this healing must override BERSERK's block. status_set_sp(bl, 0, 0); //Damage all SP - } else if (type==SC_CHANGE) //Heal all HP - status_percent_heal(bl, 100, 0); + } else if (type==SC_CHANGE) //Heal all HP/SP + status_percent_heal(bl, 100, 100); if (type==SC_RUN) { @@ -6092,6 +6092,11 @@ int status_change_end( struct block_list* bl , int type,int tid ) pc_setsavepoint(sd, sd->mapindex, bl->x, bl->y); } break; //guess hes not in jail :P + case SC_CHANGE: + // "lose almost all her HP and SP" + status_set_hp(bl, 10, 0); + status_set_sp(bl, 10, 0); + break; } opt_flag = 1; |