Wake of Gods Forum | Форум Во Имя Богов

Full Version: ERA / WOG - сетевая игра и проблемы с ней
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Звучит отлично.
Какую сборку тогда лучше попробовать для игры MP с опытом монстров ну и последними MP совместимыми опциями ERA?
ZVS, на данный момент ту, которую я должен обновить - именно там я удалил все лишние файлы и поместил нужные скрипты.
Скачать их можно отдельно на git

ZVS, лучше скажи, как мне пропатчить воговскую таблицу заклинаний Yes

а то тут плагин на новые заклинания сделали, но ERM его не видит


    _PI->WriteDword(0x687FA8, (int)&Spell); - патч содовской таблицы, но вод где и когда патчить erm?
(14.06.2022 16:37)daemon_n Wrote: [ -> ]как мне пропатчить воговскую таблицу заклинаний Yes

а то тут плагин на новые заклинания сделали, но 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},

Т.к. адрес базовый, то и патч крохотный. А ВоГ традиционно использует ПРЯМУЮ адресацию (базовая - только в ассемблерных вставках), поэтому там - уже колбаса.
XEPOMAHT, проблема совместимости здесь в том, что воговская таблица подразумевает использование заклинаний существами, а не героями, а потому последующие изменения и расширения не очень легко устроить

P.S.: за адрес спасибо - попробую сделатьYes

P.P.S.: кажется, не сработало
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:08)daemon_n Wrote: [ -> ]проблема совместимости здесь в том, что воговская таблица подразумевает использование заклинаний существами, а не героями, а потому последующие изменения и расширения не очень легко устроить

Вроде нет, вот видим, что ВоГ выделает память для таблицы заклинаний согласно структуре:

Code:
extern _Spell_ Spells[SPELLNUM];

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

Лично у меня в Тифоне монстры колдуют из воговской таблицы, куда во время загрузки и пишутся все данные редактора заклинаний, включая новые бланковые заклинания (которые так же видит и редактор монстров для назначения их любым монстрам в игре).
ZVS, да, в ближайшие дни будет обнова

адреса нужны, спасибо - шаманю потихоньку - видимо, надо оба патчить. всё так и сделано - игра вполне справляется с новыми параметрами, а вот ERM - нет102

Просто всё ещё сложно понимать всё это, даже освоив с++ базу148

XEPOMAHT, тогда придётся идти на радикальны меры и вручную вносить каждый параметр из плагина в новую таблицу через un:c 105
(14.06.2022 17:24)daemon_n Wrote: [ -> ]тогда придётся идти на радикальны меры и вручную вносить каждый параметр из плагина в новую таблицу через un:c 105

Нет. Повторяю ещё раз для тех, кто не понимает: в плагине на новые заклинания используй ВОГОВСКОЕ АДРЕСНОЕ ПРОСТРАНСТВО. Там памяти выделено на 200 заклинаний - неужели тебе этого мало???
XEPOMAHT, всё ещё не понимаю - в какой именно момент я должен переадресовать туда?
и "туда" это "куда"?

начнём с того, что в городах и у героя используется таблица по адресу 0x687FA8
Таблица SoD копируется в таблицу WoG при старте игры (запуск exe). После этого таблица SoD никак не используется - все внесенные в нее изменения после копирования будут проигнорированы. Изменения надо делать прямо в WoG таблице.

"Туда" (адрес WoG таблицы) найти можно, например, по адресу 0x59E46A или 0x687FA8. По этим адресам будет адрес таблицы заклинаний WoG сразу после ЗАПУСКА. В образе файла на диске (вне запуска) там будет адрес таблицы SoD.

Это если ЭТОТ код WoG не менялся с момента моего отхода от дел.
ZVS, ааа, вот теперь дошло - то есть надо делать намного раньше?
или поместить плагин в "beforeWog"?
(14.06.2022 17:35)daemon_n Wrote: [ -> ]всё ещё не понимаю - в какой именно момент я должен переадресовать туда?
и "туда" это "куда"?

У тебя сейчас в плагине такая запись:

Code:
_Spell_ Spell[SPELLS_MAX];

Для ВоГа её быть НЕ ДОЛЖНО. Просто избавься от неё (правда, плагин придётся переписать чуть ли не весь). Если не понятно, что это вообще такое и с чем это едят, то... придётся учится кодингу. Просто знания Си++ тебя не спасут.

(14.06.2022 17:35)daemon_n Wrote: [ -> ]начнём с того, что в городах и у героя используется таблица по адресу 0x687FA8

Начни с учёбы по кодингу. Ты совершенно не понимаешь, что "по адресу 0x687FA8" нет никакой таблицы. Там обычный dword и ничего более.

Учиться, учиться, учиться и ещё раз учиться, а не пытаться что-то сделать в готовом си-шном коде методом научного тыка.
C и C++ достаточно низкоуревневы. Там не трудно написать любые преобразования адресов, не хуже чем на asm.
Я могу посоветовать что-то с настройкой кода, но где плагин посмотреть весь?
XEPOMAHT, размер таблицы не так интересен, покуда плагин корректно добавляет новые заклинания для героя и замков, но вот WoG, как я понял, копирует таблицу до хука на изменение таблицы, а потому и эффекта на erm нет

ZVS, ссылка на плагин и ресурсы для игры

Или ссылка на оригинальный код от AlexSpl
XEPOMAHT, я понимаю, что по адресу 0x687FA8 указатель на таблицу, которая лежит по адресу 0x6854A0

И процесс обучения подразумевает ошибки и консультации с теми, кто понимает 118
Так что за незнание и непонимание я себя не корю, а лишь ищу возможность разобраться Yes
Pages: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
Reference URL's