Current time: 22.11.2024, 06:46 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
Плагины. Обсуждение
» Plugins. Discussion & Questions
Author Message
igrik Offline
Administrators

Posts: 2819
Post: #466

(13.06.2021 12:02)Archer30 Wrote:  Hi igrik! A request from a mod maker for WoG Native Dialogs.

Is it possible to improve the behaviour of experience ability dialogue?

When try to disable the 6th ability of Archer

Without WND:
Image: sqwI46C.png

With WND:
Image: e8QmTOQ.png

Code:
ZVSE2
!#EA(MON_ARCHER):B6/0//////////////;

Difference:
1. When there is a vacancy in the experience ability list, the game without WND will display the rest of the abilities. However, with WND, the rest of the abilities would be hidden. Reduce Def. is hidden in this case.
2. Moving the cursor in the vacancy (red square) result in a crash with WND, while there is no crash without WND.

Currently, it is required to rearrange all the slots when disabling abilities, which requires much more script. Rolleyes

Could you help with this?

Fixed! 115

Image: Screenshot-1.png


game bug fixes extended.dll || My Plugins || My GitHub
03.11.2021 16:02
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #467

igrik, 177 спасибо


Image: team-supermod.gif
03.11.2021 16:53
Visit this user's website Find all posts by this user Quote this message in a reply
Archer30 Offline
Moderators

Posts: 1175
Post: #468

igrik, can't thank you enough for this 71


Latest ERA mods and scripts in development - My GitHub
03.11.2021 23:38
Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #469

Вот, для сравнения, с учётом последних обновлений плагина WND
картинка из WoG/TE (Click to View)
та же, но из ERA3 (Click to View)


Image: team-supermod.gif
04.11.2021 02:50
Visit this user's website Find all posts by this user Quote this message in a reply
komrad.kazackoff Offline

Posts: 64
Post: #470

XEPOMAHT Привет подскажи плагин Увеличение лимита первичных навыков с 99 до 249 в SoD, HotA как установить
14.11.2021 10:05
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #471

(14.11.2021 10:05)komrad.kazackoff Wrote:  Увеличение лимита первичных навыков с 99 до 249 в SoD, HotA как установить

Просто копируешь в папку с игрой (версия игры должна быть обязательно 3.2, если поставишь на какой-нибудь Комплит, работать не будет): https://vk.com/doc-118013293_620137228
14.11.2021 13:41
Find all posts by this user Quote this message in a reply
komrad.kazackoff Offline

Posts: 64
Post: #472

XEPOMAHT Спасибо, но у меня к сожелению Комплит.
14.11.2021 15:02
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #473

Привет, у меня возникла идейка, но я не знаю, каким образом ее можно реализовать. Можете подсказать пожалуйста?


Я хочу написать отключалку патчей НD-мода, но не знаю, как отключить патч 148 Сначала я думал, что метод UndoAllAt на это способен, но оказалось, что он работает только с текущим экземпляром PatcherInstance.
11.12.2021 11:29
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #474

(11.12.2021 11:29)Raistlin Wrote:  Я хочу написать отключалку патчей НD-мода, но не знаю, как отключить патч 148 Сначала я думал, что метод UndoAllAt на это способен, но оказалось, что он работает только с текущим экземпляром PatcherInstance.

Там только на низком уровне можно (в Тифоне я просто восстанавливаю затёртый патчером код игры там где нужно в рамках ERA+ обычным бинарным патчем как для HD-мода, так и для era.dll), но за подобное надругательство над патчером ни Бараторч, ни Берсеркер не скажут спасибо. На высоком затирать перехваты патчера - вряд ли можно, т.к. хитрый патчер всегда ответит кукишем на подобные вандальные действия. Поэтому я не хочу использовать патчер, т.к. он ограничивает свободу в кодинге игры.

Единственное, что можно сделать на патчере - создание обходного пути в коде игры (в Тифоне так же это практикуется, когда нужен независимый от патчера код, обезопасенный от пользовательских хуков и патчей).
(This post was last modified: 11.12.2021 12:14 by XEPOMAHT.)
11.12.2021 12:06
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #475

Raistlin,

Code:
    ///////////////////////////////////////////////////
    // Метод GetInstance
    // Возвращает экземпляр TPatcherInstance
    // с именем owner.
    // в качестве аргумента можно передавать имя модуля.
    // метод возвращает nil в случае, если
    // экземпляр с именем owner не существует (не был создан)
    // Используется для :
    // - проверки активен ли некоторый мод, использующий patcher_x86.dll
    // - получения доступа ко всем патчам и хукам
    //    некоторого мода, использующего patcher_x86.dll
       function GetInstance(owner_name: PAnsiChar): TPatcherInstance; virtual; stdcall; abstract;


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
11.12.2021 13:03
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #476

Спасибо большое! У меня все получилось - как оказалось, все-таки существует глобальное затирание, но я просто не знал, как его использовать: надо было обращаться к объекту класса GlobalPatcher, а не PatcherInstance. Когда я сделал это, чтобы воспользовать функцией GetInstance, я увидел глобально работающую функцию UndoAllAt.


Создал новый глобальный мод: WoG Ultra Edition
12.12.2021 11:07
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #477

(20.01.2022 09:35)igrik Wrote:  
(20.01.2022 07:18)XEPOMAHT Wrote:  Ага, при этом получится та же история, что и с game bug fixes от igrik/Ben/RK - несовместимость с ERA+.
Дай мне список того, что конфликтует в плагине с ERA+, я запилю совместимость.

1. Конфликт с ненавистью монстров - Тифон подменяет адрес кейса на монстров, а game bug fixes extended ставит хук, полностью игнорируя содовскую адресацию кейса, в итоге, ненависти из Тифона не будут работать. Ну это я могу исправить сам в Тифоне, уничтожив соотвествующий хук game bug fixes extended, но для совместимости со старыми версиями Тифона лучше было бы, чтобы хук отменялся в самом game bug fixes extended.

2. Так делать не надо:

Code:
if ( heroID < 0 && heroID > 155 )
        return 0; // выход, если номер героя неправильный

Если номер героя неправильный, игра вылетит намного раньше.

3. Запреты заклов уже исправлены в Тифоне, там же их количество увеличено до 95. Поэтому функции, адресующиеся к o_GameMgr->disabled_spells всегда будут попадать в молоко, т.к. эти таблицы в ERA+ перемещены в память Тифона бинарным патчем, а сам UN:J Тифон вовсе выключает, т.е. функции Игрика Y_ArtGive_Spell, Y_ArtGive_LoadSpells и Y_ArtGive_AllSpells могут приводить к ошибкам в игре. Ну а если кто-то попытается адаптировать плагин Алекса под Эру на новые заклы... там совместимость вообще нулевая.

4. Исходник RK primary skill overflow.cpp должен быть выключен целиком, т.к. он конфликтует и с Тифоном, и с Примой, входящей в сборки Демона.
(This post was last modified: 20.01.2022 12:00 by XEPOMAHT.)
20.01.2022 11:48
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2819
Post: #478

XEPOMAHT, хорошо. Сегодня вечером сделаю:
1. Сделаю проверку на Тифон, если Тифон включен - данный хук НЕ будет устанавливаться вообще.
2. Это то понятно. Просто я давно не лез в этот участок кода. Сделаю проверку на максимальный номер героя
3. Сделаю проверку на Тифон, если Тифон включен - данный хук НЕ будет устанавливаться вообще.
4. Этого кода никогда не было в плагине: исходник лежит чисто для информации, но код не используется и никогда не использовался.


game bug fixes extended.dll || My Plugins || My GitHub
20.01.2022 12:04
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2356
Post: #479

(20.01.2022 12:01)Raistlin Wrote:я выкладывал плагин, позволяющий убирать хуки, поставленные патчером, с помощью патчера - может быть, попробуешь добавить его в ERA+? Несовместимостей с ним быть не может, а для использования достаточно просто записать адреса в конфиге, и хуки будут убраны.

Мне был бы полезен этот плагин для отмены феаноровских хуков, но я не знаю как им пользоваться. Нужна хотя бы короткая инструкция.

Тифон умеет убирать чужие хуки с помощью обычного бинарного патча или непосредственной подмены хука патчера хуком WERD, т.к. Мастер, скорее всего намеренно, запитал в Тифон установку хуков позднее патчера, чтобы получить больше свободы для манипуляции с игрой. Конечно, сам патчер будет думать, что хук там якобы есть, и в лог запишет эти несуществующие хуки, но просто отмена хука мне не требуется - часто нужен именно оригинальный содовский код, без влияния патчера, который... всё равно ставит хук, независимо от того, отменён он или нет (при отмене хука, патчер выполнит затёртый код и вернётся обратно, но физически при этом хук никуда не денется).

(20.01.2022 12:04)igrik Wrote:  Сделаю проверку на Тифон, если Тифон включен - данный хук НЕ будет устанавливаться вообще.

Ок, буду ждать результата. Надеюсь, проверка будет не по имени dll (т.к. Берсеркер в своём релизе Тифона переименовывал dll, если скляроз не изменяет).
20.01.2022 12:33
Find all posts by this user Quote this message in a reply
Raistlin Away
Moderators

Posts: 1349
Post: #480

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


Создал новый глобальный мод: WoG Ultra Edition
(This post was last modified: 20.01.2022 14:46 by Raistlin.)
20.01.2022 14:43
Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group