diff options
author | Michieru <Michieru@users.noreply.github.com> | 2014-09-14 00:14:56 +0200 |
---|---|---|
committer | Michieru <Michieru@users.noreply.github.com> | 2014-09-14 00:14:56 +0200 |
commit | b0a3424a2a1cebc7a7c8decb7e0486b95878df1f (patch) | |
tree | 6cebdf553af0cb8442634253c2a5dcbd8db18fc2 | |
parent | 28db0ae06be658eef0c65fa25efe6306876da93a (diff) | |
download | hercules-b0a3424a2a1cebc7a7c8decb7e0486b95878df1f.tar.gz hercules-b0a3424a2a1cebc7a7c8decb7e0486b95878df1f.tar.bz2 hercules-b0a3424a2a1cebc7a7c8decb7e0486b95878df1f.tar.xz hercules-b0a3424a2a1cebc7a7c8decb7e0486b95878df1f.zip |
This should finish to fix Status effect chance for renewal and pre-re(bug:8242)
Special Thanks to Playtester for all the information
-rw-r--r-- | src/map/status.c | 17 |
1 files changed, 7 insertions, 10 deletions
diff --git a/src/map/status.c b/src/map/status.c index bc817fbea..f7412380a 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -6378,9 +6378,7 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ case SC_STUN: sc_def = st->vit*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); -#ifdef RENEWAL tick_def2 = st->luk*10; -#endif break; case SC_POISON: case SC_DPOISON: @@ -6400,24 +6398,29 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ #ifdef RENEWAL sc_def = st->int_*100; sc_def2 = (st->vit + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10); - tick_def2 = st->luk * 10; #else sc_def = st->vit*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); #endif + tick_def2 = st->luk * 10; break; case SC_BLOODING: #ifdef RENEWAL sc_def = st->agi*100; - tick_def2 = st->luk*10; #else sc_def = st->vit*100; #endif sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); + tick_def2 = st->luk*10; break; case SC_SLEEP: +#ifdef RENEWAL + sc_def = st->agi*100; + sc_def2 = (st->int_ + st->luk) * 5 + SCDEF_LVL_DIFF(bl, src, 99, 10); +#else sc_def = st->int_*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(bl, src, 99, 10); +#endif tick_def2 = st->luk*10; break; case SC_DEEP_SLEEP: @@ -6431,7 +6434,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ sc_def = st->mdef*100; #ifndef RENEWAL sc_def2 = st->luk*10; - tick_def2 = 0; //No duration reduction #endif tick_def = 0; //No duration reduction break; @@ -6449,11 +6451,6 @@ int status_get_sc_def(struct block_list *src, struct block_list *bl, enum sc_typ // Special property: immunity when luk is zero if (st->luk == 0) return 0; -#ifndef RENEWAL - // Special property: immunity when luk is greater than level - if (st->luk > status->get_lv(bl)) - return 0; -#endif sc_def = st->luk*100; sc_def2 = st->luk*10 + SCDEF_LVL_DIFF(NULL, src, 99, 10); // Curse only has a level penalty and no resistance tick_def = st->vit*100; |