diff --git a/src/map/skill.c b/src/map/skill.c index f5aa3bb08ce..c61b1bd7caf 100644 --- a/src/map/skill.c +++ b/src/map/skill.c @@ -3464,7 +3464,7 @@ static int skill_attack(int attack_type, struct block_list *src, struct block_li break; } //Switch End if (combo) { //Possible to chain - combo = (int)max(status_get_amotion(src), DIFF_TICK(sd->ud.canact_tick, tick)); + combo = (int)max(status_get_amotion(src), DIFF_TICK(sd->ud.canact_tick, tick)) + 300 * battle_config.combo_delay_rate / 100; sc_start2(NULL, src, SC_COMBOATTACK, 100, skill_id, 0, combo, skill_id); clif->combo_delay(src, combo); } diff --git a/src/map/status.c b/src/map/status.c index 2efa19b77f8..a4cba20352b 100644 --- a/src/map/status.c +++ b/src/map/status.c @@ -8066,9 +8066,8 @@ static int status_change_start_sub(struct block_list *src, struct block_list *bl //val4: TK: Combo time struct unit_data *ud = unit->bl2ud(bl); if( ud && (!val3 || val3 == 2) ) { - total_tick += 300 * battle_config.combo_delay_rate/100; - ud->attackabletime = timer->gettick()+total_tick; - if( !val3 ) + ud->attackabletime = timer->gettick() + total_tick; + if (!val3) unit->set_walkdelay(bl, timer->gettick(), total_tick, 1); } val3 = 0;