Начинающий
- Статус
- Оффлайн
- Регистрация
- 15 Ноя 2025
- Сообщения
- 24
- Реакции
- 0
- Выберите загрузчик игры
- Fabric
я вот не понимаю зачем это, хоть это можно спокойно за 2 минуты через нейронку перенести ( я чисто по приколу, ради учёбы переносил сам ну может комуто зайдёт) ( переносил с Rich 1.21.4 ) функц сами регните
сразу говорю на SS битва за фпс
сразу говорю на SS битва за фпс
Пожалуйста, авторизуйтесь для просмотра ссылки.
TargetЧлена:
//а хуесосы ебаные о илюха монеси
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();
}
}