diff options
author | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-01-25 05:38:02 +0100 |
---|---|---|
committer | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-02-02 02:30:01 +0100 |
commit | 07f30b83a3cadb1cfac99a34accbdf86f6594cd6 (patch) | |
tree | a8ace39fe51126c07884393213bdbb0149244493 /src | |
parent | c03722679a01e5f181c2138565e95a6b0981a124 (diff) | |
download | hercules-07f30b83a3cadb1cfac99a34accbdf86f6594cd6.tar.gz hercules-07f30b83a3cadb1cfac99a34accbdf86f6594cd6.tar.bz2 hercules-07f30b83a3cadb1cfac99a34accbdf86f6594cd6.tar.xz hercules-07f30b83a3cadb1cfac99a34accbdf86f6594cd6.zip |
Updated PR_STRECOVERY to only cure status effects if target's defence element is not Undead.
Diffstat (limited to 'src')
-rw-r--r-- | src/map/skill.c | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index 4579b2ea7..783dbc268 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -7310,14 +7310,18 @@ static int skill_castend_nodamage_id(struct block_list *src, struct block_list * clif->skill_nodamage(src,bl,skill_id,skill_lv,0); break; } - if (tsc && tsc->opt1) { - status_change_end(bl, SC_FREEZE, INVALID_TIMER); - status_change_end(bl, SC_STONE, INVALID_TIMER); - status_change_end(bl, SC_SLEEP, INVALID_TIMER); - status_change_end(bl, SC_STUN, INVALID_TIMER); - status_change_end(bl, SC_WHITEIMPRISON, INVALID_TIMER); + + if (!battle->check_undead(tstatus->race, tstatus->def_ele)) { + if (tsc != NULL && tsc->opt1 != 0) { + status_change_end(bl, SC_FREEZE, INVALID_TIMER); + status_change_end(bl, SC_STONE, INVALID_TIMER); + status_change_end(bl, SC_SLEEP, INVALID_TIMER); + status_change_end(bl, SC_STUN, INVALID_TIMER); + status_change_end(bl, SC_WHITEIMPRISON, INVALID_TIMER); + } + + status_change_end(bl, SC_NETHERWORLD, INVALID_TIMER); } - status_change_end(bl, SC_NETHERWORLD, INVALID_TIMER); //Is this equation really right? It looks so... special. if( battle->check_undead(tstatus->race,tstatus->def_ele) ) { status->change_start(src, bl, SC_BLIND, |