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

Вопрос Авто тотем rich

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
17 Мар 2025
Сообщения
108
Реакции
0
кто знает,или может помочь с авто тотемом,база rich 1.21.4. я с ним мучаюсь уже долго он тупо талы не сейвит и тотем не возвращает.
 
AutoTotem:
Expand Collapse Copy
package fun.vortex.features.impl.combat;

import fun.vortex.events.player.TickEvent;
import fun.vortex.features.module.Module;
import fun.vortex.features.module.ModuleCategory;
import fun.vortex.features.module.setting.implement.SliderSettings;
import fun.vortex.utils.client.managers.event.EventHandler;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.FieldDefaults;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.screen.slot.SlotActionType;

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

    final SliderSettings healthSetting = new SliderSettings("Хп", "HP for totem").range(1.0f, 20.0f).setValue(10.0f);
    final SliderSettings delaySetting = new SliderSettings("Задержка", "Ticks between swaps").range(0.0f, 5.0f).setValue(0.0f);

    int delayTimer = 0;

    public AutoTotem() {
        super("AutoTotem", ModuleCategory.COMBAT);
        setup(healthSetting, delaySetting);
    }

    @Override
    public void deactivate() {
        delayTimer = 0;
    }

    @EventHandler
    public void onTick(TickEvent event) {
        if (mc.player == null || mc.interactionManager == null) return;

        if (mc.player.getOffHandStack().isOf(Items.TOTEM_OF_UNDYING)) {
            delayTimer = 0;
            return;
        }

        if (delayTimer > 0) {
            delayTimer--;
            return;
        }

        float hp = mc.player.getHealth() + mc.player.getAbsorptionAmount();

        if (hp <= healthSetting.getValue()) {
            int slot = findTotemSlot();
            if (slot != -1) {
                mc.interactionManager.clickSlot(mc.player.playerScreenHandler.syncId, slot, 0, SlotActionType.PICKUP, mc.player);
                mc.interactionManager.clickSlot(mc.player.playerScreenHandler.syncId, 45, 0, SlotActionType.PICKUP, mc.player);
                mc.interactionManager.clickSlot(mc.player.playerScreenHandler.syncId, slot, 0, SlotActionType.PICKUP, mc.player);
                delayTimer = (int) delaySetting.getValue();
            }
        }
    }

    private int findTotemSlot() {
        for (int i = 9; i < 45; i++) {
            ItemStack stack = mc.player.playerScreenHandler.getSlot(i).getStack();
            if (stack.isOf(Items.TOTEM_OF_UNDYING)) {
                return i;
            }
        }
        return -1;
    }
}

пасти под рич, тут хорошая логика.
 
AutoTotem:
Expand Collapse Copy
package fun.vortex.features.impl.combat;

import fun.vortex.events.player.TickEvent;
import fun.vortex.features.module.Module;
import fun.vortex.features.module.ModuleCategory;
import fun.vortex.features.module.setting.implement.SliderSettings;
import fun.vortex.utils.client.managers.event.EventHandler;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.experimental.FieldDefaults;
import net.minecraft.item.ItemStack;
import net.minecraft.item.Items;
import net.minecraft.screen.slot.SlotActionType;

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

    final SliderSettings healthSetting = new SliderSettings("Хп", "HP for totem").range(1.0f, 20.0f).setValue(10.0f);
    final SliderSettings delaySetting = new SliderSettings("Задержка", "Ticks between swaps").range(0.0f, 5.0f).setValue(0.0f);

    int delayTimer = 0;

    public AutoTotem() {
        super("AutoTotem", ModuleCategory.COMBAT);
        setup(healthSetting, delaySetting);
    }

    @Override
    public void deactivate() {
        delayTimer = 0;
    }

    @EventHandler
    public void onTick(TickEvent event) {
        if (mc.player == null || mc.interactionManager == null) return;

        if (mc.player.getOffHandStack().isOf(Items.TOTEM_OF_UNDYING)) {
            delayTimer = 0;
            return;
        }

        if (delayTimer > 0) {
            delayTimer--;
            return;
        }

        float hp = mc.player.getHealth() + mc.player.getAbsorptionAmount();

        if (hp <= healthSetting.getValue()) {
            int slot = findTotemSlot();
            if (slot != -1) {
                mc.interactionManager.clickSlot(mc.player.playerScreenHandler.syncId, slot, 0, SlotActionType.PICKUP, mc.player);
                mc.interactionManager.clickSlot(mc.player.playerScreenHandler.syncId, 45, 0, SlotActionType.PICKUP, mc.player);
                mc.interactionManager.clickSlot(mc.player.playerScreenHandler.syncId, slot, 0, SlotActionType.PICKUP, mc.player);
                delayTimer = (int) delaySetting.getValue();
            }
        }
    }

    private int findTotemSlot() {
        for (int i = 9; i < 45; i++) {
            ItemStack stack = mc.player.playerScreenHandler.getSlot(i).getStack();
            if (stack.isOf(Items.TOTEM_OF_UNDYING)) {
                return i;
            }
        }
        return -1;
    }
}

пасти под рич, тут хорошая логика.
щас попробую заранее спасибо
 
Назад
Сверху Снизу