Current time: 18.07.2019, 18:48 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA PLUS
» Небольшой сборник модификаций для ERA (чтобы не искать их в интернете, а установить всё из одного архива)
Author Message
XEPOMAHT Online

Posts: 165
Post: #1
Баг 
ERA PLUS

Важно!!! Это АЛЬФА версия мода, а значит она содержит недодел. Где-то чего-то может не хватать, но вроде худо-бедно работает, может быть без вылетов - и на том спасибо.

Собственно, это сборник различных модификаций Heroes of Might and Magic III, объединённых в один мод для платформы ERA.

Изначально создавалось как компиляция дополнительных скриптов-опций для ERA Scripts RUS. Когда-то доп.опций было много, со временем их количество сократилось и сейчас осталось только 6 штук:

Image: 430629c89398.png

В дальнейшем, в состав ERA PLUS добавлялись лучшие бинарные патчи и плагины, которые выкладывались здесь на форуме, многие из них почему-то незаслуженно забыты и нашли применение только в этой компиляции:

краткий список (Click to View)
Установка:
1. скопировать мод в папку с установленной эрой.
2. прописать ERA+ в конце списка текстовика Mods/list.txt
3. убрать или закомменитровать все несовместимые с ERA PLUS моды (а они почти все несовместимы 148 ).
4. очень рекомендую выключить все опции, что-либо меняющие в городах.
5. запустить игру, если карты работают без ERM-ошибок, то можно пробовать играть, если нет, то вернуться к п.1.

Совместимость: ERA 2.7.7, ERA Scripts RUS 1.38, HD Mod.

Скачать: https://vk.com/doc-118013293_500458922
27.04.2019 06:01
Find all posts by this user Quote this message in a reply
daemon_n Offline

Posts: 552
Post: #2

Отлично! Баг-репорты/пожелания нужны?
28.04.2019 09:56
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 165
Post: #3

Скорее всего нет, т.к. от того что запланировано в ERA PLUS сделано где-то процентов 16. В этой версии (можно назвать её Alpha 1) готовы только самые глобальные и сложные вещи (т.е. базис мода), всё остальное будет дописываться позже (и выпуск обновлений будет происходить быстрее, т.к. всё что осталось - только дело времени).
28.04.2019 12:40
Find all posts by this user Quote this message in a reply
daemon_n Offline

Posts: 552
Post: #4

Понял. Просто хотел исправить гогов/церберов - у них портреты перепутаны - не нашел файл нужный105
28.04.2019 12:46
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 165
Post: #5

(28.04.2019 12:46)daemon_n Wrote:  у них портреты перепутаны

Да, def с ними собирался наспех. В следующей версии попробую сделать вывод портретов из pcx, чтобы палитра для каждого портрета была своя, а не общая для всех, чтобы можно было без проблем использовать юбисофтовские (в релизной версии из-за потерь в палитре они смотрятся паршиво).
28.04.2019 16:53
Find all posts by this user Quote this message in a reply
Ethereal Offline

Posts: 165
Post: #6

Большое спасибо за труды. Sm Интересная штука. Буду внимательно следить за развитием мода.

(27.04.2019 06:01)XEPOMAHT Wrote:  Typhon.dll - добавляет новых монстров, банков монстров и город;

Э... Город? Ну, будем посмотреть.
29.04.2019 08:42
Find all posts by this user Quote this message in a reply
daemon_n Offline

Posts: 552
Post: #7

(29.04.2019 08:42)Ethereal Wrote:  Э... Город? Ну, будем посмотреть.

Жаль, что пока без героев.105
29.04.2019 12:06
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 165
Post: #8

(29.04.2019 12:06)daemon_n Wrote:  Жаль, что пока без героев.105

Героев получилось добавить только в MoP. На ERA вся проблема в прямой адресации как самой эры, например здесь:

Code:
HeroSpecsTable:     PHeroSpecsTable   = Ptr($7B4C40);
  HeroSpecsTableBack: PHeroSpecsTable   = Ptr($91DA78);

так и большей части плагинов (многие что-то читают/записывают в данных, которые необходимо перенести в памяти, соответственно, их нужно переписывать, а никто точно это делать уже не будет), к примеру прямая адресация в HD-моде:

Code:
void* HeroStructPointer(char hero)
{
    return (void*)((*(int*)0x00699538) + 0x21620 + 0x492*hero);
}

Поэтому для ERA PLUS герои кампаний будут заменены на героев от десятого города.

Второй проблемой является поддержка всего этого дела в редакторе карт - если 10й город и можно запустить в редакторе (т.к. по факту редактор его поддерживает изначально), то с 11-м городом и добавленными героями это уже не работает. Изменять редактор карт пока не представляется возможным, т.к. его код не разобран в достаточной для этого мере (точнее, он был разобран, но база так и не была выложена, ну и фиг с ней, я тоже не хочу в ней разбираться, мне как-то хватило базы самих Третьих Героев). Поэтому для эры не будет новых героев (ну может всё-таки кто-нибудь сделает, а я лучше буду посмотреть).
29.04.2019 14:39
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1736
Post: #9

Да, с ссылками на героев - проблема еще та. Хрен знает как из неё выходить. Проще забить...

По messages.dll: есть исходник или хотя бы инструкция как им пользоваться?

Новые города - самый смак, и это круто. Но ERM тут либо убъёт, либо умрёт...
А ссылки на городских существ, и на таблицу грейдов тоже перенесены?
Пазлы обелисков кстати невыведены. Но их выводить - тот еще гемор.


Скачать HoMM3 ERA 2.8.3 (Repack: Rus & HD)
30.04.2019 19:38
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 521
Post: #10

Quote:Да, с ссылками на героев - проблема еще та. Хрен знает как из неё выходить. Проще забить...
Object pool на все существующие слоты. Все равно на карте одновременно может быть не больше 112 героев, не считая тюремных, а способов их появления - пересчитать по пальцам.
Дело даже не особо муторное, и в перспективе куда лучше, чем героически пробивать лбом стенку ограничения в 156 героев, чтобы потом все равно упереться в куда более сложное ограничение на 255.
(This post was last modified: 30.04.2019 22:57 by feanor.)
30.04.2019 22:53
Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 165
Post: #11

(30.04.2019 19:38)igrik Wrote:  По messages.dll: есть исходник или хотя бы инструкция как им пользоваться?

Там просто прописывается в typemsgs.txt имя дефа, номер спрайта, текст под картинкой и подсказка по пкм. Затем можно вызывать сообщение с картинкой любыми средствами, например "!!IF:Q1/100/1/4/z100504;" (ERM) или "Message стр ebx*4+524 MoPSpec, Type_Msg_RMBINFO, Pic_MoP, Pic_Арена" (WERD)

Исходник наверное есть у Берсеркера. И в исходниках MoP ассемблерный код тоже можно найти.


(30.04.2019 19:38)igrik Wrote:  А ссылки на городских существ, и на таблицу грейдов тоже перенесены?
Пазлы обелисков кстати невыведены. Но их выводить - тот еще гемор.

Перенесены все известные содовские таблицы, завязанные на городах, известные авторам WoG 3.59 (т.к. патч на новые города был полностью взят от туда и дополнен данными из HoA, поэтому непосредственно воговский код практически не патчился - это дело будущих версий ERA PLUS). Параметры пазлов переписывать было некогда (т.к. в MoP они отключены, поэтому копировать было не от куда), поэтому просто скопировал для всех от Замка, чтобы игра просто не падала. В обновлении ERA PLUS координаты и порядок наложения пазлов уже будет переписан с exe для всех городов, а не только одного.

(30.04.2019 22:53)feanor Wrote:  Дело даже не особо муторное, и в перспективе куда лучше, чем героически пробивать лбом стенку ограничения в 156 героев, чтобы потом все равно упереться в куда более сложное ограничение на 255.

Ну может быть кто-нибудь для ЭРА сделает. Например на MoP лимит героев = 213, если делать больше, то придётся ещё десяток таблиц переносить. Для пары городов этого количества хватит с избытком.
01.05.2019 00:46
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 1736
Post: #12

(01.05.2019 00:46)XEPOMAHT Wrote:  
(30.04.2019 19:38)igrik Wrote:  По messages.dll: есть исходник или хотя бы инструкция как им пользоваться?

Там просто прописывается в typemsgs.txt имя дефа, номер спрайта, текст под картинкой и подсказка по пкм. Затем можно вызывать сообщение с картинкой любыми средствами, например "!!IF:Q1/100/1/4/z100504;" (ERM) или "Message стр ebx*4+524 MoPSpec, Type_Msg_RMBINFO, Pic_MoP, Pic_Арена" (WERD)
Понял. Спасибо.
Плохо, что нужно писать в txt название дефа. Это меня не очень устраивает.
Я наверное для сборки запилю триггер IF:Y<тип_клика>/z<текст>/z<название_дефа>/<номер_кадра_дефа>;


Скачать HoMM3 ERA 2.8.3 (Repack: Rus & HD)
03.05.2019 15:31
Visit this user's website Find all posts by this user Quote this message in a reply
XEPOMAHT Online

Posts: 165
Post: #13

(03.05.2019 15:31)igrik Wrote:  Я наверное для сборки запилю триггер IF:Y<тип_клика>/z<текст>/z<название_дефа>/<номер_кадра_дефа>;

Было бы очень здорово, если бы вместо <номер_кадра_дефа> можно было б задать номера кадров начального и конечного для вывода анимации из def в диалоге, а не только одного спрайта. В MoP это работает, а в ЭРА так и не сделали.
03.05.2019 16:04
Find all posts by this user Quote this message in a reply
MOP Offline

Posts: 1340
Post: #14

Неужели кто-то вспомнил о Messages.dll? А ведь эта библиотека всю дорогу шла вместе с Buttons.dll. И исходники их тоже рядышком лежали. И в инструкции по использованию эта длл упоминалась и расписывалась.
Впрочем, кому нужна эта громоздкая хрень, которая, к тому же, не поддерживает сообщения с более чем тремя картинками (преодолено только в третьей версии MoP).
Проще названия дефов в памяти заменить на время показа сообщения.

Ну а анимация дефов в MoP работает только в DL-диалогах. Желающие могут попытаться разобраться в прекрасно упорядоченном и, не побоюсь этого слова, величественном исходнике бинарника DL.txt, где, помимо сего, представлена не менее превосходная и качественная реализация других прелестных вещей.


Я на Лит-Нете
(This post was last modified: 03.05.2019 16:40 by MOP.)
03.05.2019 16:37
Find all posts by this user Quote this message in a reply
RoseKavalier Offline

Posts: 22
Post: #15

(29.04.2019 14:39)XEPOMAHT Wrote:  
(29.04.2019 12:06)daemon_n Wrote:  Жаль, что пока без героев.105

Героев получилось добавить только в MoP. На ERA вся проблема в прямой адресации как самой эры, например здесь:

Code:
HeroSpecsTable:     PHeroSpecsTable   = Ptr($7B4C40);
  HeroSpecsTableBack: PHeroSpecsTable   = Ptr($91DA78);

так и большей части плагинов (многие что-то читают/записывают в данных, которые необходимо перенести в памяти, соответственно, их нужно переписывать, а никто точно это делать уже не будет), к примеру прямая адресация в HD-моде:

Code:
void* HeroStructPointer(char hero)
{
    return (void*)((*(int*)0x00699538) + 0x21620 + 0x492*hero);
}

Поэтому для ERA PLUS герои кампаний будут заменены на героев от десятого города.

Второй проблемой является поддержка всего этого дела в редакторе карт - если 10й город и можно запустить в редакторе (т.к. по факту редактор его поддерживает изначально), то с 11-м городом и добавленными героями это уже не работает. Изменять редактор карт пока не представляется возможным, т.к. его код не разобран в достаточной для этого мере (точнее, он был разобран, но база так и не была выложена, ну и фиг с ней, я тоже не хочу в ней разбираться, мне как-то хватило базы самих Третьих Героев). Поэтому для эры не будет новых героев (ну может всё-таки кто-нибудь сделает, а я лучше буду посмотреть).

I began looking into the addition of heroes through dll and txt file for a side project, based on WoG sources. Patching of other mods / exe / dll can be done through memory, it is not ideal but not impossible.

If sufficient progress is made, there is no reason to not further explore the editor and add new heroes and towns there. A lot of it is done through WINAPI which even I can make sense of.

Is the code to add cities based on WERD.dll from MoP2? Will the source code ever be available?

Apologies for auto-translated text...

Я начал изучать добавление героев через dll и txt-файл для побочного проекта, основанного на источниках WoG. Исправление других модов / exe / dll можно сделать через память, это не идеально, но и не невозможно.

Если достигнут достаточный прогресс, нет причин не исследовать редактор и добавлять туда новых героев и города. Многое из этого делается через WINAPI, который даже я могу понять.

Это код для добавления городов на основе WERD.dll из MoP 2? Будет ли исходный код когда-либо доступен?

@feanor
Which structure is made up of 1 byte to make it difficult to overcome 255 limit? I don't remember on top of my head.
03.05.2019 19:22
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-2019 MyBB Group