diff options
Diffstat (limited to 'src/map/status.c')
-rw-r--r-- | src/map/status.c | 7 |
1 files changed, 4 insertions, 3 deletions
diff --git a/src/map/status.c b/src/map/status.c index 0be72cc2e..d3d9f3544 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -502,6 +502,7 @@ void initChangeTables(void) StatusChangeFlagTable[SC_ARMOR_ELEMENT] |= SCB_PC; StatusChangeFlagTable[SC_ARMOR_RESIST] |= SCB_PC; StatusChangeFlagTable[SC_SPCOST_RATE] |= SCB_PC; + StatusChangeFlagTable[SC_WALKSPEED] |= SCB_SPEED; if (!battle_config.display_hallucination) //Disable Hallucination. StatusIconChangeTable[SC_HALLUCINATION] = SI_BLANK; @@ -3706,7 +3707,6 @@ static signed short status_calc_mdef2(struct block_list *bl, struct status_chang static unsigned short status_calc_speed(struct block_list *bl, struct status_change *sc, int speed) { - //Default speed coming in means there's no speed_rate adjustments. int new_speed = speed; bool default_speed = (speed == DEFAULT_WALK_SPEED); @@ -3714,6 +3714,9 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if(!sc || !sc->count) return cap_value(speed,10,USHRT_MAX); + if(sc->data[SC_WALKSPEED]) + new_speed = sc->data[SC_WALKSPEED]->val1; + // Fixed reductions if(sc->data[SC_CURSE]) new_speed += 450; @@ -3739,8 +3742,6 @@ static unsigned short status_calc_speed(struct block_list *bl, struct status_cha if(sc->data[SC_FUSION]) new_speed -= new_speed * 25/100; - - //These only apply if you don't have increase agi and/or fusion and/or sprint if(speed == new_speed) { |