Ответил выше. По идее, ситуацию с Удачей тоже должен исправлять. После тестов плагин можно добавить в тему с пользовательскими плагинами.
Это только для стрелков. Для милишников нужен такой же патч в другом месте.
Объявления |
---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Как создать плагин для HD модаОтветил выше. По идее, ситуацию с Удачей тоже должен исправлять. После тестов плагин можно добавить в тему с пользовательскими плагинами.
Это только для стрелков. Для милишников нужен такой же патч в другом месте. |
Re: Как создать плагин для HD модаПлагин с исправлениями для нейтралов:
|
Re: Как создать плагин для HD модаДобавил в плагин, который меняет диапазон Морали на +24/-12 положительную Удачу в +24. Теперь нужно как-то этот плагин допилить, чтобы при его подключении он патчил тот кусок (изменяя нижнюю границу Удачи с -3 на -12), который добавляет плагин BadLuck.
|
Re: Как создать плагин для HD модаПросто уберите ограничение if ( Luck < -3 ) Luck = -3;
* * * Насчёт излишнего дробления кода плагинами. Это не совсем удачный подход хотя бы потому, что придётся следить за порядком их загрузки. Более гибкое решение для взаимосвязанных изменений - один плагин с зависимым кодом и ini-файл, в котором можно включать или выключать определённый функционал этого плагина. Для удобства пользователя можно написать утилиту для отключения ненужных компонентов. В лончере HD-мода используется похожая идея, но она не очень подходит для случая плагинов с взаимосвязанным кодом. |
Re: Как создать плагин для HD модаAlexSpl писал(а): Не, я BadLuck не хочу трогать. Можно ли как-то из этого сделать это? То есть, если нужны другие диапазоны Морали/Удачи, то подключаешь нужный плагин с нужным диапазоном, если ненужны - отключаешь и юзаешь дефолтные +3/-3. |
Re: Как создать плагин для HD модаЧерез ini-файл можно, как я написал выше. Либо придётся менять порядок загрузки плагинов в лончере, чтобы можно было сделать проверку, загружен ли плагин, от которого зависит другой плагин.
Проще говоря, в Вашем случае Вы не сможете убрать строчку if ( Luck < -3 ) Luck = -3; плагином, который изменяет кап Неудачи, если первый не загружен. Или наоборот - плагин на Неудачу не сможет проверить, нужно ли ему удалять эту строчку, если он не знает, загружен ли второй. Вы, конечно, можете менять порядок загрузки плагинов в лончере, но это не очень удачное решение, которое приведёт к путанице. |
Re: Как создать плагин для HD модаВ принципе можно проще, без доп ini. По умолчанию подключен плагин BadLuck с if ( Luck < -3 ) Luck = -3, а когда нужны другие границы Морали/Удачи (например, есть два плагина +6/-6 и +24/-12), то к каждому (в папке 2 dll-ки) будет идти доп dll-ка BadLuck с if ( Luck < -6 ) Luck = -6 и BadLuck с if ( Luck < -12 ) Luck = -12, соответственно. Да, это очень кривое решение, так как весь код BadLuck за исключением одной строчки повторяется трижды, но самое простое.
|
Re: Как создать плагин для HD модаЦитата:
Так писать необязательно В hex-редакторах код разбит на строки по 16 байт для удобства. Т.е. код выше эквивалентен
Ещё можно не патчить то, что не изменяется. Например, хвост из нулей можно опустить. Но я рекомендую делать это, пока не станет легче патчить через WriteByte/WriteWord/WriteDword. |
Re: Как создать плагин для HD модаЯ увидел у вас танцы с бубном вокруг всей некромантии.
Всё можно сделать куда проще:
Rolex , просмотрите плагин/мод adfontes. В нём половина вашей работы уже сделана. https://sites.google.com/site/heroes3ad ... u/download Мод распространяется вместе с исходниками! https://drive.google.com/file/d/1xCUUgs ... IT55S/view |
Re: Как создать плагин для HD модаПлохо так делать, открыаешь дизасамблер - а там не код, а лапша.
Думайте пожалуйста о других модерах, которые потом пытаются это всё прочитать и понять почему их плагин не работает или вылетает если ваш плагин подключился.
Почему не поставить лоухук в место установки патча? С коментариями понятно зачем и почему код ставится в одно и то же место.
Потом просто параметр удачи берём не из eax, а из структуры монстра. И волки сыты, и половина овец цела... |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 3