diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/skill.c | 4 | ||||
-rw-r--r-- | src/map/status.c | 1 | ||||
-rw-r--r-- | src/map/status.h | 1 |
3 files changed, 6 insertions, 0 deletions
diff --git a/src/map/skill.c b/src/map/skill.c index ee23704bb..396aae491 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -15726,6 +15726,8 @@ static int skill_castfix_sc(struct block_list *bl, int time) } if (sc->data[SC_POEMBRAGI]) time -= time * sc->data[SC_POEMBRAGI]->val2 / 100; + if (sc->data[SC_SKF_CAST] != NULL) + time -= time * sc->data[SC_SKF_CAST]->val1 / 100; if (sc->data[SC_IZAYOI]) time -= time * 50 / 100; } @@ -15827,6 +15829,8 @@ static int skill_vfcastfix(struct block_list *bl, double time, uint16 skill_id, } if (sc->data[SC_MYSTICSCROLL]) VARCAST_REDUCTION(sc->data[SC_MYSTICSCROLL]->val1); + if (sc->data[SC_SKF_CAST] != NULL) + VARCAST_REDUCTION(sc->data[SC_SKF_CAST]->val1); // Fixed cast reduction bonuses if( sc->data[SC__LAZINESS] ) diff --git a/src/map/status.c b/src/map/status.c index 167851e38..a55ad071e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -889,6 +889,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK; status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD; + status->dbs->ChangeFlagTable[SC_SKF_CAST] |= SCB_NONE; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; diff --git a/src/map/status.h b/src/map/status.h index f396d6fc0..d113735f4 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -859,6 +859,7 @@ typedef enum sc_type { SC_SKF_MATK, SC_SKF_ATK, SC_SKF_ASPD, + SC_SKF_CAST, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif |