diff options
Diffstat (limited to 'src/map/unit.c')
-rw-r--r-- | src/map/unit.c | 26 |
1 files changed, 15 insertions, 11 deletions
diff --git a/src/map/unit.c b/src/map/unit.c index d3738393e..b1612f986 100644 --- a/src/map/unit.c +++ b/src/map/unit.c @@ -946,35 +946,39 @@ int unit_skilluse_id2(struct block_list *src, int target_id, int skill_num, int switch(skill_num){ case ALL_RESURRECTION: - if(battle_check_undead(tstatus->race,tstatus->def_ele)){ - temp=1; + if(battle_check_undead(tstatus->race,tstatus->def_ele)) { + temp = 1; casttime = skill_castfix(src, PR_TURNUNDEAD, skill_lv); } else if (!status_isdead(target)) return 0; //Can't cast on non-dead characters. - break; + break; case MO_FINGEROFFENSIVE: if(sd) casttime += casttime * ((skill_lv > sd->spiritball)? sd->spiritball:skill_lv); - break; + break; case MO_EXTREMITYFIST: if (sc && sc->data[SC_COMBO].timer != -1 && - (sc->data[SC_COMBO].val1 == MO_COMBOFINISH || + (sc->data[SC_COMBO].val1 == MO_COMBOFINISH || sc->data[SC_COMBO].val1 == CH_TIGERFIST || sc->data[SC_COMBO].val1 == CH_CHAINCRUSH)) casttime = 0; temp = 1; - break; + break; + case SA_SPELLBREAKER: + temp = 1; + break; + case ST_CHASEWALK: + if (sc && sc->data[ST_CHASEWALK].timer != -1) + casttime = 0; + break; case TK_RUN: if (sc && sc->data[SC_RUN].timer != -1) casttime = 0; - break; - case SA_SPELLBREAKER: - temp =1; - break; + break; case KN_CHARGEATK: //Taken from jA: Casttime is increased by dist/3*100% casttime+= casttime * (distance_bl(src,target)-1)/3; - break; + break; } if (!(skill_get_castnodex(skill_num, skill_lv)&2)) |