Начинающий
- Статус
- Оффлайн
- Регистрация
- 19 Дек 2023
- Сообщения
- 85
- Реакции
- 1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Код:
package omg.sticky.module.impl;
import com.google.common.collect.Lists;
import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec2f;
import omg.sticky.event.impl.EventUpdate;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import java.util.Comparator;
import java.util.List;
@ModuleInfo(name = "Aim Assist", desc = "Наводится на игроков")
public class AimBot extends Module {
private PlayerEntity target;
private Vec2f targetRotation = new Vec2f(0, 0);
private Vec2f currentRotation = new Vec2f(0, 0);
private final float rotationSpeed = 5.0f;
@Subscribe
public void onUpdate(EventUpdate e) {
updateTarget();
if (target != null) {
updateRotation();
float smoothYaw = smoothRotation(currentRotation.x, targetRotation.x, rotationSpeed);
float smoothPitch = smoothRotation(currentRotation.y, targetRotation.y, rotationSpeed);
currentRotation = new Vec2f(smoothYaw, smoothPitch);
mc.player.yaw = currentRotation.x;
mc.player.pitch = currentRotation.y;
}
}
private void updateTarget() {
List<PlayerEntity> players = Lists.newArrayList();
for (PlayerEntity player : mc.world.getPlayers()) {
if (canBeHit(player))
players.add(player);
}
if (players.isEmpty()) {
target = null;
return;
}
if (players.size() == 1) {
target = players.get(0);
return;
}
players.sort(Comparator.comparingDouble(player -> mc.player.distanceTo(player)));
target = players.get(0);
}
private void updateRotation() {
double deltaX = target.getX() - mc.player.getX();
double deltaY = target.getEyeY() - mc.player.getEyeY();
double deltaZ = target.getZ() - mc.player.getZ();
double distance = MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ);
float yaw = (float) (MathHelper.atan2(deltaZ, deltaX) * (180 / Math.PI) - 90);
float pitch = (float) -(MathHelper.atan2(deltaY, distance) * (180 / Math.PI));
targetRotation = new Vec2f(yaw, pitch);
}
private float smoothRotation(float current, float target, float speed) {
float delta = MathHelper.wrapDegrees(target - current);
return current + MathHelper.clamp(delta, -speed, speed);
}
private boolean canBeHit(PlayerEntity player) {
if (player == mc.player) return false;
if (player.getHealth() == 0 || !player.isAlive())
return false;
if (mc.player.distanceTo(player) > 3) return false;
return true;
}
}