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

Вопрос Nursultan Flight | HolyWorld блоки?

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
30 Июл 2024
Сообщения
13
Реакции
0
У друга есть нурик,в нем работает флай блоками причем как blockfly он не лагает,а со стороны выглядит так как будто он строится пустотой.
Помогите сделать код под 1.21.4 fabric
 
В нурике это SlowPackets(Замедление пакетов) + Scaffold(ну думаю каждый знает что это) вот и весь обход под хв но он отправляет жалобы как я знаю модерам так что xzxz ну а так обходит +- задержка 2000 этого хватит
(если не знаешь как сделать SlowPackets как я помню в старом excellent был вроде-бы)
 
В нурике это SlowPackets(Замедление пакетов) + Scaffold(ну думаю каждый знает что это) вот и весь обход под хв но он отправляет жалобы как я знаю модерам так что xzxz ну а так обходит +- задержка 2000 этого хватит
(если не знаешь как сделать SlowPackets как я помню в старом excellent был вроде-бы)
спасибо большое,но как это реализовать хз
blockfly:
Expand Collapse Copy
package wtf.dettex.modules.impl.movement;

import antidaunleak.api.annotation.Native;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket;
import wtf.dettex.event.EventHandler;
import wtf.dettex.modules.api.Module;
import wtf.dettex.modules.api.ModuleCategory;
import wtf.dettex.modules.setting.implement.BooleanSetting;
import wtf.dettex.modules.setting.implement.ValueSetting;
import wtf.dettex.common.util.entity.PlayerIntersectionUtil;
import wtf.dettex.common.util.other.StopWatch;
import wtf.dettex.event.impl.packet.PacketEvent;
import wtf.dettex.event.impl.player.TickEvent;

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

@FieldDefaults(level = AccessLevel.PRIVATE)
public class BlockFly extends Module {

    private final ValueSetting intervalSetting = new ValueSetting("Interval", "Интервал в мс")
            .range(50f, 5000f).setValue(500f);
    private final ValueSetting maxQueueSetting = new ValueSetting("MaxQueue", "Размер очереди")
            .range(100f, 5000f).setValue(1000f);
    private final BooleanSetting debugSetting = new BooleanSetting("Debug", "Логирование").setValue(false);

    private final Queue<Packet<?>> storedPackets = new LinkedList<>();
    private final Random random = new Random();
    private boolean sending = false;
    private final StopWatch pulseTimer = new StopWatch();
    private int currentDelayMs = 0;

    public BlockFly() {
        super("BlockFly", "BlockFly", ModuleCategory.MOVEMENT);
        setup(intervalSetting, maxQueueSetting, debugSetting);
    }

    @Override
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void activate() {
        if (PlayerIntersectionUtil.nullCheck()) {
            setState(false);
            return;
        }
        storedPackets.clear();
        sending = false;
        pulseTimer.reset();
        currentDelayMs = getDelay();
    }

    @Override
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void deactivate() {
        if (!PlayerIntersectionUtil.nullCheck()) {
            flushPackets();
        }
    }

    @EventHandler
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void onTick(TickEvent e) {
        if (PlayerIntersectionUtil.nullCheck()) return;

        if (pulseTimer.finished(currentDelayMs) && !storedPackets.isEmpty()) {
            flushPackets();
            pulseTimer.reset();
            currentDelayMs = getDelay();
        }
    }

    @EventHandler
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void onPacket(PacketEvent e) {
        if (PlayerIntersectionUtil.nullCheck() || !e.isSend() || sending) return;

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

        // Не блокируем важные пакеты
        if (packet instanceof PlayerMoveC2SPacket || packet instanceof ClientCommandC2SPacket) {
            return;
        }

        if (storedPackets.size() >= (int) maxQueueSetting.getValue()) {
            return;
        }

        e.cancel();
        storedPackets.add(packet);
    }

    private int flushPackets() {
        if (PlayerIntersectionUtil.nullCheck()) return 0;

        sending = true;
        int count = 0;
        while (!storedPackets.isEmpty()) {
            Packet<?> packet = storedPackets.poll();
            if (packet != null) {
                mc.getNetworkHandler().sendPacket(packet);
                count++;
            }
        }
        sending = false;
        return count;
    }

    private int getDelay() {
        return rand(150, 250);
    }

    private int rand(int min, int max) {
        return min + random.nextInt(max - min + 1);
    }


    public String getDisplayInfo() {
        return String.valueOf(storedPackets.size());
    }
}
спасибо большое,но как это реализовать хз
blockfly:
Expand Collapse Copy
package wtf.dettex.modules.impl.movement;

import antidaunleak.api.annotation.Native;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket;
import wtf.dettex.event.EventHandler;
import wtf.dettex.modules.api.Module;
import wtf.dettex.modules.api.ModuleCategory;
import wtf.dettex.modules.setting.implement.BooleanSetting;
import wtf.dettex.modules.setting.implement.ValueSetting;
import wtf.dettex.common.util.entity.PlayerIntersectionUtil;
import wtf.dettex.common.util.other.StopWatch;
import wtf.dettex.event.impl.packet.PacketEvent;
import wtf.dettex.event.impl.player.TickEvent;

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

@FieldDefaults(level = AccessLevel.PRIVATE)
public class BlockFly extends Module {

    private final ValueSetting intervalSetting = new ValueSetting("Interval", "Интервал в мс")
            .range(50f, 5000f).setValue(500f);
    private final ValueSetting maxQueueSetting = new ValueSetting("MaxQueue", "Размер очереди")
            .range(100f, 5000f).setValue(1000f);
    private final BooleanSetting debugSetting = new BooleanSetting("Debug", "Логирование").setValue(false);

    private final Queue<Packet<?>> storedPackets = new LinkedList<>();
    private final Random random = new Random();
    private boolean sending = false;
    private final StopWatch pulseTimer = new StopWatch();
    private int currentDelayMs = 0;

    public BlockFly() {
        super("BlockFly", "BlockFly", ModuleCategory.MOVEMENT);
        setup(intervalSetting, maxQueueSetting, debugSetting);
    }

    @Override
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void activate() {
        if (PlayerIntersectionUtil.nullCheck()) {
            setState(false);
            return;
        }
        storedPackets.clear();
        sending = false;
        pulseTimer.reset();
        currentDelayMs = getDelay();
    }

    @Override
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void deactivate() {
        if (!PlayerIntersectionUtil.nullCheck()) {
            flushPackets();
        }
    }

    @EventHandler
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void onTick(TickEvent e) {
        if (PlayerIntersectionUtil.nullCheck()) return;

        if (pulseTimer.finished(currentDelayMs) && !storedPackets.isEmpty()) {
            flushPackets();
            pulseTimer.reset();
            currentDelayMs = getDelay();
        }
    }

    @EventHandler
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void onPacket(PacketEvent e) {
        if (PlayerIntersectionUtil.nullCheck() || !e.isSend() || sending) return;

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

        // Не блокируем важные пакеты
        if (packet instanceof PlayerMoveC2SPacket || packet instanceof ClientCommandC2SPacket) {
            return;
        }

        if (storedPackets.size() >= (int) maxQueueSetting.getValue()) {
            return;
        }

        e.cancel();
        storedPackets.add(packet);
    }

    private int flushPackets() {
        if (PlayerIntersectionUtil.nullCheck()) return 0;

        sending = true;
        int count = 0;
        while (!storedPackets.isEmpty()) {
            Packet<?> packet = storedPackets.poll();
            if (packet != null) {
                mc.getNetworkHandler().sendPacket(packet);
                count++;
            }
        }
        sending = false;
        return count;
    }

    private int getDelay() {
        return rand(150, 250);
    }

    private int rand(int min, int max) {
        return min + random.nextInt(max - min + 1);
    }


    public String getDisplayInfo() {
        return String.valueOf(storedPackets.size());
    }
}
код выше прикрепил,пытался этой штукой(на югейме нашел)
А что по настройкам хз
 
В нурике это SlowPackets(Замедление пакетов) + Scaffold(ну думаю каждый знает что это) вот и весь обход под хв но он отправляет жалобы как я знаю модерам так что xzxz ну а так обходит +- задержка 2000 этого хватит
(если не знаешь как сделать SlowPackets как я помню в старом excellent был вроде-бы)
а и если не секрет где можно найти такой(какая версия екселлента)?
 
спасибо большое,но как это реализовать хз
blockfly:
Expand Collapse Copy
package wtf.dettex.modules.impl.movement;

import antidaunleak.api.annotation.Native;
import lombok.AccessLevel;
import lombok.experimental.FieldDefaults;
import net.minecraft.network.packet.Packet;
import net.minecraft.network.packet.c2s.play.PlayerMoveC2SPacket;
import net.minecraft.network.packet.c2s.play.ClientCommandC2SPacket;
import wtf.dettex.event.EventHandler;
import wtf.dettex.modules.api.Module;
import wtf.dettex.modules.api.ModuleCategory;
import wtf.dettex.modules.setting.implement.BooleanSetting;
import wtf.dettex.modules.setting.implement.ValueSetting;
import wtf.dettex.common.util.entity.PlayerIntersectionUtil;
import wtf.dettex.common.util.other.StopWatch;
import wtf.dettex.event.impl.packet.PacketEvent;
import wtf.dettex.event.impl.player.TickEvent;

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

@FieldDefaults(level = AccessLevel.PRIVATE)
public class BlockFly extends Module {

    private final ValueSetting intervalSetting = new ValueSetting("Interval", "Интервал в мс")
            .range(50f, 5000f).setValue(500f);
    private final ValueSetting maxQueueSetting = new ValueSetting("MaxQueue", "Размер очереди")
            .range(100f, 5000f).setValue(1000f);
    private final BooleanSetting debugSetting = new BooleanSetting("Debug", "Логирование").setValue(false);

    private final Queue<Packet<?>> storedPackets = new LinkedList<>();
    private final Random random = new Random();
    private boolean sending = false;
    private final StopWatch pulseTimer = new StopWatch();
    private int currentDelayMs = 0;

    public BlockFly() {
        super("BlockFly", "BlockFly", ModuleCategory.MOVEMENT);
        setup(intervalSetting, maxQueueSetting, debugSetting);
    }

    @Override
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void activate() {
        if (PlayerIntersectionUtil.nullCheck()) {
            setState(false);
            return;
        }
        storedPackets.clear();
        sending = false;
        pulseTimer.reset();
        currentDelayMs = getDelay();
    }

    @Override
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void deactivate() {
        if (!PlayerIntersectionUtil.nullCheck()) {
            flushPackets();
        }
    }

    @EventHandler
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void onTick(TickEvent e) {
        if (PlayerIntersectionUtil.nullCheck()) return;

        if (pulseTimer.finished(currentDelayMs) && !storedPackets.isEmpty()) {
            flushPackets();
            pulseTimer.reset();
            currentDelayMs = getDelay();
        }
    }

    @EventHandler
    @Native(type = Native.Type.VMProtectBeginUltra)
    public void onPacket(PacketEvent e) {
        if (PlayerIntersectionUtil.nullCheck() || !e.isSend() || sending) return;

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

        // Не блокируем важные пакеты
        if (packet instanceof PlayerMoveC2SPacket || packet instanceof ClientCommandC2SPacket) {
            return;
        }

        if (storedPackets.size() >= (int) maxQueueSetting.getValue()) {
            return;
        }

        e.cancel();
        storedPackets.add(packet);
    }

    private int flushPackets() {
        if (PlayerIntersectionUtil.nullCheck()) return 0;

        sending = true;
        int count = 0;
        while (!storedPackets.isEmpty()) {
            Packet<?> packet = storedPackets.poll();
            if (packet != null) {
                mc.getNetworkHandler().sendPacket(packet);
                count++;
            }
        }
        sending = false;
        return count;
    }

    private int getDelay() {
        return rand(150, 250);
    }

    private int rand(int min, int max) {
        return min + random.nextInt(max - min + 1);
    }


    public String getDisplayInfo() {
        return String.valueOf(storedPackets.size());
    }
}

код выше прикрепил,пытался этой штукой(на югейме нашел)
А что по настройкам хз
это другое, тут по другому пакеты замедляються, они должны для блокфлая на спавне/в рг отправляться с задержкой, а тут они кучкой отправляються, в expensive 2.0 есть и скаффолд и слоупакеты
 
У друга есть нурик,в нем работает флай блоками причем как blockfly он не лагает,а со стороны выглядит так как будто он строится пустотой.
Помогите сделать код под 1.21.4 fabric
в чем проблемма пакеты замедлять ставить и ставить блок с экспенсива 2.0 возьми хз
 
Назад
Сверху Снизу