diff options
author | csnv <ctt@csnv.es> | 2014-09-10 00:12:17 +0200 |
---|---|---|
committer | csnv <ctt@csnv.es> | 2014-09-10 00:12:17 +0200 |
commit | d19310af9540db177bb35116d19dd1c3a2afff14 (patch) | |
tree | e733376112c60f53286eeb4464eb24e7b69d6c4c /src/map/status.c | |
parent | e785879df0519ee69afcac34a1b49db1462d67fc (diff) | |
download | hercules-d19310af9540db177bb35116d19dd1c3a2afff14.tar.gz hercules-d19310af9540db177bb35116d19dd1c3a2afff14.tar.bz2 hercules-d19310af9540db177bb35116d19dd1c3a2afff14.tar.xz hercules-d19310af9540db177bb35116d19dd1c3a2afff14.zip |
Fixes songs refresh bug, updates BA_ASSASSINCROSS
- Fixes bug 7125: http://hercules.ws/board/tracker/issue-7125-song-refresh/ (Rathena fix)
- Updated BA_ASSASSINCROSS ASPD Renewal Formula according to latest tests
- Added 'Skill failed' message to Devotion
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 40 |
1 files changed, 21 insertions, 19 deletions
diff --git a/src/map/status.c b/src/map/status.c index 1748b44cb..020f405a6 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -5395,7 +5395,25 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, short fl skills1 = 5; } - if((sc->data[SC_BERSERK]) && skills1 < 15) + if( sc->data[SC_ASSNCROS] && skills1 < sc->data[SC_ASSNCROS]->val2){ + if (bl->type!=BL_PC) + skills1 = sc->data[SC_ASSNCROS]->val2; + else + switch(((TBL_PC*)bl)->status.weapon) + { + case W_BOW: + case W_REVOLVER: + case W_RIFLE: + case W_GATLING: + case W_SHOTGUN: + case W_GRENADE: + break; + default: + skills1 = sc->data[SC_ASSNCROS]->val2; + } + } + + if((sc->data[SC_BERSERK]) && skills1 < 15) skills1 = 15; else if(sc->data[SC_GS_MADNESSCANCEL] && skills1 < 20) skills1 = 20; @@ -5441,7 +5459,7 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, short fl if( sc->data[SC_PAIN_KILLER] ) skills2 -= sc->data[SC_PAIN_KILLER]->val2; - if( sc->data[SC_SWING] ) + if( sc->data[SC_SWING] ) // TODO: SC_SWING shouldn't stack with skill1 modifiers skills2 += sc->data[SC_SWING]->val3; if( sc->data[SC_DANCE_WITH_WUG] ) skills2 += sc->data[SC_DANCE_WITH_WUG]->val3; @@ -5457,23 +5475,7 @@ short status_calc_aspd(struct block_list *bl, struct status_change *sc, short fl skills2 += sc->data[SC_GS_GATLINGFEVER]->val1; if( sc->data[SC_STAR_COMFORT] ) skills2 += 3 * sc->data[SC_STAR_COMFORT]->val1; - if( sc->data[SC_ASSNCROS] && !skills1){ - if (bl->type!=BL_PC) - skills2 += sc->data[SC_ASSNCROS]->val2; - else - switch(((TBL_PC*)bl)->status.weapon) - { - case W_BOW: - case W_REVOLVER: - case W_RIFLE: - case W_GATLING: - case W_SHOTGUN: - case W_GRENADE: - break; - default: - skills2 += sc->data[SC_ASSNCROS]->val2; - } - } + return ( flag&1? (skills1 + pots) : skills2 ); #else return 0; |