Current time: 29.04.2025, 23:01 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
[ERA 3] HoMM3 ERA HD Rus/Eng Clear
» HoMM3 ERA 3.9.26 + HD-мод 5.5 R53 (20 апреля 2025)
Author Message
XEPOMAHT Offline
Moderators

Posts: 2438
Post: #151

(25.04.2025 15:23)Barin Wrote:  В данном конкретном случае, я на ERA 3.9.26 and HD 5.5 R53
Сделал отдельный деф, но с 6-ю символами получил ошибку. Сделал 5 символов - всё заработало.

У меня ERA 3.9.21 и HD 5.4 R84. Правда сами дефы добавлены в качестве новых, без замен. Лошадки привязаны к типу и полу героев в коде самой игре, но можно привязать их и к номеру героя (тогда придётся сделать 255 def-ов). Надо точнее узавать у Берсеркера как он меняет данные структуры загруженного def-а на лету во время выпаления RedirectFile.

Например хотовцы проделывают такую чёрную магию у себя в hota.dll для подмены def-а, к примеру, чтобы работала абилка Коатля, где он из стека превращается в препятствие и наоборот:

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

Ну и вот аналог из era.dll:

У Берсеркера - просто универсальная выгрузка старого файла и загрузка вместо него нового. Хотовцы ж правят ещё и содержимое структуры загрузочного деф-а. Возможно, Берсеркеру стоит добавить аналогичную команду, чтобы моддеры на ERA могли подменить любой def в игре, хотя...

(25.04.2025 15:10)Berserker Wrote:  Это такой хитрый способ экономить ресурсы или держать в памяти отдельные изображения, отгрузив всё остальное. Не знаю, насколько он практичен и используется ли где игрой доступ именно к конкретному кадру по имени.

Да, разработчики так экономили память. Спрайт проверяется на присутствие в памяти по имени и если он там уже есть - его повторная загрузка пропускается, сам спрайт берётся из числа ранее загруженных, к нему при этом ещё и прикручивается палитра от загружаемого def-а. В ERA+ я сталкивался с кучей графических косяков из-за этого - приходилось всё переименовывать.

(25.04.2025 15:10)Berserker Wrote:  Если нет, можно было бы сделать реализацию с генерацией случайного имени в процессе выполнения и решить эту проблему навсегда. Херомант, что думаешь?

Вряд ли стоит лезть так глубоко в движок. Проще сгенерировать уникальный абырвалг в самом def-е раз и навсегда, нежели париться с памятью самой игры. Те же хотовцы пошли ещё дальше - у них сейчас в тренде длинные имена в def-ах, из-за чего прога ГрейФейса не может их нормально распаковать, т.к. ГрейФейс похоже не догадывался о таком трюке в def-е и сам лимитировал имя прайта в def, хотя в самой игре на имя - обычный лимит на строку в 512.
(This post was last modified: 25.04.2025 16:31 by XEPOMAHT.)
25.04.2025 15:39
Find all posts by this user Quote this message in a reply
SergOz Offline

Posts: 1342
Post: #152

(25.04.2025 15:39)XEPOMAHT Wrote:  Лошадки привязаны к типу и полу героев в коде самой игре, но можно привязать их и к номеру героя (тогда придётся сделать 255 def-ов).
Я правильно понял, что если сделать уникальные дефы всех героев, которые могут появиться на карте, то все герои будут иметь уникальный вид при передвижении по карте? И, если да, то, как следствие, нужно делать и укникальные дефы героев в бою.

P.S. Вопрос больше просто познавательный, так как daemon_n уже сделал плагин, позволяющий "на лету" менять деф любого героя в любой момент игры.


Карта-мод "Война на Холсте"
(This post was last modified: 25.04.2025 18:22 by SergOz.)
25.04.2025 18:20
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2438
Post: #153

(25.04.2025 18:20)SergOz Wrote:  если сделать уникальные дефы всех героев, которые могут появиться на карте, то все герои будут иметь уникальный вид при передвижении по карте?

Да

(25.04.2025 18:20)SergOz Wrote:  И, если да, то, как следствие, нужно делать и укникальные дефы героев в бою.

Да

Но сразу скажу, что это очень трудозатратно - моделировать и анимировать 255 моделей человечков на лошадках, включая анимации галопа по карте.
(This post was last modified: 25.04.2025 20:24 by XEPOMAHT.)
25.04.2025 20:20
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-2025 MyBB Group