Начинающий
- Статус
- Оффлайн
- Регистрация
- 1 Янв 2026
- Сообщения
- 15
- Реакции
- 0
AttackHandler
ClickScheduler.isCooldownComplete
я хз как сделать что бы прям критами било просто через 5 критов начинает по 2 удара спамить
Java:
public boolean canCrit(AttackPerpetrator.AttackPerpetratorConfigurable config, int ticks) {
if (mc.player.isUsingItem() && !mc.player.getActiveItem().getItem().equals(Items.SHIELD) && config.isEatAndAttack()) {
return false;
}
if (!clickScheduler.isCooldownComplete(config.isUseDynamicCooldown(), ticks, config.isOnlyCritical())) {
return false;
}
SimulatedPlayer simulated = SimulatedPlayer.simulateLocalPlayer(ticks);
if (config.isOnlyCritical() && !hasMovementRestrictions(simulated)) {
return isPlayerInCriticalState(simulated, ticks);
}
return true;
}
private boolean hasMovementRestrictions(SimulatedPlayer simulated) {
return simulated.hasStatusEffect(StatusEffects.BLINDNESS)
|| simulated.hasStatusEffect(StatusEffects.LEVITATION)
|| PlayerIntersectionUtil.isBoxInBlock(simulated.boundingBox.expand(-1e-3), Blocks.COBWEB)
|| simulated.isSubmergedInWater()
|| simulated.isInLava()
|| simulated.isClimbing()
|| !PlayerIntersectionUtil.canChangeIntoPose(EntityPose.STANDING, simulated.pos)
|| simulated.player.getAbilities().flying;
}
private boolean isPlayerInCriticalState(SimulatedPlayer simulated, int ticks) {
if (Criticals.getInstance().isState()) return true;
return !simulated.onGround
&& !simulated.isSubmergedInWater()
&& simulated.player.getVelocity().y < 0;
}
ClickScheduler.isCooldownComplete
Java:
public boolean isCooldownComplete(boolean dynamicCooldown, int ticks, boolean onlyCritical) {
boolean dynamic = hasTicksElapsedSinceLastClick(tickCount() - ticks) || !dynamicCooldown;
if (onlyCritical) {
return mc.player.getAttackCooldownProgress(0) >= 1.0f;
}
float threshold = 0.90f + (float)(Math.random() * 0.05);
return dynamic && mc.player.getAttackCooldownProgress(ticks) > threshold;
}
Последнее редактирование: