diff options
Diffstat (limited to 'src/map')
-rw-r--r-- | src/map/skill.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index de0f9518b..27ad7d4c2 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7887,8 +7887,12 @@ int skill_check_condition (struct map_session_data *sd, int skill, int lv, int t itemid[i] = skill_db[j].itemid[i]; amount[i] = skill_db[j].amount[i]; } - if(mhp > 0) - hp += (status->max_hp * mhp)/100; + if(mhp > 0 && 100 * status->hp / status->max_hp > mhp) { + //mhp is the max-hp-requirement, that is, + //you must have this % or less of HP to cast it. + clif_skill_fail(sd,skill,2,0); + return 0; + } if(hp_rate > 0) hp += (status->hp * hp_rate)/100; else |