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

Визуальная часть PigTargetESP | 1.21.4 fabric zenith norecode

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
24 Июн 2025
Сообщения
31
Реакции
0
Выберите загрузчик игры
  1. Fabric
Короче видел тему с этим таргет есп (noad) и решил перенести на фабрик 1.21.4
импорты самы сделаете
code -
Java:
Expand Collapse Copy
public class PigESP extends Module {

    private final SelectSetting mode = new SelectSetting("Вид", "Кого рендерить")
            .value("Свэня").selected("Свэня");

    private final ValueSetting speed = new ValueSetting("Скрст", "speed")
            .setValue(1.5F).range(0.5f, 3.0f);

    private LivingEntity target;
    private boolean rendering = false;
    private PigEntity cachedPig;

    public PigESP() {
        super("PigESP", "PigESP", ModuleCategory.MISC);
        setup(mode, speed);
    }

    @EventHandler
    private void onTick(TickEvent event) {
        KillAura aura = KillAura.getInstance();
        if (aura != null && aura.isState()) {
            LivingEntity auraTarget = aura.getTarget();
            if (auraTarget != null && auraTarget != mc.player) {
                target = auraTarget;
                rendering = true;
                return;
            }
        }
        rendering = false;
    }

    @SuppressWarnings("unchecked")
    @EventHandler
    public void onWorldRender(WorldRenderEvent e) {
        if (!rendering || target == null || mc.world == null) return;
        if (!mode.isSelected("Свэня")) return;
        float partialTicks = e.getPartialTicks();
        double interpX = MathUtil.interpolate(target.prevX, target.getX());
        double interpY = MathUtil.interpolate(target.prevY, target.getY());
        double interpZ = MathUtil.interpolate(target.prevZ, target.getZ());
        Camera camera = mc.getEntityRenderDispatcher().camera;
        Vec3d camPos = camera.getPos();
        double x = interpX - camPos.x;
        double y = interpY - camPos.y;
        double z = interpZ - camPos.z;
        float radius = 0.7f;
        float orbitHeight = 1.0f;
        float speedMul = 0.00025f * speed.getValue();
        float time = -(System.currentTimeMillis() % 1000000) * speedMul;
        double[] px = new double[8];
        double[] py = new double[8];
        double[] pz = new double[8];
        float baseAngle = time * 360;
        for (int i = 0; i < 8; i++) {
            float angle = baseAngle + (i / 8.0f) * 360f;
            double rad = Math.toRadians(angle);
            float verticalOffset = (i % 2 == 0) ? 0.1f : -0.1f;
            px[i] = x + Math.cos(rad) * radius;
            py[i] = y + orbitHeight + verticalOffset - 0.2f;
            pz[i] = z + Math.sin(rad) * radius;
        }
        double topPigX = x;
        double topPigY = y + 2.2f;
        double topPigZ = z;
        float timeAlt = (System.currentTimeMillis() % 1000000) * speed.getValue() * 0.00100f;
        float topYaw = timeAlt * 180;
        float topPitch = (float) (Math.sin(timeAlt * 1.5) * 120);
        float topRoll = (float) (Math.cos(timeAlt * 1.2) * 90);
        if (cachedPig == null || !cachedPig.isAlive()) {
            cachedPig = new PigEntity(EntityType.PIG, mc.world);
        }
        EntityRenderDispatcher dispatcher = mc.getEntityRenderDispatcher();
        VertexConsumerProvider.Immediate immediate = mc.getBufferBuilders().getEntityVertexConsumers();
        EntityRenderer<? super PigEntity, ?> pigRenderer = dispatcher.getRenderer(cachedPig);
        if (pigRenderer == null) return;

        for (int i = 0; i < 9; i++) {
            double posX, posY, posZ;
            double nextX, nextY, nextZ;
            if (i < 8) {
                posX = px[i];
                posY = py[i];
                posZ = pz[i];
                int nextIndex = (i + 1) % 8;
                nextX = px[nextIndex];
                nextY = py[nextIndex];
                nextZ = pz[nextIndex];
            } else {
                posX = topPigX;
                posY = topPigY;
                posZ = topPigZ;
                nextX = px[0];
                nextY = py[0];
                nextZ = pz[0];
            }
            MatrixStack stack = new MatrixStack();
            stack.push();
            stack.multiply(RotationAxis.POSITIVE_X.rotationDegrees(camera.getPitch()));
            stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(camera.getYaw() + 180.0F));
            stack.translate(posX, posY, posZ);
            if (i == 8) {
                stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(topYaw));
                stack.multiply(RotationAxis.POSITIVE_X.rotationDegrees(topPitch));
                stack.multiply(RotationAxis.POSITIVE_Z.rotationDegrees(topRoll));
            } else {
                double lX = nextX - posX;
                double lZ = nextZ - posZ;
                float yaw = (float) Math.toDegrees(Math.atan2(-lZ, lX)) - 95;
                stack.multiply(RotationAxis.POSITIVE_Y.rotationDegrees(yaw));
            }
            float scale = (i == 8) ? 0.4f : 0.3f;
            stack.scale(scale, scale, scale);
            try {
                cachedPig.limbAnimator.setSpeed(0);
                cachedPig.age = 0;
                cachedPig.bodyYaw = 0;
                cachedPig.prevBodyYaw = 0;
                cachedPig.headYaw = 0;
                cachedPig.prevHeadYaw = 0;
                cachedPig.setPitch(0);
                cachedPig.prevPitch = 0;
                RenderSystem.disableDepthTest();
                renderEntity(
                        dispatcher,
                        cachedPig,
                        0, 0, 0,
                        partialTicks,
                        stack,
                        immediate,
                        LightmapTextureManager.MAX_LIGHT_COORDINATE,
                        pigRenderer
                );
            } catch (Exception ignored) {}

            stack.pop();
        }

        immediate.draw();
        RenderSystem.enableDepthTest();
    }

    @SuppressWarnings("unchecked")
    private <E extends net.minecraft.entity.Entity, S extends net.minecraft.client.render.entity.state.EntityRenderState>
    void renderEntity(
            EntityRenderDispatcher dispatcher,
            E entity,
            double x, double y, double z,
            float tickDelta,
            MatrixStack matrices,
            VertexConsumerProvider vertexConsumers,
            int light,
            EntityRenderer<? super E, ?> renderer
    ) {
        try {
            java.lang.reflect.Method renderMethod = EntityRenderDispatcher.class.getDeclaredMethod(
                    "render",
                    net.minecraft.entity.Entity.class,
                    double.class, double.class, double.class,
                    float.class,
                    MatrixStack.class,
                    VertexConsumerProvider.class,
                    int.class,
                    EntityRenderer.class
            );
            renderMethod.setAccessible(true);
            renderMethod.invoke(dispatcher, entity, x, y, z, tickDelta, matrices, vertexConsumers, light, renderer);
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    @Override
    public void deactivate() {
        super.deactivate();
        rendering = false;
        target = null;
        cachedPig = null;
    }
}

ss -
1772821095720.png
 
for (int i = 0; i < 9; i++) { double posX, posY, posZ; double nextX, nextY, nextZ; if (i < 8) { posX = px; posY = py; posZ = pz; int nextIndex = (i + 1) % 8; nextX = px[nextIndex]; nextY = py[nextIndex]; nextZ = pz[nextIndex]; } else { posX = topPigX; posY = topPigY; posZ = topPigZ; nextX = px[0]; nextY = py[0]; nextZ = pz[0]; }
 
Назад
Сверху Снизу