diff options
author | Michieru <Michieru@users.noreply.github.com> | 2014-09-13 11:27:51 +0200 |
---|---|---|
committer | Michieru <Michieru@users.noreply.github.com> | 2014-09-13 11:27:51 +0200 |
commit | 45d77eed7a16245b38fe46eb9d71074d33106946 (patch) | |
tree | 2d3612f73ccfb6ed38abdf4077385c16cb64f5af /src/map/status.c | |
parent | 3a5467ccd69878b3303d0de38d918bd25d232c76 (diff) | |
download | hercules-45d77eed7a16245b38fe46eb9d71074d33106946.tar.gz hercules-45d77eed7a16245b38fe46eb9d71074d33106946.tar.bz2 hercules-45d77eed7a16245b38fe46eb9d71074d33106946.tar.xz hercules-45d77eed7a16245b38fe46eb9d71074d33106946.zip |
Update formula of Vulcan Arm, Flame Laucher and Cold Slower.
Add Hesperuslit formula effect.
Banding now count the caster.
Fix a bug with Lex Aeterna that not double the damage of Acid Demo. (bug:8098)
Update to official formula Reproduce skill.
Fix Mind Breaker Matk. (bug:8328)
Fix a map crash with Gentle Touch change. (bug:8326)
Special Thanks to Ind
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 10 |
1 files changed, 5 insertions, 5 deletions
diff --git a/src/map/status.c b/src/map/status.c index ac89f2a07..23184f46e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -4584,7 +4584,7 @@ unsigned short status_calc_watk(struct block_list *bl, struct status_change *sc, watk += sc->data[SC_SHIELDSPELL_DEF]->val2; if(sc->data[SC_INSPIRATION]) watk += sc->data[SC_INSPIRATION]->val2; - if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 0 ) + if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 1 ) watk += (10 + 10 * sc->data[SC_BANDING]->val1) * (sc->data[SC_BANDING]->val2); if( sc->data[SC_TROPIC_OPTION] ) watk += sc->data[SC_TROPIC_OPTION]->val2; @@ -4677,8 +4677,6 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, if( !viewable ){ /* some statuses that are hidden in the status window */ - if (sc->data[SC_MINDBREAKER]) - matk += matk * sc->data[SC_MINDBREAKER]->val2/100; return (unsigned short)cap_value(matk,0,USHRT_MAX); } @@ -4703,6 +4701,8 @@ unsigned short status_calc_matk(struct block_list *bl, struct status_change *sc, if (sc->data[SC_IZAYOI]) matk += 25 * sc->data[SC_IZAYOI]->val1; #endif + if (sc->data[SC_MINDBREAKER]) + matk += matk * sc->data[SC_MINDBREAKER]->val2/100; if( sc->data[SC_ZANGETSU] ) matk += sc->data[SC_ZANGETSU]->val3; if (sc->data[SC_MAGICPOWER] && sc->data[SC_MAGICPOWER]->val4) @@ -5040,7 +5040,7 @@ signed short status_calc_def2(struct block_list *bl, struct status_change *sc, i return 0; if(sc->data[SC_SUN_COMFORT]) def2 += sc->data[SC_SUN_COMFORT]->val2; - if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 0 ) + if( sc->data[SC_BANDING] && sc->data[SC_BANDING]->val2 > 1 ) def2 += (5 + sc->data[SC_BANDING]->val1) * (sc->data[SC_BANDING]->val2); if(sc->data[SC_ANGELUS]) #ifdef RENEWAL //in renewal only the VIT stat bonus is boosted by angelus @@ -8749,7 +8749,7 @@ int status_change_start(struct block_list *src, struct block_list *bl, enum sc_t struct block_list * src2; val3 = st->agi * val1 / 60; // ASPD increase: [(Target AGI x Skill Level) / 60] % if( (src2 = map->id2bl(val2)) ){ - val4 = ( 200/status_get_int(src2) ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level] + val4 = ( 200/status_get_int(src2)?status_get_int(src2):1 ) * val1;// MDEF decrease: MDEF [(200 / Caster INT) x Skill Level] val2 = ( status_get_dex(src2)/4 + status_get_str(src2)/2 ) * val1 / 5; // ATK increase: ATK [{(Caster DEX / 4) + (Caster STR / 2)} x Skill Level / 5] } } |