Berserker
Posts: 16657
|
planetavril, no.
Элементалист, zcrtrait.txt
Только любые скриптовые опции будут иметь приоритет, если включите.
XEPOMAHT,
Quote:*) HeroSpecsTable успешно переносится, но: игра всегда узнаёт её адрес из переменной по адресу 679C80, поэтому необходимости в GetRealAddr(HeroSpecsTable) абсолютно никакой не вижу.
Разницы нет, откуда узнаёт о ней игра. База — h3te.exe. В базе адрес у неё другой. Нужно сообщать, если он изменяется.
Quote:*) HeroSpecsTableBack не используется вовсе (если ERA что-то делает с этой таблицей, то как-то эти действия нужно будет как-то отменять).
С ней работают команды сброса описаний/названий и она же используется при выходе из карты для возврата значений по умолчанию. Должна расширяться на равне с первой таблицей.
Quote:*) HeroSpecSettingsTable не перенесена, а данные в ней оптимизированы (т.е. длинна строки уменьшена с 40 до 16 байт). Если ERA что-то читает от туда, то чтение будет проходить не верно (и опять все манипуляции ERA с этой таблицей придётся как-то отменять). Если не менять формат (т.е. оставить вог-копирование вместо отдельного загрузчика), то эту таблицу всё равно переносить не нужно, т.к. прямо за ней расположены пустые данные (когда-то там была ещё одна таблица).
Почему не верно?
Вот формат:
Code:
THeroSpecSettings = packed record
PicNum: integer;
ZVarDescr: array [0..2] of integer;
end; // .record THeroSpecSettings
PHeroSpecSettingsTable = ^THeroSpecSettingsTable;
THeroSpecSettingsTable = array [0..NUM_WOG_HEROES - 1] of THeroSpecSettings;
Да, номер картинки специализации и 3 индекса z-переменных новых описаний. Эта таблица позволяет возвращать ЕРМ-командам текущие настройки. Работаю с ней в точности, как ВоГ.
------------------------------------
campaign heroes as start heroes.bin Думаю, нужно переименовать с предупреждением.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
30.04.2020 19:01 |
|
XEPOMAHT
Posts: 2356
|
(30.04.2020 19:01)Berserker Wrote: База — h3te.exe. В базе адрес у неё другой. Нужно сообщать, если он изменяется.
Мне казалось, что это SoD. Т.к. WoG так же использует свою функцию для получения адреса.
(30.04.2020 19:01)Berserker Wrote: С ней работают команды сброса описаний/названий и она же используется при выходе из карты для возврата значений по умолчанию. Должна расширяться на равне с первой таблицей.
Понятно. Придётся её тогда оставить для ERA.
(30.04.2020 19:01)Berserker Wrote: Вот формат:
Code:
THeroSpecSettings = packed record
PicNum: integer;
ZVarDescr: array [0..2] of integer;
end; // .record THeroSpecSettings
PHeroSpecSettingsTable = ^THeroSpecSettingsTable;
THeroSpecSettingsTable = array [0..NUM_WOG_HEROES - 1] of THeroSpecSettings;
Ну вот, ещё одна вог-таблица, связанная со специализациями. Ну сколько ж их ещё-то??? Куда и зачем столько много наклепали их в воге??? Хорошо, что в MoP это чудовищное количество таблиц-костылей не используется (по специализациям там всё как в SoD), скорее всего в ERA PLUS будет так же (из двух зол выбираю меньшее).
(30.04.2020 19:01)Berserker Wrote: Эта таблица позволяет возвращать ЕРМ-командам текущие настройки. Работаю с ней в точности, как ВоГ.
Похоже, что эти ERM-команды окажутся неработоспособными в ERA PLUS после добавления специализаций по монстрам в диапазоне 197...1000. С воговским кодом одни сплошные конфликты, он совершенно не рассчитан под увеличение количества специализаций (как будто кем-то так и было запланировано, что WoG 3.58 будет последним, без оглядки на будущее).
|
|
01.05.2020 01:09 |
|
Berserker
Posts: 16657
|
|
01.05.2020 01:47 |
|
Zur13
Posts: 223
|
А есть ли возможность через ЕРМ поменять родной тип земли для определенного монстра?
|
|
03.05.2020 14:29 |
|
Zur13
Posts: 223
|
(03.05.2020 16:15)Algor Wrote: Zur13, так !!MA:O же. Или надо без принадлежности к замку?
Да, нужно без смены мировоззрения, на самом деле я продумываю способы как можно исправить ситуацию с "видимостью" мин. Т.е. если в армии героя есть юниты для которых почва поля битвы является родной, то они показывают и отключают мины расставленные вражеским героем. Идея сменить до битвы родную землю юнитам и добавить при необходимости бонус скорости тем стекам которые бы его получили из-за родной земли.
Второй способ рассматриваю вот это место, возможно можно как-то подменить тип магической мины через память:
Code:
combatManager:
+1C4 db*(0x70 на клетку) поле битвы
...
+10 db &3F - препятствие (0=yнет припятствий)
01 - горит стена огня
02 - есть препятствие
04
08
10 - горит стена огня
20
40
80
...
+14 dd = номер анимации стены огня и др. (по порядку загрузки), -1=нет
...
+18 db (сторона стэка(0,1), -1=нет стэка)
+19 db (номер стэка у стороны)
...
+1С db (номер последнего мертвого стэка в позиции, 0=нет больше)
...
+20 db*14 (сторона умершего стэка)
+2E db*14 (номер стэка у стороны)
+3C
Непонятно описана адресация, пока не могу разобраться с калькуляцией адреса первого байта любого хекса поля битвы, возможно там можно подменить тип мины (мины которые вместо рва у Башни не показываются и не отключаются из-за наличия существ с родной почвой).
|
|
03.05.2020 16:58 |
|
Berserker
Posts: 16657
|
|
03.05.2020 17:06 |
|
igrik
Posts: 2819
|
(03.05.2020 16:58)Zur13 Wrote: Да, нужно без смены мировоззрения, на самом деле я продумываю способы как можно исправить ситуацию с "видимостью" мин. Т.е. если в армии героя есть юниты для которых почва поля битвы является родной, то они показывают и отключают мины расставленные вражеским героем. Идея сменить до битвы родную землю юнитам и добавить при необходимости бонус скорости тем стекам которые бы его получили из-за родной земли.
Это неразделимые понятия в игре: родная земля, бонусы скорости, видимость мин и т.п. Это всё жестко привязано к фракциям.
Но, если всё же хочешь покопаться в структуре стека - смотри тут
https://github.com/RoseKavalier/H3Plugin....hpp#L2361
Исправить ситуацию с видимостью мин можно только влез в код "показа" мин.
(03.05.2020 16:58)Zur13 Wrote: Второй способ рассматриваю вот это место, возможно можно как-то подменить тип магической мины через память:
Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?
Стуктура гекса на поля битвы
https://github.com/RoseKavalier/H3Plugin....hpp#L3795
Вообще изучи хорошенько эти заголовочники
game bug fixes extended.dll || My Plugins || My GitHub
|
|
03.05.2020 22:07 |
|
Zur13
Posts: 223
|
Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
(03.05.2020 22:07)igrik Wrote: Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?
Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться
|
|
04.05.2020 00:32 |
|
igrik
Posts: 2819
|
(04.05.2020 00:32)Zur13 Wrote: Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
http://wforum.heroes35.net/showthread.ph...7#pid83787
(04.05.2020 00:32)Zur13 Wrote: (03.05.2020 22:07)igrik Wrote: Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?
Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться
А чем эти мины отличаются? Чет я не помню разницы кроме видимости/невидимости.
Куда записываются мины - нужно исследовать. Точно не скажу. Я посмотрю позже.
game bug fixes extended.dll || My Plugins || My GitHub
|
|
04.05.2020 01:07 |
|
Algor
Posts: 3881
|
(04.05.2020 01:07)igrik Wrote: (04.05.2020 00:32)Zur13 Wrote: Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
http://wforum.heroes35.net/showthread.ph...7#pid83787
|
|
04.05.2020 01:19 |
|
igrik
Posts: 2819
|
|
04.05.2020 01:44 |
|
Zur13
Posts: 223
|
(04.05.2020 01:07)igrik Wrote: (04.05.2020 00:32)Zur13 Wrote: Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться
А чем эти мины отличаются? Чет я не помню разницы кроме видимости/невидимости.
Куда записываются мины - нужно исследовать. Точно не скажу. Я посмотрю позже.
Буду очень благодарен если найдется решение для механики с минами. Я перепробовал уже даже невероятные костыли из разряда, подменять тип почвы под героем до начала битвы на песок и настраивать поле битвы на бекграунд оригинальной почвы, но за этим следует еще куча проблем с препятствиями и на их решение нужно больше временичем чем на весь остальной мод.
Я точно не знаю чем мины отличаются в игре, но точно видимость и работоспособность мин рва работают по-другому, мины рва Башни всегда невидимы и работают. Обычные мины не только теряют видимость но и теряют работоспособность, т.е. если вражеский герой увидел чужие мины любой его стек может спокойно встать на такую мину и она не срабатывает.
(04.05.2020 01:44)igrik Wrote: Вот ещё, но если мне не изменяет память - это определение прямого расстояния: http://wforum.heroes35.net/showthread.ph...#pid103827
Вот именно то что искал, спасибо!
(This post was last modified: 04.05.2020 13:24 by Zur13.)
|
|
04.05.2020 13:23 |
|
Berserker
Posts: 16657
|
|
04.05.2020 18:30 |
|
daemon_n
Posts: 4343
|
|
04.05.2020 18:54 |
|