-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
по горизонтали только закрепен, а вправо влево можно голову вертеть
Код:
package omg.sticky.module.api.setting;
import net.minecraft.client.MinecraftClient;
import net.minecraft.entity.LivingEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.Vec3d;
public class aimAtTarget {
private static final MinecraftClient mc = MinecraftClient.getInstance();
public void aimAtTarget(LivingEntity target, float smoothness) {
if (target == null || mc.player == null) return;
Vec3d targetPos = target.getPos().add(0, target.getHeight() / 2.0, 0);
Vec3d playerEyePos = mc.player.getPos().add(0, mc.player.getEyeHeight(mc.player.getPose()), 0);
double deltaX = targetPos.x - playerEyePos.x;
double deltaY = targetPos.y - playerEyePos.y;
double deltaZ = targetPos.z - playerEyePos.z;
double distance = Math.sqrt(deltaX * deltaX + deltaZ * deltaZ);
float yaw = (float) Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90.0F;
float pitch = (float) -Math.toDegrees(Math.atan2(deltaY, distance));
mc.player.setHeadYaw(interpolate(mc.player.yaw, target.yaw, smoothness));
mc.player.pitch = interpolate(mc.player.pitch, target.pitch, smoothness);
}
private float interpolate(float current, float target, float smoothness) {
return current + MathHelper.clamp(target - current, -smoothness, smoothness);
}
}
Код:
package omg.sticky.module.impl;
import com.google.common.eventbus.Subscribe;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import omg.sticky.event.impl.EventUpdate;
import omg.sticky.module.api.Module;
import omg.sticky.module.api.ModuleInfo;
import omg.sticky.module.api.setting.aimAtTarget;
import java.util.List;
import static omg.sticky.util.Wrapper.mc;
@ModuleInfo(name = "AimAssist", desc = "Нацеливание на ближайшего врага с плавным переходом")
public class AimBot extends Module {
private final aimAtTarget aimHelper = new aimAtTarget(); // Экземпляр класса для нацеливания
@Subscribe
public void onUpdate(EventUpdate event) {
// Ищем ближайшую цель
LivingEntity target = findClosestTarget();
if (target != null) {
// Если цель найдена, наводим прицел на неё
aimHelper.aimAtTarget(target, 1f); // smoothness = 10.0
}
}
// Метод для поиска ближайшей цели
private LivingEntity findClosestTarget() {
List<LivingEntity> entities = mc.world.getEntitiesByClass(LivingEntity.class, mc.player.getBoundingBox().expand(20), entity -> entity != mc.player && entity instanceof PlayerEntity);
LivingEntity closestTarget = null;
double closestDistance = Double.MAX_VALUE;
for (LivingEntity entity : entities) {
double distance = mc.player.squaredDistanceTo(entity);
if (distance < closestDistance) {
closestDistance = distance;
closestTarget = entity;
}
}
return closestTarget;
}
@Override
public void onUpdate() {
}
}