PoC Life
-
Автор темы
- #1
Перед прочтением основного контента ниже, пожалуйста, обратите внимание на обновление внутри секции Майна на нашем форуме. У нас появились:
- бесплатные читы для Майнкрафт — любое использование на свой страх и риск;
- маркетплейс Майнкрафт — абсолютно любая коммерция, связанная с игрой, за исключением продажи читов (аккаунты, предоставления услуг, поиск кодеров читов и так далее);
- приватные читы для Minecraft — в этом разделе только платные хаки для игры, покупайте группу "Продавец" и выставляйте на продажу свой софт;
- обсуждения и гайды — всё тот же раздел с вопросами, но теперь модернизированный: поиск нужных хаков, пати с игроками-читерами и другая полезная информация.
Спасибо!
Список:
1. Создаём главный класс + снимаем ограничения - https://yougame.biz/threads/325113
2. Автобус евентов - https://yougame.biz/threads/325114
3. OpenGL + Шейдеры + Рендер - https://yougame.biz/threads/325115
4. Аим - https://yougame.biz/threads/325188
5. GlowESP aka OpenGL Framebuffer - https://yougame.biz/threads/325211/
6. Текст, шрифты, атлас - https://yougame.biz/threads/325292
Создаём главный класс
Начнём с изучения майнкрафта. Будем начинать с самого начала, а именно с класса, который и запускает сам майнкрафт - Start.
Опираясь на код можно увидеть что он вызывает метод main и класса Main с параметрами аргументов запуска:
Внутри метода main можно найти очень много настроек игры, настройку прокси, игровой сессии и запуск самого майнкрафта:
Теперь мы знаем, что классом игры является Minecraft. В методе run ничего интересного, давайте взглянем на конструктор. Внутри него целая куча менеджеров рендера, ресурсов, моделей и прочего, но после всей инициализации идёт появление окна MainMenuScreen. Думаю это идеальное место для инициализации нашего клиента. Создадим главный класс и объявим в нём конструктор + метод run. Я хочу построить класс клиента аналогично тому, что мы видели в Minecraft, то есть менеджеры будут публичными полями, в конструкторе будет создание их экземпляров, а в run выполнение всяких регистраций по типу создания шейдеров.
Вернёмся к Minecraft, обозначим поле с нашим клиентом:
В конструкторе после вызова
Ну и соответственно в run вызовем наш run:
Давайте проверим сиё чудо, которое мы накалякали. Ставим бряк на конструктор, на run и затем запускаем майнкрафт:
Если у вас после запуска получилась такая картина:
То я вас поздравляю, вы сделали запуск своего клиента.
Снимаем ограничения
Начиная с хуй пойми какого числа на версиях > 1.13 начала появляться вот такая табличка не дающая зайти на сервера:
| Подсказка
| Сочетание
Давайте найдём данную строчку, видим, что она есть в файлах локализации (языка):
Ищем строку в коде по ключу title.multiplayer.disabled и натыкаемся на класс MainMenuScreen в котором если метод isMultiplayerEnabled вернул true, то tooltip (подсказка при наведении на кнопку) будет текстом, иначе он вернёт field_238486_s_, который в свою очередь является абсолютно пустым:
Давайте не создавать такие непонятные название и через Refactoring (Shift+F6) переименуем field_238486_s_ в EMPTY и также сделаем для flag:
Вот так уже намного лучше. Кстати теперь мы знаем, что у Minecraft есть fontRenderer, а также для локализации сообщения они используют текстовый компонент TranslationTextComponent.
Теперь, зная условие при котором появляется этот tooltip можем перейти к isMultiplayerEnabled:
Появляется два пути:
1. Изменить метод на return true, но у этого способа есть свой минус, вдруг в другом месте вместо вызова isMultiplayerEnabled они напрямую обратятся к полю enableMultiplayer и ваш фикс работать не будет
2. Узнать где меняется значение enableMultiplayer
Узнать где находится gameConfig:
Поменять значение флага для отключения мультиплеера:
Получить свою первую победу
1. Создаём главный класс + снимаем ограничения - https://yougame.biz/threads/325113
2. Автобус евентов - https://yougame.biz/threads/325114
3. OpenGL + Шейдеры + Рендер - https://yougame.biz/threads/325115
4. Аим - https://yougame.biz/threads/325188
5. GlowESP aka OpenGL Framebuffer - https://yougame.biz/threads/325211/
6. Текст, шрифты, атлас - https://yougame.biz/threads/325292
Создаём главный класс
Начнём с изучения майнкрафта. Будем начинать с самого начала, а именно с класса, который и запускает сам майнкрафт - Start.
Опираясь на код можно увидеть что он вызывает метод main и класса Main с параметрами аргументов запуска:
Внутри метода main можно найти очень много настроек игры, настройку прокси, игровой сессии и запуск самого майнкрафта:
Теперь мы знаем, что классом игры является Minecraft. В методе run ничего интересного, давайте взглянем на конструктор. Внутри него целая куча менеджеров рендера, ресурсов, моделей и прочего, но после всей инициализации идёт появление окна MainMenuScreen. Думаю это идеальное место для инициализации нашего клиента. Создадим главный класс и объявим в нём конструктор + метод run. Я хочу построить класс клиента аналогично тому, что мы видели в Minecraft, то есть менеджеры будут публичными полями, в конструкторе будет создание их экземпляров, а в run выполнение всяких регистраций по типу создания шейдеров.
Вернёмся к Minecraft, обозначим поле с нашим клиентом:
private LearnClient client;
В конструкторе после вызова
updateWindowSize
создадим конструктор:this.client = new LearnClient();
Ну и соответственно в run вызовем наш run:
this.client.run();
Давайте проверим сиё чудо, которое мы накалякали. Ставим бряк на конструктор, на run и затем запускаем майнкрафт:
Если у вас после запуска получилась такая картина:
То я вас поздравляю, вы сделали запуск своего клиента.
Снимаем ограничения
Начиная с хуй пойми какого числа на версиях > 1.13 начала появляться вот такая табличка не дающая зайти на сервера:
| Подсказка
| Сочетание
Ctrl+Shift+F
позволяет быстро находить строки в файлах всего проектаДавайте найдём данную строчку, видим, что она есть в файлах локализации (языка):
Ищем строку в коде по ключу title.multiplayer.disabled и натыкаемся на класс MainMenuScreen в котором если метод isMultiplayerEnabled вернул true, то tooltip (подсказка при наведении на кнопку) будет текстом, иначе он вернёт field_238486_s_, который в свою очередь является абсолютно пустым:
Давайте не создавать такие непонятные название и через Refactoring (Shift+F6) переименуем field_238486_s_ в EMPTY и также сделаем для flag:
Вот так уже намного лучше. Кстати теперь мы знаем, что у Minecraft есть fontRenderer, а также для локализации сообщения они используют текстовый компонент TranslationTextComponent.
Теперь, зная условие при котором появляется этот tooltip можем перейти к isMultiplayerEnabled:
Появляется два пути:
1. Изменить метод на return true, но у этого способа есть свой минус, вдруг в другом месте вместо вызова isMultiplayerEnabled они напрямую обратятся к полю enableMultiplayer и ваш фикс работать не будет
2. Узнать где меняется значение enableMultiplayer
Узнать где находится gameConfig:
Поменять значение флага для отключения мультиплеера:
Получить свою первую победу
Последнее редактирование: