Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Удары триггербота

Начинающий
Начинающий
Статус
Онлайн
Регистрация
27 Апр 2026
Сообщения
7
Реакции
0
У меня есть такой триггербот, но там немного криво идут удары, например когда тип отталкивает меня то он фоткает, я понимаю типо дистанция и т.д. Но в других норм читах удар проходит. Я так понимаю нужно что-то с FallDistance похимичить, но только у меня версия 1.21.4, и я хз как это нормально сделать
TriggerBot:
Expand Collapse Copy
public class TriggerBot extends Module implements QuickImports {

    public static TriggerBot getInstance() {
        return Instance.get(TriggerBot.class);
    }

    LivingEntity target, lastTarget;

    MultiSelectSetting targetType = new MultiSelectSetting("Тип таргета", "")
            .value("Игроки", "Мобы", "Животные", "Друзья", "Подставка для брони")
            .selected("Игроки", "Мобы", "Животные");

    SliderSettings attackRange = new SliderSettings("Дистанция", "")
            .setValue(3).range(1F, 6F);

    MultiSelectSetting attackSetting = new MultiSelectSetting("Настройки", "")
            .value("Только криты", "Ломать щит", "Отжимать щит", "Не бить если ешь")
            .selected("Только криты", "Ломать щит");

    RadioSetting sprintReset = new RadioSetting("Сброс спринта", "",
            new String[]{"Легитно", "Пакетно", "Не сбрасывать"}, "Легитно");

    BooleanSetting targetEsp = new BooleanSetting("Target ESP", "").setValue(false);

    BooleanSetting smartCrits = new BooleanSetting("Умные криты", "")
            .setValue(true).visible(() -> attackSetting.isSelected("Только криты"));

    public TriggerBot() {
        super("TriggerBot", "Trigger Bot", ModuleCategory.COMBAT);
        setup(targetType, attackRange, attackSetting, sprintReset, targetEsp, smartCrits);
    }

    @Override
    public void deactivate() {
        target = null;
        lastTarget = null;
        super.deactivate();
    }

    @EventHandler
    public void onTick(TickEvent e) {
        if (mc.player == null || mc.world == null) return;
        if (mc.currentScreen != null || mc.interactionManager == null) return;

        target = null;

        if (!(mc.crosshairTarget instanceof EntityHitResult hit)) return;
        if (!(hit.getEntity() instanceof LivingEntity ent)) return;

        if (!new TargetFinder.EntityFilter(targetType.getSelected()).isValid(ent)) return;

        float range = attackRange.getValue() + Aura.RANGE_MARGIN;
        if (mc.player.distanceTo(ent) > range) return;

        target = ent;
        lastTarget = ent;

        TurnsConnection.INSTANCE.setRotation(null);

        if (smartCrits.isValue() && attackSetting.isSelected("Только криты")) {
            if (!mc.player.isOnGround()) {
                if (!canCrit()) return;
            }
        }

        List<String> opts = getOptions(attackSetting.getSelected());

        Vec3d vec = MathAngle.getClosestVec(ent).subtract(mc.player.getEyePos());

        StrikerConstructor.AttackPerpetratorConfigurable cfg =
                new StrikerConstructor.AttackPerpetratorConfigurable(
                        ent,
                        MathAngle.fromVec3d(vec),
                        range,
                        opts,
                        Aura.aimMode,
                        ent.getBoundingBox(),
                        sprintReset.get(),
                        false
                );

        Revenant.getInstance().getAttackPerpetrator().performAttack(cfg);
    }

    private boolean canCrit() {
        var p = mc.player;
        return p.fallDistance > 0
                && !p.isOnGround()
                && !p.isClimbing()
                && !p.isTouchingWater()
                && p.getVehicle() == null
                && !p.hasStatusEffect(StatusEffects.SLOW_FALLING)
                && !p.hasStatusEffect(StatusEffects.BLINDNESS)
                && !p.hasStatusEffect(StatusEffects.LEVITATION)
                && p.getAttackCooldownProgress(0.5f) > 0.9f
                && !p.isSprinting();
    }

    private List<String> getOptions(List<String> base) {
        if (!smartCrits.isValue()) return base;
        if (!base.contains("Только криты")) return base;

        if (mc.player.isOnGround()) {
            List<String> list = new ArrayList<>(base);
            list.remove("Только криты");
            return list;
        }

        return base;
    }
}
 
Назад
Сверху Снизу