Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаAlexSpl писал(а): Цитата: *(int*)0x4E4F1E = 0x63AC60; //Logistic *(int*)0x4E4569 = 0x63AC60; //Attack *(int*)0x4E45C9 = 0x63AC60; //Defence Так работать точно не будет. В данном случае это не адреса процесса. Ну таким образом, как я понимаю по адресу 0x4E4F1E будет записано 0x63AC60, а вернее 0x0063AC60, 4 байта, как для int, начиная с 60. Операнд ведь в данном случае - это и есть просто адрес. И достаточно просто изменить его, как обычное HEX число. Последний раз редактировалось Ben80 05 авг 2017, 12:25, всего редактировалось 1 раз.
|
Re: Как создать плагин для HD модаТут вот MasterOfPuppets http://forum.df2.ru/index.php?showtopic=36506
тоже, как я понимаю, меняет только операнд для 1 инструкции, и считает, что все будет работать. Так я еще более удивлен |
Re: Как создать плагин для HD модаЦитата: Там речь идёт о патче исполняемого файла на диске вручную. patcher_x86 патчит образ, загруженный в оперативную память. Патч нужно создать и применить с помощью API патчера. Пытаться писать что-либо напрямую в секцию кода игры из кода плагина (DLL) бесполезно. В тонкостях работы патчера не разбирался, но проверьте сами, открыв память процесса в шестнадцатеричном редакторе, что в результате выполнения команды *(int*)0x4E3F92 = 0x63AC60; число 0x63AC60 не будет записано по адресу 0x4E3F92. |
Re: Как создать плагин для HD модаЦитата: Для Интеллекта легче всего: _PI->WriteDword(0x4E4B69, 0x63AC60); Вот тут у Вас ошибка. Нужно _PI->WriteDword(0x4E20EC, 0x63AC60); Elleshar 5-го уровня (Знания = 4) с Expert Intelligence: 84 маны. Проверяем: 4 * 10 * (1 + 1 * (1 + 0.02 * 5)) = 40 * 2.10 = 84 При 5% было бы: 4 * 10 * (1 + 1 * (1 + 0.05 * 5)) = 40 * 2.25 = 90 Так что, скорее всего, адреса остальных множителей неверные, если у Вас не сходится. |
Re: Как создать плагин для HD модаAlexSpl писал(а): Цитата: Для Интеллекта легче всего: _PI->WriteDword(0x4E4B69, 0x63AC60); Вот тут у Вас ошибка. Нужно _PI->WriteDword(0x4E20EC, 0x63AC60); Elleshar 5-го уровня (Знания = 4) с Expert Intelligence: 84 маны. Проверяем: 4 * 10 * (1 + 1 * (1 + 0.02 * 5)) = 40 * 2.10 = 84 При 5% было бы: 4 * 10 * (1 + 1 * (1 + 0.05 * 5)) = 40 * 2.25 = 90 Так что, скорее всего, адреса остальных множителей неверные, если у Вас не сходится. Сейчас буду проверять. 0x4E20EC - это в процедуре DlgHeroInfo_Update Возможно, нужно сделать подмену адреса и по адресу 0x4E20EC, и по всем другим адресам - которые отдельно для каждой специализации. |
Re: Как создать плагин для HD модаДа, оказывается и впрямь нужно сделать подмену для адреса 0x4E20EC,
и для каждого адреса уже по специализациям. Наверно, это только для специализаций по втор. навыкам. Надеюсь, по крайней мере Проверю. |
Re: Как создать плагин для HD модаА так оно и впрямь не работает, вы правы.
*(int*)0x4E3F92 = 0x63AC60; //Necromancy *(int*)0x4E4F1E = 0x63AC60; //Logistic *(int*)0x4E4569 = 0x63AC60; //Attack *(int*)0x4E45C9 = 0x63AC60; //Defence |
Re: Как создать плагин для HD модаДа, иногда бывает нужно менять в нескольких местах. Тут тестить нужно.
|
Re: Как создать плагин для HD модаAlexSpl писал(а): Цитата: Там речь идёт о патче исполняемого файла на диске вручную. patcher_x86 патчит образ, загруженный в оперативную память. Патч нужно создать и применить с помощью API патчера. Пытаться писать что-либо напрямую в секцию кода игры из кода плагина (DLL) бесполезно. В тонкостях работы патчера не разбирался, но проверьте сами, открыв память процесса в шестнадцатеричном редакторе, что в результате выполнения команды *(int*)0x4E3F92 = 0x63AC60; число 0x63AC60 не будет записано по адресу 0x4E3F92. На диске вручную имею опыт редактирования, пробовал. Значит, получается, все редактирование мы можем делать только через API (процедуры) патчера ? (если мы правим не экзешник) То, что патчер работает с данными в памяти, а не на винте, это я прекрасно понимаю... |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 5