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

Часть функционала Instant Rebreak Bot I Dimasik.fun

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
31 Июл 2024
Сообщения
13
Реакции
0
Выберите загрузчик игры
  1. Forge
Я вот честно незнаю зачем, может кому то это понадобиться и будет полезно.

ScreenShot: Не имеется, извините.


Instant RebreakBot:
Expand Collapse Copy
package fun.nursultan.modules.impl.miscellaneous;


import com.darkmagician6.eventapi.KirillRexab;
import net.minecraft.block.BlockState;
import net.minecraft.network.play.client.CAnimateHandPacket;
import net.minecraft.network.play.client.CPlayerDiggingPacket;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.shapes.VoxelShapes;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import other.bot.Bot;
import other.bot.BotManager;
import fun.nursultan.events.EventBlockDamage;
import fun.nursultan.events.EventGameUpdate;
import fun.nursultan.modules.Category;
import fun.nursultan.modules.Module;

public class InstantRebreak extends Module {

   private int sinceLastDamage;

    public InstantRebreak() {
        super("Rebreak Bot","Функция предназначенная для ботов", Category.Miscellaneous);


    }

    private final BlockPos.Mutable blockPos = new BlockPos.Mutable(0, Integer.MIN_VALUE, 0);
    private int ticks;
    private Direction direction;


    @Override
    public void onEnable() {
        ticks = 0;
        sinceLastDamage = 999;
        blockPos.setPos(0, Integer.MIN_VALUE, 0);
        direction = null;
        super.onEnable();
    }

//    private void render(EventRender3D.Post e) {
//        if ((mc.world == null || mc.player == null) || !render.getValue()) return;
//        if (blockPos.getY() == Integer.MIN_VALUE) return;
//        if (blockPos != null) {
//            VisualHelpers.drawBlockBox(blockPos, -1);
//        }
//    }
    @KirillRexab
    public void dreak(EventBlockDamage e) {
        direction = e.getDirection();
        blockPos.setPos(e.getPos());
    }
    @KirillRexab
    public void tick(EventGameUpdate e) {
        if (ticks >= 0) {

            for (Bot bot : BotManager.autoLesBots) {
                if (bot == null || bot.connection == null || bot.connection.bot == null || bot.connection.getWorld() == null) {
                    continue;
                }
                if (!shouldMineBot(bot)) {
                    continue;
                }

                Direction dir = direction == null ? Direction.UP : direction;
                lookAtBlock(bot.connection.bot, blockPos);

                bot.connection.sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, blockPos, dir));
                bot.connection.sendPacket(new CAnimateHandPacket(Hand.MAIN_HAND));
            }
        } else {
            ticks++;
        }
    }

    private boolean shouldMineBot(Bot bot) {
        if (bot == null || bot.connection == null || bot.connection.bot == null || bot.connection.getWorld() == null) return false;
        if (blockPos.getY() == Integer.MIN_VALUE) return false;
        if (blockPos.getY() < 0 || blockPos.getY() >= 256) return false;

        float reach = bot.connection.botController != null ? bot.connection.botController.getBlockReachDistance() : 4.5F;
        double dist = bot.connection.bot.getPositionVec().distanceTo(new Vector3d(blockPos.getX() + 0.5D, blockPos.getY() + 0.5D, blockPos.getZ() + 0.5D));
        if (dist > (double) reach) return false;

        boolean creative = bot.connection.botController != null && bot.connection.botController.isInCreativeMode();
        if (!canBreak(bot.connection.getWorld(), blockPos, creative)) return false;
        return true;
    }

    private static void lookAtBlock(net.minecraft.entity.player.PlayerEntity player, BlockPos pos) {
        Vector3d eyes = player.getEyePosition(1.0F);
        Vector3d target = new Vector3d(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D);
        Vector3d diff = target.subtract(eyes);

        double diffXZ = Math.sqrt(diff.x * diff.x + diff.z * diff.z);
        float yaw = (float) (MathHelper.atan2(diff.z, diff.x) * (180D / Math.PI)) - 90.0F;
        float pitch = (float) (-(MathHelper.atan2(diff.y, diffXZ) * (180D / Math.PI)));

        yaw = MathHelper.wrapDegrees(yaw);
        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        player.rotationYaw = yaw;
        player.rotationPitch = pitch;
        player.rotationYawHead = yaw;
        player.renderYawOffset = yaw;
    }

    private static boolean canBreak(net.minecraft.world.World world, BlockPos blockPos, boolean creative) {
        if (world == null) return false;
        BlockState state = world.getBlockState(blockPos);
        if (state == null) return false;
        if (!creative && state.getBlockHardness(world, blockPos) < 0) return false;
        return state.getShape(world, blockPos) != VoxelShapes.empty();
    }
}


Возможно говно, удачки всем.
 
а что собственно делает сама функция?
Вроде если ты бьешь какой то блок, то боты которые находятся рядом с тобой бьют этот же блок, и получается типо быстрого копания.
Ну это как я понял по коду.
 
Я вот честно незнаю зачем, может кому то это понадобиться и будет полезно.

ScreenShot: Не имеется, извините.


Instant RebreakBot:
Expand Collapse Copy
package fun.nursultan.modules.impl.miscellaneous;


import com.darkmagician6.eventapi.KirillRexab;
import net.minecraft.block.BlockState;
import net.minecraft.network.play.client.CAnimateHandPacket;
import net.minecraft.network.play.client.CPlayerDiggingPacket;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.shapes.VoxelShapes;
import net.minecraft.util.math.vector.Vector2f;
import net.minecraft.util.math.vector.Vector3d;
import other.bot.Bot;
import other.bot.BotManager;
import fun.nursultan.events.EventBlockDamage;
import fun.nursultan.events.EventGameUpdate;
import fun.nursultan.modules.Category;
import fun.nursultan.modules.Module;

public class InstantRebreak extends Module {

   private int sinceLastDamage;

    public InstantRebreak() {
        super("Rebreak Bot","Функция предназначенная для ботов", Category.Miscellaneous);


    }

    private final BlockPos.Mutable blockPos = new BlockPos.Mutable(0, Integer.MIN_VALUE, 0);
    private int ticks;
    private Direction direction;


    @Override
    public void onEnable() {
        ticks = 0;
        sinceLastDamage = 999;
        blockPos.setPos(0, Integer.MIN_VALUE, 0);
        direction = null;
        super.onEnable();
    }

//    private void render(EventRender3D.Post e) {
//        if ((mc.world == null || mc.player == null) || !render.getValue()) return;
//        if (blockPos.getY() == Integer.MIN_VALUE) return;
//        if (blockPos != null) {
//            VisualHelpers.drawBlockBox(blockPos, -1);
//        }
//    }
    @KirillRexab
    public void dreak(EventBlockDamage e) {
        direction = e.getDirection();
        blockPos.setPos(e.getPos());
    }
    @KirillRexab
    public void tick(EventGameUpdate e) {
        if (ticks >= 0) {

            for (Bot bot : BotManager.autoLesBots) {
                if (bot == null || bot.connection == null || bot.connection.bot == null || bot.connection.getWorld() == null) {
                    continue;
                }
                if (!shouldMineBot(bot)) {
                    continue;
                }

                Direction dir = direction == null ? Direction.UP : direction;
                lookAtBlock(bot.connection.bot, blockPos);

                bot.connection.sendPacket(new CPlayerDiggingPacket(CPlayerDiggingPacket.Action.STOP_DESTROY_BLOCK, blockPos, dir));
                bot.connection.sendPacket(new CAnimateHandPacket(Hand.MAIN_HAND));
            }
        } else {
            ticks++;
        }
    }

    private boolean shouldMineBot(Bot bot) {
        if (bot == null || bot.connection == null || bot.connection.bot == null || bot.connection.getWorld() == null) return false;
        if (blockPos.getY() == Integer.MIN_VALUE) return false;
        if (blockPos.getY() < 0 || blockPos.getY() >= 256) return false;

        float reach = bot.connection.botController != null ? bot.connection.botController.getBlockReachDistance() : 4.5F;
        double dist = bot.connection.bot.getPositionVec().distanceTo(new Vector3d(blockPos.getX() + 0.5D, blockPos.getY() + 0.5D, blockPos.getZ() + 0.5D));
        if (dist > (double) reach) return false;

        boolean creative = bot.connection.botController != null && bot.connection.botController.isInCreativeMode();
        if (!canBreak(bot.connection.getWorld(), blockPos, creative)) return false;
        return true;
    }

    private static void lookAtBlock(net.minecraft.entity.player.PlayerEntity player, BlockPos pos) {
        Vector3d eyes = player.getEyePosition(1.0F);
        Vector3d target = new Vector3d(pos.getX() + 0.5D, pos.getY() + 0.5D, pos.getZ() + 0.5D);
        Vector3d diff = target.subtract(eyes);

        double diffXZ = Math.sqrt(diff.x * diff.x + diff.z * diff.z);
        float yaw = (float) (MathHelper.atan2(diff.z, diff.x) * (180D / Math.PI)) - 90.0F;
        float pitch = (float) (-(MathHelper.atan2(diff.y, diffXZ) * (180D / Math.PI)));

        yaw = MathHelper.wrapDegrees(yaw);
        pitch = MathHelper.clamp(pitch, -90.0F, 90.0F);

        player.rotationYaw = yaw;
        player.rotationPitch = pitch;
        player.rotationYawHead = yaw;
        player.renderYawOffset = yaw;
    }

    private static boolean canBreak(net.minecraft.world.World world, BlockPos blockPos, boolean creative) {
        if (world == null) return false;
        BlockState state = world.getBlockState(blockPos);
        if (state == null) return false;
        if (!creative && state.getBlockHardness(world, blockPos) < 0) return false;
        return state.getShape(world, blockPos) != VoxelShapes.empty();
    }
}


Возможно говно, удачки всем.
Типа как в кошке ( noad ) фармит монеты на рв без ломания дерева?
 
сорян - это не рабчий модуль
Для него нужны боты.
а что собственно делает сама функция?
если боты есть в клиенте добавляешь чет там и когда они возле дерева баганого на рв включаешь функцию и зарабытваешь
 
Для него нужны боты.

если боты есть в клиенте добавляешь чет там и когда они возле дерева баганого на рв включаешь функцию и зарабытваешь
чувак это мой модуль я прекрасно знаю что для него нужны боты. Сама суть = модуль криворукий, даже добавив ботов корректно работать не будет из за конченного кода и проверок + ротаций + пакетов.
 
чувак это мой модуль я прекрасно знаю что для него нужны боты. Сама суть = модуль криворукий, даже добавив ботов корректно работать не будет из за конченного кода и проверок + ротаций + пакетов.
У меня все прекрасно воркает, незнаю что у тебя.
 
Назад
Сверху Снизу