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

Вопрос Как синхронизиовать гримглайд с элитра предиктом

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Окт 2024
Сообщения
112
Реакции
0
я хз типа всмысле синхронизировать как синхронизировать я кодекса просил он мне чето такого написал


f:
Expand Collapse Copy
    private float getSyncedYaw() {
        float yaw = mc.player.rotationYaw;

        if (!syncWithPredict.get() || Manager.FUNCTION_MANAGER == null || Manager.FUNCTION_MANAGER.auraFunction == null) {
            return yaw;
        }

        LivingEntity target = Manager.FUNCTION_MANAGER.auraFunction.getTarget();
        if (target == null || !target.isElytraFlying() || Manager.FUNCTION_MANAGER.elytraPredict == null
                || !Manager.FUNCTION_MANAGER.elytraPredict.state || !Manager.FUNCTION_MANAGER.elytraPredict.canPredict(target)) {
            return yaw;
        }

        Vector3d predictedTargetPos = getPredictedTargetPos(target);
        Vector3d direction = predictedTargetPos.subtract(mc.player.getEyePosition(1.0f));
        return (float) MathHelper.wrapDegrees(Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90.0);
    }

    private Vector3d getPredictedTargetPos(LivingEntity target) {
        double elytraDistance = Manager.FUNCTION_MANAGER.elytraPredict.getElytraDistance(target);
        boolean isLeaving = PredictUtility.isLeaving(target);

        double targetSpeed = Math.sqrt(
                target.getMotion().x * target.getMotion().x +
                        target.getMotion().z * target.getMotion().z
        );
        boolean targetAccelerating = target.isElytraFlying() && targetSpeed > 0.5;

        double pingTicks = 0.0;
        if (target instanceof PlayerEntity && mc.player != null && mc.player.connection != null) {
            NetworkPlayerInfo playerInfo = mc.player.connection.getPlayerInfo(target.getUniqueID());
            if (playerInfo != null) {
                pingTicks = Math.min(playerInfo.getResponseTime() / 50.0, 6.0);
            }
        }

        int simTicks;
        if (isLeaving) {
            simTicks = (int) Math.round(elytraDistance + pingTicks);
        } else if (targetAccelerating) {
            simTicks = (int) Math.round(elytraDistance * 0.5 + pingTicks * 0.5);
        } else {
            simTicks = (int) Math.round(elytraDistance + pingTicks * 0.5);
        }
        simTicks = Math.max(1, simTicks);

        Vector3d add = new Vector3d(0, MathHelper.clamp(target.getPosY() - target.getHeight(), 0, target.getHeight() / 2.0f), 0);
        return PredictUtility.predictElytraPos(target, simTicks).add(add);
    }


а когда спросил как он синхронизирует он ответил это

Код:
Expand Collapse Copy
Когда включена галочка Синхронизировать с перегоном, меняется только источник yaw:

вместо mc.player.rotationYaw модуль вызывает getSyncedYaw() в GrimGlide.java
getSyncedYaw() проверяет, что есть таргет из AttackAura, он летит на элитрах, и ElytraPredict включён и может предиктить
потом берётся та же предсказанная точка, что и у перегона: через PredictUtility.predictElytraPos(...)
количество тиков симуляции считается по той же логике: elytraDistance, пинг, isLeaving, скорость цели
После этого:

из твоей позиции до предсказанной точки считается вектор
из этого вектора считается yaw
и уже этот yaw идёт в обычную механику GrimGlide
То есть по сути:

перегон говорит куда цель будет смещена
GrimGlide говорит ок, лечу своим способом, но в ту же сторону
 
Когда включена галочка Синхронизировать с перегоном, меняется только источник yaw:

вместо mc.player.rotationYaw модуль вызывает getSyncedYaw() в GrimGlide.java
getSyncedYaw() проверяет, что есть таргет из AttackAura, он летит на элитрах, и ElytraPredict включён и может предиктить
потом берётся та же предсказанная точка, что и у перегона: через PredictUtility.predictElytraPos(...)
количество тиков симуляции считается по той же логике: elytraDistance, пинг, isLeaving, скорость цели
После этого:

из твоей позиции до предсказанной точки считается вектор
из этого вектора считается yaw
и уже этот yaw идёт в обычную механику GrimGlide
То есть по сути:

перегон говорит куда цель будет смещена
GrimGlide говорит ок, лечу своим способом, но в ту же сторону
 
Назад
Сверху Снизу