diff options
author | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-05-20 10:23:49 +0000 |
---|---|---|
committer | ultramage <ultramage@54d463be-8e91-2dee-dedb-b68131a5f0ec> | 2007-05-20 10:23:49 +0000 |
commit | b6ea55b755afff6cd8353896353272563498bfe2 (patch) | |
tree | a97cc0873d0bff74f1cbd890b007410fbae949bb /src/map/unit.c | |
parent | c9061fad42f586fae9d9e5598d0bb050f4e38f73 (diff) | |
download | hercules-b6ea55b755afff6cd8353896353272563498bfe2.tar.gz hercules-b6ea55b755afff6cd8353896353272563498bfe2.tar.bz2 hercules-b6ea55b755afff6cd8353896353272563498bfe2.tar.xz hercules-b6ea55b755afff6cd8353896353272563498bfe2.zip |
- Fixed Chase Walk having a deactivation cast time (should be instant)
- Changed status calc to allow value 0 stats; aegis allows negative values, but eA is unsigned in this regard, so ...
git-svn-id: https://rathena.svn.sourceforge.net/svnroot/rathena/trunk@10589 54d463be-8e91-2dee-dedb-b68131a5f0ec
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)) |