Spider FUNTIME Fence | Expensive 3.1

  • Автор темы Автор темы Moyten
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
503
Реакции
3
Сливаю вам байпасс спайдера aka FenceFly в дельте
Вам нужно:
1. Держать забор любого материала в хотбаре( с инвентаря будет в хаб кикать)
2. Поставить столб 2 забора в высоту
3. Встать в упор к заборам
4. Включить функцию и зажать W
Иногда может подфлагивать когда у вас заканчивается стак заборов и начинают ставиться новые
Так же иногда когда ставит последний забор может дать запрыгнуть на верх и не упасть, но вероятнее всего вы начнете падать, можете поставить под себя блок либо
улучшить чтоб последний забор оно ставило под игроком

SS =
FenceFly:
Expand Collapse Copy
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventMotion;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.MouseUtil;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.multiplayer.PlayerController;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Items;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;

@FunctionRegister(name = "Spider", type = Category.Movement)
public class Spider extends Function {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Matrix", "Funtime Fence");
    private final SliderSetting spiderSpeed = new SliderSetting(
            "Speed",
            2.0f,
            1.0f,
            10.0f,
            0.05f
    ).setVisible(() -> !mode.is("Grim") && !mode.is("Funtime Fence"));

    StopWatch stopWatch = new StopWatch();

    public Spider() {
        addSettings(spiderSpeed, mode);
    }

    /**
     * author moyten
     * wonderful boost yoo
     */
    @Subscribe
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slotInHotBar = getSlotInInventoryOrHotbar(true);

                if (slotInHotBar == -1) {
                    print("Блоки не найдены!");
                    toggle();
                    return;
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocks(motion, slotInHotBar);
                }
            }
            case "Funtime Fence" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = 200;
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    placeFenceStack(motion);
                    stopWatch.reset();
                }
            }
        }
    }


    private void placeFenceStack(EventMotion motion) {
        int slotFence = getSlotForFence();
        if (slotFence == -1) {
            print("Заборы не найдены!");
            toggle();
            return;
        }

        int lastSlot = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slotFence;

        BlockPos playerPos = mc.player.getPosition();

        for (int i = 1; i <= 2; i++) {
            BlockPos fencePos = playerPos.up(i);
            if (mc.world.getBlockState(fencePos).isAir()) {
                placeFenceBlock(fencePos, Hand.MAIN_HAND, mc.playerController, mc.world, mc.player);
            }
        }

        mc.player.inventory.currentItem = lastSlot;
    }
    private void placeFenceBlock(BlockPos pos, Hand hand, PlayerController playerController, World world, ClientPlayerEntity player) {
        if (!world.getBlockState(pos).isAir()) {
            return;
        }

        Direction direction = Direction.UP;
        BlockPos tPos = pos.down();
        BlockRayTraceResult traceResult = new BlockRayTraceResult(
                new Vector3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5),
                direction, tPos, false);

        playerController.processRightClickBlock(player, (ClientWorld) world, hand, traceResult);
        player.swingArm(hand);
    }


    private int getSlotForFence() {
        for (int i = 0; i < 36; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.OAK_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.BIRCH_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.SPRUCE_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.ACACIA_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.DARK_OAK_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.JUNGLE_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.CRIMSON_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WARPED_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.NETHER_BRICK_FENCE) {
                return i;
            }
        }
        return -1;
    }

    public int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }

            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }

        return finalSlot;
    }

private void placeBlocks(EventMotion motion, int block) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = block;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }
}
Жду попкорна и данного обхода в каждом yougame client
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ну опять легенда
 
Сливаю вам байпасс спайдера aka FenceFly в дельте
Вам нужно:
1. Держать забор любого материала в хотбаре( с инвентаря будет в хаб кикать)
2. Поставить столб 2 забора в высоту
3. Встать в упор к заборам
4. Включить функцию и зажать W
Иногда может подфлагивать когда у вас заканчивается стак заборов и начинают ставиться новые
Так же иногда когда ставит последний забор может дать запрыгнуть на верх и не упасть, но вероятнее всего вы начнете падать, можете поставить под себя блок либо
улучшить чтоб последний забор оно ставило под игроком

SS =
FenceFly:
Expand Collapse Copy
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventMotion;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.MouseUtil;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.multiplayer.PlayerController;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Items;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;

@FunctionRegister(name = "Spider", type = Category.Movement)
public class Spider extends Function {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Matrix", "Funtime Fence");
    private final SliderSetting spiderSpeed = new SliderSetting(
            "Speed",
            2.0f,
            1.0f,
            10.0f,
            0.05f
    ).setVisible(() -> !mode.is("Grim") && !mode.is("Funtime Fence"));

    StopWatch stopWatch = new StopWatch();

    public Spider() {
        addSettings(spiderSpeed, mode);
    }

    /**
     * author moyten
     * wonderful boost yoo
     */
    @Subscribe
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slotInHotBar = getSlotInInventoryOrHotbar(true);

                if (slotInHotBar == -1) {
                    print("Блоки не найдены!");
                    toggle();
                    return;
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocks(motion, slotInHotBar);
                }
            }
            case "Funtime Fence" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = 200;
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    placeFenceStack(motion);
                    stopWatch.reset();
                }
            }
        }
    }


    private void placeFenceStack(EventMotion motion) {
        int slotFence = getSlotForFence();
        if (slotFence == -1) {
            print("Заборы не найдены!");
            toggle();
            return;
        }

        int lastSlot = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slotFence;

        BlockPos playerPos = mc.player.getPosition();

        for (int i = 1; i <= 2; i++) {
            BlockPos fencePos = playerPos.up(i);
            if (mc.world.getBlockState(fencePos).isAir()) {
                placeFenceBlock(fencePos, Hand.MAIN_HAND, mc.playerController, mc.world, mc.player);
            }
        }

        mc.player.inventory.currentItem = lastSlot;
    }
    private void placeFenceBlock(BlockPos pos, Hand hand, PlayerController playerController, World world, ClientPlayerEntity player) {
        if (!world.getBlockState(pos).isAir()) {
            return;
        }

        Direction direction = Direction.UP;
        BlockPos tPos = pos.down();
        BlockRayTraceResult traceResult = new BlockRayTraceResult(
                new Vector3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5),
                direction, tPos, false);

        playerController.processRightClickBlock(player, (ClientWorld) world, hand, traceResult);
        player.swingArm(hand);
    }


    private int getSlotForFence() {
        for (int i = 0; i < 36; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.OAK_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.BIRCH_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.SPRUCE_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.ACACIA_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.DARK_OAK_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.JUNGLE_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.CRIMSON_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WARPED_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.NETHER_BRICK_FENCE) {
                return i;
            }
        }
        return -1;
    }

    public int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }

            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }

        return finalSlot;
    }

private void placeBlocks(EventMotion motion, int block) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = block;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }
}
Жду попкорна и данного обхода в каждом yougame client
упс залетела кондиция уже спастил в свой huyjopaexpenisjavapastoyaicakokushkivorobyshki client recode alpha
 
моус утил дай
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Код:
Expand Collapse Copy
package ru.zaharov.utils.player;

import ru.zaharov.utils.client.IMinecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.projectile.ProjectileHelper;
import net.minecraft.util.Direction;
import net.minecraft.util.math.*;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;

import java.util.Optional;
import java.util.function.Predicate;

public class MouseUtil implements IMinecraft {
    public static Entity getMouseOver(Entity target,
                                      float yaw,
                                      float pitch,
                                      double distance) {
        RayTraceResult objectMouseOver;
        Entity entity = mc.getRenderViewEntity();

        if (entity != null && mc.world != null) {
            objectMouseOver = null;
            boolean flag = distance > 3;

            Vector3d startVec = entity.getEyePosition(1);
            Vector3d directionVec = getVectorForRotation(pitch, yaw);
            Vector3d endVec = startVec.add(
                    directionVec.x * distance,
                    directionVec.y * distance,
                    directionVec.z * distance
            );

            AxisAlignedBB axisalignedbb = target.getBoundingBox().grow(target.getCollisionBorderSize());

            EntityRayTraceResult entityraytraceresult = rayTraceEntities(entity,
                    startVec,
                    endVec,
                    axisalignedbb,
                    (p_lambda$getMouseOver$0_0_) ->
                            !p_lambda$getMouseOver$0_0_.isSpectator()
                                    && p_lambda$getMouseOver$0_0_.canBeCollidedWith(), distance
            );

            if (entityraytraceresult != null) {
                if (flag && startVec.distanceTo(startVec) > distance) {
                    objectMouseOver = BlockRayTraceResult.createMiss(startVec, null, new BlockPos(startVec));
                }
                if ((distance < distance || objectMouseOver == null)) {
                    objectMouseOver = entityraytraceresult;
                }
            }
            if (objectMouseOver == null) {
                return null;
            }
            if (objectMouseOver instanceof EntityRayTraceResult obj) {
                return obj.getEntity();
            }
        }
        return null;
    }

    public static EntityRayTraceResult rayTraceEntities(Entity shooter,
                                                        Vector3d startVec,
                                                        Vector3d endVec,
                                                        AxisAlignedBB boundingBox,
                                                        Predicate<Entity> filter,
                                                        double distance) {
        World world = shooter.world;
        double closestDistance = distance;
        Entity entity = null;
        Vector3d closestHitVec = null;

        for (Entity entity1 : world.getEntitiesInAABBexcluding(shooter, boundingBox, filter)) {
            AxisAlignedBB axisalignedbb = entity1.getBoundingBox().grow(entity1.getCollisionBorderSize());
            Optional<Vector3d> optional = axisalignedbb.rayTrace(startVec, endVec);

            if (axisalignedbb.contains(startVec)) {
                if (closestDistance >= 0.0D) {
                    entity = entity1;
                    closestHitVec = startVec;
                    closestDistance = 0.0D;
                }
            } else if (optional.isPresent()) {
                Vector3d vector3d1 = optional.get();
                double d3 = startVec.distanceTo(optional.get());

                if (d3 < closestDistance || closestDistance == 0.0D) {
                    boolean flag1 = false;

                    if (!flag1 && entity1.getLowestRidingEntity() == shooter.getLowestRidingEntity()) {
                        if (closestDistance == 0.0D) {
                            entity = entity1;
                            closestHitVec = vector3d1;
                        }
                    } else {
                        entity = entity1;
                        closestHitVec = vector3d1;
                        closestDistance = d3;
                    }
                }
            }
        }

        return entity == null ? null : new EntityRayTraceResult(entity, closestHitVec);
    }

    public static RayTraceResult rayTrace(double rayTraceDistance,
                                          float yaw,
                                          float pitch,
                                          Entity entity) {
        Vector3d startVec = mc.player.getEyePosition(1.0F);
        Vector3d directionVec = getVectorForRotation(pitch, yaw);
        Vector3d endVec = startVec.add(
                directionVec.x * rayTraceDistance,
                directionVec.y * rayTraceDistance,
                directionVec.z * rayTraceDistance
        );

        return mc.world.rayTraceBlocks(new RayTraceContext(
                startVec,
                endVec,
                RayTraceContext.BlockMode.OUTLINE,
                RayTraceContext.FluidMode.NONE,
                entity)
        );
    }


    public static RayTraceResult rayTraceResult(double rayTraceDistance,
                                                float yaw,
                                                float pitch,
                                                Entity entity) {

        RayTraceResult object = null;

        if (entity != null && mc.world != null) {
            float partialTicks = mc.getRenderPartialTicks();
            double distance = rayTraceDistance;
            object = rayTrace(rayTraceDistance, yaw, pitch, entity);
            Vector3d vector3d = entity.getEyePosition(partialTicks);
            boolean flag = false;
            double d1 = distance;

            if (mc.playerController.extendedReach()) {
                d1 = 6.0D;
                distance = d1;
            } else {
                if (distance > 3.0D) {
                    flag = true;
                }

                distance = distance;
            }

            d1 = d1 * d1;

            if (object != null) {
                d1 = object.getHitVec().squareDistanceTo(vector3d);
            }

            Vector3d vector3d1 = getVectorForRotation(pitch, yaw);
            Vector3d vector3d2 = vector3d.add(vector3d1.x * distance, vector3d1.y * distance, vector3d1.z * distance);
            float f = 1.0F;
            AxisAlignedBB axisalignedbb = entity.getBoundingBox().expand(vector3d1.scale(distance)).grow(1.0D, 1.0D, 1.0D);
            EntityRayTraceResult entityraytraceresult = ProjectileHelper.rayTraceEntities(entity, vector3d, vector3d2, axisalignedbb, (p_lambda$getMouseOver$0_0_) ->
            {
                return !p_lambda$getMouseOver$0_0_.isSpectator() && p_lambda$getMouseOver$0_0_.canBeCollidedWith();
            }, d1);

            if (entityraytraceresult != null) {
                Entity entity1 = entityraytraceresult.getEntity();
                Vector3d vector3d3 = entityraytraceresult.getHitVec();
                double d2 = vector3d.squareDistanceTo(vector3d3);

                if (flag && d2 > 9.0D) {
                    object = BlockRayTraceResult.createMiss(vector3d3, Direction.getFacingFromVector(vector3d1.x, vector3d1.y, vector3d1.z), new BlockPos(vector3d3));
                } else if (d2 < d1 || object == null) {
                    object = entityraytraceresult;
                }
            }
        }
        return object;
    }


    public static boolean rayTraceWithBlock(double rayTraceDistance,
                                            float yaw,
                                            float pitch,
                                            Entity entity, Entity target) {

        RayTraceResult object = null;

        if (entity != null && mc.world != null) {
            float partialTicks = mc.getRenderPartialTicks();
            double distance = rayTraceDistance;
            object = rayTrace(rayTraceDistance, yaw, pitch, entity);
            Vector3d vector3d = entity.getEyePosition(partialTicks);
            boolean flag = false;
            double d1 = distance;

            if (mc.playerController.extendedReach()) {
                d1 = 6.0D;
                distance = d1;
            } else {
                if (distance > 3.0D) {
                    flag = true;
                }

                distance = distance;
            }

            d1 = d1 * d1;

            if (object != null) {
                d1 = object.getHitVec().squareDistanceTo(vector3d);
            }

            Vector3d vector3d1 = getVectorForRotation(pitch, yaw);
            Vector3d vector3d2 = vector3d.add(vector3d1.x * distance, vector3d1.y * distance, vector3d1.z * distance);
            float f = 1.0F;
            AxisAlignedBB axisalignedbb = entity.getBoundingBox().expand(vector3d1.scale(distance)).grow(1.0D, 1.0D, 1.0D);
            EntityRayTraceResult entityraytraceresult = ProjectileHelper.rayTraceEntities(entity, vector3d, vector3d2, axisalignedbb, (p_lambda$getMouseOver$0_0_) ->
            {
                return !p_lambda$getMouseOver$0_0_.isSpectator() && p_lambda$getMouseOver$0_0_.canBeCollidedWith();
            }, d1);

            if (entityraytraceresult != null) {
                Entity entity1 = entityraytraceresult.getEntity();
                Vector3d vector3d3 = entityraytraceresult.getHitVec();
                double d2 = vector3d.squareDistanceTo(vector3d3);

                if (flag && d2 > 9.0D) {
                    object = BlockRayTraceResult.createMiss(vector3d3, Direction.getFacingFromVector(vector3d1.x, vector3d1.y, vector3d1.z), new BlockPos(vector3d3));
                } else if (d2 < d1 || object == null) {
                    object = entityraytraceresult;
                }
            }
        }
        if (object instanceof EntityRayTraceResult) {
            return ((EntityRayTraceResult) object).getEntity().getEntityId() == target.getEntityId();
        }
        return false;
    }

    public static Vector3d getVectorForRotation(float pitch, float yaw) {
        float yawRadians = -yaw * ((float) Math.PI / 180) - (float) Math.PI;
        float pitchRadians = -pitch * ((float) Math.PI / 180);

        float cosYaw = MathHelper.cos(yawRadians);
        float sinYaw = MathHelper.sin(yawRadians);
        float cosPitch = -MathHelper.cos(pitchRadians);
        float sinPitch = MathHelper.sin(pitchRadians);

        return new Vector3d(sinYaw * cosPitch, sinPitch, cosYaw * cosPitch);
    }

    public static boolean isHovered(double mouseX, double mouseY, float x, float y, float width, float height) {
        return false;
    }

    public boolean isHovered(float mouseX, float mouseY, float x,float y,float width,float height) {

        return mouseX > x && mouseX < x + width && mouseY > y && mouseY < y + height;
    } }
 
а теперь попробуй мышку повернуть чуть под другим углом)
 
Сливаю вам байпасс спайдера aka FenceFly в дельте
Вам нужно:
1. Держать забор любого материала в хотбаре( с инвентаря будет в хаб кикать)
2. Поставить столб 2 забора в высоту
3. Встать в упор к заборам
4. Включить функцию и зажать W
Иногда может подфлагивать когда у вас заканчивается стак заборов и начинают ставиться новые
Так же иногда когда ставит последний забор может дать запрыгнуть на верх и не упасть, но вероятнее всего вы начнете падать, можете поставить под себя блок либо
улучшить чтоб последний забор оно ставило под игроком

SS =
FenceFly:
Expand Collapse Copy
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventMotion;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.ModeSetting;
import im.expensive.functions.settings.impl.SliderSetting;
import im.expensive.utils.math.StopWatch;
import im.expensive.utils.player.MouseUtil;
import net.minecraft.client.entity.player.ClientPlayerEntity;
import net.minecraft.client.multiplayer.PlayerController;
import net.minecraft.client.world.ClientWorld;
import net.minecraft.item.BlockItem;
import net.minecraft.item.Items;
import net.minecraft.util.Direction;
import net.minecraft.util.Hand;
import net.minecraft.util.math.BlockPos;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.world.World;

@FunctionRegister(name = "Spider", type = Category.Movement)
public class Spider extends Function {
    public ModeSetting mode = new ModeSetting("Mode", "Grim", "Grim", "Matrix", "Funtime Fence");
    private final SliderSetting spiderSpeed = new SliderSetting(
            "Speed",
            2.0f,
            1.0f,
            10.0f,
            0.05f
    ).setVisible(() -> !mode.is("Grim") && !mode.is("Funtime Fence"));

    StopWatch stopWatch = new StopWatch();

    public Spider() {
        addSettings(spiderSpeed, mode);
    }

    /**
     * author moyten
     * wonderful boost yoo
     */
    @Subscribe
    private void onMotion(EventMotion motion) {
        switch (mode.get()) {
            case "Matrix" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = MathHelper.clamp(500 - (spiderSpeed.get().longValue() / 2 * 100), 0, 500);
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    stopWatch.reset();
                }
            }
            case "Grim" -> {
                int slotInHotBar = getSlotInInventoryOrHotbar(true);

                if (slotInHotBar == -1) {
                    print("Блоки не найдены!");
                    toggle();
                    return;
                }
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                if (mc.player.isOnGround()) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.jump();
                }
                if (mc.player.fallDistance > 0 && mc.player.fallDistance < 2) {
                    placeBlocks(motion, slotInHotBar);
                }
            }
            case "Funtime Fence" -> {
                if (!mc.player.collidedHorizontally) {
                    return;
                }
                long speed = 200;
                if (stopWatch.isReached(speed)) {
                    motion.setOnGround(true);
                    mc.player.setOnGround(true);
                    mc.player.collidedVertically = true;
                    mc.player.collidedHorizontally = true;
                    mc.player.isAirBorne = true;
                    mc.player.jump();
                    placeFenceStack(motion);
                    stopWatch.reset();
                }
            }
        }
    }


    private void placeFenceStack(EventMotion motion) {
        int slotFence = getSlotForFence();
        if (slotFence == -1) {
            print("Заборы не найдены!");
            toggle();
            return;
        }

        int lastSlot = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = slotFence;

        BlockPos playerPos = mc.player.getPosition();

        for (int i = 1; i <= 2; i++) {
            BlockPos fencePos = playerPos.up(i);
            if (mc.world.getBlockState(fencePos).isAir()) {
                placeFenceBlock(fencePos, Hand.MAIN_HAND, mc.playerController, mc.world, mc.player);
            }
        }

        mc.player.inventory.currentItem = lastSlot;
    }
    private void placeFenceBlock(BlockPos pos, Hand hand, PlayerController playerController, World world, ClientPlayerEntity player) {
        if (!world.getBlockState(pos).isAir()) {
            return;
        }

        Direction direction = Direction.UP;
        BlockPos tPos = pos.down();
        BlockRayTraceResult traceResult = new BlockRayTraceResult(
                new Vector3d(pos.getX() + 0.5, pos.getY() + 0.5, pos.getZ() + 0.5),
                direction, tPos, false);

        playerController.processRightClickBlock(player, (ClientWorld) world, hand, traceResult);
        player.swingArm(hand);
    }


    private int getSlotForFence() {
        for (int i = 0; i < 36; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.OAK_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.BIRCH_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.SPRUCE_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.ACACIA_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.DARK_OAK_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.JUNGLE_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.CRIMSON_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WARPED_FENCE
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.NETHER_BRICK_FENCE) {
                return i;
            }
        }
        return -1;
    }

    public int getSlotInInventoryOrHotbar(boolean inHotBar) {
        int firstSlot = inHotBar ? 0 : 9;
        int lastSlot = inHotBar ? 9 : 36;
        int finalSlot = -1;
        for (int i = firstSlot; i < lastSlot; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == Items.TORCH) {
                continue;
            }

            if (mc.player.inventory.getStackInSlot(i).getItem() instanceof BlockItem
                    || mc.player.inventory.getStackInSlot(i).getItem() == Items.WATER_BUCKET) {
                finalSlot = i;
            }
        }

        return finalSlot;
    }

private void placeBlocks(EventMotion motion, int block) {
        int last = mc.player.inventory.currentItem;
        mc.player.inventory.currentItem = block;
        motion.setPitch(80);
        motion.setYaw(mc.player.getHorizontalFacing().getHorizontalAngle());
        BlockRayTraceResult r = (BlockRayTraceResult) MouseUtil.rayTrace(4, motion.getYaw(), motion.getPitch(), mc.player);
        mc.player.swingArm(Hand.MAIN_HAND);
        mc.playerController.processRightClickBlock(mc.player, mc.world, Hand.MAIN_HAND, r);
        mc.player.inventory.currentItem = last;
        mc.player.fallDistance = 0;
    }
}
Жду попкорна и данного обхода в каждом yougame client
Лучший
 
заебашь на бамбук цепи и вставни это легче простого, зато новенкое будэ
для себя сделал уже, а так просто методы перекопируй и замени нахождение блоков с забора на бамбук
а теперь попробуй мышку повернуть чуть под другим углом)
кому надо тот пофиксит
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Почему не в 500 строк?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Это все можно в 60 строк уместить от силы
Этот код в 50, к слову
Не дохуя ли лишнего ты туда запихал? Да и в целом работает хуево очень
Главное что работает, если кому то надо он поэксперементирует с методами
Да и это мой первый байпас слитый, о чем ты?
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Этот код в 50, к слову
Придурак у тебя только поиск забора в инве 15 строк занимает) и нахуй вообще ты ищешь по всем 36 слотам если он из инва не перекладывает, тебя за это просто кикнет за это когда нибудь
 
Назад
Сверху Снизу