ZVS
Posts: 500
|
Звучит отлично.
Какую сборку тогда лучше попробовать для игры MP с опытом монстров ну и последними MP совместимыми опциями ERA?
|
|
14.06.2022 16:34 |
|
daemon_n
Posts: 4343
|
ZVS, на данный момент ту, которую я должен обновить - именно там я удалил все лишние файлы и поместил нужные скрипты.
Скачать их можно отдельно на git
ZVS, лучше скажи, как мне пропатчить воговскую таблицу заклинаний
а то тут плагин на новые заклинания сделали, но ERM его не видит
_PI->WriteDword(0x687FA8, (int)&Spell); - патч содовской таблицы, но вод где и когда патчить erm?
Новейший Heroes Launcher
|
|
14.06.2022 16:37 |
|
XEPOMAHT
Posts: 2356
|
(14.06.2022 16:37)daemon_n Wrote: как мне пропатчить воговскую таблицу заклинаний
а то тут плагин на новые заклинания сделали, но ERM его не видит
Лично я все новые заклинания пишу в оригинальную воговскую таблицу, т.к. в WoG TE (экзешник которой используется в ЭРЕ) эта таблица уже пропатчена и расширена авторами ВоГа. То, что автор плагина тупо скопировал код с аналогичного содовского плагина, забыв о нововведениях ВоГа - проблема автора плагина (у него опыта в написании плагинов уже почти 10 лет, но вот почему-то качество его dll по-прежнему хромает, хотя теоретически он уже вполне должен был работать на уровне Сава или Игрика, но... ему ещё нужно учится и учиться...).
(14.06.2022 16:37)daemon_n Wrote: _PI->WriteDword(0x687FA8, (int)&Spell); - патч содовской таблицы, но вод где и когда патчить erm?
Здесь:
// Spells support
{0x59E467+3,DS(Spells),4},
{0x687FA8,DS(Spells),4},
Т.к. адрес базовый, то и патч крохотный. А ВоГ традиционно использует ПРЯМУЮ адресацию (базовая - только в ассемблерных вставках), поэтому там - уже колбаса.
(This post was last modified: 14.06.2022 17:03 by XEPOMAHT.)
|
|
14.06.2022 16:59 |
|
ZVS
Posts: 500
|
daemon_n, "должен обновить" означает, что стоит подождать обновления?
Отдельно я бы не качал, т.к. хотел бы полную сборку.
По поводу правки таблицы заклинаний. Я исходники WoG не видел 18 лет...
Ну так, посмотрел, что с тех пор осталось.
ERM использует копию таблицы из SoD.
Сама таблица находится после строк "{"ZMGC03.def", "MGblock3",1}" (это конец таблицы анимаций магии).
Таблица SoD копируется в таблицу WoG так (первый - адрес таблицы SoD): {(Byte *)0x6854A0,(Byte *)Spells,sizeof(_Spell_)*SPELLNUM_0}, //
Адреса в памяти SoD таблицы подменяются на адрес WoG таблицы (адреса слева): {0x59E467+3,DS(Spells),4}, {0x687FA8,DS(Spells),4},
Это по старым исходникам.
Или не эта инфа нужна?
|
|
14.06.2022 17:15 |
|
XEPOMAHT
Posts: 2356
|
(14.06.2022 17:08)daemon_n Wrote: проблема совместимости здесь в том, что воговская таблица подразумевает использование заклинаний существами, а не героями, а потому последующие изменения и расширения не очень легко устроить
Вроде нет, вот видим, что ВоГ выделает память для таблицы заклинаний согласно структуре:
Code:
extern _Spell_ Spells[SPELLNUM];
Если ты делаешь то же самое в плагине, то работать в купе с воговским кодом уже не будет (т.к. воговский код не использует базовую адресацию и всегда будет читать напрямую из памяти вога, а не твоего плагина).
Лично у меня в Тифоне монстры колдуют из воговской таблицы, куда во время загрузки и пишутся все данные редактора заклинаний, включая новые бланковые заклинания (которые так же видит и редактор монстров для назначения их любым монстрам в игре).
|
|
14.06.2022 17:21 |
|
daemon_n
Posts: 4343
|
ZVS, да, в ближайшие дни будет обнова
адреса нужны, спасибо - шаманю потихоньку - видимо, надо оба патчить. всё так и сделано - игра вполне справляется с новыми параметрами, а вот ERM - нет
Просто всё ещё сложно понимать всё это, даже освоив с++ базу
XEPOMAHT, тогда придётся идти на радикальны меры и вручную вносить каждый параметр из плагина в новую таблицу через un:c
Новейший Heroes Launcher
|
|
14.06.2022 17:24 |
|
ZVS
Posts: 500
|
Таблица SoD копируется в таблицу WoG при старте игры (запуск exe). После этого таблица SoD никак не используется - все внесенные в нее изменения после копирования будут проигнорированы. Изменения надо делать прямо в WoG таблице.
"Туда" (адрес WoG таблицы) найти можно, например, по адресу 0x59E46A или 0x687FA8. По этим адресам будет адрес таблицы заклинаний WoG сразу после ЗАПУСКА. В образе файла на диске (вне запуска) там будет адрес таблицы SoD.
Это если ЭТОТ код WoG не менялся с момента моего отхода от дел.
(This post was last modified: 14.06.2022 17:45 by ZVS.)
|
|
14.06.2022 17:40 |
|
XEPOMAHT
Posts: 2356
|
(14.06.2022 17:35)daemon_n Wrote: всё ещё не понимаю - в какой именно момент я должен переадресовать туда?
и "туда" это "куда"?
У тебя сейчас в плагине такая запись:
Code:
_Spell_ Spell[SPELLS_MAX];
Для ВоГа её быть НЕ ДОЛЖНО. Просто избавься от неё (правда, плагин придётся переписать чуть ли не весь). Если не понятно, что это вообще такое и с чем это едят, то... придётся учится кодингу. Просто знания Си++ тебя не спасут.
(14.06.2022 17:35)daemon_n Wrote: начнём с того, что в городах и у героя используется таблица по адресу 0x687FA8
Начни с учёбы по кодингу. Ты совершенно не понимаешь, что "по адресу 0x687FA8" нет никакой таблицы. Там обычный dword и ничего более.
Учиться, учиться, учиться и ещё раз учиться, а не пытаться что-то сделать в готовом си-шном коде методом научного тыка.
(This post was last modified: 14.06.2022 17:48 by XEPOMAHT.)
|
|
14.06.2022 17:44 |
|
ZVS
Posts: 500
|
C и C++ достаточно низкоуревневы. Там не трудно написать любые преобразования адресов, не хуже чем на asm.
Я могу посоветовать что-то с настройкой кода, но где плагин посмотреть весь?
|
|
14.06.2022 17:50 |
|
daemon_n
Posts: 4343
|
|
14.06.2022 17:51 |
|