Исходник PiglinTarget Fabric 1.16.5

Начинающий
Статус
Оффлайн
Регистрация
7 Янв 2023
Сообщения
159
Реакции[?]
3
Поинты[?]
1K

Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:

  • бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
  • маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
  • приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
  • обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.

Спасибо!

С такой функцией можно фармить много денег на фантайме


PiglinTarget:
package ru.nedan.vulcan.module.impl;

import net.minecraft.entity.Entity;
import net.minecraft.entity.ItemEntity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.entity.mob.PiglinBruteEntity;
import net.minecraft.entity.mob.PiglinEntity;
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraft.util.math.Vec2f;
import org.lwjgl.glfw.GLFW;
import ru.nedan.vulcan.event.impl.EventClientTick;
import ru.nedan.vulcan.event.impl.EventMotion;
import ru.nedan.vulcan.event.system.Listener;
import ru.nedan.vulcan.module.api.Module;
import ru.nedan.vulcan.module.api.setting.ModeSetting;
import ru.nedan.vulcan.module.api.setting.NumberSetting;
import ru.nedan.vulcan.util.Rotation;
import ru.nedan.vulcan.util.RotationUtil;
import ru.nedan.vulcan.util.TimerUtil;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class PiglinTarget extends Module {

    private Vec2f rotation = new Vec2f(0, 0);
    private Entity target;

    private final ModeSetting sort = new ModeSetting()
            .setName("Сортировка по")
            .setValue("Здоровье")
            .values("Здоровье", "Дистанция");

    private final NumberSetting distance = new NumberSetting()
            .setName("Макс. Дистанция")
            .setValue(5)
            .setMin(3)
            .setMax(10)
            .setIncrement(0.1);

    private final TimerUtil attackCooldown = new TimerUtil();

    public PiglinTarget() {
        super("PiglinTarget");
        addSettings(sort, distance);

        onlyTester = true;
    }

    Listener<EventClientTick> playerTickListener = playerTick -> {
        if (mc.player == null) return;

        pickTargetAndRotate();

        if (target != null)
            attackPiglin();
    };

    private void attackPiglin() {
        if (mc.player.distanceTo(target) > 3 || !target.isAlive()) return;

        Entity entity = RotationUtil.getMouseOver(target, rotation.x, rotation.y, 3);

        if (entity != target) return;

        float attackStrength = mc.player.getAttackCooldownProgress(1.5f);

        if (attackStrength < 0.92f || !attackCooldown.timeElapsed(450))
            return;

        mc.interactionManager.attackEntity(mc.player, target);
        mc.player.swingHand(Hand.MAIN_HAND);
        attackCooldown.resetLast();
    }

    public void onDisable() {
        reset();
        target = null;

        super.onDisable();
    }

    Listener<EventMotion> eventMotionListener = eventMotion -> {
        if (target != null) {
            eventMotion.setYaw(rotation.x);
            eventMotion.setPitch(rotation.y);
            Rotation.rotationPitchHead = rotation.y;
            mc.player.bodyYaw = rotation.x;
            mc.player.headYaw = rotation.x;
        }
    };

    private void pickTargetAndRotate()
    {
        List<Entity> piglins = new ArrayList<>();

        for (Entity entity : mc.world.getEntities()) {
            if (entity instanceof PiglinEntity || entity instanceof PiglinBruteEntity || entity instanceof ItemEntity || entity instanceof ZombifiedPiglinEntity) {
                if (entity instanceof ItemEntity) {
                    ItemEntity item = (ItemEntity) entity;

                    if (item.getStack().getItem() != Items.SOUL_LANTERN) continue;
                }
                
                if (mc.player.distanceTo(entity) > distance.getValue()) continue;

                piglins.add(entity);
            }
        }

        if (piglins.isEmpty()) {
            reset();
            target = null;
            return;
        }

        if (piglins.size() != 1) {
            if (sort.getValue().equalsIgnoreCase("здоровье")) {
                piglins.sort(Comparator.comparingDouble(entity -> {
                    if (entity instanceof LivingEntity)
                        return ((LivingEntity) entity).getHealth();

                    return 0;
                }));
            } else if (sort.getValue().equalsIgnoreCase("дистанция")) {
                piglins.sort(Comparator.comparingDouble(mc.player::distanceTo));
            }
        }

        piglins.sort(Comparator.comparingInt(entity -> {
            if (entity instanceof ItemEntity) return 0;

            return 999;
        }));

        target = piglins.get(0);

        double deltaX = target.getX() - mc.player.getX();
        double deltaY = target.getEyeY() - mc.player.getEyeY() - 0.5;
        double deltaZ = target.getZ() - mc.player.getZ();

        double distanceXZ = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ);
        float yaw = (float) Math.toDegrees(Math.atan2(-deltaX, deltaZ));
        float pitch = (float) Math.toDegrees(Math.atan2(-deltaY, distanceXZ));

        rotation = new Vec2f(yaw, pitch);

        Rotation.YAW_OFFSET = rotation.x;
    }

    private void reset() {
        rotation = new Vec2f(mc.player.yaw, mc.player.pitch);

        Rotation.YAW_OFFSET = Integer.MIN_VALUE;
    }

}

RotationUtil.getMouseOver:
    public Entity getMouseOver(Entity target,
                               float yaw,
                               float pitch,
                               double distance) {

        if (target == null)
            return null;

        HitResult objectMouseOver;
        Entity entity = mc.getCameraEntity();

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

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

            Box axisalignedbb = target.getBoundingBox().contract(target.getTargetingMargin());

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

            if (entityraytraceresult != null) {
                if (flag && startVec.distanceTo(startVec) > distance) {
                    objectMouseOver = BlockHitResult.createMissed(startVec, null, new BlockPos(startVec));
                }
                if ((distance < distance || objectMouseOver == null)) {
                    objectMouseOver = entityraytraceresult;
                }
            }
            if (objectMouseOver == null) {
                return null;
            }
            try {
                return ((EntityHitResult) objectMouseOver).getEntity();
            } catch (ClassCastException e) {
                return null;
            }
        }
        return null;
    }
Ждём во всяких пастах, которые смогут это адаптировать под свои экспенсивы и экселенты
 
Начинающий
Статус
Оффлайн
Регистрация
8 Ноя 2024
Сообщения
26
Реакции[?]
0
Поинты[?]
0
ахуеть как сложно добавить в килку мобов:fearscream:
если эта хрень бьет спиной то просто убрать ротацию и убрать игроков
 
Начинающий
Статус
Онлайн
Регистрация
19 Фев 2024
Сообщения
297
Реакции[?]
1
Поинты[?]
1K
С такой функцией можно фармить много денег на фантайме


PiglinTarget:
package ru.nedan.vulcan.module.impl;

import net.minecraft.entity.Entity;
import net.minecraft.entity.ItemEntity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.effect.StatusEffectInstance;
import net.minecraft.entity.effect.StatusEffects;
import net.minecraft.entity.mob.PiglinBruteEntity;
import net.minecraft.entity.mob.PiglinEntity;
import net.minecraft.entity.mob.ZombifiedPiglinEntity;
import net.minecraft.item.Items;
import net.minecraft.util.Hand;
import net.minecraft.util.math.Vec2f;
import org.lwjgl.glfw.GLFW;
import ru.nedan.vulcan.event.impl.EventClientTick;
import ru.nedan.vulcan.event.impl.EventMotion;
import ru.nedan.vulcan.event.system.Listener;
import ru.nedan.vulcan.module.api.Module;
import ru.nedan.vulcan.module.api.setting.ModeSetting;
import ru.nedan.vulcan.module.api.setting.NumberSetting;
import ru.nedan.vulcan.util.Rotation;
import ru.nedan.vulcan.util.RotationUtil;
import ru.nedan.vulcan.util.TimerUtil;

import java.util.ArrayList;
import java.util.Comparator;
import java.util.List;

public class PiglinTarget extends Module {

    private Vec2f rotation = new Vec2f(0, 0);
    private Entity target;

    private final ModeSetting sort = new ModeSetting()
            .setName("Сортировка по")
            .setValue("Здоровье")
            .values("Здоровье", "Дистанция");

    private final NumberSetting distance = new NumberSetting()
            .setName("Макс. Дистанция")
            .setValue(5)
            .setMin(3)
            .setMax(10)
            .setIncrement(0.1);

    private final TimerUtil attackCooldown = new TimerUtil();

    public PiglinTarget() {
        super("PiglinTarget");
        addSettings(sort, distance);

        onlyTester = true;
    }

    Listener<EventClientTick> playerTickListener = playerTick -> {
        if (mc.player == null) return;

        pickTargetAndRotate();

        if (target != null)
            attackPiglin();
    };

    private void attackPiglin() {
        if (mc.player.distanceTo(target) > 3 || !target.isAlive()) return;

        Entity entity = RotationUtil.getMouseOver(target, rotation.x, rotation.y, 3);

        if (entity != target) return;

        float attackStrength = mc.player.getAttackCooldownProgress(1.5f);

        if (attackStrength < 0.92f || !attackCooldown.timeElapsed(450))
            return;

        mc.interactionManager.attackEntity(mc.player, target);
        mc.player.swingHand(Hand.MAIN_HAND);
        attackCooldown.resetLast();
    }

    public void onDisable() {
        reset();
        target = null;

        super.onDisable();
    }

    Listener<EventMotion> eventMotionListener = eventMotion -> {
        if (target != null) {
            eventMotion.setYaw(rotation.x);
            eventMotion.setPitch(rotation.y);
            Rotation.rotationPitchHead = rotation.y;
            mc.player.bodyYaw = rotation.x;
            mc.player.headYaw = rotation.x;
        }
    };

    private void pickTargetAndRotate()
    {
        List<Entity> piglins = new ArrayList<>();

        for (Entity entity : mc.world.getEntities()) {
            if (entity instanceof PiglinEntity || entity instanceof PiglinBruteEntity || entity instanceof ItemEntity || entity instanceof ZombifiedPiglinEntity) {
                if (entity instanceof ItemEntity) {
                    ItemEntity item = (ItemEntity) entity;

                    if (item.getStack().getItem() != Items.SOUL_LANTERN) continue;
                }
               
                if (mc.player.distanceTo(entity) > distance.getValue()) continue;

                piglins.add(entity);
            }
        }

        if (piglins.isEmpty()) {
            reset();
            target = null;
            return;
        }

        if (piglins.size() != 1) {
            if (sort.getValue().equalsIgnoreCase("здоровье")) {
                piglins.sort(Comparator.comparingDouble(entity -> {
                    if (entity instanceof LivingEntity)
                        return ((LivingEntity) entity).getHealth();

                    return 0;
                }));
            } else if (sort.getValue().equalsIgnoreCase("дистанция")) {
                piglins.sort(Comparator.comparingDouble(mc.player::distanceTo));
            }
        }

        piglins.sort(Comparator.comparingInt(entity -> {
            if (entity instanceof ItemEntity) return 0;

            return 999;
        }));

        target = piglins.get(0);

        double deltaX = target.getX() - mc.player.getX();
        double deltaY = target.getEyeY() - mc.player.getEyeY() - 0.5;
        double deltaZ = target.getZ() - mc.player.getZ();

        double distanceXZ = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ);
        float yaw = (float) Math.toDegrees(Math.atan2(-deltaX, deltaZ));
        float pitch = (float) Math.toDegrees(Math.atan2(-deltaY, distanceXZ));

        rotation = new Vec2f(yaw, pitch);

        Rotation.YAW_OFFSET = rotation.x;
    }

    private void reset() {
        rotation = new Vec2f(mc.player.yaw, mc.player.pitch);

        Rotation.YAW_OFFSET = Integer.MIN_VALUE;
    }

}

RotationUtil.getMouseOver:
    public Entity getMouseOver(Entity target,
                               float yaw,
                               float pitch,
                               double distance) {

        if (target == null)
            return null;

        HitResult objectMouseOver;
        Entity entity = mc.getCameraEntity();

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

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

            Box axisalignedbb = target.getBoundingBox().contract(target.getTargetingMargin());

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

            if (entityraytraceresult != null) {
                if (flag && startVec.distanceTo(startVec) > distance) {
                    objectMouseOver = BlockHitResult.createMissed(startVec, null, new BlockPos(startVec));
                }
                if ((distance < distance || objectMouseOver == null)) {
                    objectMouseOver = entityraytraceresult;
                }
            }
            if (objectMouseOver == null) {
                return null;
            }
            try {
                return ((EntityHitResult) objectMouseOver).getEntity();
            } catch (ClassCastException e) {
                return null;
            }
        }
        return null;
    }
Ждём во всяких пастах, которые смогут это адаптировать под свои экспенсивы и экселенты
Почему это выглядит так будто это писал аи вместе с пьяным кодером
Ну а так прикольно
 
Начинающий
Статус
Оффлайн
Регистрация
7 Янв 2023
Сообщения
159
Реакции[?]
3
Поинты[?]
1K
ахуеть как сложно добавить в килку мобов:fearscream:
если эта хрень бьет спиной то просто убрать ротацию и убрать игроков
Как жалко, что ты тупой, и не додумался сделать такую функцию xD
 
Начинающий
Статус
Оффлайн
Регистрация
29 Май 2024
Сообщения
575
Реакции[?]
2
Поинты[?]
1K
Начинающий
Статус
Оффлайн
Регистрация
8 Ноя 2024
Сообщения
26
Реакции[?]
0
Поинты[?]
0
Как жалко, что ты тупой, и не додумался сделать такую функцию xD
а смысл от этого если я написал тоже самое но в дохуя раз меньше хоть и без ротации без которой это кстати выглядит по пизже:roflanPominki:
 
Начинающий
Статус
Оффлайн
Регистрация
7 Янв 2023
Сообщения
159
Реакции[?]
3
Поинты[?]
1K
У него просто мозги есть чтоб поставить килку на мобов а не писать $$
чел просто прочитал название PIGLINTARGET и сразу вынес вердикт: "Она таргетит пиглинов как киллаура". Но как-же он ошибался, ведь он не в состоянии прочитать код и увидеть, что в функции ПРИОРИТЕТ НА ДУШИ!

Пожалуйста, зарегистрируйтесь или авторизуйтесь, чтобы увидеть содержимое.

 
Начинающий
Статус
Оффлайн
Регистрация
8 Ноя 2024
Сообщения
26
Реакции[?]
0
Поинты[?]
0
чел просто прочитал название PIGLINTARGET и сразу вынес вердикт: "Она таргетит пиглинов как киллаура". Но как-же он ошибался, ведь он не в состоянии прочитать код и увидеть, что в функции ПРИОРИТЕТ НА ДУШИ!
Скрытое содержимое
ахуеть, 2 проверки это так жестко :roflanBuldiga:
 
Сверху Снизу