diff options
Diffstat (limited to 'src')
-rw-r--r-- | src/map/status.c | 6 | ||||
-rw-r--r-- | src/map/status.h | 4 |
2 files changed, 9 insertions, 1 deletions
diff --git a/src/map/status.c b/src/map/status.c index 2ea6fffd0..b349e6ab2 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -894,6 +894,8 @@ void initChangeTables(void) { StatusChangeFlagTable[SC_INCFLEE2] |= SCB_FLEE2; StatusChangeFlagTable[SC_INCMHPRATE] |= SCB_MAXHP; StatusChangeFlagTable[SC_INCMSPRATE] |= SCB_MAXSP; + StatusChangeFlagTable[SC_INCMHP] |= SCB_MAXHP; + StatusChangeFlagTable[SC_INCMSP] |= SCB_MAXSP; StatusChangeFlagTable[SC_INCATKRATE] |= SCB_BATK|SCB_WATK; StatusChangeFlagTable[SC_INCMATKRATE] |= SCB_MATK; StatusChangeFlagTable[SC_INCDEFRATE] |= SCB_DEF; @@ -5308,6 +5310,8 @@ static unsigned int status_calc_maxhp(struct block_list *bl, struct status_chang if(sc->data[SC_INCMHPRATE]) maxhp += maxhp * sc->data[SC_INCMHPRATE]->val1/100; + if(sc->data[SC_INCMHP]) + maxhp += (sc->data[SC_INCMHP]->val1); if(sc->data[SC_APPLEIDUN]) maxhp += maxhp * sc->data[SC_APPLEIDUN]->val2/100; if(sc->data[SC_DELUGE]) @@ -5359,6 +5363,8 @@ static unsigned int status_calc_maxsp(struct block_list *bl, struct status_chang if(sc->data[SC_INCMSPRATE]) maxsp += maxsp * sc->data[SC_INCMSPRATE]->val1/100; + if(sc->data[SC_INCMSP]) + maxsp += (sc->data[SC_INCMSP]->val1); if(sc->data[SC_SERVICE4U]) maxsp += maxsp * sc->data[SC_SERVICE4U]->val2/100; if(sc->data[SC_MERC_SPUP]) diff --git a/src/map/status.h b/src/map/status.h index b5a00b91e..b6d55cbb6 100644 --- a/src/map/status.h +++ b/src/map/status.h @@ -617,7 +617,9 @@ typedef enum sc_type { SC_ANGRIFFS_MODUS, SC_GOLDENE_FERSE, SC_ERASER_CUTTER, - + /* Max HP & SP */ + SC_INCMHP, + SC_INCMSP, SC_MAX, //Automatically updated max, used in for's to check we are within bounds. } sc_type; |