From 52c5fd966f6382087b9ab96c0000c791aa184c3e Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Fri, 6 Mar 2020 22:11:45 +0100 Subject: Add SC_POPECOOKIE status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 17 +++++++++++++++++ src/map/status.h | 1 + 4 files changed, 27 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index 6f87b2d51..12fa6e059 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1417,6 +1417,7 @@ constants_db: { SC_RESIST_PROPERTY_WIND: 667 SC_CLIENT_ONLY_EQUIP_ARROW: 668 SC_MADOGEAR: 669 + SC_POPECOOKIE: 670 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index 2520fc595..acfc531f3 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3675,3 +3675,11 @@ SC_MADOGEAR: { } Icon: "SI_MADOGEAR" } +SC_POPECOOKIE: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_POPECOOKIE" +} diff --git a/src/map/status.c b/src/map/status.c index 1f0f31119..c379dff28 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -884,6 +884,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_PHI_DEMON] |= SCB_ALL; status->dbs->ChangeFlagTable[SC_MAGIC_CANDY] |= SCB_MATK | SCB_ALL; status->dbs->ChangeFlagTable[SC_MYSTICPOWDER] |= SCB_FLEE | SCB_LUK; + status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -3038,6 +3039,18 @@ static int status_calc_pc_(struct map_session_data *sd, enum e_status_calc_opt o sd->subele[ELE_EARTH] += i; sd->subele[ELE_FIRE] -= i; } + if (sc->data[SC_POPECOOKIE] != NULL) { + i = sc->data[SC_POPECOOKIE]->val3; + sd->subele[ELE_WATER] += i; + sd->subele[ELE_EARTH] += i; + sd->subele[ELE_FIRE] += i; + sd->subele[ELE_WIND] += i; + sd->subele[ELE_POISON] += i; + sd->subele[ELE_HOLY] += i; + sd->subele[ELE_DARK] += i; + sd->subele[ELE_GHOST] += i; + sd->subele[ELE_UNDEAD] += i; + } if (sc->data[SC_MTF_MLEATKED]) sd->subele[ELE_NEUTRAL] += sc->data[SC_MTF_MLEATKED]->val1; if (sc->data[SC_FIRE_INSIGNIA] && sc->data[SC_FIRE_INSIGNIA]->val1 == 3) @@ -4801,6 +4814,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int /* some statuses that are hidden in the status window */ if(sc->data[SC_PLUSATTACKPOWER]) batk += sc->data[SC_PLUSATTACKPOWER]->val1; + if (sc->data[SC_POPECOOKIE] != NULL) + batk += batk * sc->data[SC_POPECOOKIE]->val1 / 100; return cap_value(batk, battle_config.batk_min, battle_config.batk_max); } #ifndef RENEWAL @@ -5020,6 +5035,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int /* some statuses that are hidden in the status window */ if (sc->data[SC_MINDBREAKER]) matk += matk * sc->data[SC_MINDBREAKER]->val2 / 100; + if (sc->data[SC_POPECOOKIE] != NULL) + matk += matk * sc->data[SC_POPECOOKIE]->val2 / 100; return cap_value(matk, battle_config.matk_min, battle_config.matk_max); } diff --git a/src/map/status.h b/src/map/status.h index ada18bc0a..aaedc4cb4 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -854,6 +854,7 @@ typedef enum sc_type { SC_RESIST_PROPERTY_WIND, SC_CLIENT_ONLY_EQUIP_ARROW, SC_MADOGEAR, + SC_POPECOOKIE, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 7490bd522753bf4adcdb807c39dac9914dff37c7 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Fri, 6 Mar 2020 23:59:59 +0100 Subject: Add SC_VITALIZE_POTION status change --- db/constants.conf | 1 + db/sc_config.conf | 6 ++++++ src/map/pc.c | 4 ++++ src/map/skill.c | 2 ++ src/map/status.c | 5 +++++ src/map/status.h | 1 + 6 files changed, 19 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index 12fa6e059..c05f9c240 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1418,6 +1418,7 @@ constants_db: { SC_CLIENT_ONLY_EQUIP_ARROW: 668 SC_MADOGEAR: 669 SC_POPECOOKIE: 670 + SC_VITALIZE_POTION: 671 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index acfc531f3..dbddfd57d 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3683,3 +3683,9 @@ SC_POPECOOKIE: { } Icon: "SI_POPECOOKIE" } +SC_VITALIZE_POTION: { + Flags: { + NoDispelReset: true + } + Icon: "SI_VITALIZE_POTION" +} diff --git a/src/map/pc.c b/src/map/pc.c index c96e957c7..0cc7d7d70 100644 --- a/src/map/pc.c +++ b/src/map/pc.c @@ -8786,6 +8786,10 @@ static int pc_itemheal(struct map_session_data *sd, int itemid, int hp, int sp) // 2014 Halloween Event : Pumpkin Bonus if ( sd->sc.data[SC_MTF_PUMPKIN] && itemid == ITEMID_PUMPKIN ) hp += (int)(hp * sd->sc.data[SC_MTF_PUMPKIN]->val1/100); + + // Activation Potion + if (sd->sc.data[SC_VITALIZE_POTION] != NULL) + hp += hp * sd->sc.data[SC_VITALIZE_POTION]->val3 / 100; } if(sp) { bonus = 100 + (sd->battle_status.int_<<1) diff --git a/src/map/skill.c b/src/map/skill.c index a8dbefbd7..ee23704bb 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -935,6 +935,8 @@ static int skill_calc_heal(struct block_list *src, struct block_list *target, ui hp -= hp * 20/100; if(sc->data[SC_HEALPLUS] && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) hp += hp * sc->data[SC_HEALPLUS]->val1/100; // Only affects Heal, Sanctuary and PotionPitcher.(like bHealPower) [Inkfish] + if (sc->data[SC_VITALIZE_POTION] != NULL && skill_id != NPC_EVILLAND && skill_id != BA_APPLEIDUN) + hp += hp * sc->data[SC_VITALIZE_POTION]->val3 / 100; if(sc->data[SC_WATER_INSIGNIA] && sc->data[SC_WATER_INSIGNIA]->val1 == 2) hp += hp / 10; if (sc->data[SC_VITALITYACTIVATION]) diff --git a/src/map/status.c b/src/map/status.c index c379dff28..b0fef0b2e 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -885,6 +885,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_MAGIC_CANDY] |= SCB_MATK | SCB_ALL; status->dbs->ChangeFlagTable[SC_MYSTICPOWDER] |= SCB_FLEE | SCB_LUK; status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; + status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -4816,6 +4817,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int batk += sc->data[SC_PLUSATTACKPOWER]->val1; if (sc->data[SC_POPECOOKIE] != NULL) batk += batk * sc->data[SC_POPECOOKIE]->val1 / 100; + if (sc->data[SC_VITALIZE_POTION] != NULL) + batk += batk * sc->data[SC_VITALIZE_POTION]->val1 / 100; return cap_value(batk, battle_config.batk_min, battle_config.batk_max); } #ifndef RENEWAL @@ -5037,6 +5040,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += matk * sc->data[SC_MINDBREAKER]->val2 / 100; if (sc->data[SC_POPECOOKIE] != NULL) matk += matk * sc->data[SC_POPECOOKIE]->val2 / 100; + if (sc->data[SC_VITALIZE_POTION] != NULL) + matk += matk * sc->data[SC_VITALIZE_POTION]->val2 / 100; return cap_value(matk, battle_config.matk_min, battle_config.matk_max); } diff --git a/src/map/status.h b/src/map/status.h index aaedc4cb4..7a14f1961 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -855,6 +855,7 @@ typedef enum sc_type { SC_CLIENT_ONLY_EQUIP_ARROW, SC_MADOGEAR, SC_POPECOOKIE, + SC_VITALIZE_POTION, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 6bbe78a5518deb3a0bd8b8227066f8fdba7f6e0d Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 19:38:36 +0100 Subject: Add SC_SKF_MATK status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 3 +++ src/map/status.h | 1 + 4 files changed, 13 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index c05f9c240..399556732 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1419,6 +1419,7 @@ constants_db: { SC_MADOGEAR: 669 SC_POPECOOKIE: 670 SC_VITALIZE_POTION: 671 + SC_SKF_MATK: 672 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index dbddfd57d..ae472e53e 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3689,3 +3689,11 @@ SC_VITALIZE_POTION: { } Icon: "SI_VITALIZE_POTION" } +SC_SKF_MATK: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_MATK" +} diff --git a/src/map/status.c b/src/map/status.c index b0fef0b2e..aaf295222 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -886,6 +886,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_MYSTICPOWDER] |= SCB_FLEE | SCB_LUK; status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; + status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -5099,6 +5100,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += matk * sc->data[SC_2011RWC]->val2 / 100; if (sc->data[SC_MAGIC_CANDY]) matk += sc->data[SC_MAGIC_CANDY]->val1; + if (sc->data[SC_SKF_MATK] != NULL) + matk += sc->data[SC_SKF_MATK]->val1; return cap_value(matk, battle_config.matk_min, battle_config.matk_max); } diff --git a/src/map/status.h b/src/map/status.h index 7a14f1961..7266d6ec3 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -856,6 +856,7 @@ typedef enum sc_type { SC_MADOGEAR, SC_POPECOOKIE, SC_VITALIZE_POTION, + SC_SKF_MATK, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From b198861ca00993af846a2156ce41de2375510775 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 19:52:33 +0100 Subject: Add SC_SKF_ATK status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 3 +++ src/map/status.h | 1 + 4 files changed, 13 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index 399556732..b3ed813ad 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1420,6 +1420,7 @@ constants_db: { SC_POPECOOKIE: 670 SC_VITALIZE_POTION: 671 SC_SKF_MATK: 672 + SC_SKF_ATK: 673 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index ae472e53e..959744267 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3697,3 +3697,11 @@ SC_SKF_MATK: { } Icon: "SI_SKF_MATK" } +SC_SKF_ATK: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_ATK" +} diff --git a/src/map/status.c b/src/map/status.c index aaf295222..f6615b94d 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -887,6 +887,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_POPECOOKIE] |= SCB_BASE | SCB_BATK | SCB_MATK; status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; + status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -4899,6 +4900,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int batk += batk * sc->data[SC_2011RWC]->val2 / 100; if (sc->data[SC_STEAMPACK]) batk += sc->data[SC_STEAMPACK]->val1; + if (sc->data[SC_SKF_ATK] != NULL) + batk += sc->data[SC_SKF_ATK]->val1; if (sc->data[SC_SHRIMP]) batk += batk * sc->data[SC_SHRIMP]->val2 / 100; diff --git a/src/map/status.h b/src/map/status.h index 7266d6ec3..5f0d51b26 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -857,6 +857,7 @@ typedef enum sc_type { SC_POPECOOKIE, SC_VITALIZE_POTION, SC_SKF_MATK, + SC_SKF_ATK, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 61d10a7e2c8c12ed431d1e6bf66a7d8d176cd13f Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 20:28:24 +0100 Subject: Add SC_SKF_ASPD status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 5 +++++ src/map/status.h | 1 + 4 files changed, 15 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index b3ed813ad..f26257660 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1421,6 +1421,7 @@ constants_db: { SC_VITALIZE_POTION: 671 SC_SKF_MATK: 672 SC_SKF_ATK: 673 + SC_SKF_ASPD: 674 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index 959744267..6315d9cb2 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3705,3 +3705,11 @@ SC_SKF_ATK: { } Icon: "SI_SKF_ATK" } +SC_SKF_ASPD: { + Flags: { + NoDispelReset: true + NoClearanceReset: true + Buff: true + } + Icon: "SI_SKF_ASPD" +} diff --git a/src/map/status.c b/src/map/status.c index f6615b94d..167851e38 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -888,6 +888,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_VITALIZE_POTION] |= SCB_BATK | SCB_MATK; status->dbs->ChangeFlagTable[SC_SKF_MATK] |= SCB_MATK; status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK; + status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -5929,6 +5930,8 @@ static short status_calc_aspd(struct block_list *bl, struct status_change *sc, s bonus += sc->data[SC_BATTLESCROLL]->val1; if (sc->data[SC_STEAMPACK]) bonus += sc->data[SC_STEAMPACK]->val2; + if (sc->data[SC_SKF_ASPD] != NULL) + bonus += sc->data[SC_SKF_ASPD]->val1; } return (bonus + pots); @@ -6096,6 +6099,8 @@ static short status_calc_aspd_rate(struct block_list *bl, struct status_change * aspd_rate += sc->data[SC_BATTLESCROLL]->val1 * 10; if (sc->data[SC_STEAMPACK]) aspd_rate += sc->data[SC_STEAMPACK]->val2 * 10; + if (sc->data[SC_SKF_ASPD] != NULL) + aspd_rate -= sc->data[SC_SKF_ASPD]->val1 * 10; return (short)cap_value(aspd_rate,0,SHRT_MAX); } diff --git a/src/map/status.h b/src/map/status.h index 5f0d51b26..f396d6fc0 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -858,6 +858,7 @@ typedef enum sc_type { SC_VITALIZE_POTION, SC_SKF_MATK, SC_SKF_ATK, + SC_SKF_ASPD, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From 2c26eec424e0d4f614c7ff73ad2c5402da669338 Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 20:57:22 +0100 Subject: Add SC_SKF_CAST status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/skill.c | 4 ++++ src/map/status.c | 1 + src/map/status.h | 1 + 5 files changed, 15 insertions(+) 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 -- cgit v1.2.3-70-g09d2 From 05aee41c44ba89bb35e233815b62d6dcefc0899c Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 21:37:31 +0100 Subject: Add SC_ALMIGHTY status change --- db/constants.conf | 1 + db/sc_config.conf | 8 ++++++++ src/map/status.c | 5 +++++ src/map/status.h | 1 + 4 files changed, 15 insertions(+) diff --git a/db/constants.conf b/db/constants.conf index 1577523c8..9b11a43e9 100644 --- a/db/constants.conf +++ b/db/constants.conf @@ -1423,6 +1423,7 @@ constants_db: { SC_SKF_ATK: 673 SC_SKF_ASPD: 674 SC_SKF_CAST: 675 + SC_ALMIGHTY: 676 comment__: "Emotes" e_gasp: 0 diff --git a/db/sc_config.conf b/db/sc_config.conf index ed8506aab..11f8579e5 100644 --- a/db/sc_config.conf +++ b/db/sc_config.conf @@ -3721,3 +3721,11 @@ SC_SKF_CAST: { } Icon: "SI_SKF_CAST" } +SC_ALMIGHTY: { + Flags: { + NoDeathReset: true + NoDispelReset: true + NoClearanceReset: true + } + Icon: "SI_ALMIGHTY" +} diff --git a/src/map/status.c b/src/map/status.c index a55ad071e..691aabd30 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -890,6 +890,7 @@ static void initChangeTables(void) status->dbs->ChangeFlagTable[SC_SKF_ATK] |= SCB_BATK; status->dbs->ChangeFlagTable[SC_SKF_ASPD] |= SCB_ASPD; status->dbs->ChangeFlagTable[SC_SKF_CAST] |= SCB_NONE; + status->dbs->ChangeFlagTable[SC_ALMIGHTY] |= SCB_BATK | SCB_MATK; // Cash Items status->dbs->ChangeFlagTable[SC_FOOD_STR_CASH] |= SCB_STR; @@ -4904,6 +4905,8 @@ static int status_calc_batk(struct block_list *bl, struct status_change *sc, int batk += sc->data[SC_STEAMPACK]->val1; if (sc->data[SC_SKF_ATK] != NULL) batk += sc->data[SC_SKF_ATK]->val1; + if (sc->data[SC_ALMIGHTY] != NULL) + batk += sc->data[SC_ALMIGHTY]->val1; if (sc->data[SC_SHRIMP]) batk += batk * sc->data[SC_SHRIMP]->val2 / 100; @@ -5107,6 +5110,8 @@ static int status_calc_matk(struct block_list *bl, struct status_change *sc, int matk += sc->data[SC_MAGIC_CANDY]->val1; if (sc->data[SC_SKF_MATK] != NULL) matk += sc->data[SC_SKF_MATK]->val1; + if (sc->data[SC_ALMIGHTY] != NULL) + matk += sc->data[SC_ALMIGHTY]->val2; return cap_value(matk, battle_config.matk_min, battle_config.matk_max); } diff --git a/src/map/status.h b/src/map/status.h index d113735f4..d5cb3da75 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -860,6 +860,7 @@ typedef enum sc_type { SC_SKF_ATK, SC_SKF_ASPD, SC_SKF_CAST, + SC_ALMIGHTY, #ifndef SC_MAX SC_MAX, //Automatically updated max, used in for's to check we are within bounds. #endif -- cgit v1.2.3-70-g09d2 From bee3cb9a077608e0e8f0096b8d7017b998ef5efd Mon Sep 17 00:00:00 2001 From: Kenpachi Developer Date: Mon, 9 Mar 2020 23:26:11 +0100 Subject: Update items which use new status changes --- db/pre-re/item_db.conf | 164 ++++++++++++++++++++++++++++++++++++++++++++++++- db/re/item_db.conf | 122 ++++++++++++++++++++++++++++++++++-- 2 files changed, 281 insertions(+), 5 deletions(-) diff --git a/db/pre-re/item_db.conf b/db/pre-re/item_db.conf index 3e760b62a..38f1ad655 100644 --- a/db/pre-re/item_db.conf +++ b/db/pre-re/item_db.conf @@ -70971,6 +70971,18 @@ item_db: ( Buy: 10 Weight: 10 BuyingStore: true + Trade: { + nodrop: true + notrade: true + nocart: true + nomail: true + noauction: true + nogstorage: true + } + Script: <" + specialeffect(EF_STEAL, AREA, playerattached()); + sc_start4(SC_POPECOOKIE, 1200000, 3, 3, 3, 0); + "> }, { Id: 12380 @@ -71380,7 +71392,7 @@ item_db: ( { Id: 12404 AegisName: "Acti_Potion" - Name: "Acti Potion" + Name: "Activation Potion" Type: "IT_USABLE" Buy: 20 Weight: 10 @@ -71393,6 +71405,10 @@ item_db: ( nomail: true noauction: true } + Script: <" + specialeffect(EF_STEAL, AREA, playerattached()); + sc_start4(SC_VITALIZE_POTION, 120000, 2, 2, 10, 0); + "> }, { Id: 12405 @@ -73132,6 +73148,90 @@ item_db: ( Script: <" setcashmount(); "> OnRentalEndScript: <" sc_end(SC_ALL_RIDING); "> }, +{ + Id: 12666 + AegisName: "Thai_Perfume_MATK" + Name: "Thai Perfume(MATK)" + Type: "IT_USABLE" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_MATK, 600000, 24); + "> +}, +{ + Id: 12667 + AegisName: "Thai_Perfume_ATK" + Name: "Thai Perfume(ATK)" + Type: "IT_USABLE" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_ATK, 600000, 24); + "> +}, +{ + Id: 12668 + AegisName: "Thai_Perfume_ASPD" + Name: "Thai Perfume(ASPD)" + Type: "IT_USABLE" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_ASPD, 600000, 3); + "> +}, +{ + Id: 12669 + AegisName: "Thai_Perfume_CAST" + Name: "Thai Perfume(CAST)" + Type: "IT_USABLE" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_CAST, 600000, 5); + "> +}, { Id: 12701 AegisName: "Old_Blue_Box_F" @@ -74203,6 +74303,33 @@ item_db: ( "> }, +{ + Id: 12883 + AegisName: "Almighty" + Name: "Almighty" + Type: "IT_USABLE" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_BASH3D, AREA, playerattached()); + sc_start(SC_FOOD_STR_CASH, 1800000, 10); + sc_start(SC_FOOD_VIT_CASH, 1800000, 10); + sc_start(SC_FOOD_AGI_CASH, 1800000, 10); + sc_start(SC_FOOD_INT_CASH, 1800000, 10); + sc_start(SC_FOOD_DEX_CASH, 1800000, 10); + sc_start(SC_FOOD_LUK_CASH, 1800000, 10); + sc_start2(SC_ALMIGHTY, 1800000, 30, 30); + "> +}, { Id: 12900 AegisName: "Battle_Manual_Box" @@ -93967,6 +94094,24 @@ item_db: ( AegisName: "Gemini_Crown_Bo" }, */ +{ + Id: 16254 + AegisName: "Energizing_Potion_Box" + Name: "Activation Potion Box" + Type: "IT_CASH" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" getitem(Acti_Potion, 5); "> +}, { Id: 16257 AegisName: "Buddah_Scroll" @@ -94435,6 +94580,23 @@ item_db: ( Weight: 10 Script: <" getitem(Clothing_Dye_Coupon2, 1); "> }, +{ + Id: 17224 + AegisName: "Almighty_Box" + Name: "Almighty Box" + Type: "IT_CASH" + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" getitem(Almighty, 10); "> +}, { Id: 17336 AegisName: "Jeremy_Beauty_Coupon_Box" diff --git a/db/re/item_db.conf b/db/re/item_db.conf index 86bfe9f90..5540ad025 100644 --- a/db/re/item_db.conf +++ b/db/re/item_db.conf @@ -90584,6 +90584,18 @@ item_db: ( Buy: 10 Weight: 10 BuyingStore: true + Trade: { + nodrop: true + notrade: true + nocart: true + nomail: true + noauction: true + nogstorage: true + } + Script: <" + specialeffect(EF_STEAL, AREA, playerattached()); + sc_start4(SC_POPECOOKIE, 1200000, 3, 3, 3, 0); + "> }, { Id: 12380 @@ -91001,6 +91013,10 @@ item_db: ( nomail: true noauction: true } + Script: <" + specialeffect(EF_STEAL, AREA, playerattached()); + sc_start4(SC_VITALIZE_POTION, 120000, 2, 2, 10, 0); + "> }, { Id: 12405 @@ -94059,33 +94075,85 @@ item_db: ( Id: 12666 AegisName: "Thai_Perfume_MATK" Name: "Thai Perfume(MATK)" - Type: "IT_DELAYCONSUME" + Type: "IT_USABLE" Buy: 20 Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_MATK, 600000, 24); + "> }, { Id: 12667 AegisName: "Thai_Perfume_ATK" Name: "Thai Perfume(ATK)" - Type: "IT_DELAYCONSUME" + Type: "IT_USABLE" Buy: 20 Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_ATK, 600000, 24); + "> }, { Id: 12668 AegisName: "Thai_Perfume_ASPD" Name: "Thai Perfume(ASPD)" - Type: "IT_DELAYCONSUME" + Type: "IT_USABLE" Buy: 20 Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_ASPD, 600000, 3); + "> }, { Id: 12669 AegisName: "Thai_Perfume_CAST" Name: "Thai Perfume(CAST)" - Type: "IT_DELAYCONSUME" + Type: "IT_USABLE" Buy: 20 Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_MAGICALATTHIT, AREA, playerattached()); + sc_start(SC_SKF_CAST, 600000, 5); + "> }, { Id: 12670 @@ -95999,6 +96067,33 @@ item_db: ( Weight: 10 Script: <" autobonus "{ heal -3000,0; bonus2 bResEff,Eff_Blind,10000; }",10,0,0,SI_GVG_BLIND; "> }, +{ + Id: 12883 + AegisName: "Almighty" + Name: "Almighty" + Type: "IT_USABLE" + Buy: 20 + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" + specialeffect(EF_BASH3D, AREA, playerattached()); + sc_start(SC_FOOD_STR_CASH, 1800000, 10); + sc_start(SC_FOOD_VIT_CASH, 1800000, 10); + sc_start(SC_FOOD_AGI_CASH, 1800000, 10); + sc_start(SC_FOOD_INT_CASH, 1800000, 10); + sc_start(SC_FOOD_DEX_CASH, 1800000, 10); + sc_start(SC_FOOD_LUK_CASH, 1800000, 10); + sc_start2(SC_ALMIGHTY, 1800000, 30, 30); + "> +}, { Id: 12884 AegisName: "C_Center_Potion" @@ -127035,6 +127130,7 @@ item_db: ( Name: "Activation Potion Box" Type: "IT_CASH" Buy: 20 + Weight: 10 Trade: { nodrop: true notrade: true @@ -127044,6 +127140,7 @@ item_db: ( nomail: true noauction: true } + Script: <" getitem(Acti_Potion, 5); "> }, { Id: 16257 @@ -130551,6 +130648,23 @@ item_db: ( Buy: 20 Script: <" packageitem(); "> }, +{ + Id: 17224 + AegisName: "Almighty_Box" + Name: "Almighty Box" + Type: "IT_CASH" + Weight: 10 + Trade: { + nodrop: true + notrade: true + noselltonpc: true + nocart: true + nogstorage: true + nomail: true + noauction: true + } + Script: <" getitem(Almighty, 10); "> +}, { Id: 17226 AegisName: "C_Center_Potion_Box" -- cgit v1.2.3-70-g09d2