-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
хз может кому надо (не бейте палками пожалуйста моя первая работа) взял идею с exoswar вроде так пишется ну и зделано спомощью chatgpt
package im.expensive.functions.impl.combat;
package im.expensive.functions.impl.combat;
SexAura:
package im.expensive.functions.impl.combat;
import com.google.common.eventbus.Subscribe;
import im.expensive.events.EventUpdate;
import im.expensive.functions.api.Category;
import im.expensive.functions.api.Function;
import im.expensive.functions.api.FunctionRegister;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Vector3d;
import java.util.Comparator;
@FunctionRegister(name = "SexAura", type = Category.Combat)
public class SexAura extends Function {
private PlayerEntity target;
private long lastSneakTime = 0;
@Subscribe
public void onUpdate(EventUpdate e) {
if (mc.player == null || mc.world == null) return;
// Если текущая цель потеряна или слишком далека, найти новую цель
if (target == null || target.getDistance(mc.player) > 10) {
findClosestPlayer();
}
// Если есть цель, подходим к ней, наводимся и нажимаем Shift с интервалом
if (target != null) {
approachAndSneak();
} else {
mc.gameSettings.keyBindSneak.setPressed(false); // Отпускаем Shift, если цели нет
releaseMovementKeys(); // Отпускаем все клавиши движения
}
}
// Поиск ближайшего игрока для агрессии
private void findClosestPlayer() {
target = mc.world.getPlayers().stream()
.filter(player -> player != mc.player) // Исключаем себя
.min(Comparator.comparingDouble(player -> player.getDistance(mc.player)))
.orElse(null);
}
// Подходим к цели, наводимся и нажимаем Shift
private void approachAndSneak() {
double distance = mc.player.getDistance(target);
// Подходим к цели, если расстояние больше 1 блока
if (distance > 0) {
moveTowardsTarget();
} else {
releaseMovementKeys(); // Останавливаем движение, если подошли достаточно близко
}
// Наводимся на туловище цели
lookAtTarget();
// Нажимаем Shift раз в 900 мс, если находимся рядом с целью
if (distance <= 0.5 && System.currentTimeMillis() - lastSneakTime >= 70) {
mc.gameSettings.keyBindSneak.setPressed(true);
lastSneakTime = System.currentTimeMillis();
} else {
mc.gameSettings.keyBindSneak.setPressed(false);
}
}
// Метод для корректировки направления взгляда на туловище цели
private void lookAtTarget() {
double deltaX = target.getPosX() - mc.player.getPosX();
double deltaY = target.getPosY() + target.getHeight() / 2 - mc.player.getPosYEye(); // Смотрим на туловище
double deltaZ = target.getPosZ() - mc.player.getPosZ();
double distanceXZ = MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ);
float yaw = (float) (MathHelper.atan2(deltaZ, deltaX) * (180 / Math.PI)) - 90;
float pitch = (float) -(MathHelper.atan2(deltaY, distanceXZ) * (180 / Math.PI));
mc.player.rotationYaw = yaw;
mc.player.rotationPitch = pitch;
}
// Метод для движения к цели, используя клавиши управления
private void moveTowardsTarget() {
mc.gameSettings.keyBindForward.setPressed(true);
}
// Метод для отпускания клавиш движения
private void releaseMovementKeys() {
mc.gameSettings.keyBindForward.setPressed(false);
}
[USER=1367676]@override[/USER]
public void onDisable() {
super.onDisable();
mc.gameSettings.keyBindSneak.setPressed(false); // Отпускаем Shift, когда отключаем мод
releaseMovementKeys(); // Останавливаем движение
target = null;
}
}