Читерство в Minecraft

Тема в разделе "Hard & Soft & Code & Roll", создана пользователем D3C4P1T4T0R, 1 май 2019.

  1. Member

    Регистрация:
    1 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    Привет, дорогие форумчане! Сегодня я расскажу вам о некоторых видах читов в игре Minecraft с целью проинформировать вас, а также разрушить некоторые мифы и легенды которые существуют в сообществе этой игры очень долго и в основном воспринимаются как должное, после чего я научу вас создавать свои читерские клиенты для игры Minecraft.

    Читы


    Killaura aka ForceField

    Один из самых известных PvP-читов. Принцип работы заключается в автоматическом нанесении ударов игрокам поблизости. Хорошо настроенную киллауру очень тяжело обнаружить в автоматическом режиме, тем не менее очень внимательные игроки смогут заметить применение этого мода обратив внимание на то, как игрок наносит удары. Да, киллаура может наносить удары по игрокам позади, на большем расстоянии и через стены, но популярные античиты уже справляются с этим довольно легко.

    X-Ray

    Модификация позволяет временно отключить визуалиацию некоторых блоков в игровом мире позволяя читеру смотреть сквозь стены, находить игроков, ценные руды, сундуки и т. п. Многие считают что это чит неподебим, и это от части правда. Защитой от X-Ray в некоторой мере является серверный плагин Orebfuscator который подменяет блоки, которые игрок не видит (за стенами) на блоки руд.

    Anti-Knockback

    Этот чит позволяет игнорировать откидывание от наносимого сущностями урона. Некоторые версии этого хака дают возможность не полностью аннулировать откидывание, а лишь уменьшить его, что даёт плюс к скрытности (тем не менее мод очень хорошо обнаруживается автоматически). Устроен этот мод довольно просто -- клиенту нужно просто проигнорировать пакет который задаёт скорость игроку так как откидывание обрабатывается на стороне клиента.

    NoFall

    Чит даёт возможность не получать урон от падения. Для того чтобы игроку не получить урон от падения клиенту достаточно просто устанавливать состояние игрока в "находится на земле" каждый тик когда игрок находится в свободном падении. Обнаруживается почти всеми античитами.

    Устройство взломанного клиента

    И так, с теорией мы ознакомились, настало время перейти к практике. Я не научу вас создавать полноценные чит-клиенты, тем не менее после прочтения данной статьи у вас появится понимание устройства таких клиентов и некоторых модов.

    В первую очередь нам нужен ванильный клиент игры. Устанавливаем клиент нужной версии (я выбрал 1.12, поже расскажу почему) и скачиваем Mod Coder Pack (http://www.modcoderpack.com/) нужной версии. Скачанный архив нужно распаковать в любой удобной папке. После этого нужно запустить скрипт cleanup.bat (или .sh, зависит от операционной системы), затем updatemcp.bat и потом decompile.bat. Если на какой-то из стадий возникают критические ошибки следует убедится что используется версия Java не больше 8. Также на стадии разборки сервера возникнут ошибки, но это не важно, нам не нужно декомпилировать сервер, к тому же у нас его и нет.

    После успешной разборки нам нужно запустить среду разработки Eclipse. Если вы предпочитаете другую среду можете воспользоваться ею. В качестве нашего рабочего места (workspace) нам нужно выбрать папку eclipse в папке mcp<цифры>, т. е. <ваша папка>/mcp940/eclipse. В панели слева можно сразу закрыть проект Server, он нам не понадобится.

    Далее нам нужно развернуть проект Client, затем папку src и в ней создать свой пакет. Название для пакета вы должны придумать самостоятельно, оно не должно нарушать некоторые общепринятые правила наименования пакетов (https://en.wikipedia.org/wiki/Reverse_domain_name_notation). В своём пакете мы создаём класс Client. В классе Client мы создадим переменную -- наш клиент, и точку входа нашего клиента:
    Код:
    class Client {
       public static final Client C = new Client();
       public void startClient() {}
    }
    
    Теперь нам нужно, собственно, вызвать эту функцию при инициализации игры. Для этого в пакете net.minecraft.client в фале Minecraft.java в конце ф-ции init() сразу после строки this.renderGlobal.makeEntityOutlineShader(); добавляем строчку Client.C.startClient(); (не забывайте точки с запятой в коцне строки!).

    Отлично. Теперь создадим так называемый менеджер модулей который позволит нам организовать наши моды. Создаём пакет <ваш_пакет>.module, а в нём классы Module и ModuleManager. Класс Module будет "родителем" всех наших модов, нужно создать ему соответстующее наполнение. Нам понадобится одна строковая переменная для имени модуля, одна числовая (int) для клавиши бинда и логическая перменная для хранения состояния мода (вкл./выкл.). Если у вас есть желание можете сделать эти переменные частными и создать для них геттеры и сеттеры, это хорошая практика, но в целях экономии времени я делать этого не буду (вам же спешить некуда).

    Также нужно создать конструктор для нашего модуля и сделать несколько функций-пустышек.
    Код:
    public Module(String moduleName, int moduleBind) {
       this.moduleName = moduleName;
       this.moduleBind = moduleBind;
    }
    public void onToggle() {}
    public void onEnable() {}
    public void onDisable() {}
    public void onUpdate() {}
    public void onRender() {}
    
    и ф-цию переключения состояния
    Код:
    public void toggle() {
       this.isToggled = !this.isToggled;
       this.onToggle();
       if(this.isToggled)
         this.onEnable();
       else
         this.onDisable();
    }
    
    Хорошо, теперь менеджер модулей. В этом же пакете, в классе ModuleManager создаём список для наших модулей и конструктор.
    Код:
    public class ModuleManager {
       public ArrayList<Module> activeModules = new ArrayList<Module>();
       
       public ModuleManager() {
       }
    }
    
    Скорее всего вы получите какую-нибудь ошибку, но умная программа Eclipse может исправить её за вас. Достаточно нажать Ctrl+Shift+O или навести курсор на подчёркнутую красным ошибку и выбрать нужное решение (в нашем случае это импортировать ArrayList из java.util).

    Теперь нам нужно вернутся в наш класс Client и добавить туда менеджер модулей. После таких манипуляций класс Client должен выглядеть примерно таким образом:
    Код:
    public class Client {
       public ModuleManager moduleManager;
       
       public static final Client C = new Client();
       
       public void startClient() {
         this.moduleManager = new ModuleManager();
       }
    }
    
    Осталось совсем немного прежде чем мы сможем начать писать наши хаки. Нам надо добавить обработчики событий в те места, где, собственно, эти события происходят.
    1. В пакете net.minecraft.client.entity, в файле EntityPlayerSP.java, в функции onUpdate(), перед строкой super.onUpdate(); добавляем следующую конструкцию:
    Код:
    for(Module eventModule : Client.C.moduleManager.activeModules)
       eventModule.onUpdate();
    
    2. В пакете net.minecraft.client.renderer, в файле EntityRenderer.java, в функции renderWorldPass(), после строки this.mc.profiler.endStartSection("hand"); добавляем следующую конструкцию:
    Код:
    for(Module eventModule : Client.C.moduleManager.activeModules)
       eventModule.onRender();
    
    3. В net.minecraft.client, в Minecraft.java, в runTickKeyboard(), сразу перед if(i == 1) добавляем
    Код:
    for(Module eventModule : Client.C.moduleManager.activeModules)
       if(Keyboard.getEventKey() == eventModule.getBind())
         eventModule.toggle();
    
    Осталось создать пакет <ваш_пакет>.module.modules для наших читов.

    И наконец-то мы можем приступить к написанию нашего первого мода!!! Давайте напишем безобидный AutoSprint который просто будет заставлять нашего игрока бежать как только это возможно. В пакете ...modules создадим класс AutoSprintMod который будет наследоваться от нашего Module.

    Конструктор класса должен выглядеть примерно таким образом:
    Код:
    public AutoSprintMod() {
       super("AutoSprint", Keyboard.KEY_NUMPAD1);
    }
    
    Keyboard это класс из пакета org.lwjgl.input в котором хранятся коды всех клавиш. Keyboard.KEY_NUMPAD1 соответствует коду клавиши 1 на нампаде. Пользуясь подсказками (напишите Keyboard. и увидите их) умного редактора Eclipse вы можете выбрать нужную вам клавишу.

    Теперь добавим функционал для нашего мода. В этот раз я напишу код за вас, но это в последний раз, думайте теперь сами!
    Код:
    public void onUpdate() {
       if(!this.isToggled) return;
       EntityPlayerSP P = Minecraft.getMinecraft().player;
       if(!P.collidedHorizontally && P.moveForward != 0.0F) {
         P.setSprinting(true);
       }
    }
    
    Попробуйте теперь разобраться что здесь что значит. Ну и если умный редактор Eclipse укажет вам на некоторые ошибки попробуйте решить их без моих подсказок (вы уже знаете как это делать).

    Отлично. Теперь добавим наш чит в менеджер модулей. Открываем класс ModuleManager и в конструкторе пишем this.activeModules.add(new AutoSprintMod());.

    Ура! Наш первый чит! Предлагаю немного повысить ставки и перейти к чему-нибудь более летальному, например, к киллауре. Создадим класс в пакете ...modules, я назову его KillauraMod, он должен наследоваться от класса Module. Теперь попробуйте самостоятельно написать конструктор для этого класса.

    Если вы справились, то перейдём к написанию функционала нашей киллауры. Во времена до 1.9 хорошая киллаура была мощным инструментом способным разносить в пух и прах толпы врагов. Теперь же, в наше время, киллаура стала довольно неэффективной против групп врагов размером >1 человека. Поэтому среди всех врагов рядом с нами мы будем атаковать не всех подряд, а лишь ближайшего (хотя вы, наверное, можете сделать свою суперумную функцию которая будет выбирать врага по тому, сколько ударов потребуется на его убийство и какую опасность он для вас представляет). Для начала получим объект нашей игры (Minecraft MC = Minecraft.getMinecraft(); ), а из него список всех игроков (MC.world.playerEntities, тип данных List). Из этого списка перебором найдите ближайшего игрока в радиусе досягаемости (3,5 блока ванильный радиус удара, но вы можете бить дальше с помощью чита, я не рекомендую ставить больше 4 блоков т. к. это сильно заметно, античиты начнут вас кикать за удары дальше чем на 4,25 блока). Также будет неплохо если вы добавить проверки на нахождение игрока в одной команде с вами (на CastleWars, например, игроки разделены между собой обычными скорбордовыми командами) и на невидимость игрока. Совет: пользуйтесь подсказками умной программы Eclipse, так вы сможете писать код с помощью интерфейсов о которых в ничего не знаете! Подсказка: не забывайте махать рукой когда бьёте врага, игра за вас это не сделает.

    Отлично! Теперь мы готовы убивать. Но постойте, а как же мы узнаем какие хаки у нас будут включены? Хороший вопрос. Давайте создадим небольшой графический интерфейс чтобы видеть нашу подрубку. Создадим пакет <название_пакета>.gui, в нём класс CustomGUI (можете назвать по-своему). Многого нам не надо, создадим лишь статическую функцию для отрисовки нашего интерфейса. Я это сделал так -- перебором через активные модули из нашего менеджера модулей с помощью Minecraft.fontRenderer (не забудьте перед этим получить майнкрафт!) отрисовал названия активированных читов в нужных позициях.

    Осталось только сказать игре рисовать наш GUI. В net.minecraft.client.gui, в GuiIngame.java, в renderGameOverlay после this.renderPotionEffects(scaledresolution); добавим три строчки:
    Код:
    GL11.glPushMatrix();
    CustomGUI.render();
    GL11.glPopMatrix();
    
    Отлично! Теперь мы можем запускать игру. Но перед этим надо лишь указать желаемое имя игрока в одном месте. В меню сверху экрана найдите зелёный круг с иконкой Play, нажмите на направленный вниз треугольник справа от него, выберите Run Configurations, во вкладке Arguments в Program arguments напишите
    Код:
    --username "mynickname"
    
    Обязательно два дефиса и обязательно кавычки!

    Применяете изменения и запускаете игру. Отлично! Помните что использование читов это довольно простой способ получить бан, так что не рискуйте своим аккаунтом!!!

    Спасибо за внимание!

    Данная информация публикуется исключительно в ознакомительных целях. Автор статьи не поощряет читерство никаким образом. Вся ответственность за применение полученных знаний лежит на читателях.
     
    • Lulz Lulz x 1
    • Печенька Печенька x 1
  2. Member

    Регистрация:
    31 дек 2017
    Сообщения:
    55
    Симпатии:
    10
    Пол:
    Мужской
    спасибо, теперь я знаю как получить бан на рк.
     
    • Истинно так Истинно так x 1
  3. Member

    Регистрация:
    1 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    Бан получать совсем не обязательно, да и при нынешней ситуации с античитом это будет довольно затруднительно. С основного аккаунта играть не обязательно, можешь создать себе второй и читерить на нём. Чтобы скрыть свой айпи можешь воспользоваться сервисами VPN.



    Читерство это плохо! Прежде чем читерить, подумайте десять раз -- нужно ли вам это.
     
    • Истинно так Истинно так x 1
  4. Member

    Регистрация:
    25 ноя 2018
    Сообщения:
    206
    Симпатии:
    15
    Пол:
    Мужской
    Scaffold
    Данный клиент позволяет быстро строиться не нажимая кнопки, данного чита часто использует в разных режимах. Например; SkyWars, BedWars и т.д.

    FastHeal
    Данный клиент позволяет быстро регенерироваться, не популярный, но используется в PvP-режимах.

    AutoArmor
    Данный клиент позволяет игроку автоматически одеться, это работает когда берёшь вещь, данного клиента может использовать в SkyWars.

    WallHack
    Данный клиент очень популярный, и есть в разных играх. Клиент даёт возможность видеть игроков через стену, при этом позволяя быстро реагировать на атаку.

    SpeedHack
    Данный клиент позволяет быстро передвигаться по координатам, встречается в гонках и разных играх.

    BunnyHop
    Данный клиент позволяет часто прыгать при этом увеличив шанс нанесения критического урона.

    AimBot & FastBow
    Данные клиенты позволяют стрелять игроку не дав промахиваться, Aim - цель, позволяет игроку прицеливаться игроку автоматически, FastBow - быстрый лук, позволяет быстро стрелять игрокам, при этом убивая их за 10-14 секунд.
     
    • Истинно так Истинно так x 1
  5. Member

    Регистрация:
    1 май 2019
    Сообщения:
    17
    Симпатии:
    0
    Пол:
    Мужской
    Написал бы про их устройство, а то смысл от одних названий, мы их и так знаем.
     
  6. Member

    Регистрация:
    25 ноя 2018
    Сообщения:
    206
    Симпатии:
    15
    Пол:
    Мужской
    У каждого чита своё устройство, я не знаю.
     
    • ШIN ШIN x 1
  7. Member

    Регистрация:
    11 мар 2019
    Сообщения:
    105
    Симпатии:
    7
    Пол:
    Мужской
    Род занятий:
    Военно Спортивный Клуб.
    Что-то очень, сильно ник знакомый.
     
    • Lulz Lulz x 1
  8. Member

    Регистрация:
    31 дек 2017
    Сообщения:
    55
    Симпатии:
    10
    Пол:
    Мужской
    Пойду на других серверах читерить
    А че?
     
    • Лойк Лойк x 1
  9. Member

    Регистрация:
    25 ноя 2018
    Сообщения:
    206
    Симпатии:
    15
    Пол:
    Мужской
    К тебе ФБР на гости зайдут тогда.
     
  10. CTAC Mob

    Регистрация:
    18 авг 2018
    Сообщения:
    11
    Симпатии:
    3
    Пол:
    Мужской
    Не, ну это бан...
     
    • Lulz Lulz x 1