Гайд Пишем свой чит для MineCraft - Часть 2

[flowers for ur soul]
Пользователь
Статус
Оффлайн
Регистрация
22 Июн 2019
Сообщения
61
Реакции[?]
92
Поинты[?]
0

Вторая часть гайда. Все как всегда - если заходит и я вижу положительный фидбек, то создаю продолжение.

Первая часть
АХТУНГ!! Тут все на версии 1.8.8


Сегодня мы с вами будем делать модули и хукать их в нужных местах.
1. Открываем Eclipse и давайте создадим в нашем пакете главный класс для всех функций


2. Теперь создадим конструктор и 3 переменных.

private String name; // название функции
private int key; // клавиша для переключения функции
private boolean state; // стадия функции ( включена / выключена )

public Module( String name, int key )
{
this.name = name; // присваиваем имя функции
this.key = key; // присваиваем клавшиу переключения
this.state = false; // функция выключена по умолчанию
}

3. теперь нам надо создать 5 функций для работы с функционалом чита:

1) OnEnable - мы будем вызывать ее при включении функции
2) OnDisable - мы будем вызыввать ее при выключении функции
3) OnUpdate - мы будем вызывать ее при каждом действии в игре ( если вы писали читы для CS:GO, то это некий аналог CreateMove хука )
4) OnRender - мы будем вызывать ее при рендере / обработке объектов
5) Toggle - здесь мы будем включать / выключать функциюх


Также можно сделать GetName, который просто возвращает this.name ( название функции ) и функцию GetCode которая будет возвращать клавишу активации ( this.key )
В некоторые функции можно добавить функционал, который будет общим для всех функций, я решил для примера добавить сообщения о включении / выключении.

public void OnEnable( )
{
Minecraft.getMinecraft( ).thePlayer.addChatMessage( new ChatComponentTranslation( "[" + EnumChatFormatting.BLUE + "ugay" + EnumChatFormatting.WHITE + "] " + EnumChatFormatting.RED + GetName( ) + " has been toggled ON" ) );
}

public void OnDisable( )
{
Minecraft.getMinecraft( ).thePlayer.addChatMessage( new ChatComponentTranslation( "[" + EnumChatFormatting.BLUE + "ugay" + EnumChatFormatting.WHITE + "] " + EnumChatFormatting.RED +GetName( ) + " has been toggled OFF" ) );
}

Функция Toggle очень проста - мы меняем значение переменной state на противоположное и в зависимости от значения вызываем либо onenable либо onDisable

Код:
public void Toggle( )
{
    this.state = !this.state; // переключение
    if ( this.state ) // если мы включили функцию, то вызываем OnEnable
        this.OnEnable( );
    else  // если выключили, то вызываем OnDisable
        this.OnDisable( );
}
4. Мы можем увидеть что Minecraft.getMinecraft( ) повторяется несколько раз, а значит пора сделать наш первый небольшой рефакторинг: создать локальную переменную

public static Minecraft mc = Minecraft.getMinecraft( );
а теперь можно заменить Minecraft.getMinecraft( ) заменить просто на mc

5. Далее нам надо создать обработчики в главном классе ( MegaHack ), добавим сюда
1) добавим список функций в ArrayList

private static ArrayList< Feature > features;

2) Создадим метод инициализации, его мы будем вызывать при загрузке и инициализировать в нем все функции
Код:
public void Initialize( )
{
    this.features = new ArrayList< Feature >( ); // инициализация нашего ArrayList ( списка модулей )
}
3) Создадим метод возвращающий список модулей
Код:
public ArrayList< Feature > GetModules( )
{
    return features;
}
4) Создадим метод который будет срабатывать при нажатии на клавиши на клавиатуре
Код:
public void OnKey( int code )
{
    for ( Feature mod : GetModules( ) ) // перебираем список всех модулей
    {
        if ( mod.GetCode( ) == code ) // если клавиша, которую мы нажали соответствует клавиши активации модуля, то мы переключаем состояние модуля
        {
            mod.Toggle( );
        }
    }
}
5) Теперь сделаем методы OnUpdate и OnRender, только перебирающие все модули
Код:
public void OnUpdate( )
{
    for ( Feature mod : getModules( ) )
    {
        mod.OnUpdate( );
    }
}
  
public void OnRender( )
{
    for ( Feature mod : getModules( ) )
    {
        mod.OnRender( );
    }
}
6. А теперь сделаем хуки
1) Хук иницилизации нужно поставить в методе загрузки ( startGame( ) в Minecraft.java ) ставить его надо после присвоения основных переменных
MegaHack.INSTANCE.Initialize( );
2) обрабатываем нажатые клавиши мы каждый тик, а значит вызов должен быть в методе runTick и он опять же в minecraft.java
добавляем вызов в условии if ( this.currentScreen == null )
MegaHack.INSTANCE.OnKey( k ); // передаем параметр, k - переменная которая содержит нажатую клавишу

3) Теперь хук на он апдейт нам надо ставить в обработчике статусов энтити ( onLivingUpdate( ) в EntityPlayerSP.java )
MegaHack.INSTANCE.OnUpdate( );

4) И последнее хук на рендер, вызываем его в самом конце renderWorldPass( ) в EntityRenderer.java

Вот и все. В следующем гайде сделаем какой-нибудь функционал.
credits: violanes
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
97
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Перевести зарубежные туториалы и заработать Реакции :seemsgood:
 
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
97
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Начинающий
Статус
Оффлайн
Регистрация
19 Мар 2019
Сообщения
31
Реакции[?]
11
Поинты[?]
0
1.1. Запрещено размещение любых бессмысленных сообщений, которые не относятся к контексту темы, а так же размещение сообщений, состоящих из одних смайлов. Текст сообщения должен быть понятен любому пользователю.
Time2skid
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
97
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
по-твоему, это пруф? пруф - это когда ты приводишь ссылки на источники, подтверждая тем самым свои слова, а то, что ты написал - просто пустые слова, причем, судя по-всему, ты пишешь это из зависти, ведь для форума ты не можешь сделать ничего полезного ( 36 сообщений на 2 симпы, неплохая стата :joycat: ). Опять же, если даже код в чем-то совпадает, то может потому, что другая реализация невозможна / бессмысленна ?
У каждого свой стиль написания кода, цикл foreach можно было бы заменить лямбдой, либо вообще вызывать функцию каждого модуля отдельно ( но зачем, если это имеет гораздо меньше преимуществ? ). В общем, можешь дальше гулять и писать свои никому ненужные и неинтересные комменты по типу "ха паста" из зависти и иметь группу новичок+ всегда.
Хорошего дня ?
Какая зависть, ты о чем? Даже тупой школьник с -1 iq напишет чит-клиент на майнкрафт, много ума не нужно. Тем более можно опять же зайти на англоязычный ютуб и сп**дить оттуда код, что и сделал автор данного поста, которые захотел заработать симпатии.
 
Забаненный
Статус
Оффлайн
Регистрация
9 Янв 2019
Сообщения
701
Реакции[?]
295
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Какая зависть, ты о чем? Даже тупой школьник с -1 iq напишет чит-клиент на майнкрафт, много ума не нужно. Тем более можно опять же зайти на англоязычный ютуб и сп**дить оттуда код, что и сделал автор данного поста, которые захотел заработать симпатии.
Вот скажи мне, ты не имеешь должного развития, чтобы тебя воспринимали? Есть просьба: предоставить, блядь, источники, откуда это спизжено, ты же отвечаешь на сноску, но не отвечаешь на поставленный вопрос. Пустослов, лол ) Удачи дальше сидеть с 41 сообщениями и 9 симпами, а чо
 
Последнее редактирование:
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
97
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Вот скажи мне, ты не имеешь должного развития, чтобы тебя воспринимали? Есть просьба: предоставить, блядь, источники, откуда это спизжено, ты же отвечаешь на сноску, но не отвечаешь на поставленный вопрос. Пустослов, лол ) Удачи дальше сидеть с 41 сообщениями и 9 симпами, а чо
Твой IQ видать -100, чтобы зайти в ютуб и написать в поисковике "How to code Minecraft Hacked Client 1.8.8". Пиздуй букварь читай, малыш, 1-е сентября на носу.
 
Забаненный
Статус
Оффлайн
Регистрация
9 Янв 2019
Сообщения
701
Реакции[?]
295
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Твой IQ видать -100, чтобы зайти в ютуб и написать в поисковике "How to code Minecraft Hacked Client 1.8.8". Пиздуй букварь читай, малыш, 1-е сентября на носу.
ссылку дай, ало ) где именно такой же код? ) мы писали это вместе, сидя в дискорде, а ты, уважаемый Java Developer, вовсе не похож на девелопера... )
 
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
97
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
ссылку дай, ало ) где именно такой же код? ) мы писали это вместе, сидя в дискорде, а ты, уважаемый Java Developer, вовсе не похож на девелопера... )
То, что вы чуть-чуть изменили код, то это не значит, что вы его с нуля писали, ссылку давать не буду, ты сам поищи на Англо. язычном ютубе, хотя не уверен, что тебе удастся это сделать, с твоим то уровнем интеллектом...
 
Забаненный
Статус
Оффлайн
Регистрация
9 Янв 2019
Сообщения
701
Реакции[?]
295
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
То, что вы чуть-чуть изменили код, то это не значит, что вы его с нуля писали, ссылку давать не буду, ты сам поищи на Англо. язычном ютубе, хотя не уверен, что тебе удастся это сделать, с твоим то уровнем интеллектом...
все понятно, слит )
 
Забаненный
Статус
Оффлайн
Регистрация
9 Янв 2019
Сообщения
701
Реакции[?]
295
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Мдаа, ты очень глупое и гнилое существо, что тебе доказывать, если ты элементарно не умеешь пользоваться поисковиком??!??!
не пиши, слитый ) либо предоставь пруфы
 
Забаненный
Статус
Оффлайн
Регистрация
9 Июл 2019
Сообщения
97
Реакции[?]
17
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
не пиши, слитый ) либо предоставь пруфы
С фигали я слитый?!?!? Какие тебе пруфы!?!? У тебя мозгов не хватает что ли зайти на ютуб!??? Ты в детстве упал с качели и сильно ударился головой?!?
 
Начинающий
Статус
Оффлайн
Регистрация
16 Дек 2018
Сообщения
117
Реакции[?]
17
Поинты[?]
0
С фигали я слитый?!?!? Какие тебе пруфы!?!? У тебя мозгов не хватает что ли зайти на ютуб!??? Ты в детстве упал с качели и сильно ударился головой?!?
А блять ссылка на источник не пруф? Кинь ссылку на источник и тогда ты уже не будешь слитым
 
Забаненный
Статус
Оффлайн
Регистрация
6 Фев 2019
Сообщения
22
Реакции[?]
0
Поинты[?]
0
Обратите внимание, пользователь заблокирован на форуме. Не рекомендуется проводить сделки.
Кек а зачем ты это делаешь если за тебя это давно сделал SHARLIZE в другом треде причем ещё прилепив функции и тд.втф чел
 
Новичок
Статус
Оффлайн
Регистрация
6 Окт 2021
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Лол, а можно пруфы? :orehus:
К слову, сорри, не нашёл как отправить коменты просто так, я с 1 части, вот проблемка


Привет, подскажи пожалуйста, как сохранить все файлы что бы, они сохранились в client, потом я закрыл эклипсу, запустил cleanup.bat, удалились штучки специальные, потом decompile.bat что бы загрузились мои обновы, потом startclient.bat, запускаеться версия, но всё что я сохранял, пропали, и сбросилось до начала(это я делал по 1 гайду) скажи пожалуйста просто как сохранять правильно все файлы которые ты сам сделал.
 
Новичок
Статус
Оффлайн
Регистрация
6 Окт 2021
Сообщения
2
Реакции[?]
0
Поинты[?]
0
Привет, подскажи пожалуйста, как сохранить все файлы что бы, они сохранились в client, потом я закрыл эклипсу, запустил cleanup.bat, удалились штучки специальные, потом decompile.bat что бы загрузились мои обновы, потом startclient.bat, запускаеться версия, но всё что я сохранял, пропали, и сбросилось до начала(это я делал по 1 гайду) скажи пожалуйста просто как сохранять правильно все файлы которые ты сам сделал.
 
Похожие темы
Сверху Снизу