Вопрос Можете дать намёк как делать invmove для spookytime

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
14 Сен 2024
Сообщения
91
Реакции
0
Можете описать или сказать как сделать обход на спукитайм на inv move что предметы просто не возвращались обратно
Уже пытался написать ( без гпт ) обход он работает но именно в прыжке или иногда спринт предмет возвращается обратно либо стопает и флагает
 
Привет, добавь задержки. Добавь откладку пакетов.

Пример:


pepe:
Expand Collapse Copy
package lun.hydra.game.modules.impl.movement;

import lun.hydra.api.events.EventMotion;
import lun.hydra.api.events.EventPacket;
import lun.hydra.api.events.InventoryCloseEvent;
import lun.hydra.game.modules.api.Category;
import lun.hydra.game.modules.api.Module;
import lun.hydra.game.modules.api.ModuleRegister;
import lun.hydra.game.modules.settings.impl.CheckBoxSetting;
import lun.hydra.api.utils.math.StopWatch;
import lun.hydra.api.utils.player.MoveUtils;
import com.google.common.eventbus.Subscribe;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.EditSignScreen;
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
import net.minecraft.client.gui.screen.inventory.InventoryScreen;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.util.InputMappings;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CClickWindowPacket;
import java.util.ArrayList;
import java.util.List;
@ModuleRegister(name = "InventoryMove", desc = "Передвигаться в инвентаре", category = Category.Movement)
public class invwalk extends Module {
    private final List<IPacket<?>> packet = new ArrayList<>();
    public final CheckBoxSetting ft = new CheckBoxSetting("Обход", false);
    public final CheckBoxSetting disableInContainer = new CheckBoxSetting("Отключать в контейнере", false);
    public invwalk() {addSettings(ft, disableInContainer);}
    @Subscribe
    public void onUpdate(EventMotion e) {
        if (mc.player != null) {
            if (disableInContainer.get()
                    && mc.currentScreen instanceof ContainerScreen<?>
                    && !(mc.currentScreen instanceof InventoryScreen)) {
                return;
            }
            final KeyBinding[] pressedKeys = {mc.gameSettings.keyBindForward, mc.gameSettings.keyBindBack,
                    mc.gameSettings.keyBindLeft, mc.gameSettings.keyBindRight, mc.gameSettings.keyBindJump,
                    mc.gameSettings.keyBindSprint};
            if (!wait.isReached(200) && ft.get()) {
                for (KeyBinding keyBinding : pressedKeys) {
                    keyBinding.setPressed(false);
                }
                return;
            }
            if (mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof EditSignScreen) {
                return;
            }
            updateKeyBindingState(pressedKeys);

        }
    }
    @Subscribe
    public void onPacket(EventPacket e) {
        if (ft.get()) {
            if (e.getPacket() instanceof CClickWindowPacket p && MoveUtils.isMoving()) {
                if (mc.currentScreen instanceof InventoryScreen) {
                    packet.add(p);
                    e.cancel();
                }
            }
        }
    }
    public StopWatch wait = new StopWatch();
    @Subscribe
    public void onClose(InventoryCloseEvent e) {
        if (ft.get()) {
            if (mc.currentScreen instanceof InventoryScreen && !packet.isEmpty() && MoveUtils.isMoving()) {
                new Thread(() -> {
                    wait.reset();
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException ex) {
                        throw new RuntimeException(ex);
                    }
                    for (IPacket p : packet) {
                        mc.player.connection.sendPacketWithoutEvent(p);
                    }
                    packet.clear();
                }).start();
                e.cancel();
            }
        }
    }
    private void updateKeyBindingState(KeyBinding[] keyBindings) {
        for (KeyBinding keyBinding : keyBindings) {
            boolean isKeyPressed = InputMappings.isKeyDown(mc.getMainWindow().getHandle(), keyBinding.getDefault().getKeyCode());
            keyBinding.setPressed(isKeyPressed);
        }
    }
}
 
Привет, добавь задержки. Добавь откладку пакетов.

Пример:


pepe:
Expand Collapse Copy
package lun.hydra.game.modules.impl.movement;

import lun.hydra.api.events.EventMotion;
import lun.hydra.api.events.EventPacket;
import lun.hydra.api.events.InventoryCloseEvent;
import lun.hydra.game.modules.api.Category;
import lun.hydra.game.modules.api.Module;
import lun.hydra.game.modules.api.ModuleRegister;
import lun.hydra.game.modules.settings.impl.CheckBoxSetting;
import lun.hydra.api.utils.math.StopWatch;
import lun.hydra.api.utils.player.MoveUtils;
import com.google.common.eventbus.Subscribe;
import net.minecraft.client.gui.screen.ChatScreen;
import net.minecraft.client.gui.screen.EditSignScreen;
import net.minecraft.client.gui.screen.inventory.ContainerScreen;
import net.minecraft.client.gui.screen.inventory.InventoryScreen;
import net.minecraft.client.settings.KeyBinding;
import net.minecraft.client.util.InputMappings;
import net.minecraft.network.IPacket;
import net.minecraft.network.play.client.CClickWindowPacket;
import java.util.ArrayList;
import java.util.List;
@ModuleRegister(name = "InventoryMove", desc = "Передвигаться в инвентаре", category = Category.Movement)
public class invwalk extends Module {
    private final List<IPacket<?>> packet = new ArrayList<>();
    public final CheckBoxSetting ft = new CheckBoxSetting("Обход", false);
    public final CheckBoxSetting disableInContainer = new CheckBoxSetting("Отключать в контейнере", false);
    public invwalk() {addSettings(ft, disableInContainer);}
    @Subscribe
    public void onUpdate(EventMotion e) {
        if (mc.player != null) {
            if (disableInContainer.get()
                    && mc.currentScreen instanceof ContainerScreen<?>
                    && !(mc.currentScreen instanceof InventoryScreen)) {
                return;
            }
            final KeyBinding[] pressedKeys = {mc.gameSettings.keyBindForward, mc.gameSettings.keyBindBack,
                    mc.gameSettings.keyBindLeft, mc.gameSettings.keyBindRight, mc.gameSettings.keyBindJump,
                    mc.gameSettings.keyBindSprint};
            if (!wait.isReached(200) && ft.get()) {
                for (KeyBinding keyBinding : pressedKeys) {
                    keyBinding.setPressed(false);
                }
                return;
            }
            if (mc.currentScreen instanceof ChatScreen || mc.currentScreen instanceof EditSignScreen) {
                return;
            }
            updateKeyBindingState(pressedKeys);

        }
    }
    @Subscribe
    public void onPacket(EventPacket e) {
        if (ft.get()) {
            if (e.getPacket() instanceof CClickWindowPacket p && MoveUtils.isMoving()) {
                if (mc.currentScreen instanceof InventoryScreen) {
                    packet.add(p);
                    e.cancel();
                }
            }
        }
    }
    public StopWatch wait = new StopWatch();
    @Subscribe
    public void onClose(InventoryCloseEvent e) {
        if (ft.get()) {
            if (mc.currentScreen instanceof InventoryScreen && !packet.isEmpty() && MoveUtils.isMoving()) {
                new Thread(() -> {
                    wait.reset();
                    try {
                        Thread.sleep(100);
                    } catch (InterruptedException ex) {
                        throw new RuntimeException(ex);
                    }
                    for (IPacket p : packet) {
                        mc.player.connection.sendPacketWithoutEvent(p);
                    }
                    packet.clear();
                }).start();
                e.cancel();
            }
        }
    }
    private void updateKeyBindingState(KeyBinding[] keyBindings) {
        for (KeyBinding keyBinding : keyBindings) {
            boolean isKeyPressed = InputMappings.isKeyDown(mc.getMainWindow().getHandle(), keyBinding.getDefault().getKeyCode());
            keyBinding.setPressed(isKeyPressed);
        }
    }
}
Большое спасибо за подсказку и код
 
Назад
Сверху Снизу