summaryrefslogtreecommitdiff
path: root/src/map/status.c
diff options
context:
space:
mode:
authorMichieru <Michieru@users.noreply.github.com>2014-09-13 11:27:51 +0200
committerMichieru <Michieru@users.noreply.github.com>2014-09-13 11:27:51 +0200
commit45d77eed7a16245b38fe46eb9d71074d33106946 (patch)
tree2d3612f73ccfb6ed38abdf4077385c16cb64f5af /src/map/status.c
parent3a5467ccd69878b3303d0de38d918bd25d232c76 (diff)
downloadhercules-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.c10
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]
}
}