• Ищем качественного (не новичок) разработчиков Xenforo для этого форума! В идеале, чтобы ты был фулл стек программистом. Если у тебя есть что показать, то свяжись с нами по контактным данным: https://t.me/DREDD

Spider "Блатной" | Forge Ready

  • Автор темы Автор темы ak1
  • Дата начала Дата начала
Forge Api ;-;
Забаненный
Забаненный
Статус
Оффлайн
Регистрация
3 Май 2023
Сообщения
854
Реакции
19
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Короче дефолтный блок спайдер, работает впринципе нормально, ротацию кому надо допишите я думаю (как бы если спайдер включен то голову повернуть возможности не будет, а без нее античит даст пизды)
Java:
Expand Collapse Copy
    @SubscribeEvent
    public void onTick(TickEvent.PlayerTickEvent event) {
        if (!this.isEnabled() || event.phase != TickEvent.Phase.START || mc.player == null || !mc.player.horizontalCollision || mc.player.isInWater()) return;

        if (mc.player.isOnGround()) {
            mc.player.jumpFromGround();
        } else if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
            if (getSlot() == -1) {
                ChatUtil.addChatMessage("Для использования этого спайдера у вас должны быть блоки в хотбаре!");
                this.toggle();
                return;
            }

            int lastSlot = mc.player.inventory.selected;
            mc.player.inventory.selected = getSlot();

            mc.player.xRot = 80;
            mc.player.yRot = mc.player.getYHeadRot();
            mc.player.yBodyRot = mc.player.getYHeadRot();

            Vector3d start = mc.player.getEyePosition(1.0F);
            Vector3d look = mc.player.getViewVector(1.0F);
            Vector3d end = start.add(look.x * 4, look.y * 4, look.z * 4);

            BlockRayTraceResult rayTrace = mc.level.clip(new RayTraceContext(
                    start, end,
                    RayTraceContext.BlockMode.OUTLINE,
                    RayTraceContext.FluidMode.NONE,
                    mc.player));

            mc.player.swing(Hand.MAIN_HAND);
            mc.gameMode.useItemOn(mc.player, mc.level, Hand.MAIN_HAND, rayTrace);

            mc.player.inventory.selected = lastSlot;
            mc.player.fallDistance = 0;
        }
    }

    private int getSlot() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getItem(i);
            if (isValid(stack)) {
                return i;
            }
        }
        return -1;
    }

    private boolean isValid(ItemStack stack) {
        return stack.getItem() instanceof BlockItem && !(stack.getItem() == Items.TORCH)
                || stack.getItem() == Items.WATER_BUCKET;
    }
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
норм
 
сдела так спидер что бы он цеплялся паутинкой за объекты как в чоловеки поуке?????
 
Какой то опущеный он, а не блатной
 
блатной он типо выёбывается, крутой?
 
Короче дефолтный блок спайдер, работает впринципе нормально, ротацию кому надо допишите я думаю (как бы если спайдер включен то голову повернуть возможности не будет, а без нее античит даст пизды)
Java:
Expand Collapse Copy
    @SubscribeEvent
    public void onTick(TickEvent.PlayerTickEvent event) {
        if (!this.isEnabled() || event.phase != TickEvent.Phase.START || mc.player == null || !mc.player.horizontalCollision || mc.player.isInWater()) return;

        if (mc.player.isOnGround()) {
            mc.player.jumpFromGround();
        } else if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
            if (getSlot() == -1) {
                ChatUtil.addChatMessage("Для использования этого спайдера у вас должны быть блоки в хотбаре!");
                this.toggle();
                return;
            }

            int lastSlot = mc.player.inventory.selected;
            mc.player.inventory.selected = getSlot();

            mc.player.xRot = 80;
            mc.player.yRot = mc.player.getYHeadRot();
            mc.player.yBodyRot = mc.player.getYHeadRot();

            Vector3d start = mc.player.getEyePosition(1.0F);
            Vector3d look = mc.player.getViewVector(1.0F);
            Vector3d end = start.add(look.x * 4, look.y * 4, look.z * 4);

            BlockRayTraceResult rayTrace = mc.level.clip(new RayTraceContext(
                    start, end,
                    RayTraceContext.BlockMode.OUTLINE,
                    RayTraceContext.FluidMode.NONE,
                    mc.player));

            mc.player.swing(Hand.MAIN_HAND);
            mc.gameMode.useItemOn(mc.player, mc.level, Hand.MAIN_HAND, rayTrace);

            mc.player.inventory.selected = lastSlot;
            mc.player.fallDistance = 0;
        }
    }

    private int getSlot() {
        for (int i = 0; i < 9; i++) {
            ItemStack stack = mc.player.inventory.getItem(i);
            if (isValid(stack)) {
                return i;
            }
        }
        return -1;
    }

    private boolean isValid(ItemStack stack) {
        return stack.getItem() instanceof BlockItem && !(stack.getItem() == Items.TORCH)
                || stack.getItem() == Items.WATER_BUCKET;
    }
Ну и...... Х
U
Y
N
Я
 
? годнота,побольше бы
 
Назад
Сверху Снизу