Исходник ElytraTarget rogalik | Exp 3.1

Начинающий
Статус
Оффлайн
Регистрация
29 Сен 2021
Сообщения
80
Реакции[?]
0
Поинты[?]
0
не-а, что с коррекцией, что без нее не работает без этого таргета, я думаешь не проверял?
хз я просто ротацию на 50 вьебенил когда лечу и оно нормально пиздит, по крайней мере лучше чем у меня было на 2.0
 
Начинающий
Статус
Оффлайн
Регистрация
2 Сен 2024
Сообщения
17
Реакции[?]
0
Поинты[?]
0
Сливаю элитра таргет обрыгалика потому что почему бы и нет? не видел что бы кто то сливал относительно хороший таргет
На рв не ворк потому что этот таргет перелетает, а теперь перелетающий таргет на рв кикается.
Заходите в класс LivingEntity на примерно 2255 строку и заменяете код на
Ура таргет:
else if (this.isElytraFlying()) {
                    double d10;
                    double d6;
                    float f2;
                    Vector3d motion = this.getMotion();

                    if (motion.y > -0.5) {
                        this.fallDistance = 1.0f;
                    }

                    Vector3d lookVector = this.getLookVec();

                    if (Expensive.getInstance().getFunctionRegistry().getAutoPilo().isState() && this instanceof ClientPlayerEntity) {
                        lookVector = this.getVectorForRotation(AutoPilo.rotateVector.y, AutoPilo.rotateVector.x);
                    }

                    if (Expensive.getInstance().getFunctionRegistry().getKillAura().isState() && KillAura.getTarget() != null && this instanceof ClientPlayerEntity) {
                        lookVector = this.getVectorForRotation(KillAura.rotateVector.y, KillAura.rotateVector.x);
                    }

                    float pitchRadians = this.rotationPitch * ((float) Math.PI / 180);

                    if (Expensive.getInstance().getFunctionRegistry().getKillAura().isState() && KillAura.getTarget() != null && this instanceof ClientPlayerEntity) {
                        pitchRadians = KillAura.rotateVector.y * ((float) Math.PI / 180);
                    }

                    double d1 = Math.sqrt(lookVector.x * lookVector.x + lookVector.z * lookVector.z);
                    double d3 = Math.sqrt(LivingEntity.horizontalMag(motion));
                    double d4 = lookVector.length();

                    float f1 = MathHelper.cos(pitchRadians);
                    f1 = (float) ((double) f1 * f1 * Math.min(1.0, d4 / 0.4));

                    motion = this.getMotion().add(0.0, d0 * (-1.0 + (double) f1 * 0.75), 0.0);

                    if (motion.y < 0.0 && d1 > 0.0) {
                        double d5 = motion.y * -0.1 * (double) f1;
                        motion = motion.add(lookVector.x * d5 / d1, d5, lookVector.z * d5 / d1);
                    }

                    if (pitchRadians < 0.0f && d1 > 0.0) {
                        double d9 = d3 * (double) (-MathHelper.sin(pitchRadians)) * 0.04;
                        motion = motion.add(-lookVector.x * d9 / d1, d9 * 3.2, -lookVector.z * d9 / d1);
                    }

                    if (d1 > 0.0) {
                        motion = motion.add((lookVector.x / d1 * d3 - motion.x) * 0.1, 0.0, (lookVector.z / d1 * d3 - motion.z) * 0.1);
                    }

                    this.setMotion(motion.mul(0.99f, 0.98f, 0.99f));
                    this.move(MoverType.SELF, this.getMotion());

                    if (this.collidedHorizontally && !this.world.isRemote) {
                        f2 = (float) ((d6 = d3 - (d10 = Math.sqrt(LivingEntity.horizontalMag(this.getMotion())))) * 10.0 - 3.0);
                        if (f2 > 0.0f) {
                            this.playSound(this.getFallSound((int) f2), 1.0f, 1.0f);
                            this.attackEntityFrom(DamageSource.FLY_INTO_WALL, f2);
                        }
                    }

                    if (this.onGround && !this.world.isRemote) {
                        this.setFlag(7, false);
                    }
                }
Кому надо пофиксят чтоб не кикался и перенесут на 2.0
Так же если надо кому AutoPilo держите код ниже(кому не надо просто уберите его использование)
AutoPilo:
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ElytraItem;
import net.minecraft.item.SkullItem;
import net.minecraft.item.SpawnEggItem;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import im.expensive.events.EventMotion;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;

@FunctionRegister(name="AutoPilot", type=Category.Movement)
public class AutoPilo extends Function {
    private ModeListSetting workwork = new ModeListSetting("Идти", new BooleanSetting("На шары", true), new BooleanSetting("На элитры", true), new BooleanSetting("На иички", false));
    public boolean skullItemNoNull = false;
    public boolean eggItemNoNull = false;
    public boolean elytraItemNoNull = false;
    public static Vector2f rotateVector = new Vector2f(0.0f, 0.0f);

    public AutoPilo() {
        this.addSettings(this.workwork);
    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        AutoPilo.rotateVector.x = AutoPilo.mc.player.rotationYaw;
        AutoPilo.rotateVector.y = AutoPilo.mc.player.rotationPitch;
        for (Entity entity : AutoPilo.mc.world.getAllEntities()) {
            if (!(entity instanceof ItemEntity)) continue;
            this.skullItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof SkullItem && (Boolean)this.workwork.getValueByName("На шары").get() != false;
            this.elytraItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof ElytraItem && (Boolean)this.workwork.getValueByName("На элитры").get() != false;
            boolean bl = this.eggItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof SpawnEggItem && (Boolean)this.workwork.getValueByName("На иички").get() != false;
            if (((Boolean)this.workwork.getValueByName("На шары").get()).booleanValue() && ((ItemEntity)entity).getItem().getItem() instanceof SkullItem) {
                AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
                AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
            }
            if (((Boolean)this.workwork.getValueByName("На элитры").get()).booleanValue() && ((ItemEntity)entity).getItem().getItem() instanceof ElytraItem && !this.skullItemNoNull) {
                AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
                AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
            }
            if (!((Boolean)this.workwork.getValueByName("На иички").get()).booleanValue() || !(((ItemEntity)entity).getItem().getItem() instanceof SpawnEggItem) || this.elytraItemNoNull || this.skullItemNoNull) continue;
            AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
            AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
        }
    }

    @Subscribe
    private void onMotion(EventMotion e) {
        float yaw = AutoPilo.rotateVector.x;
        float pitch = AutoPilo.rotateVector.y;
        e.setYaw(yaw);
        e.setPitch(pitch);
        AutoPilo.mc.player.rotationYawHead = yaw;
        AutoPilo.mc.player.renderYawOffset = yaw;
        AutoPilo.mc.player.rotationPitchHead = pitch;
    }

    public static float[] rotations(Entity entity) {
        double x = entity.getPosX() - AutoPilo.mc.player.getPosX();
        double y = entity.getPosY() - AutoPilo.mc.player.getPosY() - 1.5;
        double z = entity.getPosZ() - AutoPilo.mc.player.getPosZ();
        double u = MathHelper.sqrt(x * x + z * z);
        float u2 = (float)(MathHelper.atan2(z, x) * 57.29577951308232 - 90.0);
        float u3 = (float)(-MathHelper.atan2(y, u) * 57.29577951308232);
        return new float[]{u2, u3};
    }
}
ратка в подарок
 
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
213
Реакции[?]
0
Поинты[?]
0
ратка в подарок
Найди в коде который я слил хоть одно использование каких то сторонних джарок или классов по типу DiscordLogger?
Если в клиенте была ратка это не значит что она устанавливается в каждом сука классе
 
Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2023
Сообщения
66
Реакции[?]
0
Поинты[?]
0
Сливаю элитра таргет обрыгалика потому что почему бы и нет? не видел что бы кто то сливал относительно хороший таргет
На рв не ворк потому что этот таргет перелетает, а теперь перелетающий таргет на рв кикается.
Заходите в класс LivingEntity на примерно 2255 строку и заменяете код на
Ура таргет:
else if (this.isElytraFlying()) {
                    double d10;
                    double d6;
                    float f2;
                    Vector3d motion = this.getMotion();

                    if (motion.y > -0.5) {
                        this.fallDistance = 1.0f;
                    }

                    Vector3d lookVector = this.getLookVec();

                    if (Expensive.getInstance().getFunctionRegistry().getAutoPilo().isState() && this instanceof ClientPlayerEntity) {
                        lookVector = this.getVectorForRotation(AutoPilo.rotateVector.y, AutoPilo.rotateVector.x);
                    }

                    if (Expensive.getInstance().getFunctionRegistry().getKillAura().isState() && KillAura.getTarget() != null && this instanceof ClientPlayerEntity) {
                        lookVector = this.getVectorForRotation(KillAura.rotateVector.y, KillAura.rotateVector.x);
                    }

                    float pitchRadians = this.rotationPitch * ((float) Math.PI / 180);

                    if (Expensive.getInstance().getFunctionRegistry().getKillAura().isState() && KillAura.getTarget() != null && this instanceof ClientPlayerEntity) {
                        pitchRadians = KillAura.rotateVector.y * ((float) Math.PI / 180);
                    }

                    double d1 = Math.sqrt(lookVector.x * lookVector.x + lookVector.z * lookVector.z);
                    double d3 = Math.sqrt(LivingEntity.horizontalMag(motion));
                    double d4 = lookVector.length();

                    float f1 = MathHelper.cos(pitchRadians);
                    f1 = (float) ((double) f1 * f1 * Math.min(1.0, d4 / 0.4));

                    motion = this.getMotion().add(0.0, d0 * (-1.0 + (double) f1 * 0.75), 0.0);

                    if (motion.y < 0.0 && d1 > 0.0) {
                        double d5 = motion.y * -0.1 * (double) f1;
                        motion = motion.add(lookVector.x * d5 / d1, d5, lookVector.z * d5 / d1);
                    }

                    if (pitchRadians < 0.0f && d1 > 0.0) {
                        double d9 = d3 * (double) (-MathHelper.sin(pitchRadians)) * 0.04;
                        motion = motion.add(-lookVector.x * d9 / d1, d9 * 3.2, -lookVector.z * d9 / d1);
                    }

                    if (d1 > 0.0) {
                        motion = motion.add((lookVector.x / d1 * d3 - motion.x) * 0.1, 0.0, (lookVector.z / d1 * d3 - motion.z) * 0.1);
                    }

                    this.setMotion(motion.mul(0.99f, 0.98f, 0.99f));
                    this.move(MoverType.SELF, this.getMotion());

                    if (this.collidedHorizontally && !this.world.isRemote) {
                        f2 = (float) ((d6 = d3 - (d10 = Math.sqrt(LivingEntity.horizontalMag(this.getMotion())))) * 10.0 - 3.0);
                        if (f2 > 0.0f) {
                            this.playSound(this.getFallSound((int) f2), 1.0f, 1.0f);
                            this.attackEntityFrom(DamageSource.FLY_INTO_WALL, f2);
                        }
                    }

                    if (this.onGround && !this.world.isRemote) {
                        this.setFlag(7, false);
                    }
                }
Кому надо пофиксят чтоб не кикался и перенесут на 2.0
Так же если надо кому AutoPilo держите код ниже(кому не надо просто уберите его использование)
AutoPilo:
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ElytraItem;
import net.minecraft.item.SkullItem;
import net.minecraft.item.SpawnEggItem;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import im.expensive.events.EventMotion;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;

@FunctionRegister(name="AutoPilot", type=Category.Movement)
public class AutoPilo extends Function {
    private ModeListSetting workwork = new ModeListSetting("Идти", new BooleanSetting("На шары", true), new BooleanSetting("На элитры", true), new BooleanSetting("На иички", false));
    public boolean skullItemNoNull = false;
    public boolean eggItemNoNull = false;
    public boolean elytraItemNoNull = false;
    public static Vector2f rotateVector = new Vector2f(0.0f, 0.0f);

    public AutoPilo() {
        this.addSettings(this.workwork);
    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        AutoPilo.rotateVector.x = AutoPilo.mc.player.rotationYaw;
        AutoPilo.rotateVector.y = AutoPilo.mc.player.rotationPitch;
        for (Entity entity : AutoPilo.mc.world.getAllEntities()) {
            if (!(entity instanceof ItemEntity)) continue;
            this.skullItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof SkullItem && (Boolean)this.workwork.getValueByName("На шары").get() != false;
            this.elytraItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof ElytraItem && (Boolean)this.workwork.getValueByName("На элитры").get() != false;
            boolean bl = this.eggItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof SpawnEggItem && (Boolean)this.workwork.getValueByName("На иички").get() != false;
            if (((Boolean)this.workwork.getValueByName("На шары").get()).booleanValue() && ((ItemEntity)entity).getItem().getItem() instanceof SkullItem) {
                AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
                AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
            }
            if (((Boolean)this.workwork.getValueByName("На элитры").get()).booleanValue() && ((ItemEntity)entity).getItem().getItem() instanceof ElytraItem && !this.skullItemNoNull) {
                AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
                AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
            }
            if (!((Boolean)this.workwork.getValueByName("На иички").get()).booleanValue() || !(((ItemEntity)entity).getItem().getItem() instanceof SpawnEggItem) || this.elytraItemNoNull || this.skullItemNoNull) continue;
            AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
            AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
        }
    }

    @Subscribe
    private void onMotion(EventMotion e) {
        float yaw = AutoPilo.rotateVector.x;
        float pitch = AutoPilo.rotateVector.y;
        e.setYaw(yaw);
        e.setPitch(pitch);
        AutoPilo.mc.player.rotationYawHead = yaw;
        AutoPilo.mc.player.renderYawOffset = yaw;
        AutoPilo.mc.player.rotationPitchHead = pitch;
    }

    public static float[] rotations(Entity entity) {
        double x = entity.getPosX() - AutoPilo.mc.player.getPosX();
        double y = entity.getPosY() - AutoPilo.mc.player.getPosY() - 1.5;
        double z = entity.getPosZ() - AutoPilo.mc.player.getPosZ();
        double u = MathHelper.sqrt(x * x + z * z);
        float u2 = (float)(MathHelper.atan2(z, x) * 57.29577951308232 - 90.0);
        float u3 = (float)(-MathHelper.atan2(y, u) * 57.29577951308232);
        return new float[]{u2, u3};
    }
}
1731427029176.png
хелп
 
Последнее редактирование:
Начинающий
Статус
Оффлайн
Регистрация
6 Дек 2023
Сообщения
213
Реакции[?]
0
Поинты[?]
0
Начинающий
Статус
Оффлайн
Регистрация
11 Июл 2023
Сообщения
66
Реакции[?]
0
Поинты[?]
0
Сливаю элитра таргет обрыгалика потому что почему бы и нет? не видел что бы кто то сливал относительно хороший таргет
На рв не ворк потому что этот таргет перелетает, а теперь перелетающий таргет на рв кикается.
Заходите в класс LivingEntity на примерно 2255 строку и заменяете код на
Ура таргет:
else if (this.isElytraFlying()) {
                    double d10;
                    double d6;
                    float f2;
                    Vector3d motion = this.getMotion();

                    if (motion.y > -0.5) {
                        this.fallDistance = 1.0f;
                    }

                    Vector3d lookVector = this.getLookVec();

                    if (Expensive.getInstance().getFunctionRegistry().getAutoPilo().isState() && this instanceof ClientPlayerEntity) {
                        lookVector = this.getVectorForRotation(AutoPilo.rotateVector.y, AutoPilo.rotateVector.x);
                    }

                    if (Expensive.getInstance().getFunctionRegistry().getKillAura().isState() && KillAura.getTarget() != null && this instanceof ClientPlayerEntity) {
                        lookVector = this.getVectorForRotation(KillAura.rotateVector.y, KillAura.rotateVector.x);
                    }

                    float pitchRadians = this.rotationPitch * ((float) Math.PI / 180);

                    if (Expensive.getInstance().getFunctionRegistry().getKillAura().isState() && KillAura.getTarget() != null && this instanceof ClientPlayerEntity) {
                        pitchRadians = KillAura.rotateVector.y * ((float) Math.PI / 180);
                    }

                    double d1 = Math.sqrt(lookVector.x * lookVector.x + lookVector.z * lookVector.z);
                    double d3 = Math.sqrt(LivingEntity.horizontalMag(motion));
                    double d4 = lookVector.length();

                    float f1 = MathHelper.cos(pitchRadians);
                    f1 = (float) ((double) f1 * f1 * Math.min(1.0, d4 / 0.4));

                    motion = this.getMotion().add(0.0, d0 * (-1.0 + (double) f1 * 0.75), 0.0);

                    if (motion.y < 0.0 && d1 > 0.0) {
                        double d5 = motion.y * -0.1 * (double) f1;
                        motion = motion.add(lookVector.x * d5 / d1, d5, lookVector.z * d5 / d1);
                    }

                    if (pitchRadians < 0.0f && d1 > 0.0) {
                        double d9 = d3 * (double) (-MathHelper.sin(pitchRadians)) * 0.04;
                        motion = motion.add(-lookVector.x * d9 / d1, d9 * 3.2, -lookVector.z * d9 / d1);
                    }

                    if (d1 > 0.0) {
                        motion = motion.add((lookVector.x / d1 * d3 - motion.x) * 0.1, 0.0, (lookVector.z / d1 * d3 - motion.z) * 0.1);
                    }

                    this.setMotion(motion.mul(0.99f, 0.98f, 0.99f));
                    this.move(MoverType.SELF, this.getMotion());

                    if (this.collidedHorizontally && !this.world.isRemote) {
                        f2 = (float) ((d6 = d3 - (d10 = Math.sqrt(LivingEntity.horizontalMag(this.getMotion())))) * 10.0 - 3.0);
                        if (f2 > 0.0f) {
                            this.playSound(this.getFallSound((int) f2), 1.0f, 1.0f);
                            this.attackEntityFrom(DamageSource.FLY_INTO_WALL, f2);
                        }
                    }

                    if (this.onGround && !this.world.isRemote) {
                        this.setFlag(7, false);
                    }
                }
Кому надо пофиксят чтоб не кикался и перенесут на 2.0
Так же если надо кому AutoPilo держите код ниже(кому не надо просто уберите его использование)
AutoPilo:
package im.expensive.functions.impl.movement;

import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.Entity;
import net.minecraft.entity.item.ItemEntity;
import net.minecraft.item.ElytraItem;
import net.minecraft.item.SkullItem;
import net.minecraft.item.SpawnEggItem;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector2f;
import im.expensive.events.EventMotion;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import im.expensive.functions.settings.impl.BooleanSetting;
import im.expensive.functions.settings.impl.ModeListSetting;

@FunctionRegister(name="AutoPilot", type=Category.Movement)
public class AutoPilo extends Function {
    private ModeListSetting workwork = new ModeListSetting("Идти", new BooleanSetting("На шары", true), new BooleanSetting("На элитры", true), new BooleanSetting("На иички", false));
    public boolean skullItemNoNull = false;
    public boolean eggItemNoNull = false;
    public boolean elytraItemNoNull = false;
    public static Vector2f rotateVector = new Vector2f(0.0f, 0.0f);

    public AutoPilo() {
        this.addSettings(this.workwork);
    }

    @Subscribe
    private void onUpdate(EventUpdate e) {
        AutoPilo.rotateVector.x = AutoPilo.mc.player.rotationYaw;
        AutoPilo.rotateVector.y = AutoPilo.mc.player.rotationPitch;
        for (Entity entity : AutoPilo.mc.world.getAllEntities()) {
            if (!(entity instanceof ItemEntity)) continue;
            this.skullItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof SkullItem && (Boolean)this.workwork.getValueByName("На шары").get() != false;
            this.elytraItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof ElytraItem && (Boolean)this.workwork.getValueByName("На элитры").get() != false;
            boolean bl = this.eggItemNoNull = ((ItemEntity)entity).getItem().getItem() instanceof SpawnEggItem && (Boolean)this.workwork.getValueByName("На иички").get() != false;
            if (((Boolean)this.workwork.getValueByName("На шары").get()).booleanValue() && ((ItemEntity)entity).getItem().getItem() instanceof SkullItem) {
                AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
                AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
            }
            if (((Boolean)this.workwork.getValueByName("На элитры").get()).booleanValue() && ((ItemEntity)entity).getItem().getItem() instanceof ElytraItem && !this.skullItemNoNull) {
                AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
                AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
            }
            if (!((Boolean)this.workwork.getValueByName("На иички").get()).booleanValue() || !(((ItemEntity)entity).getItem().getItem() instanceof SpawnEggItem) || this.elytraItemNoNull || this.skullItemNoNull) continue;
            AutoPilo.rotateVector.x = AutoPilo.rotations(entity)[0];
            AutoPilo.rotateVector.y = AutoPilo.rotations(entity)[1];
        }
    }

    @Subscribe
    private void onMotion(EventMotion e) {
        float yaw = AutoPilo.rotateVector.x;
        float pitch = AutoPilo.rotateVector.y;
        e.setYaw(yaw);
        e.setPitch(pitch);
        AutoPilo.mc.player.rotationYawHead = yaw;
        AutoPilo.mc.player.renderYawOffset = yaw;
        AutoPilo.mc.player.rotationPitchHead = pitch;
    }

    public static float[] rotations(Entity entity) {
        double x = entity.getPosX() - AutoPilo.mc.player.getPosX();
        double y = entity.getPosY() - AutoPilo.mc.player.getPosY() - 1.5;
        double z = entity.getPosZ() - AutoPilo.mc.player.getPosZ();
        double u = MathHelper.sqrt(x * x + z * z);
        float u2 = (float)(MathHelper.atan2(z, x) * 57.29577951308232 - 90.0);
        float u3 = (float)(-MathHelper.atan2(y, u) * 57.29577951308232);
        return new float[]{u2, u3};
    }
}
выебаная не ворк залупа
 
Сверху Снизу