Updates Monster Transform statuses (#5930)

* Fixes #5449.
* Updates several Monster Transform items with their updated bonuses.
Thanks to @Balferian!
Co-authored-by: Lemongrass3110 <lemongrass@kstp.at>
This commit is contained in:
Aleos 2021-05-12 13:35:07 -04:00 committed by GitHub
parent 202945ab37
commit 58f2d2173f
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 18 additions and 11 deletions

View File

@ -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

View File

@ -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,

View File

@ -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)

View File

@ -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);
}