Target perl в 6 раз лучше

  • Автор темы Автор темы Sprizen
  • Дата начала Дата начала
Начинающий
Начинающий
Статус
Оффлайн
Регистрация
23 Июн 2023
Сообщения
408
Реакции
2
Как и обещал . В серьёз не воспринимать... Хотя мб норм
Код:
Expand Collapse Copy
package ru.test.functions.impl.combat;

import com.google.common.eventbus.Subscribe;
import ru.test.events.WorldEvent;
import ru.test.functions.api.Category;
import ru.test.functions.api.Function;
import ru.wery.functions.api.FunctionRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.Hand;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "TargetPearl", type = Category.Render)
public class TargetPearl extends Function {

    private long lastPearlThrowTime = 0;
    private static final int PEARL_THROW_DELAY = 350; // Задержка броска перла в миллисекундах

    @Subscribe
    public void onRender(WorldEvent event) {
        if (System.currentTimeMillis() - lastPearlThrowTime < PEARL_THROW_DELAY) {
            return; // Если задержка ещё не прошла, выходим из метода
        }

        List<EnderPearlEntity> enderPearls = mc.world.getAllEntities().stream()
                .filter(entity -> entity instanceof EnderPearlEntity)
                .map(entity -> (EnderPearlEntity) entity)
                .filter(pearl -> !isOwnEnderPearl(pearl))
                .collect(Collectors.toList());

        for (EnderPearlEntity pearl : enderPearls) {
            Vector3d targetPos = predictPearlLanding(pearl);

            if (targetPos != null) {
                aimAtPosition(targetPos);
                throwPearl();
                lastPearlThrowTime = System.currentTimeMillis();
                break; // Бросаем только один перл за цикл
            }
        }
    }

    private void aimAtPosition(Vector3d targetPos) {
        Vector3d playerPos = mc.player.getPositionVec().add(0, mc.player.getEyeHeight(), 0);
        Vector3d direction = targetPos.subtract(playerPos).normalize();

        float pitch = (float) -Math.toDegrees(Math.asin(direction.y));
        float yaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90;

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

    private void throwPearl() {
        if (mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
            return; // Если перл на перезарядке, не бросаем
        }

        if (mc.player.getHeldItemMainhand().getItem() != Items.ENDER_PEARL) {
            // Если в основной руке нет перла, пытаемся найти его в инвентаре
            int pearlSlot = findItemInHotbar(Items.ENDER_PEARL);
            if (pearlSlot != -1) {
                mc.player.inventory.currentItem = pearlSlot;
            } else {
                return; // Если перлов нет, выходим из метода
            }
        }

        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
        mc.player.swingArm(Hand.MAIN_HAND);
    }

    private int findItemInHotbar(Item item) {
        for (int i = 0; i < 9; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                return i;
            }
        }
        return -1; // Предмет не найден
    }

    private Vector3d predictPearlLanding(EnderPearlEntity pearl) {
        Vector3d position = pearl.getPositionVec();
        Vector3d motion = pearl.getMotion();
        RayTraceContext context = new RayTraceContext(
                position,
                position.add(motion.scale(50)), // Прогнозируем на расстояние 50 блоков
                RayTraceContext.BlockMode.COLLIDER,
                RayTraceContext.FluidMode.NONE,
                pearl
        );

        BlockRayTraceResult result = mc.world.rayTraceBlocks(context);
        if (result.getType() == RayTraceResult.Type.BLOCK) {
            return result.getHitVec(); // Возвращаем точку столкновения с блоком
        }
        return null; // Если столкновения нет, возвращаем null
    }

    private boolean isOwnEnderPearl(EnderPearlEntity pearl) {
        return pearl.getThrowerId() != null && pearl.getThrowerId().equals(mc.player.getUniqueID());
    }
}
 
Написан под полным курированием чата gpt
 
Как и обещал . В серьёз не воспринимать... Хотя мб норм
Код:
Expand Collapse Copy
package ru.test.functions.impl.combat;

import com.google.common.eventbus.Subscribe;
import ru.test.events.WorldEvent;
import ru.test.functions.api.Category;
import ru.test.functions.api.Function;
import ru.wery.functions.api.FunctionRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.Hand;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "TargetPearl", type = Category.Render)
public class TargetPearl extends Function {

    private long lastPearlThrowTime = 0;
    private static final int PEARL_THROW_DELAY = 350; // Задержка броска перла в миллисекундах

    @Subscribe
    public void onRender(WorldEvent event) {
        if (System.currentTimeMillis() - lastPearlThrowTime < PEARL_THROW_DELAY) {
            return; // Если задержка ещё не прошла, выходим из метода
        }

        List<EnderPearlEntity> enderPearls = mc.world.getAllEntities().stream()
                .filter(entity -> entity instanceof EnderPearlEntity)
                .map(entity -> (EnderPearlEntity) entity)
                .filter(pearl -> !isOwnEnderPearl(pearl))
                .collect(Collectors.toList());

        for (EnderPearlEntity pearl : enderPearls) {
            Vector3d targetPos = predictPearlLanding(pearl);

            if (targetPos != null) {
                aimAtPosition(targetPos);
                throwPearl();
                lastPearlThrowTime = System.currentTimeMillis();
                break; // Бросаем только один перл за цикл
            }
        }
    }

    private void aimAtPosition(Vector3d targetPos) {
        Vector3d playerPos = mc.player.getPositionVec().add(0, mc.player.getEyeHeight(), 0);
        Vector3d direction = targetPos.subtract(playerPos).normalize();

        float pitch = (float) -Math.toDegrees(Math.asin(direction.y));
        float yaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90;

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

    private void throwPearl() {
        if (mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
            return; // Если перл на перезарядке, не бросаем
        }

        if (mc.player.getHeldItemMainhand().getItem() != Items.ENDER_PEARL) {
            // Если в основной руке нет перла, пытаемся найти его в инвентаре
            int pearlSlot = findItemInHotbar(Items.ENDER_PEARL);
            if (pearlSlot != -1) {
                mc.player.inventory.currentItem = pearlSlot;
            } else {
                return; // Если перлов нет, выходим из метода
            }
        }

        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
        mc.player.swingArm(Hand.MAIN_HAND);
    }

    private int findItemInHotbar(Item item) {
        for (int i = 0; i < 9; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                return i;
            }
        }
        return -1; // Предмет не найден
    }

    private Vector3d predictPearlLanding(EnderPearlEntity pearl) {
        Vector3d position = pearl.getPositionVec();
        Vector3d motion = pearl.getMotion();
        RayTraceContext context = new RayTraceContext(
                position,
                position.add(motion.scale(50)), // Прогнозируем на расстояние 50 блоков
                RayTraceContext.BlockMode.COLLIDER,
                RayTraceContext.FluidMode.NONE,
                pearl
        );

        BlockRayTraceResult result = mc.world.rayTraceBlocks(context);
        if (result.getType() == RayTraceResult.Type.BLOCK) {
            return result.getHitVec(); // Возвращаем точку столкновения с блоком
        }
        return null; // Если столкновения нет, возвращаем null
    }

    private boolean isOwnEnderPearl(EnderPearlEntity pearl) {
        return pearl.getThrowerId() != null && pearl.getThrowerId().equals(mc.player.getUniqueID());
    }
}
где оно кому то нужно?
где оно лучше?
чат гпт != в 6 раз лучше дефолт кода
 
Как и обещал . В серьёз не воспринимать... Хотя мб норм
Код:
Expand Collapse Copy
package ru.test.functions.impl.combat;

import com.google.common.eventbus.Subscribe;
import ru.test.events.WorldEvent;
import ru.test.functions.api.Category;
import ru.test.functions.api.Function;
import ru.wery.functions.api.FunctionRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.Hand;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "TargetPearl", type = Category.Render)
public class TargetPearl extends Function {

    private long lastPearlThrowTime = 0;
    private static final int PEARL_THROW_DELAY = 350; // Задержка броска перла в миллисекундах

    @Subscribe
    public void onRender(WorldEvent event) {
        if (System.currentTimeMillis() - lastPearlThrowTime < PEARL_THROW_DELAY) {
            return; // Если задержка ещё не прошла, выходим из метода
        }

        List<EnderPearlEntity> enderPearls = mc.world.getAllEntities().stream()
                .filter(entity -> entity instanceof EnderPearlEntity)
                .map(entity -> (EnderPearlEntity) entity)
                .filter(pearl -> !isOwnEnderPearl(pearl))
                .collect(Collectors.toList());

        for (EnderPearlEntity pearl : enderPearls) {
            Vector3d targetPos = predictPearlLanding(pearl);

            if (targetPos != null) {
                aimAtPosition(targetPos);
                throwPearl();
                lastPearlThrowTime = System.currentTimeMillis();
                break; // Бросаем только один перл за цикл
            }
        }
    }

    private void aimAtPosition(Vector3d targetPos) {
        Vector3d playerPos = mc.player.getPositionVec().add(0, mc.player.getEyeHeight(), 0);
        Vector3d direction = targetPos.subtract(playerPos).normalize();

        float pitch = (float) -Math.toDegrees(Math.asin(direction.y));
        float yaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90;

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

    private void throwPearl() {
        if (mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
            return; // Если перл на перезарядке, не бросаем
        }

        if (mc.player.getHeldItemMainhand().getItem() != Items.ENDER_PEARL) {
            // Если в основной руке нет перла, пытаемся найти его в инвентаре
            int pearlSlot = findItemInHotbar(Items.ENDER_PEARL);
            if (pearlSlot != -1) {
                mc.player.inventory.currentItem = pearlSlot;
            } else {
                return; // Если перлов нет, выходим из метода
            }
        }

        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
        mc.player.swingArm(Hand.MAIN_HAND);
    }

    private int findItemInHotbar(Item item) {
        for (int i = 0; i < 9; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                return i;
            }
        }
        return -1; // Предмет не найден
    }

    private Vector3d predictPearlLanding(EnderPearlEntity pearl) {
        Vector3d position = pearl.getPositionVec();
        Vector3d motion = pearl.getMotion();
        RayTraceContext context = new RayTraceContext(
                position,
                position.add(motion.scale(50)), // Прогнозируем на расстояние 50 блоков
                RayTraceContext.BlockMode.COLLIDER,
                RayTraceContext.FluidMode.NONE,
                pearl
        );

        BlockRayTraceResult result = mc.world.rayTraceBlocks(context);
        if (result.getType() == RayTraceResult.Type.BLOCK) {
            return result.getHitVec(); // Возвращаем точку столкновения с блоком
        }
        return null; // Если столкновения нет, возвращаем null
    }

    private boolean isOwnEnderPearl(EnderPearlEntity pearl) {
        return pearl.getThrowerId() != null && pearl.getThrowerId().equals(mc.player.getUniqueID());
    }
}
/del
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
:za_lu_pa:
 
Мой лучше в 1337 раз ?
 
Написан под полным курированием чата gpt
За-то лучше чем у типа, кстати, у меня есть таргет перл как в квике, но Вам солью только такую шляпу
Оно работает? Да.
Оно кому-то нужно? Да.
Вопросы??
Во, спасибо браток
Бритис, прежде чёто булькать, слей хоть что-то сам годное во истину
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Как и обещал . В серьёз не воспринимать... Хотя мб норм
Код:
Expand Collapse Copy
package ru.test.functions.impl.combat;

import com.google.common.eventbus.Subscribe;
import ru.test.events.WorldEvent;
import ru.test.functions.api.Category;
import ru.test.functions.api.Function;
import ru.wery.functions.api.FunctionRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.Hand;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "TargetPearl", type = Category.Render)
public class TargetPearl extends Function {

    private long lastPearlThrowTime = 0;
    private static final int PEARL_THROW_DELAY = 350; // Задержка броска перла в миллисекундах

    @Subscribe
    public void onRender(WorldEvent event) {
        if (System.currentTimeMillis() - lastPearlThrowTime < PEARL_THROW_DELAY) {
            return; // Если задержка ещё не прошла, выходим из метода
        }

        List<EnderPearlEntity> enderPearls = mc.world.getAllEntities().stream()
                .filter(entity -> entity instanceof EnderPearlEntity)
                .map(entity -> (EnderPearlEntity) entity)
                .filter(pearl -> !isOwnEnderPearl(pearl))
                .collect(Collectors.toList());

        for (EnderPearlEntity pearl : enderPearls) {
            Vector3d targetPos = predictPearlLanding(pearl);

            if (targetPos != null) {
                aimAtPosition(targetPos);
                throwPearl();
                lastPearlThrowTime = System.currentTimeMillis();
                break; // Бросаем только один перл за цикл
            }
        }
    }

    private void aimAtPosition(Vector3d targetPos) {
        Vector3d playerPos = mc.player.getPositionVec().add(0, mc.player.getEyeHeight(), 0);
        Vector3d direction = targetPos.subtract(playerPos).normalize();

        float pitch = (float) -Math.toDegrees(Math.asin(direction.y));
        float yaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90;

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

    private void throwPearl() {
        if (mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
            return; // Если перл на перезарядке, не бросаем
        }

        if (mc.player.getHeldItemMainhand().getItem() != Items.ENDER_PEARL) {
            // Если в основной руке нет перла, пытаемся найти его в инвентаре
            int pearlSlot = findItemInHotbar(Items.ENDER_PEARL);
            if (pearlSlot != -1) {
                mc.player.inventory.currentItem = pearlSlot;
            } else {
                return; // Если перлов нет, выходим из метода
            }
        }

        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
        mc.player.swingArm(Hand.MAIN_HAND);
    }

    private int findItemInHotbar(Item item) {
        for (int i = 0; i < 9; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                return i;
            }
        }
        return -1; // Предмет не найден
    }

    private Vector3d predictPearlLanding(EnderPearlEntity pearl) {
        Vector3d position = pearl.getPositionVec();
        Vector3d motion = pearl.getMotion();
        RayTraceContext context = new RayTraceContext(
                position,
                position.add(motion.scale(50)), // Прогнозируем на расстояние 50 блоков
                RayTraceContext.BlockMode.COLLIDER,
                RayTraceContext.FluidMode.NONE,
                pearl
        );

        BlockRayTraceResult result = mc.world.rayTraceBlocks(context);
        if (result.getType() == RayTraceResult.Type.BLOCK) {
            return result.getHitVec(); // Возвращаем точку столкновения с блоком
        }
        return null; // Если столкновения нет, возвращаем null
    }

    private boolean isOwnEnderPearl(EnderPearlEntity pearl) {
        return pearl.getThrowerId() != null && pearl.getThrowerId().equals(mc.player.getUniqueID());
    }
}
public static final int
 
Вопрос к людям а типо что такое Target perl и для чего оно я просто сколько играю с софтом первый раз вижу такое
 
Вопрос к людям а типо что такое Target perl и для чего оно я просто сколько играю с софтом первый раз вижу такое
само откидывает парку, за первой оппонента, эффективно на HollyWorld
 
Как и обещал . В серьёз не воспринимать... Хотя мб норм
Код:
Expand Collapse Copy
package ru.test.functions.impl.combat;

import com.google.common.eventbus.Subscribe;
import ru.test.events.WorldEvent;
import ru.test.functions.api.Category;
import ru.test.functions.api.Function;
import ru.wery.functions.api.FunctionRegister;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.EnderPearlEntity;
import net.minecraft.item.Items;
import net.minecraft.util.math.BlockRayTraceResult;
import net.minecraft.util.math.RayTraceContext;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.Hand;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;

import java.util.List;
import java.util.stream.Collectors;

@FunctionRegister(name = "TargetPearl", type = Category.Render)
public class TargetPearl extends Function {

    private long lastPearlThrowTime = 0;
    private static final int PEARL_THROW_DELAY = 350; // Задержка броска перла в миллисекундах

    @Subscribe
    public void onRender(WorldEvent event) {
        if (System.currentTimeMillis() - lastPearlThrowTime < PEARL_THROW_DELAY) {
            return; // Если задержка ещё не прошла, выходим из метода
        }

        List<EnderPearlEntity> enderPearls = mc.world.getAllEntities().stream()
                .filter(entity -> entity instanceof EnderPearlEntity)
                .map(entity -> (EnderPearlEntity) entity)
                .filter(pearl -> !isOwnEnderPearl(pearl))
                .collect(Collectors.toList());

        for (EnderPearlEntity pearl : enderPearls) {
            Vector3d targetPos = predictPearlLanding(pearl);

            if (targetPos != null) {
                aimAtPosition(targetPos);
                throwPearl();
                lastPearlThrowTime = System.currentTimeMillis();
                break; // Бросаем только один перл за цикл
            }
        }
    }

    private void aimAtPosition(Vector3d targetPos) {
        Vector3d playerPos = mc.player.getPositionVec().add(0, mc.player.getEyeHeight(), 0);
        Vector3d direction = targetPos.subtract(playerPos).normalize();

        float pitch = (float) -Math.toDegrees(Math.asin(direction.y));
        float yaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90;

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

    private void throwPearl() {
        if (mc.player.getCooldownTracker().hasCooldown(Items.ENDER_PEARL)) {
            return; // Если перл на перезарядке, не бросаем
        }

        if (mc.player.getHeldItemMainhand().getItem() != Items.ENDER_PEARL) {
            // Если в основной руке нет перла, пытаемся найти его в инвентаре
            int pearlSlot = findItemInHotbar(Items.ENDER_PEARL);
            if (pearlSlot != -1) {
                mc.player.inventory.currentItem = pearlSlot;
            } else {
                return; // Если перлов нет, выходим из метода
            }
        }

        mc.player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
        mc.player.swingArm(Hand.MAIN_HAND);
    }

    private int findItemInHotbar(Item item) {
        for (int i = 0; i < 9; i++) {
            if (mc.player.inventory.getStackInSlot(i).getItem() == item) {
                return i;
            }
        }
        return -1; // Предмет не найден
    }

    private Vector3d predictPearlLanding(EnderPearlEntity pearl) {
        Vector3d position = pearl.getPositionVec();
        Vector3d motion = pearl.getMotion();
        RayTraceContext context = new RayTraceContext(
                position,
                position.add(motion.scale(50)), // Прогнозируем на расстояние 50 блоков
                RayTraceContext.BlockMode.COLLIDER,
                RayTraceContext.FluidMode.NONE,
                pearl
        );

        BlockRayTraceResult result = mc.world.rayTraceBlocks(context);
        if (result.getType() == RayTraceResult.Type.BLOCK) {
            return result.getHitVec(); // Возвращаем точку столкновения с блоком
        }
        return null; // Если столкновения нет, возвращаем null
    }

    private boolean isOwnEnderPearl(EnderPearlEntity pearl) {
        return pearl.getThrowerId() != null && pearl.getThrowerId().equals(mc.player.getUniqueID());
    }
}
Бляяять а гетать кулдаун, не чатгпт забустит
 
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Назад
Сверху Снизу