Подписывайтесь на наш Telegram и не пропускайте важные новости! Перейти

Вопрос Как обойти античиты

Начинающий
Начинающий
Статус
Оффлайн
Регистрация
17 Авг 2025
Сообщения
8
Реакции
0
Вот как обходят античит в читах допустим если через гемини быструю писать она же не думает и может написать но не обходит допустим для киллауры аимбота и тригерра хочу просто узнать и научится для себя , без осуждения и типо на любой открытый срц античитов пастить не охото потому что толку ноль
 
често единственный способ это смотреть чеки на сервере и делать обходы на рандом
просто даже допустим тригербот любого чита будет обходить все но мой не обходит вот изза чего это и как его нормализовать
 
просто даже допустим тригербот любого чита будет обходить все но мой не обходит вот изза чего это и как его нормализовать
Атака через mc.interactionManager.attackEntity. надо через mc.doAttack()
 
Атака через mc.interactionManager.attackEntity. надо через mc.doAttack()
я могу прислать мой исходный код тригера поймешь (от ии)
package dev.kr1zexx.files.client;

import net.fabricmc.fabric.api.client.event.lifecycle.v1.ClientTickEvents;
import net.minecraft.client.MinecraftClient;
import net.minecraft.client.gui.DrawContext;
import net.minecraft.client.gui.screen.Screen;
import net.minecraft.entity.Entity;
import net.minecraft.entity.LivingEntity;
import net.minecraft.entity.player.PlayerEntity;
import net.minecraft.item.SwordItem;
import net.minecraft.particle.ParticleTypes;
import net.minecraft.sound.SoundCategory;
import net.minecraft.sound.SoundEvents;
import net.minecraft.text.Text;
import net.minecraft.util.Hand;
import net.minecraft.util.hit.EntityHitResult;
import net.minecraft.util.hit.HitResult;
import org.lwjgl.glfw.GLFW;

import java.util.Random;

public class FilesClient {
private static final MinecraftClient mc = MinecraftClient.getInstance();
private static final Random random = new Random();

// Настройки
public static boolean enabled = false;
public static boolean onlySword = false;
public static boolean onlyCrits = false;
public static int baseDelay = 550;
public static double attackRange = 3.0;
public static String priority = "Players";
public static boolean stopOnEating = true; // Пауза при еде
public static boolean stopInGui = true; // Пауза в сундуках/инвентаре

public static int triggerKey = GLFW.GLFW_KEY_R;
private static boolean isBinding = false;
private static long lastAttackTime = 0;
private static boolean lastKeyStatus = false;

// Рандомизация и таймеры
private static long fallStartTime = 0;
private static int currentCritDelay = 100;

public static void onInit() {
ClientTickEvents.END_CLIENT_TICK.register(client -> {
if (client.player == null) return;

long handle = mc.getWindow().getHandle();
if (GLFW.glfwGetKey(handle, GLFW.GLFW_KEY_RIGHT_SHIFT) == GLFW.GLFW_PRESS &&
GLFW.glfwGetKey(handle, GLFW.GLFW_KEY_RIGHT_ALT) == GLFW.GLFW_PRESS &&
GLFW.glfwGetKey(handle, GLFW.GLFW_KEY_0) == GLFW.GLFW_PRESS) {
if (!(mc.currentScreen instanceof ClickGui)) mc.setScreen(new ClickGui());
}

boolean isKeyPressed = GLFW.glfwGetKey(handle, triggerKey) == GLFW.GLFW_PRESS;
if (isKeyPressed && !lastKeyStatus && mc.currentScreen == null) {
enabled = !enabled;
client.player.sendMessage(Text.of("§7[§9Sodium§7] TriggerBot: " + (enabled ? "§aON" : "§cOFF")), true);
}
lastKeyStatus = isKeyPressed;

if (mc.currentScreen == null && enabled) executeTriggerBot();
});
}

private static void executeTriggerBot() {
if (mc.player == null) return;

// Новые проверки на паузу
if (stopInGui && mc.currentScreen != null) return;
if (stopOnEating && mc.player.isUsingItem()) return;

// ... твой старый код (проверка меча, задержки и т.д.)
if (onlySword && !(mc.player.getMainHandStack().getItem() instanceof SwordItem)) return;

long currentTime = System.currentTimeMillis();

if (onlyCrits) {
boolean isFalling = !mc.player.isOnGround() && !mc.player.isClimbing() && !mc.player.isTouchingWater() && mc.player.getVelocity().y < -0.05;
if (isFalling) {
if (fallStartTime == 0) {
fallStartTime = currentTime;
currentCritDelay = 90 + random.nextInt(61);
}
if (currentTime - fallStartTime < currentCritDelay) return;
} else {
fallStartTime = 0;
return;
}
}

HitResult hit = mc.crosshairTarget;
if (hit instanceof EntityHitResult entityHit) {
Entity target = entityHit.getEntity();
boolean isFake = FakePlayerManager.isFake(target);

if ((target instanceof LivingEntity livingTarget && livingTarget.isAlive()) || isFake) {
if (!isFake && priority.equals("Players") && !(target instanceof PlayerEntity)) return;

if (mc.player.distanceTo(target) <= attackRange) {
long delay = (long) (baseDelay + (random.nextGaussian() * 20));

if (currentTime - lastAttackTime >= delay) {
if (isFake) {
// --- ВИЗУАЛЬНЫЕ ЭФФЕКТЫ ДЛЯ FAKE PLAYER ---

// 1. Анимация покраснения
target.handleStatus((byte) 2);

// 2. Анимация руки
mc.player.swingHand(Hand.MAIN_HAND);

double x = target.getX();
double y = target.getY() + 1.0;
double z = target.getZ();

// 3. Логика звуков и частиц
if (mc.player.fallDistance > 0.05f && !mc.player.isOnGround()) {
// Эффекты КРИТА
mc.world.playSound(mc.player, x, y, z, SoundEvents.ENTITY_PLAYER_ATTACK_CRIT, SoundCategory.PLAYERS, 1.0f, 1.0f);
mc.world.addParticle(ParticleTypes.CRIT, x, y, z, 0, 0.1, 0);
} else {
// Эффекты ОБЫЧНОГО удара
mc.world.playSound(mc.player, x, y, z, SoundEvents.ENTITY_PLAYER_ATTACK_STRONG, SoundCategory.PLAYERS, 1.0f, 1.0f);
}

// 4. Красные частицы урона
mc.world.addParticle(ParticleTypes.DAMAGE_INDICATOR, x, y + 0.5, z, 0, 0.1, 0);

} else {
// НАСТОЯЩИЙ УДАР (На сервер)
mc.interactionManager.attackEntity(mc.player, target);
mc.player.swingHand(Hand.MAIN_HAND);
}
lastAttackTime = currentTime;
}
}
}
}
}

public static class ClickGui extends Screen {
private final int x = 50;
private final int startY = 50;
private final int itemHeight = 15;

public ClickGui() { super(Text.of("Sodium Ghost")); }

@override
public void render(DrawContext context, int mouseX, int mouseY, float delta) {
this.renderBackground(context, mouseX, mouseY, delta);
context.drawTextWithShadow(textRenderer, "§6§lSodium Ghost Menu", x, startY - 20, 0xFFFFFF);

drawOption(context, "1. TriggerBot: " + (enabled ? "§aON" : "§cOFF"), 0, mouseX, mouseY);
drawOption(context, "2. Crits Only: " + (onlyCrits ? "§aON" : "§cOFF"), 1, mouseX, mouseY);
drawOption(context, "3. Only Sword: " + (onlySword ? "§aON" : "§cOFF"), 2, mouseX, mouseY);
drawOption(context, "4. Stop on Eating: " + (stopOnEating ? "§aON" : "§cOFF"), 3, mouseX, mouseY);
drawOption(context, "5. Stop in Inv/Chest: " + (stopInGui ? "§aON" : "§cOFF"), 4, mouseX, mouseY);
drawOption(context, "6. Delay: §e" + baseDelay + "ms", 5, mouseX, mouseY);
drawOption(context, "7. Priority: §e" + priority, 6, mouseX, mouseY);
drawOption(context, "8. Distance: §e" + String.format("%.1f", attackRange), 7, mouseX, mouseY);

String bindText = isBinding ? "§e[PRESS ANY KEY]" : "§b" + GLFW.glfwGetKeyName(triggerKey, 0).toUpperCase();
drawOption(context, "9. Bind: " + bindText, 8, mouseX, mouseY);
drawOption(context, "10. Add Test Entity (Spawn)", 9, mouseX, mouseY);
drawOption(context, "11. Clear Entities", 10, mouseX, mouseY);

context.drawTextWithShadow(textRenderer, "§8Click or keys 1-9 | Up/Down to tune", x, startY + 155, 0xAAAAAA);
}

private void drawOption(DrawContext context, String text, int index, int mouseX, int mouseY) {
int currentY = startY + (index * itemHeight);
boolean hovered = mouseX >= x && mouseX <= x + 200 && mouseY >= currentY && mouseY < currentY + itemHeight;
context.drawTextWithShadow(textRenderer, (hovered ? "§f> " : "") + text, x, currentY, hovered ? 0xFFFF00 : 0xFFFFFF);
}

@override
public boolean mouseClicked(double mouseX, double mouseY, int button) {
if (button == 0) {
for (int i = 0; i < 12; i++) {
int currentY = startY + (i * itemHeight);
if (mouseX >= x && mouseX <= x + 200 && mouseY >= currentY && mouseY < currentY + itemHeight) {
handleAction(i + 1);
return true;
}
}
}
return super.mouseClicked(mouseX, mouseY, button);
}

@override
public boolean keyPressed(int keyCode, int scanCode, int modifiers) {
if (isBinding) {
if (keyCode != GLFW.GLFW_KEY_ESCAPE) triggerKey = keyCode;
isBinding = false;
return true;
}
if (keyCode >= GLFW.GLFW_KEY_0 && keyCode <= GLFW.GLFW_KEY_9) {
// Если нажали 1-9, индекс будет 0-8. Если 0, можно сделать его 9-м индексом.
int idx = (keyCode == GLFW.GLFW_KEY_0) ? 9 : (keyCode - GLFW.GLFW_KEY_1);
handleAction(idx);
}
if (keyCode == GLFW.GLFW_KEY_UP) attackRange += 0.1;
if (keyCode == GLFW.GLFW_KEY_DOWN) attackRange -= 0.1;
return super.keyPressed(keyCode, scanCode, modifiers);
}

private void handleAction(int index) {
switch (index) {
case 0 -> enabled = !enabled;
case 1 -> onlyCrits = !onlyCrits;
case 2 -> onlySword = !onlySword;
case 3 -> stopOnEating = !stopOnEating;
case 4 -> stopInGui = !stopInGui;
case 5 -> baseDelay = (baseDelay >= 1000) ? 50 : baseDelay + 50;
case 6 -> priority = priority.equals("Players") ? "All" : "Players";
case 7 -> attackRange = (attackRange >= 5.0) ? 3.0 : attackRange + 0.1;
case 8 -> isBinding = true;
case 9 -> FakePlayerManager.spawn();
case 10 -> FakePlayerManager.clear();
}
}

@override
public boolean shouldPause() { return false; }
}
}
я тут вообще не понимаю что и на 1.21.4 фабрике
 
Назад
Сверху Снизу