Начинающий
- Статус
- Оффлайн
- Регистрация
- 17 Апр 2025
- Сообщения
- 48
- Реакции
- 0
- Выберите загрузчик игры
- Прочие моды
короче, я под фиксил свой код, и сделал опенваллс как у дельты
чуть гпт код, и работает только на сундуки, кому нужно там изи сделать на другие
чуть гпт код, и работает только на сундуки, кому нужно там изи сделать на другие
залуп:
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)