|
@@ -8704,7 +8704,15 @@ void clif_parse_UseSkillToId(int fd, struct map_session_data *sd) {
|
|
if (sd->skilltimer != -1) {
|
|
if (sd->skilltimer != -1) {
|
|
if (skillnum != SA_CASTCANCEL)
|
|
if (skillnum != SA_CASTCANCEL)
|
|
return;
|
|
return;
|
|
- } else if (DIFF_TICK(tick, sd->canact_tick) < 0) {
|
|
|
|
|
|
+ } else if (DIFF_TICK(tick, sd->canact_tick) < 0 &&
|
|
|
|
+ // allow monk combos to ignore this delay [celest]
|
|
|
|
+ !(sd->sc_count && sd->sc_data[SC_COMBO].timer!=-1 &&
|
|
|
|
+ (skillnum == MO_EXTREMITYFIST ||
|
|
|
|
+ skillnum == MO_CHAINCOMBO ||
|
|
|
|
+ skillnum == MO_COMBOFINISH ||
|
|
|
|
+ skillnum == CH_PALMSTRIKE ||
|
|
|
|
+ skillnum == CH_TIGERFIST ||
|
|
|
|
+ skillnum == CH_CHAINCRUSH))) {
|
|
clif_skill_fail(sd, skillnum, 4, 0);
|
|
clif_skill_fail(sd, skillnum, 4, 0);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
@@ -8846,7 +8854,15 @@ void clif_parse_UseSkillToPos(int fd, struct map_session_data *sd) {
|
|
|
|
|
|
if (sd->skilltimer != -1)
|
|
if (sd->skilltimer != -1)
|
|
return;
|
|
return;
|
|
- else if (DIFF_TICK(tick, sd->canact_tick) < 0) {
|
|
|
|
|
|
+ else if (DIFF_TICK(tick, sd->canact_tick) < 0 &&
|
|
|
|
+ // allow monk combos to ignore this delay [celest]
|
|
|
|
+ !(sd->sc_count && sd->sc_data[SC_COMBO].timer!=-1 &&
|
|
|
|
+ (skillnum == MO_EXTREMITYFIST ||
|
|
|
|
+ skillnum == MO_CHAINCOMBO ||
|
|
|
|
+ skillnum == MO_COMBOFINISH ||
|
|
|
|
+ skillnum == CH_PALMSTRIKE ||
|
|
|
|
+ skillnum == CH_TIGERFIST ||
|
|
|
|
+ skillnum == CH_CHAINCRUSH))) {
|
|
clif_skill_fail(sd, skillnum, 4, 0);
|
|
clif_skill_fail(sd, skillnum, 4, 0);
|
|
return;
|
|
return;
|
|
}
|
|
}
|