Начинающий
Начинающий
- Статус
- Онлайн
- Регистрация
- 27 Апр 2026
- Сообщения
- 7
- Реакции
- 0
У меня есть такой аимбот, я сначала сам пытался, потом нейронка помогала, короче много страдал, вроде всё плавно. Но анти-чит Funtime банит, кто-то может помочь и сказать как обойти, или что я не так сделал?
AimBot:
public class AimBot extends Module implements QuickImports {
public static AimBot getInstance() {
return Instance.get(AimBot.class);
}
private final BooleanSetting players = new BooleanSetting("Игроки", "").setValue(true);
private final BooleanSetting naked = new BooleanSetting("Голые", "").setValue(true);
private final BooleanSetting mobs = new BooleanSetting("Мобы", "").setValue(false);
private final BooleanSetting friends = new BooleanSetting("Друзья", "").setValue(false);
private final MultiSelectSetting targets = new MultiSelectSetting("Цели", "")
.value("Игроки", "Голые", "Мобы", "Друзья").selected("Игроки", "Голые");
private final SliderSettings dist = new SliderSettings("Дистанция", "")
.range(1f, 6f).step(0.1f).setValue(4f);
public static LivingEntity target;
private float speedYaw = 0.08f;
private float speedPitch = 0.08f;
private float aimX, aimZ, aimY = 0.7f;
private long nextUpdate;
public AimBot() {
super("AimBot", "AimBot", ModuleCategory.COMBAT);
setup(players, naked, mobs, friends, targets, dist);
}
public void onEnable() {
target = null;
speedYaw = 0.08f;
speedPitch = 0.08f;
nextUpdate = 0;
}
public void onDisable() {
target = null;
}
@EventHandler
public void onTick(TickEvent e) {
if (mc.player == null || mc.world == null) return;
if (target == null || !valid(target)) find();
}
@EventHandler
public void onDraw(DrawEvent e) {
if (mc.player == null || mc.world == null) return;
if (target == null || !valid(target)) find();
if (target != null) aim();
}
private void aim() {
updatePoint();
Vec3d eye = mc.player.getEyePos();
Vec3d pos = getPos();
Vec3d d = pos.subtract(eye);
double h = Math.sqrt(d.x * d.x + d.z * d.z);
if (h < 0.001) return;
float yaw = (float) Math.toDegrees(Math.atan2(-d.x, d.z));
float pitch = (float) -Math.toDegrees(Math.atan2(d.y, h));
float cy = mc.player.getYaw();
float cp = mc.player.getPitch();
float dy = MathHelper.wrapDegrees(yaw - cy);
float dp = pitch - cp;
float f1 = Math.abs(dy) / 20f;
float f2 = Math.abs(dp) / 20f;
if (f1 < 0.2f) f1 = 0.2f;
if (f2 < 0.2f) f2 = 0.2f;
if (f1 > 1f) f1 = 1f;
if (f2 > 1f) f2 = 1f;
float distTo = mc.player.distanceTo(target);
if (distTo < 2f) {
speedYaw = 0.04f;
speedPitch = 0.04f;
} else {
speedYaw = 0.08f;
speedPitch = 0.08f;
}
float ny = cy + dy * speedYaw * f1;
float np = cp + dp * speedPitch * f2;
float gcd = Math.max(mc.options.getMouseSensitivity().getValue().floatValue(), 0.01f) * 0.15f;
ny -= (ny - cy) % gcd;
np -= (np - cp) % gcd;
mc.player.setYaw(ny);
mc.player.setPitch(MathHelper.clamp(np, -90f, 90f));
}
private Vec3d getPos() {
double side = Math.max(0.02, target.getWidth() * 0.2);
double x = MathHelper.clamp(aimX, (float) -side, (float) side);
double z = MathHelper.clamp(aimZ, (float) -side, (float) side);
double y = target.getHeight() * aimY;
return target.getPos().add(x, y, z);
}
private void updatePoint() {
long t = System.currentTimeMillis();
if (t < nextUpdate) return;
ThreadLocalRandom r = ThreadLocalRandom.current();
aimY = 0.6f + r.nextFloat() * 0.3f;
float s = Math.max(target.getWidth() * 0.2f, 0.03f);
aimX = (r.nextFloat() - 0.5f) * 2f * s;
aimZ = (r.nextFloat() - 0.5f) * 2f * s;
nextUpdate = t + 150 + r.nextInt(150);
}
private void find() {
LivingEntity best = null;
double score = 9999;
Vec3d eye = mc.player.getEyePos();
Vec3d look = mc.player.getRotationVector().normalize();
for (Entity e : mc.world.getEntities()) {
if (!(e instanceof LivingEntity l)) continue;
if (!valid(l)) continue;
Vec3d dir = l.getPos().add(0, l.getHeight() * 0.5, 0).subtract(eye).normalize();
double angle = Math.acos(MathHelper.clamp(look.dotProduct(dir), -1, 1));
double dist = mc.player.distanceTo(l);
double s = angle * 8 + dist * 2;
if (s < score) {
score = s;
best = l;
}
}
target = best;
}
private boolean valid(LivingEntity e) {
if (e instanceof ClientPlayerEntity) return false;
if (mc.player.distanceTo(e) > dist.getValue()) return false;
if (!mc.player.canSee(e)) return false;
if (e instanceof PlayerEntity p) {
if (code.revenant.common.repository.friend.FriendUtils.isFriend(p) && !friends.isValue()) return false;
if (!targets.isSelected("Игроки")) return false;
if (p.getArmorVisibility() <= 0 && !targets.isSelected("Голые")) return false;
if (p.isCreative()) return false;
}
if ((e instanceof Monster || e instanceof SlimeEntity || e instanceof AnimalEntity || e instanceof VillagerEntity)
&& !targets.isSelected("Мобы")) return false;
return !e.isInvulnerable() && e.isAlive() && !(e instanceof ArmorStandEntity);
}
}