From 8d7737ee991eeb4e588fb2baec3645780c1f96cd Mon Sep 17 00:00:00 2001 From: csnv Date: Sat, 30 Dec 2023 05:09:31 +0100 Subject: [PATCH] Fix combo_cache_skill checking current skill delay instead of last --- src/map/clif.c | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/map/clif.c b/src/map/clif.c index 951a01d3269..b5cde835898 100644 --- a/src/map/clif.c +++ b/src/map/clif.c @@ -13562,13 +13562,13 @@ static void clif_useSkillToIdReal(int fd, struct map_session_data *sd, int skill if (skill_id != SA_CASTCANCEL && skill_id != SO_SPELLFIST && sd->auto_cast_current.type == AUTOCAST_NONE) return; } else if (DIFF_TICK(tick, sd->ud.canact_tick) < 0) { - // Cannot perform skill yet, delay execution until canact_tick allows it - // Only for combo skills with implicit delays, otherwise we create a speedhack that bypasses client's animation delay + // Delay execution of combo skill until canact_tick allows it + // Only for combo skills whose prerequisite induced delay if (battle_config.combo_cache_skill && !skip_combo_check && sd->sc.data[SC_COMBOATTACK] != NULL && skill->is_combo(skill_id) - && skill->get_delaynodex(skill_id, skill_lv) != 0 + && skill->delay_fix(&sd->bl, sd->sc.data[SC_COMBOATTACK]->val1, pc->checkskill(sd, sd->sc.data[SC_COMBOATTACK]->val1)) > 0 ) { timer->add(sd->ud.canact_tick, clif->combo_delay_timer, sd->bl.id, (intptr_t)MakeDWord((uint16)skill_id, (uint16)skill_lv)); return;