(08.08.2024 00:31)Berserker Wrote: Нельзя писать внутрь моста/переходника хука.
Тифон 3 в таком случае не лезет в код era.dll, а, или ставит собственный ассемлерный переходник-прокладку между кодом игры и хуком Патчера (по коду получается, что Патчер поставил хук непосредственно в код Тифона, где Тифон сам решает - выполнять чужой хук или нет, а не в СоД, правда сам Патчер об миграции собсвенных хуков естественно ничего не знает, как и не узнает era.dll, библиотеки HD-мода и плагины Игрика, с которыми требуется совместимость, а у Бараторча Тифон вообще "ворует" хуки, заставляя выполять полезные функции HD-мода прямо из Тифона, увы по-другому никак
![105 105](http://wforum.heroes35.net/images/smilies/105.gif)
), или целиком подменяет хуки, если они мешают работе кода ERA+, или полностью восстанавливает затёртый код бинарным патчем, благо в Патчере проверок на установленные хуки нет, или перехватывает критические для Тифона функции игры целиком, не позволяя в них вмешиваться сторонним dll. Но весь этот вандализм оправдан только для глобального моддинга (по-другому на платформе ЭРА увы никак), т.к. глобальный мод не может быть частью "конструктора" модов из-за правок всего и вся в игре. Уход на чистый SoD - очевидное решение проблемы совместимости, на ERA делают глобальники только психопаты.
(08.08.2024 00:31)Berserker Wrote: Для установки перехвата можно использовать HiHook патчера patcher_x86.dll или API из Эры
А оно под Ассемблер есть? Скорее всего готового исходного кода "из коробки", позволяющего использовать функционал patcher_x86.dll без костылей, нет и не будет - Бараторчу на это глубоко наплевать абсолютно (тема подмалась ещё во времена, когда Патчер только-только появился, так до сих в этом направлении пор глухо несмотря на то, что кто-то ещё пилит плагины на Ассемблере). Например, Тифон, чтобы просто сигнализировать Патчеру о своих хуках, использует диассемблированный кусок СИ-шного кода, в котором ничерта не понятно, оно просто как-то работает с неизвестными индексами/префиксами, подающимися на функции Патчера, что иногда сводит Патчер с ума, да и саму era.dll иногда тоже, из-за чего код era.dll может нопить в 2 раза больше кода (в итоге, приходится переносить в Тифон в 2 раза больше затёртого Эрой кода
![148 148](http://wforum.heroes35.net/images/smilies/148.gif)
, чтобы содовский код всё-таки исполнялся без ошибок). Да и функционал Патчера очень ограничен - некоторые нестандартные тифоновские хуки нельзя реализовать Патчером - даже сам Бараторч ставит специфические (и очень старые) хуки HD-мода НЕ Патчером.