Подпишитесь на наш Telegram-канал, чтобы всегда быть в курсе важных обновлений! Перейти

NoHitBoxes expensive 2.0 ready

  • Автор темы Автор темы infclub
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
13 Дек 2023
Сообщения
49
Реакции
0
Функция позволяет лутать мистики и тд через игроков вот код:
если что делал за основой HitBox и это первая функция
NoHitBox:
Expand Collapse Copy
package wtf.expensive.modules.impl.combat;

import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.AxisAlignedBB;
import wtf.expensive.events.Event;
import wtf.expensive.events.impl.render.EventRender;
import wtf.expensive.modules.Function;
import wtf.expensive.modules.FunctionAnnotation;
import wtf.expensive.modules.Type;
import wtf.expensive.modules.settings.imp.BooleanOption;
import wtf.expensive.modules.settings.imp.SliderSetting;

/**
[LIST]
[*][USER=35246]@Author[/USER] va1dy
[*][USER=30931]@since[/USER] 21.02.2024
[/LIST]
*/
@FunctionAnnotation(name = "NoHitBox", type = Type.Combat)
public class NoHitBox extends Function {

    public final SliderSetting size = new SliderSetting("Размер", -1.0f, -1.f, -1.f, 0.00f);
    public final BooleanOption invisible = new BooleanOption("Невидимые", false);

    public NoHitBox() {
        addSettings(size, invisible);
    }

    @Override
    public void onEvent(final Event event) {
        handleEvent(event);
    }

    /**
     * Обрабатываем событие.
     */
    private void handleEvent(Event event) {
        // Проверка, является ли событие типом EventRender и включено ли 3D-отображение
        if (!(event instanceof EventRender && ((EventRender) event).isRender3D()))
            return;

        // Проверка, включен ли режим невидимости
        if (invisible.get())
            return;

        // Выполнение корректировки границ хитбокса для игроков
        adjustBoundingBoxesForPlayers();
    }

    /**
     * Настраиваем хитбокс игрока под кастомный размер.
     */
    private void adjustBoundingBoxesForPlayers() {
        // Перебор всех игроков в мире
        for (PlayerEntity player : mc.world.getPlayers()) {
            // Проверка, нужно ли пропустить данного игрока при корректировке хитбокса
            if (shouldSkipPlayer(player))
                continue;

            // Вычисление множителя размера и установка нового хитбокса для игрока
            float sizeMultiplier = this.size.getValue().floatValue() * 0.0F;
            setBoundingBox(player, sizeMultiplier);
        }
    }

    /**
     * Проверка на валидного игрока
     */
    private boolean shouldSkipPlayer(PlayerEntity player) {
        // Проверка, нужно ли пропустить данного игрока при корректировке хитбокса
        // Игрок пропускается, если это текущий игрок (mc.player) или если игрок мертв
        return player == mc.player || !player.isAlive();
    }

    /**
     * Устанавливаем новый размер для хитбокса
     */
    private void setBoundingBox(Entity entity, float size) {
        // Вычисление нового хитбокса для сущности и установка ее
        AxisAlignedBB newBoundingBox = calculateBoundingBox(entity, size);
        entity.setBoundingBox(newBoundingBox);
    }

    /**
     * Вычисление координат минимальной и максимальной точек хитбокса для сущности и создание
     * и возвращение нового хитбокса сущности
     */
    private AxisAlignedBB calculateBoundingBox(Entity entity, float size) {
        // Вычисление координат минимальной и максимальной точек хитбокса для сущности
        double minX = entity.getPosX() - size;
        double minY = entity.getBoundingBox().minY;
        double minZ = entity.getPosZ() - size;
        double maxX = entity.getPosX() + size;
        double maxY = entity.getBoundingBox().maxY;
        double maxZ = entity.getPosZ() + size;

        // Создание и возвращение нового хитбокса сущности
        return new AxisAlignedBB(minX, minY, minZ, maxX, maxY, maxZ);
    }
}
 
premium chatgpt code $$$$$$$$$
 
Тот самый NoPlayerTrace который слит вроде в прошлом году
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
1708546703314.png
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу