AlexSpl писал(а):
Цитата:
Полагаю, нужно добавить соответствующие хуки в ту же функцию (sub_4E6260). Могу помочь с конкретными изменениями.
Думаю сделать для Каменной кожи бонус+3, для Жажды крови и Точности бонус +4 не зависимо от уровня существа.
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаAlexSpl писал(а): Цитата: Полагаю, нужно добавить соответствующие хуки в ту же функцию (sub_4E6260). Могу помочь с конкретными изменениями. Думаю сделать для Каменной кожи бонус+3, для Жажды крови и Точности бонус +4 не зависимо от уровня существа. |
Re: Как создать плагин для HD модаAlexSpl писал(а): Цитата: Здесь деление целочисленное. Т.е. правильно Атака = ceil(Атака(базовая) * (1+ [N/n] * 0.05)) А можно его заставить делать ceil(N/n) вместо floor(N/n) ? С помощью WriteHexPatch, например. |
Re: Как создать плагин для HD модаЦитата: Например, так (LoHook на 4E62ACh):
Не тестировал. Так что проверяйте. Цитата: С помощью WriteHexPatch, например. Можно. Но с помощью LoHook (на 4E6526h) будет значительно проще:
|
Re: Как создать плагин для HD модаПопробовал плагин Деда Мороза - бонусы к специализациям (2% вместо 5%) - не работает.
И компилировал, и подкладывал уже готовую DLL, скомпилированную не мной, а им. Такого типа: *(int*)0x4E3F92 = 0x63AC60; //Necromancy *(int*)0x4E4F1E = 0x63AC60; //Logistic *(int*)0x4E4569 = 0x63AC60; //Attack *(int*)0x4E45C9 = 0x63AC60; //Defence У меня тоже не получается никаким способом, кроме такого: _PI->WriteHexPatch(0x63EAE4, "8F C2 F5 3C"); или такого: _PI->WriteDword(0x63EAE4, 1022739087); То есть это правка общей константы, что, как я уже понял, является неприемлемым решением. |
Re: Как создать плагин для HD модаЗдесь идёт подмена операнда инструкции fmul. Если все адреса верны (я проверил только первый), то правильно будет патчить следующим образом:
|
Re: Как создать плагин для HD модаAlexSpl писал(а):
Так оно тоже не работает. Вы могли бы проверить не адрес, а результат ? Для Интеллекта легче всего: _PI->WriteDword(0x4E4B69, 0x63AC60); Понимаю, что странно, но не работает. Не помогает и правка самого экзешника (жесткая замена адреса на 0x63AC60). Предположить пока могу только одно - что не только в этой инструкции дело - fmul ds:IntellSecScSpecMult Там же еще есть fmul [ebp+var_4], fstp [ebp+var_4] и прочие. Может, в этом дело ? Это ведь тоже должно работать (написано же правильно), но не работает - *(int*)0x4E3F92 = 0x63AC60; //Necromancy *(int*)0x4E4F1E = 0x63AC60; //Logistic *(int*)0x4E4569 = 0x63AC60; //Attack *(int*)0x4E45C9 = 0x63AC60; //Defence |
Re: Как создать плагин для HD модаА как проверяете? Считает множитель для Интеллекта ведь верно: 1 + k * (1 + 0.02 * N).
Цитата: *(int*)0x4E4F1E = 0x63AC60; //Logistic *(int*)0x4E4569 = 0x63AC60; //Attack *(int*)0x4E45C9 = 0x63AC60; //Defence Так работать точно не будет. В данном случае это не адреса процесса. |
Re: Как создать плагин для HD модаAlexSpl писал(а): Цитата: *(int*)0x4E4F1E = 0x63AC60; //Logistic *(int*)0x4E4569 = 0x63AC60; //Attack *(int*)0x4E45C9 = 0x63AC60; //Defence Так работать точно не будет. В данном случае это не адреса процесса. Проверяю - смотрю макс. кол-во манны у Эллешара. Сравниваю для 2 случаев - с плагином и без плагина. И просто считаю по формуле, да - добавка манны = X* k * (1 + 0.02 * N) где k = 1 (поскольку прокачиваю героя до эксперта Интеллекта) X - обычное макс значение манны |
Re: Как создать плагин для HD модаТакже тестировал логистику у Гуннара (занимает чуть больше времени )
|
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3