Начинающий
- Статус
- Оффлайн
- Регистрация
- 17 Июл 2024
- Сообщения
- 51
- Реакции
- 0
Буду благодарен за помощь (вот код аим ассиста если надо)
Код:
package client.main.module.impl.combat;
import com.google.common.eventbus.Subscribe;
import client.events.EventPacket;
import client.events.EventUpdate;
import client.main.config.FriendStorage;
import client.main.module.api.Category;
import client.main.module.api.Module;
import client.main.module.api.ModuleRegister;
import client.main.module.settings.impl.BooleanSetting;
import client.main.module.settings.impl.SliderSetting;
import net.minecraft.entity.Entity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.network.play.client.CUseEntityPacket;
import net.minecraft.util.math.MathHelper;
@ModuleRegister(name = "AimAssist", type = Category.Combat, desc = "Наводиться на игроков")
public class AimAssist extends Module {
private final SliderSetting distanceSetting = new SliderSetting("Distance", 5.0f, 2.0f, 7.0f, 0.1f);
private final SliderSetting yawSpeedSetting = new SliderSetting("Yaw Speed", 30.0f, 0.0f, 100.0f, 1.0f);
private final SliderSetting pitchSpeedSetting = new SliderSetting("Pitch Speed", 15.0f, 0.0f, 100.0f, 1.0f);
private final BooleanSetting targetFriendsSetting = new BooleanSetting("Таргетить друзей", false);
private final BooleanSetting targetInvisibleSetting = new BooleanSetting("Таргетить инвизок", false);
private PlayerEntity currentTarget;
public AimAssist() {
addSettings(distanceSetting, yawSpeedSetting, pitchSpeedSetting, targetFriendsSetting, targetInvisibleSetting);
}
@Subscribe
public void onPacket(EventPacket event) {
if (event.getPacket() instanceof CUseEntityPacket) {
CUseEntityPacket packet = (CUseEntityPacket) event.getPacket();
if (packet.getAction() == CUseEntityPacket.Action.ATTACK) {
Entity targetEntity = packet.getEntityFromWorld(mc.world);
if (targetEntity instanceof PlayerEntity player) {
currentTarget = player;
}
}
}
}
@Subscribe
public void onUpdate(EventUpdate event) {
if (mc == null || mc.player == null || mc.world == null) return;
if (currentTarget != null) {
if (mc.player.getDistance(currentTarget) <= distanceSetting.get()) {
float[] targetRotations = calculateRotations(currentTarget);
mc.player.rotationYaw = smoothRotation(mc.player.rotationYaw, targetRotations[0], yawSpeedSetting.get() / 200.0f);
mc.player.rotationPitch = smoothRotation(mc.player.rotationPitch, targetRotations[1], pitchSpeedSetting.get() / 200.0f);
} else {
currentTarget = null;
}
} else {
currentTarget = findClosestPlayer();
}
}
private PlayerEntity findClosestPlayer() {
PlayerEntity closestPlayer = null;
double closestDistanceSq = Double.MAX_VALUE;
for (PlayerEntity player : mc.world.getPlayers()) {
if (player == mc.player) continue;
if (FriendStorage.isFriend(player.getName().getString()) && !targetFriendsSetting.get()) continue;
if (player.isInvisible() && !targetInvisibleSetting.get()) continue;
double distanceSq = mc.player.getDistanceSq(player);
if (distanceSq < closestDistanceSq && distanceSq <= distanceSetting.get() * distanceSetting.get()) {
closestPlayer = player;
closestDistanceSq = distanceSq;
}
}
return closestPlayer;
}
private float[] calculateRotations(Entity entity) {
double x = entity.getPosX() - mc.player.getPosX();
double y = entity.getPosY() - mc.player.getPosY() + entity.getEyeHeight() - mc.player.getEyeHeight();
double z = entity.getPosZ() - mc.player.getPosZ();
double dist = Math.sqrt(x * x + z * z);
float yaw = (float) ((Math.atan2(z, x) * 180 / Math.PI) - 90);
float pitch = (float) (-(Math.atan2(y, dist) * 180 / Math.PI));
return new float[]{yaw, pitch};
}
private float smoothRotation(float current, float target, float factor) {
float delta = MathHelper.wrapDegrees(target - current);
float minRotation = 0.01f;
float rotation = delta * factor;
if (Math.abs(rotation) < minRotation) {
rotation = (float) Math.copySign(minRotation, rotation == 0 ? 1 : rotation);
}
return current + rotation;
}
}