diff --git a/db/re/item_db_usable.yml b/db/re/item_db_usable.yml index f30ddc860d..d8a897fe41 100644 --- a/db/re/item_db_usable.yml +++ b/db/re/item_db_usable.yml @@ -3312,7 +3312,7 @@ Body: Weight: 30 Script: | itemheal 45,0; - transform 1507,600000,SC_MTF_MHP,1000; + transform 1507,600000,SC_MTF_MHP,20; specialeffect2 EF_CLOAKING; showscript "Trans-Form-!! Bloody Murderer Fo-rm!!"; - Id: 11593 @@ -3323,7 +3323,7 @@ Body: Weight: 30 Script: | itemheal 45,0; - transform 1102,600000,SC_MTF_MSP,100; + transform 1102,600000,SC_MTF_MSP,20; specialeffect2 EF_CLOAKING; showscript "Trans-Form-!!! Bathory Fo-rm!!"; - Id: 11594 @@ -3334,7 +3334,7 @@ Body: Weight: 30 Script: | itemheal 45,0; - transform 1130,600000,SC_MTF_PUMPKIN,2000; + transform 1130,600000,SC_MTF_PUMPKIN,2000,100; specialeffect2 EF_CLOAKING; showscript "Trans-Form-!! Jack Fo-rm!!"; - Id: 11595 @@ -11572,7 +11572,7 @@ Body: NoMail: true NoAuction: true Script: | - transform 1002,1200000,SC_MTF_CRIDAMAGE,25; + transform 1002,1200000,SC_MTF_CRIDAMAGE,5; showscript "Traaaansformation-!! Poring form!!"; - Id: 12664 AegisName: Trans_Scroll_Golem diff --git a/src/map/itemdb.hpp b/src/map/itemdb.hpp index 95afae8828..4d22ed95c7 100644 --- a/src/map/itemdb.hpp +++ b/src/map/itemdb.hpp @@ -99,6 +99,7 @@ enum item_itemid : t_itemid ITEMID_FRAGMENT_OF_CRYSTAL = 7321, ITEMID_SKULL_ = 7420, ITEMID_TRAP_ALLOY = 7940, + ITEMID_COOKIE_BAT = 11605, ITEMID_MERCENARY_RED_POTION = 12184, ITEMID_MERCENARY_BLUE_POTION = 12185, ITEMID_GIANT_FLY_WING = 12212, diff --git a/src/map/pc.cpp b/src/map/pc.cpp index 1be5272461..2c864bb4d5 100755 --- a/src/map/pc.cpp +++ b/src/map/pc.cpp @@ -9228,8 +9228,12 @@ int pc_itemheal(struct map_session_data *sd, t_itemid itemid, int hp, int sp) if (sd->sc.data[SC_INCHEALRATE]) bonus += bonus * sd->sc.data[SC_INCHEALRATE]->val1 / 100; // 2014 Halloween Event : Pumpkin Bonus - if (sd->sc.data[SC_MTF_PUMPKIN] && itemid == ITEMID_PUMPKIN) - bonus += bonus * sd->sc.data[SC_MTF_PUMPKIN]->val1 / 100; + if (sd->sc.data[SC_MTF_PUMPKIN]) { + if (itemid == ITEMID_PUMPKIN) + bonus += bonus * sd->sc.data[SC_MTF_PUMPKIN]->val1 / 100; + else if (itemid == ITEMID_COOKIE_BAT) + bonus += sd->sc.data[SC_MTF_PUMPKIN]->val2; + } tmp = hp * bonus / 100; // Overflow check if (bonus != 100 && tmp > hp) diff --git a/src/map/status.cpp b/src/map/status.cpp index 8b3b9c3a9e..9d3eec4ba9 100644 --- a/src/map/status.cpp +++ b/src/map/status.cpp @@ -1861,7 +1861,7 @@ void initChangeTables(void) StatusChangeFlagTable[SC_MTF_ASPD2] |= SCB_ASPD|SCB_HIT; StatusChangeFlagTable[SC_MTF_MATK2] |= SCB_MATK; StatusChangeFlagTable[SC_2011RWC_SCROLL] |= SCB_BATK|SCB_MATK|SCB_STR|SCB_AGI|SCB_VIT|SCB_INT|SCB_DEX|SCB_LUK; - StatusChangeFlagTable[SC_MTF_HITFLEE] |= SCB_HIT|SCB_FLEE; + StatusChangeFlagTable[SC_MTF_HITFLEE] |= SCB_HIT|SCB_FLEE|SCB_CRI; StatusChangeFlagTable[SC_MTF_MHP] |= SCB_MAXHP; StatusChangeFlagTable[SC_MTF_MSP] |= SCB_MAXSP; @@ -3700,8 +3700,6 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { bonus += sc->data[SC_PROMOTE_HEALTH_RESERCH]->val3; if(sc->data[SC_SOLID_SKIN_OPTION]) bonus += 2000; - if(sc->data[SC_MTF_MHP]) - bonus += sc->data[SC_MTF_MHP]->val1; if(sc->data[SC_MARIONETTE]) bonus -= 1000; if(sc->data[SC_SWORDCLAN]) @@ -3769,6 +3767,8 @@ static int status_get_hpbonus(struct block_list *bl, enum e_status_bonus type) { bonus += sc->data[SC_LUNARSTANCE]->val2; if (sc->data[SC_LUXANIMA]) bonus += sc->data[SC_LUXANIMA]->val3; + if (sc->data[SC_MTF_MHP]) + bonus += sc->data[SC_MTF_MHP]->val1; //Decreasing if (sc->data[SC_VENOMBLEED] && sc->data[SC_VENOMBLEED]->val3 == 1) @@ -3865,8 +3865,6 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) { bonus += sc->data[SC_INCMSP]->val1; if(sc->data[SC_EARTH_INSIGNIA] && sc->data[SC_EARTH_INSIGNIA]->val1 == 3) bonus += 50; - if(sc->data[SC_MTF_MSP]) - bonus += sc->data[SC_MTF_MSP]->val1; if(sc->data[SC_SWORDCLAN]) bonus += 10; if(sc->data[SC_ARCWANDCLAN]) @@ -3911,6 +3909,8 @@ static int status_get_spbonus(struct block_list *bl, enum e_status_bonus type) { bonus += sc->data[SC_MERC_SPUP]->val2; if (sc->data[SC_LUXANIMA]) bonus += sc->data[SC_LUXANIMA]->val3; + if (sc->data[SC_MTF_MSP]) + bonus += sc->data[SC_MTF_MSP]->val1; //Decreasing if (sc->data[SC_MELODYOFSINK]) @@ -7137,6 +7137,8 @@ static signed short status_calc_critical(struct block_list *bl, struct status_ch critical += 10 * sc->data[SC_SOULSHADOW]->val3; if(sc->data[SC_BEYONDOFWARCRY]) critical += sc->data[SC_BEYONDOFWARCRY]->val3; + if (sc->data[SC_MTF_HITFLEE]) + critical += sc->data[SC_MTF_HITFLEE]->val1; return (short)cap_value(critical,10,SHRT_MAX); }