diff options
author | csnv <ctt@csnv.es> | 2014-10-30 21:08:05 +0100 |
---|---|---|
committer | csnv <ctt@csnv.es> | 2014-10-30 21:08:05 +0100 |
commit | ee2da178693e3c90af8d244085375debbb821b51 (patch) | |
tree | 6d80bd7be181e4ff919a60d0c595a96a329db557 /src/map/status.c | |
parent | 72e18cdf9b612c476dd9ab2d45394c5e882e7dd1 (diff) | |
download | hercules-ee2da178693e3c90af8d244085375debbb821b51.tar.gz hercules-ee2da178693e3c90af8d244085375debbb821b51.tar.bz2 hercules-ee2da178693e3c90af8d244085375debbb821b51.tar.xz hercules-ee2da178693e3c90af8d244085375debbb821b51.zip |
Fixed ALL_RESURRECTION to not inflict damage on hidden undead type players
- Fixed bug report 8407: http://hercules.ws/board/tracker/issue-8407-resurrection-skill-cant-be-dodged-by-hide/
- Refactorized code
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 7 |
1 files changed, 3 insertions, 4 deletions
diff --git a/src/map/status.c b/src/map/status.c index 6c1be1029..addf290ac 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -1798,9 +1798,9 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin //If targeting, cloak+hide protect you, otherwise only hiding does. hide_flag = flag?OPTION_HIDE:(OPTION_HIDE|OPTION_CLOAK|OPTION_CHASEWALK); - // There is no NF for ground skills, but every earth type skill out there - // affects hidding except Stone Curse - if( skill->get_ele(skill_id,1) == ELE_EARTH && skill_id != MG_STONECURSE) + // Applies even if the target hides + if ((skill->get_ele(skill_id,1) == ELE_EARTH && skill_id != MG_STONECURSE) // Ground type + || (flag&1 && skill->get_nk(skill_id)&NK_NO_DAMAGE && skill_id != ALL_RESURRECTION)) // Buff/debuff skills started before hiding hide_flag &= ~OPTION_HIDE; switch( target->type ) { @@ -1812,7 +1812,6 @@ int status_check_skilluse(struct block_list *src, struct block_list *target, uin return 0; if( tsc ) { if (tsc->option&hide_flag && !is_boss && - !(flag&1 && skill->get_nk(skill_id)&NK_NO_DAMAGE) && // Buff/debuff skills that started casting before hiding still applies ((sd->special_state.perfect_hiding || !is_detect) || (tsc->data[SC_CLOAKINGEXCEED] && is_detect))) return 0; |