diff options
author | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-03-09 20:57:22 +0100 |
---|---|---|
committer | Kenpachi Developer <Kenpachi.Developer@gmx.de> | 2020-03-14 19:49:18 +0100 |
commit | 2c26eec424e0d4f614c7ff73ad2c5402da669338 (patch) | |
tree | ae9ca9a3a3a7126b0c43eaaa1d2c934887ecab78 | |
parent | 61d10a7e2c8c12ed431d1e6bf66a7d8d176cd13f (diff) | |
download | hercules-2c26eec424e0d4f614c7ff73ad2c5402da669338.tar.gz hercules-2c26eec424e0d4f614c7ff73ad2c5402da669338.tar.bz2 hercules-2c26eec424e0d4f614c7ff73ad2c5402da669338.tar.xz hercules-2c26eec424e0d4f614c7ff73ad2c5402da669338.zip |
Add SC_SKF_CAST status change
-rw-r--r-- | db/constants.conf | 1 | ||||
-rw-r--r-- | db/sc_config.conf | 8 | ||||
-rw-r--r-- | src/map/skill.c | 4 | ||||
-rw-r--r-- | src/map/status.c | 1 | ||||
-rw-r--r-- | src/map/status.h | 1 |
5 files changed, 15 insertions, 0 deletions
diff --git a/db/constants.conf b/db/constants.conf index f26257660..1577523c8 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1422,6 +1422,7 @@ constants_db: { SC_SKF_MATK: 672 SC_SKF_ATK: 673 SC_SKF_ASPD: 674 + SC_SKF_CAST: 675 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index 6315d9cb2..ed8506aab 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3713,3 +3713,11 @@ SC_SKF_ASPD: { } Icon: "SI_SKF_ASPD" } +SC_SKF_CAST: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_CAST" +} 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 |