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

Часть функционала RockStar / TargetStrafe / (Перенос с Rich)

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
15 Ноя 2025
Сообщения
24
Реакции
0
Выберите загрузчик игры
  1. Fabric
я вот не понимаю зачем это, хоть это можно спокойно за 2 минуты через нейронку перенести ( я чисто по приколу, ради учёбы переносил сам ну может комуто зайдёт) ( переносил с Rich 1.21.4 ) функц сами регните
сразу говорю на SS битва за фпс
Пожалуйста, авторизуйтесь для просмотра ссылки.

TargetЧлена:
Expand Collapse Copy
//а хуесосы ебаные о илюха монеси
package moscow.rockstar.systems.modules.modules.movement;

import moscow.rockstar.Rockstar;
import moscow.rockstar.systems.event.EventListener;
import moscow.rockstar.systems.event.impl.player.ClientPlayerTickEvent;
import moscow.rockstar.systems.event.impl.player.InputEvent;
import moscow.rockstar.systems.modules.api.ModuleCategory;
import moscow.rockstar.systems.modules.api.ModuleInfo;
import moscow.rockstar.systems.modules.impl.BaseModule;
import moscow.rockstar.systems.setting.settings.BooleanSetting;
import moscow.rockstar.systems.setting.settings.ModeSetting;
import moscow.rockstar.systems.setting.settings.SliderSetting;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;

@ModuleInfo(name = "TargetStrafe", category = ModuleCategory.MOVEMENT, desc = "Strafe around target")
public class TargetStrafe extends BaseModule {

  
    private final ModeSetting mode = new ModeSetting(this, "Mode");
    private final ModeSetting.Value modeMatrix = new ModeSetting.Value(this.mode, "Matrix").select();
    private final ModeSetting.Value modeGrim = new ModeSetting.Value(this.mode, "Grim");

    
    private final ModeSetting grimType = new ModeSetting(this, "Grim Point");
    private final ModeSetting.Value grimCube = new ModeSetting.Value(this.grimType, "Cube").select();
    private final ModeSetting.Value grimCenter = new ModeSetting.Value(this.grimType, "Center");
    private final ModeSetting.Value grimCircle = new ModeSetting.Value(this.grimType, "Circle");

  
    private final ModeSetting matrixType = new ModeSetting(this, "Matrix Point");
    private final ModeSetting.Value matrixCircle = new ModeSetting.Value(this.matrixType, "Circle").select();
    private final ModeSetting.Value matrixCube = new ModeSetting.Value(this.matrixType, "Cube");

   
    private final ModeSetting directionMode = new ModeSetting(this, "Direction");
    private final ModeSetting.Value clockwise = new ModeSetting.Value(this.directionMode, "Clockwise").select();
    private final ModeSetting.Value counterclockwise = new ModeSetting.Value(this.directionMode, "Counterclockwise");
    private final ModeSetting.Value random = new ModeSetting.Value(this.directionMode, "Random");

  
    private final BooleanSetting autoJump = new BooleanSetting(this, "Auto Jump").enable();
    private final BooleanSetting onlyKeyPressed = new BooleanSetting(this, "Only Key Pressed");
    private final BooleanSetting inFrontOfTarget = new BooleanSetting(this, "In Front Of Target");

  
    private final SliderSetting grimRadius = new SliderSetting(this, "Grim Radius")
            .min(0.1f).max(1.5f).step(0.01f).currentValue(0.87f);
    private final SliderSetting radius = new SliderSetting(this, "Matrix Radius")
            .min(0.1f).max(7f).step(0.01f).currentValue(2.5f);
    private final SliderSetting speed = new SliderSetting(this, "Matrix Speed")
            .min(0.1f).max(1f).step(0.01f).currentValue(0.3f);

    private int grimPointIndex = 0;

  
    private final EventListener<InputEvent> onInput = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeGrim.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = grimRadius.getCurrentValue();
        int dir = getDirectionMultiplier();

        Vec3d nextPoint;

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            if (grimCenter.isSelected()) {
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r * dir, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r * dir);
            } else {
                double offset = Math.cos(System.currentTimeMillis() / 500.0) * r * dir;
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r + Math.cos(Math.toRadians(targetYaw)) * offset, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r + Math.sin(Math.toRadians(targetYaw)) * offset);
            }
        } else if (grimCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            nextPoint = points[grimPointIndex];
        } else if (grimCircle.isSelected()) {
            double baseAngle = (System.currentTimeMillis() % 3600L) / 3600.0 * 4 * Math.PI;
            double angle = dir > 0 ? baseAngle : (2 * Math.PI - baseAngle);
            nextPoint = new Vec3d(
                    targetPos.x + Math.cos(angle) * r,
                    playerPos.y,
                    targetPos.z + Math.sin(angle) * r);
        } else {
            nextPoint = new Vec3d(targetPos.x, playerPos.y, targetPos.z);
        }

        Vec3d direction = nextPoint.subtract(playerPos).normalize();
        float yaw = Rockstar.getInstance().getRotationHandler().getCurrentRotation().getYaw();
        float movementAngle = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        float angleDiff = MathHelper.wrapDegrees(movementAngle - yaw);

      
        float fwd = 0, strafe = 0;
        if      (angleDiff >= -22.5f  && angleDiff <  22.5f)  { fwd =  1; }
        else if (angleDiff >=  22.5f  && angleDiff <  67.5f)  { fwd =  1; strafe =  1; }
        else if (angleDiff >=  67.5f  && angleDiff < 112.5f)  { strafe =  1; }
        else if (angleDiff >= 112.5f  && angleDiff < 157.5f)  { fwd = -1; strafe =  1; }
        else if (angleDiff >= -67.5f  && angleDiff < -22.5f)  { fwd =  1; strafe = -1; }
        else if (angleDiff >= -112.5f && angleDiff < -67.5f)  { strafe = -1; }
        else if (angleDiff >= -157.5f && angleDiff < -112.5f) { fwd = -1; strafe = -1; }
        else                                                    { fwd = -1; }

      
        float desiredYaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        event.setYaw(desiredYaw);

        if (autoJump.isEnabled() && mc.player.isOnGround())
            event.setJump(true);
    };

 
    private final EventListener<ClientPlayerTickEvent> onTick = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeMatrix.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        if (autoJump.isEnabled() && mc.player.isOnGround())
            mc.player.jump();

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = radius.getCurrentValue();
        int dir = getDirectionMultiplier();
        double motionSpeed = speed.getCurrentValue();

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            double x = targetPos.x - Math.sin(Math.toRadians(targetYaw)) * r * dir;
            double z = targetPos.z + Math.cos(Math.toRadians(targetYaw)) * r * dir;
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
            return;
        }

        if (matrixCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            Vec3d next = points[grimPointIndex];
            Vec3d dirVec = next.subtract(playerPos).normalize();
            float yaw = (float) Math.toDegrees(Math.atan2(dirVec.z, dirVec.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);

        } else {
            double angle = Math.atan2(playerPos.z - targetPos.z, playerPos.x - targetPos.x);
            angle += dir * motionSpeed / Math.max(playerPos.distanceTo(targetPos), r);
            double x = targetPos.x + r * Math.cos(angle);
            double z = targetPos.z + r * Math.sin(angle);
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
        }
    };

  
    private LivingEntity getTarget() {
        return Rockstar.getInstance().getTargetManager().getCurrentTarget() instanceof LivingEntity living ? living : null;
    }

    private int getDirectionMultiplier() {
        if (counterclockwise.isSelected()) return -1;
        if (random.isSelected()) return (System.currentTimeMillis() / 3000) % 2 == 0 ? 1 : -1;
        return 1;
    }

    private Vec3d[] getCubePoints(Vec3d targetPos, Vec3d playerPos, double r) {
        return new Vec3d[]{
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z - r),
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z - r)
        };
    }

    @Override
    public void onEnable() {
        grimPointIndex = 0;
        super.onEnable();
    }
}
 
я вот не понимаю зачем это, хоть это можно спокойно за 2 минуты через нейронку перенести ( я чисто по приколу, ради учёбы переносил сам ну может комуто зайдёт) ( переносил с Rich 1.21.4 ) функц сами регните
сразу говорю на SS битва за фпс
Пожалуйста, авторизуйтесь для просмотра ссылки.

TargetЧлена:
Expand Collapse Copy
//а хуесосы ебаные о илюха монеси
package moscow.rockstar.systems.modules.modules.movement;

import moscow.rockstar.Rockstar;
import moscow.rockstar.systems.event.EventListener;
import moscow.rockstar.systems.event.impl.player.ClientPlayerTickEvent;
import moscow.rockstar.systems.event.impl.player.InputEvent;
import moscow.rockstar.systems.modules.api.ModuleCategory;
import moscow.rockstar.systems.modules.api.ModuleInfo;
import moscow.rockstar.systems.modules.impl.BaseModule;
import moscow.rockstar.systems.setting.settings.BooleanSetting;
import moscow.rockstar.systems.setting.settings.ModeSetting;
import moscow.rockstar.systems.setting.settings.SliderSetting;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;

@ModuleInfo(name = "TargetStrafe", category = ModuleCategory.MOVEMENT, desc = "Strafe around target")
public class TargetStrafe extends BaseModule {

 
    private final ModeSetting mode = new ModeSetting(this, "Mode");
    private final ModeSetting.Value modeMatrix = new ModeSetting.Value(this.mode, "Matrix").select();
    private final ModeSetting.Value modeGrim = new ModeSetting.Value(this.mode, "Grim");

   
    private final ModeSetting grimType = new ModeSetting(this, "Grim Point");
    private final ModeSetting.Value grimCube = new ModeSetting.Value(this.grimType, "Cube").select();
    private final ModeSetting.Value grimCenter = new ModeSetting.Value(this.grimType, "Center");
    private final ModeSetting.Value grimCircle = new ModeSetting.Value(this.grimType, "Circle");

 
    private final ModeSetting matrixType = new ModeSetting(this, "Matrix Point");
    private final ModeSetting.Value matrixCircle = new ModeSetting.Value(this.matrixType, "Circle").select();
    private final ModeSetting.Value matrixCube = new ModeSetting.Value(this.matrixType, "Cube");

  
    private final ModeSetting directionMode = new ModeSetting(this, "Direction");
    private final ModeSetting.Value clockwise = new ModeSetting.Value(this.directionMode, "Clockwise").select();
    private final ModeSetting.Value counterclockwise = new ModeSetting.Value(this.directionMode, "Counterclockwise");
    private final ModeSetting.Value random = new ModeSetting.Value(this.directionMode, "Random");

 
    private final BooleanSetting autoJump = new BooleanSetting(this, "Auto Jump").enable();
    private final BooleanSetting onlyKeyPressed = new BooleanSetting(this, "Only Key Pressed");
    private final BooleanSetting inFrontOfTarget = new BooleanSetting(this, "In Front Of Target");

 
    private final SliderSetting grimRadius = new SliderSetting(this, "Grim Radius")
            .min(0.1f).max(1.5f).step(0.01f).currentValue(0.87f);
    private final SliderSetting radius = new SliderSetting(this, "Matrix Radius")
            .min(0.1f).max(7f).step(0.01f).currentValue(2.5f);
    private final SliderSetting speed = new SliderSetting(this, "Matrix Speed")
            .min(0.1f).max(1f).step(0.01f).currentValue(0.3f);

    private int grimPointIndex = 0;

 
    private final EventListener<InputEvent> onInput = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeGrim.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = grimRadius.getCurrentValue();
        int dir = getDirectionMultiplier();

        Vec3d nextPoint;

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            if (grimCenter.isSelected()) {
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r * dir, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r * dir);
            } else {
                double offset = Math.cos(System.currentTimeMillis() / 500.0) * r * dir;
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r + Math.cos(Math.toRadians(targetYaw)) * offset, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r + Math.sin(Math.toRadians(targetYaw)) * offset);
            }
        } else if (grimCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            nextPoint = points[grimPointIndex];
        } else if (grimCircle.isSelected()) {
            double baseAngle = (System.currentTimeMillis() % 3600L) / 3600.0 * 4 * Math.PI;
            double angle = dir > 0 ? baseAngle : (2 * Math.PI - baseAngle);
            nextPoint = new Vec3d(
                    targetPos.x + Math.cos(angle) * r,
                    playerPos.y,
                    targetPos.z + Math.sin(angle) * r);
        } else {
            nextPoint = new Vec3d(targetPos.x, playerPos.y, targetPos.z);
        }

        Vec3d direction = nextPoint.subtract(playerPos).normalize();
        float yaw = Rockstar.getInstance().getRotationHandler().getCurrentRotation().getYaw();
        float movementAngle = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        float angleDiff = MathHelper.wrapDegrees(movementAngle - yaw);

     
        float fwd = 0, strafe = 0;
        if      (angleDiff >= -22.5f  && angleDiff <  22.5f)  { fwd =  1; }
        else if (angleDiff >=  22.5f  && angleDiff <  67.5f)  { fwd =  1; strafe =  1; }
        else if (angleDiff >=  67.5f  && angleDiff < 112.5f)  { strafe =  1; }
        else if (angleDiff >= 112.5f  && angleDiff < 157.5f)  { fwd = -1; strafe =  1; }
        else if (angleDiff >= -67.5f  && angleDiff < -22.5f)  { fwd =  1; strafe = -1; }
        else if (angleDiff >= -112.5f && angleDiff < -67.5f)  { strafe = -1; }
        else if (angleDiff >= -157.5f && angleDiff < -112.5f) { fwd = -1; strafe = -1; }
        else                                                    { fwd = -1; }

     
        float desiredYaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        event.setYaw(desiredYaw);

        if (autoJump.isEnabled() && mc.player.isOnGround())
            event.setJump(true);
    };

 
    private final EventListener<ClientPlayerTickEvent> onTick = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeMatrix.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        if (autoJump.isEnabled() && mc.player.isOnGround())
            mc.player.jump();

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = radius.getCurrentValue();
        int dir = getDirectionMultiplier();
        double motionSpeed = speed.getCurrentValue();

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            double x = targetPos.x - Math.sin(Math.toRadians(targetYaw)) * r * dir;
            double z = targetPos.z + Math.cos(Math.toRadians(targetYaw)) * r * dir;
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
            return;
        }

        if (matrixCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            Vec3d next = points[grimPointIndex];
            Vec3d dirVec = next.subtract(playerPos).normalize();
            float yaw = (float) Math.toDegrees(Math.atan2(dirVec.z, dirVec.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);

        } else {
            double angle = Math.atan2(playerPos.z - targetPos.z, playerPos.x - targetPos.x);
            angle += dir * motionSpeed / Math.max(playerPos.distanceTo(targetPos), r);
            double x = targetPos.x + r * Math.cos(angle);
            double z = targetPos.z + r * Math.sin(angle);
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
        }
    };

 
    private LivingEntity getTarget() {
        return Rockstar.getInstance().getTargetManager().getCurrentTarget() instanceof LivingEntity living ? living : null;
    }

    private int getDirectionMultiplier() {
        if (counterclockwise.isSelected()) return -1;
        if (random.isSelected()) return (System.currentTimeMillis() / 3000) % 2 == 0 ? 1 : -1;
        return 1;
    }

    private Vec3d[] getCubePoints(Vec3d targetPos, Vec3d playerPos, double r) {
        return new Vec3d[]{
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z - r),
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z - r)
        };
    }

    @Override
    public void onEnable() {
        grimPointIndex = 0;
        super.onEnable();
    }
}
ну ок
 
я вот не понимаю зачем это, хоть это можно спокойно за 2 минуты через нейронку перенести ( я чисто по приколу, ради учёбы переносил сам ну может комуто зайдёт) ( переносил с Rich 1.21.4 ) функц сами регните
сразу говорю на SS битва за фпс
Пожалуйста, авторизуйтесь для просмотра ссылки.

TargetЧлена:
Expand Collapse Copy
//а хуесосы ебаные о илюха монеси
package moscow.rockstar.systems.modules.modules.movement;

import moscow.rockstar.Rockstar;
import moscow.rockstar.systems.event.EventListener;
import moscow.rockstar.systems.event.impl.player.ClientPlayerTickEvent;
import moscow.rockstar.systems.event.impl.player.InputEvent;
import moscow.rockstar.systems.modules.api.ModuleCategory;
import moscow.rockstar.systems.modules.api.ModuleInfo;
import moscow.rockstar.systems.modules.impl.BaseModule;
import moscow.rockstar.systems.setting.settings.BooleanSetting;
import moscow.rockstar.systems.setting.settings.ModeSetting;
import moscow.rockstar.systems.setting.settings.SliderSetting;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;

@ModuleInfo(name = "TargetStrafe", category = ModuleCategory.MOVEMENT, desc = "Strafe around target")
public class TargetStrafe extends BaseModule {

 
    private final ModeSetting mode = new ModeSetting(this, "Mode");
    private final ModeSetting.Value modeMatrix = new ModeSetting.Value(this.mode, "Matrix").select();
    private final ModeSetting.Value modeGrim = new ModeSetting.Value(this.mode, "Grim");

   
    private final ModeSetting grimType = new ModeSetting(this, "Grim Point");
    private final ModeSetting.Value grimCube = new ModeSetting.Value(this.grimType, "Cube").select();
    private final ModeSetting.Value grimCenter = new ModeSetting.Value(this.grimType, "Center");
    private final ModeSetting.Value grimCircle = new ModeSetting.Value(this.grimType, "Circle");

 
    private final ModeSetting matrixType = new ModeSetting(this, "Matrix Point");
    private final ModeSetting.Value matrixCircle = new ModeSetting.Value(this.matrixType, "Circle").select();
    private final ModeSetting.Value matrixCube = new ModeSetting.Value(this.matrixType, "Cube");

  
    private final ModeSetting directionMode = new ModeSetting(this, "Direction");
    private final ModeSetting.Value clockwise = new ModeSetting.Value(this.directionMode, "Clockwise").select();
    private final ModeSetting.Value counterclockwise = new ModeSetting.Value(this.directionMode, "Counterclockwise");
    private final ModeSetting.Value random = new ModeSetting.Value(this.directionMode, "Random");

 
    private final BooleanSetting autoJump = new BooleanSetting(this, "Auto Jump").enable();
    private final BooleanSetting onlyKeyPressed = new BooleanSetting(this, "Only Key Pressed");
    private final BooleanSetting inFrontOfTarget = new BooleanSetting(this, "In Front Of Target");

 
    private final SliderSetting grimRadius = new SliderSetting(this, "Grim Radius")
            .min(0.1f).max(1.5f).step(0.01f).currentValue(0.87f);
    private final SliderSetting radius = new SliderSetting(this, "Matrix Radius")
            .min(0.1f).max(7f).step(0.01f).currentValue(2.5f);
    private final SliderSetting speed = new SliderSetting(this, "Matrix Speed")
            .min(0.1f).max(1f).step(0.01f).currentValue(0.3f);

    private int grimPointIndex = 0;

 
    private final EventListener<InputEvent> onInput = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeGrim.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = grimRadius.getCurrentValue();
        int dir = getDirectionMultiplier();

        Vec3d nextPoint;

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            if (grimCenter.isSelected()) {
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r * dir, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r * dir);
            } else {
                double offset = Math.cos(System.currentTimeMillis() / 500.0) * r * dir;
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r + Math.cos(Math.toRadians(targetYaw)) * offset, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r + Math.sin(Math.toRadians(targetYaw)) * offset);
            }
        } else if (grimCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            nextPoint = points[grimPointIndex];
        } else if (grimCircle.isSelected()) {
            double baseAngle = (System.currentTimeMillis() % 3600L) / 3600.0 * 4 * Math.PI;
            double angle = dir > 0 ? baseAngle : (2 * Math.PI - baseAngle);
            nextPoint = new Vec3d(
                    targetPos.x + Math.cos(angle) * r,
                    playerPos.y,
                    targetPos.z + Math.sin(angle) * r);
        } else {
            nextPoint = new Vec3d(targetPos.x, playerPos.y, targetPos.z);
        }

        Vec3d direction = nextPoint.subtract(playerPos).normalize();
        float yaw = Rockstar.getInstance().getRotationHandler().getCurrentRotation().getYaw();
        float movementAngle = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        float angleDiff = MathHelper.wrapDegrees(movementAngle - yaw);

     
        float fwd = 0, strafe = 0;
        if      (angleDiff >= -22.5f  && angleDiff <  22.5f)  { fwd =  1; }
        else if (angleDiff >=  22.5f  && angleDiff <  67.5f)  { fwd =  1; strafe =  1; }
        else if (angleDiff >=  67.5f  && angleDiff < 112.5f)  { strafe =  1; }
        else if (angleDiff >= 112.5f  && angleDiff < 157.5f)  { fwd = -1; strafe =  1; }
        else if (angleDiff >= -67.5f  && angleDiff < -22.5f)  { fwd =  1; strafe = -1; }
        else if (angleDiff >= -112.5f && angleDiff < -67.5f)  { strafe = -1; }
        else if (angleDiff >= -157.5f && angleDiff < -112.5f) { fwd = -1; strafe = -1; }
        else                                                    { fwd = -1; }

     
        float desiredYaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        event.setYaw(desiredYaw);

        if (autoJump.isEnabled() && mc.player.isOnGround())
            event.setJump(true);
    };

 
    private final EventListener<ClientPlayerTickEvent> onTick = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeMatrix.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        if (autoJump.isEnabled() && mc.player.isOnGround())
            mc.player.jump();

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = radius.getCurrentValue();
        int dir = getDirectionMultiplier();
        double motionSpeed = speed.getCurrentValue();

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            double x = targetPos.x - Math.sin(Math.toRadians(targetYaw)) * r * dir;
            double z = targetPos.z + Math.cos(Math.toRadians(targetYaw)) * r * dir;
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
            return;
        }

        if (matrixCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            Vec3d next = points[grimPointIndex];
            Vec3d dirVec = next.subtract(playerPos).normalize();
            float yaw = (float) Math.toDegrees(Math.atan2(dirVec.z, dirVec.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);

        } else {
            double angle = Math.atan2(playerPos.z - targetPos.z, playerPos.x - targetPos.x);
            angle += dir * motionSpeed / Math.max(playerPos.distanceTo(targetPos), r);
            double x = targetPos.x + r * Math.cos(angle);
            double z = targetPos.z + r * Math.sin(angle);
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
        }
    };

 
    private LivingEntity getTarget() {
        return Rockstar.getInstance().getTargetManager().getCurrentTarget() instanceof LivingEntity living ? living : null;
    }

    private int getDirectionMultiplier() {
        if (counterclockwise.isSelected()) return -1;
        if (random.isSelected()) return (System.currentTimeMillis() / 3000) % 2 == 0 ? 1 : -1;
        return 1;
    }

    private Vec3d[] getCubePoints(Vec3d targetPos, Vec3d playerPos, double r) {
        return new Vec3d[]{
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z - r),
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z - r)
        };
    }

    @Override
    public void onEnable() {
        grimPointIndex = 0;
        super.onEnable();
    }
}
Ну нормально
 
я вот не понимаю зачем это, хоть это можно спокойно за 2 минуты через нейронку перенести ( я чисто по приколу, ради учёбы переносил сам ну может комуто зайдёт) ( переносил с Rich 1.21.4 ) функц сами регните
сразу говорю на SS битва за фпс
Пожалуйста, авторизуйтесь для просмотра ссылки.

TargetЧлена:
Expand Collapse Copy
//а хуесосы ебаные о илюха монеси
package moscow.rockstar.systems.modules.modules.movement;

import moscow.rockstar.Rockstar;
import moscow.rockstar.systems.event.EventListener;
import moscow.rockstar.systems.event.impl.player.ClientPlayerTickEvent;
import moscow.rockstar.systems.event.impl.player.InputEvent;
import moscow.rockstar.systems.modules.api.ModuleCategory;
import moscow.rockstar.systems.modules.api.ModuleInfo;
import moscow.rockstar.systems.modules.impl.BaseModule;
import moscow.rockstar.systems.setting.settings.BooleanSetting;
import moscow.rockstar.systems.setting.settings.ModeSetting;
import moscow.rockstar.systems.setting.settings.SliderSetting;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;

@ModuleInfo(name = "TargetStrafe", category = ModuleCategory.MOVEMENT, desc = "Strafe around target")
public class TargetStrafe extends BaseModule {

 
    private final ModeSetting mode = new ModeSetting(this, "Mode");
    private final ModeSetting.Value modeMatrix = new ModeSetting.Value(this.mode, "Matrix").select();
    private final ModeSetting.Value modeGrim = new ModeSetting.Value(this.mode, "Grim");

   
    private final ModeSetting grimType = new ModeSetting(this, "Grim Point");
    private final ModeSetting.Value grimCube = new ModeSetting.Value(this.grimType, "Cube").select();
    private final ModeSetting.Value grimCenter = new ModeSetting.Value(this.grimType, "Center");
    private final ModeSetting.Value grimCircle = new ModeSetting.Value(this.grimType, "Circle");

 
    private final ModeSetting matrixType = new ModeSetting(this, "Matrix Point");
    private final ModeSetting.Value matrixCircle = new ModeSetting.Value(this.matrixType, "Circle").select();
    private final ModeSetting.Value matrixCube = new ModeSetting.Value(this.matrixType, "Cube");

  
    private final ModeSetting directionMode = new ModeSetting(this, "Direction");
    private final ModeSetting.Value clockwise = new ModeSetting.Value(this.directionMode, "Clockwise").select();
    private final ModeSetting.Value counterclockwise = new ModeSetting.Value(this.directionMode, "Counterclockwise");
    private final ModeSetting.Value random = new ModeSetting.Value(this.directionMode, "Random");

 
    private final BooleanSetting autoJump = new BooleanSetting(this, "Auto Jump").enable();
    private final BooleanSetting onlyKeyPressed = new BooleanSetting(this, "Only Key Pressed");
    private final BooleanSetting inFrontOfTarget = new BooleanSetting(this, "In Front Of Target");

 
    private final SliderSetting grimRadius = new SliderSetting(this, "Grim Radius")
            .min(0.1f).max(1.5f).step(0.01f).currentValue(0.87f);
    private final SliderSetting radius = new SliderSetting(this, "Matrix Radius")
            .min(0.1f).max(7f).step(0.01f).currentValue(2.5f);
    private final SliderSetting speed = new SliderSetting(this, "Matrix Speed")
            .min(0.1f).max(1f).step(0.01f).currentValue(0.3f);

    private int grimPointIndex = 0;

 
    private final EventListener<InputEvent> onInput = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeGrim.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = grimRadius.getCurrentValue();
        int dir = getDirectionMultiplier();

        Vec3d nextPoint;

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            if (grimCenter.isSelected()) {
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r * dir, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r * dir);
            } else {
                double offset = Math.cos(System.currentTimeMillis() / 500.0) * r * dir;
                nextPoint = targetPos.add(
                        -Math.sin(Math.toRadians(targetYaw)) * r + Math.cos(Math.toRadians(targetYaw)) * offset, 0,
                        Math.cos(Math.toRadians(targetYaw)) * r + Math.sin(Math.toRadians(targetYaw)) * offset);
            }
        } else if (grimCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            nextPoint = points[grimPointIndex];
        } else if (grimCircle.isSelected()) {
            double baseAngle = (System.currentTimeMillis() % 3600L) / 3600.0 * 4 * Math.PI;
            double angle = dir > 0 ? baseAngle : (2 * Math.PI - baseAngle);
            nextPoint = new Vec3d(
                    targetPos.x + Math.cos(angle) * r,
                    playerPos.y,
                    targetPos.z + Math.sin(angle) * r);
        } else {
            nextPoint = new Vec3d(targetPos.x, playerPos.y, targetPos.z);
        }

        Vec3d direction = nextPoint.subtract(playerPos).normalize();
        float yaw = Rockstar.getInstance().getRotationHandler().getCurrentRotation().getYaw();
        float movementAngle = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        float angleDiff = MathHelper.wrapDegrees(movementAngle - yaw);

     
        float fwd = 0, strafe = 0;
        if      (angleDiff >= -22.5f  && angleDiff <  22.5f)  { fwd =  1; }
        else if (angleDiff >=  22.5f  && angleDiff <  67.5f)  { fwd =  1; strafe =  1; }
        else if (angleDiff >=  67.5f  && angleDiff < 112.5f)  { strafe =  1; }
        else if (angleDiff >= 112.5f  && angleDiff < 157.5f)  { fwd = -1; strafe =  1; }
        else if (angleDiff >= -67.5f  && angleDiff < -22.5f)  { fwd =  1; strafe = -1; }
        else if (angleDiff >= -112.5f && angleDiff < -67.5f)  { strafe = -1; }
        else if (angleDiff >= -157.5f && angleDiff < -112.5f) { fwd = -1; strafe = -1; }
        else                                                    { fwd = -1; }

     
        float desiredYaw = (float) Math.toDegrees(Math.atan2(direction.z, direction.x)) - 90f;
        event.setYaw(desiredYaw);

        if (autoJump.isEnabled() && mc.player.isOnGround())
            event.setJump(true);
    };

 
    private final EventListener<ClientPlayerTickEvent> onTick = event -> {
        if (mc.player == null || mc.world == null) return;
        if (!modeMatrix.isSelected()) return;

        LivingEntity target = getTarget();
        if (target == null || !target.isAlive()) return;

        if (onlyKeyPressed.isEnabled()) {
            if (!mc.options.forwardKey.isPressed() &&
                    !mc.options.backKey.isPressed() &&
                    !mc.options.leftKey.isPressed() &&
                    !mc.options.rightKey.isPressed()) return;
        }

        if (autoJump.isEnabled() && mc.player.isOnGround())
            mc.player.jump();

        Vec3d playerPos = mc.player.getPos();
        Vec3d targetPos = target.getPos();
        double r = radius.getCurrentValue();
        int dir = getDirectionMultiplier();
        double motionSpeed = speed.getCurrentValue();

        if (inFrontOfTarget.isEnabled()) {
            float targetYaw = target.getYaw();
            double x = targetPos.x - Math.sin(Math.toRadians(targetYaw)) * r * dir;
            double z = targetPos.z + Math.cos(Math.toRadians(targetYaw)) * r * dir;
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
            return;
        }

        if (matrixCube.isSelected()) {
            Vec3d[] points = getCubePoints(targetPos, playerPos, r);
            if (playerPos.distanceTo(points[grimPointIndex]) < 0.5)
                grimPointIndex = (grimPointIndex + dir + points.length) % points.length;
            Vec3d next = points[grimPointIndex];
            Vec3d dirVec = next.subtract(playerPos).normalize();
            float yaw = (float) Math.toDegrees(Math.atan2(dirVec.z, dirVec.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);

        } else {
            double angle = Math.atan2(playerPos.z - targetPos.z, playerPos.x - targetPos.x);
            angle += dir * motionSpeed / Math.max(playerPos.distanceTo(targetPos), r);
            double x = targetPos.x + r * Math.cos(angle);
            double z = targetPos.z + r * Math.sin(angle);
            float yaw = (float) Math.toDegrees(Math.atan2(z - playerPos.z, x - playerPos.x)) - 90f;
            mc.player.setVelocity(
                    -Math.sin(Math.toRadians(yaw)) * motionSpeed,
                    mc.player.getVelocity().y,
                    Math.cos(Math.toRadians(yaw)) * motionSpeed);
        }
    };

 
    private LivingEntity getTarget() {
        return Rockstar.getInstance().getTargetManager().getCurrentTarget() instanceof LivingEntity living ? living : null;
    }

    private int getDirectionMultiplier() {
        if (counterclockwise.isSelected()) return -1;
        if (random.isSelected()) return (System.currentTimeMillis() / 3000) % 2 == 0 ? 1 : -1;
        return 1;
    }

    private Vec3d[] getCubePoints(Vec3d targetPos, Vec3d playerPos, double r) {
        return new Vec3d[]{
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z - r),
                new Vec3d(targetPos.x - r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z + r),
                new Vec3d(targetPos.x + r, playerPos.y, targetPos.z - r)
        };
    }

    @Override
    public void onEnable() {
        grimPointIndex = 0;
        super.onEnable();
    }
}
мда нах вы из рича то переносите? ладно на 1.21.11 портнуть но с 1.21.4 на 1.21.4?
 
Назад
Сверху Снизу