-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Всем привет, первый опыт в джаве, и вот что получилось сделать.
1 - ЧекБокс, который при указанном вами ХП (В моем случае 6) Будет отключать модуль, и самостоятельно разворачиваться на 180 градусов, и улетать. Можете сделать Слайдер, и игрок сам будет указывать ХП
2 - При убийстве таргета, элитратаргет оставался на последнем месте таргета, и думал что он там есть, на самом деле там никого не было. Это я пофиксил. Все, кому нужно берите, кто может, укажите на мои ошибки, буду очень рад.
1 - ЧекБокс, который при указанном вами ХП (В моем случае 6) Будет отключать модуль, и самостоятельно разворачиваться на 180 градусов, и улетать. Можете сделать Слайдер, и игрок сам будет указывать ХП
2 - При убийстве таргета, элитратаргет оставался на последнем месте таргета, и думал что он там есть, на самом деле там никого не было. Это я пофиксил. Все, кому нужно берите, кто может, укажите на мои ошибки, буду очень рад.
Java:
package aurora.client.modules.impl.player;
import aurora.client.modules.Module;
import aurora.client.modules.ModuleAnnotation;
import aurora.client.modules.impl.misc.ElytraSwap;
import aurora.client.modules.tools.imp.BooleanOption;
import aurora.code.common.util.CategoryUtil;
import aurora.code.common.events.Event;
import aurora.code.common.events.impl.player.EventPlayerDeath;
import aurora.code.common.events.impl.player.EventUpdate;
import aurora.code.common.util.utils.ClientUtil;
import aurora.code.common.util.utils.InventoryUtil;
import ch.qos.logback.core.net.server.Client;
import net.minecraft.client.Minecraft;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.play.client.CHeldItemChangePacket;
import net.minecraft.network.play.client.CPlayerTryUseItemPacket;
import net.minecraft.util.Hand;
import net.minecraft.util.math.AxisAlignedBB;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.world.World;
import java.util.HashSet;
import java.util.List;
import java.util.Set;
@ModuleAnnotation(name = "ElytraTarget", type = CategoryUtil.Player)
public class ElytraTarget extends Module {
private Set<PlayerEntity> targetedPlayers = new HashSet<>();
private boolean isTargeting = false;
private long lastFireworkTime = 0;
private long fireworkCooldown = 750; // Изначальный кулдаун
private long lastChatMessageTime = 0;
private long chatMessageInterval = 5000; // Интервал между сообщениями в чат
private BooleanOption box = new BooleanOption("Безопасность", true);
public ElytraTarget() {
addSettings(box);
}
@Override
public void onEvent(Event event) {
if (event instanceof EventUpdate updateEvent) {
onUpdate(updateEvent);
} else if (event instanceof EventPlayerDeath deathEvent) {
onPlayerDeath(deathEvent);
}
}
private void onUpdate(EventUpdate updateEvent) {
if (isEnabled() && !isTargeting) {
if (Minecraft.getInstance().player.isElytraFlying()) {
targetPlayer();
}
} else if (isEnabled() && isTargeting) {
if (Minecraft.getInstance().player.isElytraFlying()) {
updateRotationToPlayer();
useFirework();
checkChatMessage();
} else {
stopTargeting();
}
} else if (!isEnabled() && isTargeting) {
stopTargeting();
}
}
private void onPlayerDeath(EventPlayerDeath deathEvent) {
targetedPlayers.remove(deathEvent.getPlayer());
}
private void targetPlayer() {
World world = Minecraft.getInstance().world;
if (world != null) {
List<Entity> entities = world.getEntitiesWithinAABBExcludingEntity(Minecraft.getInstance().player,
new AxisAlignedBB(Minecraft.getInstance().player.getPosX() - 10, Minecraft.getInstance().player.getPosY() - 5, Minecraft.getInstance().player.getPosZ() - 10,
Minecraft.getInstance().player.getPosX() + 10, Minecraft.getInstance().player.getPosY() + 5, Minecraft.getInstance().player.getPosZ() + 10));
for (Entity entity : entities) {
if (entity instanceof PlayerEntity && entity.isAlive()) {
PlayerEntity target = (PlayerEntity) entity;
if (!targetedPlayers.contains(target)) {
targetedPlayers.clear();
targetedPlayers.add(target);
isTargeting = true;
setRotationToPlayer(target);
return;
}
}
}
}
}
private void setRotationToPlayer(PlayerEntity player) {
if (player != null) {
double deltaX = player.getPosX() - Minecraft.getInstance().player.getPosX();
double deltaZ = player.getPosZ() - Minecraft.getInstance().player.getPosZ();
double deltaY = player.getPosY() - Minecraft.getInstance().player.getPosY();
double yaw = Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90;
double pitch = -Math.toDegrees(Math.atan2(deltaY, Math.sqrt(deltaX * deltaX + deltaZ * deltaZ)));
Minecraft.getInstance().player.rotationYaw = (float) yaw;
Minecraft.getInstance().player.rotationPitch = (float) pitch;
}
}
private void updateRotationToPlayer() {
if (!targetedPlayers.isEmpty()) {
PlayerEntity target = targetedPlayers.iterator().next();
setRotationToPlayer(target);
}
}
private void useFirework() {
long currentTime = System.currentTimeMillis();
if (currentTime - lastFireworkTime >= fireworkCooldown) {
int fireWorksSlot = InventoryUtil.getFireWorks();
if (fireWorksSlot == -1) {
ClientUtil.sendMesage(TextFormatting.RED + "Нет феерверков!");
return;
}
// Сохраняем текущий выбранный слот
int currentSlot = Minecraft.getInstance().player.inventory.currentItem;
// Переключаемся на слот с фейерверком
Minecraft.getInstance().player.connection.sendPacket(new CHeldItemChangePacket(fireWorksSlot));
// Используем фейерверк
Minecraft.getInstance().player.connection.sendPacket(new CPlayerTryUseItemPacket(Hand.MAIN_HAND));
// Возвращаемся к предыдущему слоту
Minecraft.getInstance().player.connection.sendPacket(new CHeldItemChangePacket(currentSlot));
// Обновляем время последнего использования фейерверка
lastFireworkTime = currentTime;
// Обновляем кулдаун в зависимости от расстояния до цели
double distanceToTarget = Minecraft.getInstance().player.getDistance(targetedPlayers.iterator().next());
if (distanceToTarget > 50) {
fireworkCooldown = 300; // Уменьшаем кулдаун, если цель дальше 50 блоков
} else {
fireworkCooldown = 450; // Возвращаем изначальный кулдаун, если цель ближе 50 блоков
}
}
}
private void stopTargeting() {
targetedPlayers.clear();
isTargeting = false;
}
private void checkChatMessage() {
long currentTime = System.currentTimeMillis();
if (currentTime - lastChatMessageTime >= chatMessageInterval) {
if (!targetedPlayers.isEmpty()) {
PlayerEntity target = targetedPlayers.iterator().next();
ClientUtil.sendMesage("Таргет: " + target.getName().getString());
if (target != null) {
float mchealth = target.getHealth();
if (mchealth <= 0.01f) {
targetedPlayers.clear();
ClientUtil.sendMesage("Таргет был убит! Off Module ");
toggle();
}
}
}
lastChatMessageTime = currentTime;
}
if (box.get());
float mchealth = mc.player.getHealth();
if (mchealth < 6.01f){
double deltaX = mc.player.getPosX() - Minecraft.getInstance().player.getPosX();
double deltaZ = mc.player.getPosZ() - Minecraft.getInstance().player.getPosZ();
double deltaY = mc.player.getPosY() - Minecraft.getInstance().player.getPosY();
double yaw = Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 185;
double pitch = -Math.toDegrees(Math.atan2(deltaY, Math.sqrt(deltaX * deltaX + deltaZ * deltaZ)));
Minecraft.getInstance().player.rotationYaw = (float) yaw;
Minecraft.getInstance().player.rotationPitch = (float) pitch;
targetedPlayers.clear();
stopTargeting();
toggle();
ClientUtil.sendMesage("Модуль был выключен, из-за " + mchealth + "ХП");
}
}
public PlayerEntity[] getTargetedPlayers() {
return targetedPlayers.toArray(new PlayerEntity[0]);
}
}