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

Вопрос Как сделать обход blink или FakeLag

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
22 Май 2025
Сообщения
45
Реакции
0
спастил с thunderhack по итогу флагает как сделать обход как в catlean
Код:
Expand Collapse Copy
package ru.night.module.impl.combat;

import net.fabricmc.api.EnvType;
import net.fabricmc.api.Environment;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.common.CommonPongC2SPacket;
import net.minecraft.network.packet.c2s.common.KeepAliveC2SPacket;
import net.minecraft.network.packet.c2s.play.AdvancementTabC2SPacket;
import net.minecraft.network.packet.c2s.play.ChatMessageC2SPacket;
import net.minecraft.network.packet.c2s.play.ClientStatusC2SPacket;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.network.packet.s2c.play.EntityVelocityUpdateS2CPacket;
import net.minecraft.util.math.Vec3d;
import ru.night.event.EventInit;
import ru.night.event.impl.EventPacket;
import ru.night.event.impl.EventUpdate;
import ru.night.module.api.Category;
import ru.night.module.api.IModule;
import ru.night.module.api.Module;
import ru.night.module.api.setting.Setting;
import ru.night.module.api.setting.impl.BooleanSetting;
import ru.night.module.api.setting.impl.SliderSetting;
import ru.night.util.player.NetworkUtil;
import ru.night.util.player.PlayerUtil;

import java.util.LinkedList;
import java.util.Queue;

@IModule(
        name = "FakeLag",
        description = "Задерживает пакеты движения",
        category = Category.Combat,
        bind = -1
)
@Environment(EnvType.CLIENT)
public class FakeLag extends Module {

    private final BooleanSetting pulse = new BooleanSetting("Pulse", false);
    private final BooleanSetting autoDisable = new BooleanSetting("AutoDisable", false);
    private final BooleanSetting disableOnVelocity = new BooleanSetting("DisableOnVelocity", false);
    private final SliderSetting disablePackets = new SliderSetting("DisablePackets", 17.0f, 1.0f, 1000.0f, 1.0f, false);
    private final SliderSetting pulsePackets = new SliderSetting("PulsePackets", 20.0f, 1.0f, 1000.0f, 1.0f, false);

    public static Vec3d lastPos = Vec3d.ZERO;
    private Vec3d prevVelocity = Vec3d.ZERO;
    private float prevYaw = 0;
    private boolean prevSprinting = false;
    private final Queue<Packet<?>> storedPackets = new LinkedList<>();
    private final Queue<Packet<?>> storedTransactions = new LinkedList<>();
    private boolean sending = false;

    public FakeLag() {
        this.addSettings(new Setting[]{pulse, autoDisable, disableOnVelocity, disablePackets, pulsePackets});
    }

    @Override
    public void onEnable() {
        super.onEnable();
        if (mc.player == null || mc.world == null || mc.getNetworkHandler() == null) {
            toggle();
            return;
        }

        storedTransactions.clear();
        storedPackets.clear();
        lastPos = mc.player.getPos();
        prevVelocity = mc.player.getVelocity();
        prevYaw = mc.player.getYaw();
        prevSprinting = mc.player.isSprinting();
        sending = false;
    }

    @Override
    public void onDisable() {
        if (mc.world == null || mc.player == null) {
            super.onDisable();
            return;
        }

        sending = true;
        while (!storedPackets.isEmpty()) {
            Packet<?> packet = storedPackets.poll();
            if (packet != null) {
                NetworkUtil.sendSilentPacket(packet);
            }
        }
        sending = false;

        super.onDisable();
    }

    @EventInit
    public void onPacket(EventPacket e) {
        if (PlayerUtil.nullCheck()) return;
        if (mc.player == null) return;

        Packet<?> packet = e.getPacket();

        if (!e.isSend()) {
            if (packet instanceof EntityVelocityUpdateS2CPacket vel) {
                if (vel.getEntityId() == mc.player.getId() && disableOnVelocity.get()) {
                    toggle();
                }
            }
            return;
        }

        if (sending) {
            return;
        }

        if (packet instanceof CommonPongC2SPacket) {
            storedTransactions.add(packet);
        }

        if (pulse.get()) {
            if (packet instanceof PlayerMoveC2SPacket) {
                e.cancel();
                storedPackets.add(packet);
            }
        } else {
            if (!(packet instanceof ChatMessageC2SPacket
                    || packet instanceof KeepAliveC2SPacket
                    || packet instanceof AdvancementTabC2SPacket
                    || packet instanceof ClientStatusC2SPacket)) {
                e.cancel();
                storedPackets.add(packet);
            }
        }
    }

    @EventInit
    public void onUpdate(EventUpdate e) {
        if (PlayerUtil.nullCheck()) return;
        if (mc.player == null) return;

        if (pulse.get()) {
            if (storedPackets.size() >= (int) pulsePackets.get()) {
                sendPackets();
            }
        }

        if (autoDisable.get()) {
            if (storedPackets.size() >= (int) disablePackets.get()) {
                toggle();
            }
        }
    }

    private void sendPackets() {
        if (mc.player == null) return;
        sending = true;

        while (!storedPackets.isEmpty()) {
            Packet<?> packet = storedPackets.poll();
            if (packet != null) {
                NetworkUtil.sendSilentPacket(packet);

                if (packet instanceof PlayerMoveC2SPacket movePacket
                        && !(packet instanceof PlayerMoveC2SPacket.LookAndOnGround)) {
                    lastPos = new Vec3d(
                            movePacket.getX(mc.player.getX()),
                            movePacket.getY(mc.player.getY()),
                            movePacket.getZ(mc.player.getZ())
                    );
                }
            }
        }

        sending = false;
        storedPackets.clear();
    }
}
 
лучше сам напиши. Вообще нужно сделать пакет менеджер который будет принимать и хранить пакеты и через некоторое время их отпралять(Fake Lag)
 
лучше сам напиши. Вообще нужно сделать пакет менеджер который будет принимать и хранить пакеты и через некоторое время их отпралять(Fake Lag)
а тут че он делает?
 
а тут че он делает?
private final Queue<Packet<?>> storedTransactions не используются ,
Добавляются CommonPongC2SPacket ,но просто лежат в памяти. они не отправляются. Скорее всего не обойдет ни один античит, только если он ослабленный или отключен. под хвх сервера скорее всего так же не сработает. поэтому лучше напиши самостоятельно, либо возьми с другого клиента, так как тебя просто будет кикать по кд на сервере где стоит грим последней версии, так что максимум под ванильный сервер, рекомендую самому написать либо взять с другого клиента
 
private final Queue<Packet<?>> storedTransactions не используются ,
Добавляются CommonPongC2SPacket ,но просто лежат в памяти. они не отправляются. Скорее всего не обойдет ни один античит, только если он ослабленный или отключен. под хвх сервера скорее всего так же не сработает. поэтому лучше напиши самостоятельно, либо возьми с другого клиента, так как тебя просто будет кикать по кд на сервере где стоит грим последней версии, так что максимум под ванильный сервер, рекомендую самому написать либо взять с другого клиента
а с какого чита скажи пж
 
Никогда не делал blink,но у Rockstar 2.0.0 (который недавно слили) вроде есть нормальный блинк.
ща чекну
Никогда не делал blink,но у Rockstar 2.0.0 (который недавно слили) вроде есть нормальный блинк.
о все спастил спс
 
Последнее редактирование:
Назад
Сверху Снизу