Начинающий
- Статус
- Оффлайн
- Регистрация
- 16 Май 2024
- Сообщения
- 43
- Реакции
- 0
- Выберите загрузчик игры
- OptiFine
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
ну типо аимбот на трезубец и арбалет с плавной наводкой
Код:
package alpha.night.modules.impl.combat;
import alpha.night.events.EventDisplay;
import alpha.night.events.EventLivingTick;
import com.google.common.eventbus.Subscribe;
import net.minecraft.client.Minecraft;
import net.minecraft.client.renderer.ActiveRenderInfo;
import net.minecraft.client.renderer.IRenderTypeBuffer;
import net.minecraft.client.renderer.RenderType;
import net.minecraft.client.renderer.texture.OverlayTexture;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.Items;
import net.minecraft.util.ResourceLocation;
import net.minecraft.util.math.MathHelper;
import net.minecraft.util.math.vector.Matrix4f;
import net.minecraft.util.math.vector.Vector3d;
import net.minecraft.util.math.vector.Vector3f;
import alpha.night.config.FriendStorage;
import alpha.night.modules.api.Category;
import alpha.night.modules.api.Module;
import alpha.night.modules.api.ModuleRegister;
import alpha.night.modules.settings.impl.BooleanSetting;
import alpha.night.modules.settings.impl.SliderSetting;
import com.mojang.blaze3d.matrix.MatrixStack;
import com.mojang.blaze3d.systems.RenderSystem;
@ModuleRegister(name = "AimBot", category = Category.Combat)
public class AimBot extends Module {
private final SliderSetting fieldOfView = new SliderSetting("Search Angle", 90.0f, 1.0f, 90.0f, 1.0f);
private final SliderSetting yawSpeed = new SliderSetting("Yaw Speed", 35.0f, 10.0f, 70.0f, 5.0f);
private final SliderSetting smoothFactor = new SliderSetting("Smoothness", 0.02f, 0.02f, 0.5f, 0.001f);
public final BooleanSetting enablePitch = new BooleanSetting("Vertical Aiming", false);
private final SliderSetting pitchSpeed = new SliderSetting("Pitch Speed", 2.0f, 0.0f, 20.0f, 1.0f)
.setVisible(() -> enablePitch.get());
private final BooleanSetting ignoreNaked = new BooleanSetting("Ignore Naked Players", true);
private final BooleanSetting ignoreFriends = new BooleanSetting("Ignore Friends", true);
private final BooleanSetting ignoreInvisible = new BooleanSetting("Ignore Invisible", true);
private PlayerEntity target;
public AimBot() {
this.addSettings(fieldOfView, yawSpeed, pitchSpeed, enablePitch, ignoreNaked, ignoreFriends, ignoreInvisible);
}
@Subscribe
public void onTick(EventLivingTick event) {
Minecraft mc = Minecraft.getInstance();
if (mc.player.getHeldItemMainhand().getItem() != Items.TRIDENT && mc.player.getHeldItemMainhand().getItem() != Items.CROSSBOW) {
this.target = null; // Reset target if not holding a trident or crossbow
return;
}
// Find a target within 14 blocks with the specified field of view
this.target = findTarget(mc.player, 14.0, fieldOfView.get());
}
@Subscribe
public void onGui(EventDisplay event) {
if (this.target != null) {
setRotation(this.target, yawSpeed.get(), pitchSpeed.get(), smoothFactor.get());
}
}
private void renderTargetIndicator(MatrixStack matrixStack) {
Minecraft mc = Minecraft.getInstance();
if (mc.world == null mc.player == null this.target == null) {
System.out.println("Render skipped: world=" + mc.world + ", player=" + mc.player + ", target=" + this.target);
return;
}
System.out.println("Rendering target indicator for " + this.target.getName().getString());
IRenderTypeBuffer.Impl buffer = mc.getRenderTypeBuffers().getBufferSource();
RenderSystem.enableBlend();
RenderSystem.defaultBlendFunc();
RenderSystem.disableCull();
Vector3d targetPos = target.getPositionVec().add(0.0, target.getEyeHeight() + 0.5, 0.0);
Vector3d cameraPos = mc.gameRenderer.getActiveRenderInfo().getProjectedView();
matrixStack.push();
matrixStack.translate(targetPos.x - cameraPos.x, targetPos.y - cameraPos.y, targetPos.z - cameraPos.z);
ActiveRenderInfo renderInfo = mc.gameRenderer.getActiveRenderInfo();
matrixStack.rotate(Vector3f.YP.rotationDegrees(-renderInfo.getYaw()));
matrixStack.rotate(Vector3f.XP.rotationDegrees(renderInfo.getPitch()));
float scale = 0.5f; // Adjust this to change image size
matrixStack.scale(scale, scale, scale);
Matrix4f matrix = matrixStack.getLast().getMatrix();
mc.getTextureManager().bindTexture(TARGET_INDICATOR);
float size = 0.5f; // Half-width of the image
buffer.getBuffer(RenderType.getEntityTranslucent(TARGET_INDICATOR))
.pos(matrix, -size, -size, 0).tex(0, 1).overlay(OverlayTexture.NO_OVERLAY).lightmap(0xF0F0F0).normal(0, 0, 1).endVertex();
buffer.finish();
matrixStack.pop();
RenderSystem.enableCull();
RenderSystem.disableBlend();
}
private void setRotation(PlayerEntity target, float yawSpeed, float pitchSpeed, double smoothFactor) {
Minecraft mc = Minecraft.getInstance();
Vector3d targetPos = target.getPositionVec().add(0.0, target.getEyeHeight() / 2.0, 0.0);
Vector3d playerEyePos = mc.player.getEyePosition(1.0f);
double deltaX = targetPos.x - playerEyePos.x;
double deltaY = targetPos.y - playerEyePos.y;
double deltaZ = targetPos.z - playerEyePos.z;
float targetYaw = (float) Math.toDegrees(Math.atan2(deltaZ, deltaX)) - 90.0f;
float distanceXZ = MathHelper.sqrt(deltaX * deltaX + deltaZ * deltaZ);
float targetPitch = (float) (-Math.toDegrees(Math.atan2(deltaY, distanceXZ)));
float yawDifference = MathHelper.wrapDegrees(targetYaw - mc.player.rotationYaw);
float pitchDifference = targetPitch - mc.player.rotationPitch - 4;
float clampedYaw = MathHelper.clamp(yawDifference, -yawSpeed, yawSpeed);
float clampedPitch = MathHelper.clamp(pitchDifference, -pitchSpeed, pitchSpeed);
mc.player.rotationYaw += clampedYaw * smoothFactor;
if (enablePitch.get()) {
mc.player.rotationPitch += clampedPitch * smoothFactor;
}
}
private PlayerEntity findTarget(PlayerEntity player, double range, double fov) {
for (PlayerEntity potentialTarget : player.world.getEntitiesWithinAABB(
PlayerEntity.class,
player.getBoundingBox()
.expand(player.getLook(1.0f).scale(range))
.grow(1.0, 1.0, 1.0),
AimBot::isValidTarget)) {
if (ignoreNaked.get() && isNaked(potentialTarget)
ignoreFriends.get() && FriendStorage.isFriend(potentialTarget.getScoreboardName())
ignoreInvisible.get() && potentialTarget.isInvisible()) {
continue;
}
double angle = Math.acos(player.getLook(1.0f)
.dotProduct(potentialTarget.getPositionVec()
.subtract(player.getEyePosition(1.0f))
.normalize())) * 57.29577951308232; // Convert to degrees
double distance = player.getEyePosition(1.0f).distanceTo(potentialTarget.getPositionVec());
if (angle <= fov && distance < range) {
return potentialTarget;
}
}
return null;
}
private boolean isNaked(PlayerEntity player) {
return player.getTotalArmorValue() == 0;
}
private static boolean isValidTarget(PlayerEntity player) {
Minecraft mc = Minecraft.getInstance();
return player != mc.player && !player.isSpectator() && player.isAlive();
}
}