• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Гайд Пишем нормальный резольвер для Elytra Target

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Авг 2024
Сообщения
89
Реакции
0
Итак, нам нужен резольвер чтобы перебивать пасты но давайте разберем что это вообще такое.
Весь гайд будет основан на fabric 1.21.4

По сути резольвер это "реальная" позиция игрока на элитре. При полете на элитре видимый хитбокс игрока будет всегда немного отставать от реального и всё что нам нужно сделать это лететь впереди видимого игрока.

Некоторые рядовые пастеры делают это максимально глупо используя интерполяцию самого майнкрафта, пример такого предикта на 6 тиков target.getLerpedPos(6);

Мы же будем умнее и пойдем в метод LivingEntity.java#calcGlidingVelocity далее нам весь этот код надо перенести к нам в элитра таргет
Java:
Expand Collapse Copy
private Vec3d calcGlidingVelocity(Vec3d oldVelocity) {
        Vec3d vec3d = this.getRotationVector();
        float f = this.getPitch() * (float) (Math.PI / 180.0);
        double d = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
        double e = oldVelocity.horizontalLength();
        double g = this.getEffectiveGravity();
        double h = MathHelper.square(Math.cos((double)f));
        oldVelocity = oldVelocity.add(0.0, g * (-1.0 + h * 0.75), 0.0);
        if (oldVelocity.y < 0.0 && d > 0.0) {
            double i = oldVelocity.y * -0.1 * h;
            oldVelocity = oldVelocity.add(vec3d.x * i / d, i, vec3d.z * i / d);
        }

        if (f < 0.0F && d > 0.0) {
            double i = e * (double)(-MathHelper.sin(f)) * 0.04;
            oldVelocity = oldVelocity.add(-vec3d.x * i / d, i * 3.2, -vec3d.z * i / d);
        }

        if (d > 0.0) {
            oldVelocity = oldVelocity.add((vec3d.x / d * e - oldVelocity.x) * 0.1, 0.0, (vec3d.z / d * e - oldVelocity.z) * 0.1);
        }

        return oldVelocity.multiply(0.99F, 0.98F, 0.99F);
    }
После переноса этого метода можем идти и пенить пасточки, по желанию можно добавить кол-во тиков для предикта.
Также не забывайте что этот предикт только на 1 тик вперед!
 
Итак, нам нужен резольвер чтобы перебивать пасты но давайте разберем что это вообще такое.
Весь гайд будет основан на fabric 1.21.4

По сути резольвер это "реальная" позиция игрока на элитре. При полете на элитре видимый хитбокс игрока будет всегда немного отставать от реального и всё что нам нужно сделать это лететь впереди видимого игрока.

Некоторые рядовые пастеры делают это максимально глупо используя интерполяцию самого майнкрафта, пример такого предикта на 6 тиков target.getLerpedPos(6);

Мы же будем умнее и пойдем в метод LivingEntity.java#calcGlidingVelocity далее нам весь этот код надо перенести к нам в элитра таргет
Java:
Expand Collapse Copy
private Vec3d calcGlidingVelocity(Vec3d oldVelocity) {
        Vec3d vec3d = this.getRotationVector();
        float f = this.getPitch() * (float) (Math.PI / 180.0);
        double d = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
        double e = oldVelocity.horizontalLength();
        double g = this.getEffectiveGravity();
        double h = MathHelper.square(Math.cos((double)f));
        oldVelocity = oldVelocity.add(0.0, g * (-1.0 + h * 0.75), 0.0);
        if (oldVelocity.y < 0.0 && d > 0.0) {
            double i = oldVelocity.y * -0.1 * h;
            oldVelocity = oldVelocity.add(vec3d.x * i / d, i, vec3d.z * i / d);
        }

        if (f < 0.0F && d > 0.0) {
            double i = e * (double)(-MathHelper.sin(f)) * 0.04;
            oldVelocity = oldVelocity.add(-vec3d.x * i / d, i * 3.2, -vec3d.z * i / d);
        }

        if (d > 0.0) {
            oldVelocity = oldVelocity.add((vec3d.x / d * e - oldVelocity.x) * 0.1, 0.0, (vec3d.z / d * e - oldVelocity.z) * 0.1);
        }

        return oldVelocity.multiply(0.99F, 0.98F, 0.99F);
    }
После переноса этого метода можем идти и пенить пасточки, по желанию можно добавить кол-во тиков для предикта.
Также не забывайте что этот предикт только на 1 тик вперед!
Резольвер это не много другое разве нет?
 
Итак, нам нужен резольвер чтобы перебивать пасты но давайте разберем что это вообще такое.
Весь гайд будет основан на fabric 1.21.4

По сути резольвер это "реальная" позиция игрока на элитре. При полете на элитре видимый хитбокс игрока будет всегда немного отставать от реального и всё что нам нужно сделать это лететь впереди видимого игрока.

Некоторые рядовые пастеры делают это максимально глупо используя интерполяцию самого майнкрафта, пример такого предикта на 6 тиков target.getLerpedPos(6);

Мы же будем умнее и пойдем в метод LivingEntity.java#calcGlidingVelocity далее нам весь этот код надо перенести к нам в элитра таргет
Java:
Expand Collapse Copy
private Vec3d calcGlidingVelocity(Vec3d oldVelocity) {
        Vec3d vec3d = this.getRotationVector();
        float f = this.getPitch() * (float) (Math.PI / 180.0);
        double d = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
        double e = oldVelocity.horizontalLength();
        double g = this.getEffectiveGravity();
        double h = MathHelper.square(Math.cos((double)f));
        oldVelocity = oldVelocity.add(0.0, g * (-1.0 + h * 0.75), 0.0);
        if (oldVelocity.y < 0.0 && d > 0.0) {
            double i = oldVelocity.y * -0.1 * h;
            oldVelocity = oldVelocity.add(vec3d.x * i / d, i, vec3d.z * i / d);
        }

        if (f < 0.0F && d > 0.0) {
            double i = e * (double)(-MathHelper.sin(f)) * 0.04;
            oldVelocity = oldVelocity.add(-vec3d.x * i / d, i * 3.2, -vec3d.z * i / d);
        }

        if (d > 0.0) {
            oldVelocity = oldVelocity.add((vec3d.x / d * e - oldVelocity.x) * 0.1, 0.0, (vec3d.z / d * e - oldVelocity.z) * 0.1);
        }

        return oldVelocity.multiply(0.99F, 0.98F, 0.99F);
    }
После переноса этого метода можем идти и пенить пасточки, по желанию можно добавить кол-во тиков для предикта.
Также не забывайте что этот предикт только на 1 тик вперед!
Missed shot due to resolver
 
резольвер для майнкрафта...
 
это же предикт а не резольвер
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
А может лучше mcp:anguished:
 
это же предикт а не резольвер
Резольвер в читах для онлайн-игр (особенно в шутерах, например, CS:GO, Apex Legends, Warzone) — это функция или модуль, который помогает читеру определять точное положение противников, даже если они скрыты за стенами или используют маскировку (например, дым или кусты).
Resolver — это функция в читах для игры CS:GO, которая ищет реальную модельку противника.
 
это предикт, в майнкрафте нету десинков и фейков
 
Резольвер в читах для онлайн-игр (особенно в шутерах, например, CS:GO, Apex Legends, Warzone) — это функция или модуль, который помогает читеру определять точное положение противников, даже если они скрыты за стенами или используют маскировку (например, дым или кусты).
Resolver — это функция в читах для игры CS:GO, которая ищет реальную модельку противника.
CS:GO,APEX LEGENDS,WARZONE майнкрафта тут нет че то
 
Итак, нам нужен резольвер чтобы перебивать пасты но давайте разберем что это вообще такое.
Весь гайд будет основан на fabric 1.21.4

По сути резольвер это "реальная" позиция игрока на элитре. При полете на элитре видимый хитбокс игрока будет всегда немного отставать от реального и всё что нам нужно сделать это лететь впереди видимого игрока.

Некоторые рядовые пастеры делают это максимально глупо используя интерполяцию самого майнкрафта, пример такого предикта на 6 тиков target.getLerpedPos(6);

Мы же будем умнее и пойдем в метод LivingEntity.java#calcGlidingVelocity далее нам весь этот код надо перенести к нам в элитра таргет
Java:
Expand Collapse Copy
private Vec3d calcGlidingVelocity(Vec3d oldVelocity) {
        Vec3d vec3d = this.getRotationVector();
        float f = this.getPitch() * (float) (Math.PI / 180.0);
        double d = Math.sqrt(vec3d.x * vec3d.x + vec3d.z * vec3d.z);
        double e = oldVelocity.horizontalLength();
        double g = this.getEffectiveGravity();
        double h = MathHelper.square(Math.cos((double)f));
        oldVelocity = oldVelocity.add(0.0, g * (-1.0 + h * 0.75), 0.0);
        if (oldVelocity.y < 0.0 && d > 0.0) {
            double i = oldVelocity.y * -0.1 * h;
            oldVelocity = oldVelocity.add(vec3d.x * i / d, i, vec3d.z * i / d);
        }

        if (f < 0.0F && d > 0.0) {
            double i = e * (double)(-MathHelper.sin(f)) * 0.04;
            oldVelocity = oldVelocity.add(-vec3d.x * i / d, i * 3.2, -vec3d.z * i / d);
        }

        if (d > 0.0) {
            oldVelocity = oldVelocity.add((vec3d.x / d * e - oldVelocity.x) * 0.1, 0.0, (vec3d.z / d * e - oldVelocity.z) * 0.1);
        }

        return oldVelocity.multiply(0.99F, 0.98F, 0.99F);
    }
После переноса этого метода можем идти и пенить пасточки, по желанию можно добавить кол-во тиков для предикта.
Также не забывайте что этот предикт только на 1 тик вперед!
Это фанат SandFoxy???
 
Назад
Сверху Снизу