Часть функционала OpenWalls EXP 3.1

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
17 Апр 2025
Сообщения
48
Реакции
0
Выберите загрузчик игры
  1. Прочие моды
короче, я под фиксил свой код, и сделал опенваллс как у дельты
чуть гпт код, и работает только на сундуки, кому нужно там изи сделать на другие
залуп:
Expand Collapse Copy
public class OpenWalls extends Function {

    private boolean wasRightClickPressed = false;

    public OpenWalls() {

    }

    @Subscribe
    private void onMotion(EventMotion eventMotion) {
        if (mc.player == null || mc.world == null) return;

        
        boolean isRightClickPressed = GLFW.glfwGetMouseButton(mc.getMainWindow().getHandle(), GLFW.GLFW_MOUSE_BUTTON_RIGHT) == GLFW.GLFW_PRESS;

      
        if (isRightClickPressed && !wasRightClickPressed) {
            handleRightClick();
        }

        wasRightClickPressed = isRightClickPressed;
    }

    private void handleRightClick() {
  
        BlockPos targetChest = findChestInLookDirection();

        if (targetChest != null) {
        
            BlockRayTraceResult ray = new BlockRayTraceResult(
                    mc.player.getLookVec(),
                    mc.player.getHorizontalFacing(),
                    targetChest,
                    false
            );

          
            mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, ray);
        }
    }

    private BlockPos findChestInLookDirection() {
      
        double playerX = mc.player.getPosX();
        double playerY = mc.player.getPosY() + mc.player.getEyeHeight();
        double playerZ = mc.player.getPosZ();

      
        float yaw = mc.player.rotationYaw;
        float pitch = mc.player.rotationPitch;

    
        double dirX = -Math.sin(Math.toRadians(yaw)) * Math.cos(Math.toRadians(pitch));
        double dirY = -Math.sin(Math.toRadians(pitch));
        double dirZ = Math.cos(Math.toRadians(yaw)) * Math.cos(Math.toRadians(pitch));

      
        for (double distance = 1.0; distance <= 10.0; distance += 0.5) {
            int blockX = (int) Math.floor(playerX + dirX * distance);
            int blockY = (int) Math.floor(playerY + dirY * distance);
            int blockZ = (int) Math.floor(playerZ + dirZ * distance);

            BlockPos pos = new BlockPos(blockX, blockY, blockZ);

            if (mc.world.getBlockState(pos).getBlock() == Blocks.CHEST) {
                return pos;
            }
        }

      
        return findNearestChest();
    }

    private BlockPos findNearestChest() {
        BlockPos playerPos = mc.player.getPosition();
        BlockPos nearestChest = null;
        double nearestDistance = Double.MAX_VALUE;

      
        for (int x = -5; x <= 5; x++) {
            for (int y = -2; y <= 2; y++) {
                for (int z = -5; z <= 5; z++) {
                    BlockPos pos = playerPos.add(x, y, z);
                    if (mc.world.getBlockState(pos).getBlock() == Blocks.CHEST) {
                        double distance = playerPos.distanceSq(pos);
                        if (distance < nearestDistance) {
                            nearestDistance = distance;
                            nearestChest = pos;
                        }
                    }
                }
            }
        }

        return nearestChest;
    }
}


Пожалуйста, авторизуйтесь для просмотра ссылки.
(no ad)
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Да слей гуишку свою уже
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
У мя давно своя есть, просто интересно было бы посмотреть
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Хуйня /del
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
написать изи на 6 строк
 

Похожие темы

Назад
Сверху Снизу