// Epoque: // This code will compare the player's attack motion value which is influenced by ASPD before // allowing a skill to be cast. This is to prevent no-delay ACT files from spamming skills such as // AC_DOUBLE which do not have a skill delay and are not regarded in terms of attack motion. if( !sd->state.autocast && sd->skillitem != skill_id && sd->canskill_tick && DIFF_TICK(iTimer->gettick(), sd->canskill_tick) < (sd->battle_status.amotion * (battle_config.skill_amotion_leniency) / 100) ) {// attempted to cast a skill before the attack motion has finished return 1; }As the default, 90, this operation: (sd->battle_status.amotion * (battle_config.skill_amotion_leniency) / 100) returns 90 at 190 aspd. Which let a Sniper (for example) cast 10 skills per second, and acordingly to the "Epoque", this code is to prevent nodelay, which fails with this calculation.
So to fix the sniper the calculation should be: (sd->battle_status.amotion * (100 + battle_config.skill_amotion_leniency) / 100) ), but it only works for Sniper, because Creator (for example) doesn't have after cast delay and this formula will ruin its skill spam.
So basically, this check is useless and doesn't work for anything else that is already implemented.