- Выберите загрузчик игры
- Vanilla
- OptiFine
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Java:
/*
Идея https://github.com/CCBlueX/LiquidBounce/blob/nextgen/src/main/kotlin/net/ccbluex/liquidbounce/features/module/modules/misc/ModuleAntiCheatDetect.kt#L79C5-L135C1
Адаптировано под подобные под Expensive Подобные клиенты
работает так врубаете в хабе и заходите на анку потом оно автоматом детектит ач и офается
*/
@Defuse(name = "ACDetector", brand = Category.Misc)
class ACDetector : Module() {
private val actionNumbers = mutableListOf<Short>()
private var checking:Boolean = false
@Subscribe
fun onPacket(eventPacket: EventPacket) {
if (eventPacket.packet is SJoinGamePacket) {
reset()
checking = true;
}
if (eventPacket.packet is SConfirmTransactionPacket) {
var cpacket:SConfirmTransactionPacket = eventPacket.packet as SConfirmTransactionPacket
//кто шарит на котлне не бейте
handleTransaction(cpacket.actionNumber)
}
}
private fun reset() {
actionNumbers.clear()
checking = false
}
private fun handleTransaction(action: Short) {
actionNumbers.add(action)
if (actionNumbers.size >= 5) analyzeActionNumbers()
}
private fun analyzeActionNumbers() {
val diffs = actionNumbers.windowed(2) { it[1] - it[0] }
val first = actionNumbers.first()
when {
diffs.all { it == diffs.first() } -> when (diffs.first()) {
1 -> when (first) {
in -23772..-23762 -> "Vulcan"
in 95..105, in -20005..-19995 -> "Matrix"
in -32773..-32762 -> "Grizzly"
else -> "Verus"
}
-1 -> when {
first in -8287..-8280 -> "Errata"
first < -3000 -> "Intave"
first in -5..0 -> "Grim"
first in -3000..-2995 -> "Karhu"
else -> "not found"
}
else -> null
}?.let { antiCheat -> notify(antiCheat) }
actionNumbers.take(2).let { it[0] == it[1] }
&& actionNumbers.drop(2).windowed(2).all { it[1] - it[0] == 1 }
-> notify("Verus")
diffs.take(2).let { it[0] >= 100 && it[1] == -1 }
&& diffs.drop(2).all { it == -1 }
-> notify("Grim || Polar")
actionNumbers.first() < -3000 && actionNumbers.any { it.toInt() == 0 }
-> notify("Intave")
actionNumbers.take(3) == listOf(-30767, -30766, -25767)
&& actionNumbers.drop(3).windowed(2).all { it[1] - it[0] == 1 }
-> notify("Old Vulcan")
}
reset()
}
private fun notify(str: String) {
print("AC:$str")
reset()
toggle()
}
}
Пожалуйста, авторизуйтесь для просмотра ссылки.