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

Post Reply 
Threaded Mode | Linear Mode
Вопросы по моддингу
» (обсуждаем моддинг здесь)
Author Message
Berserker Offline
Administrators

Posts: 16488
Post: #1216

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
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2270
Post: #1217

(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
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #1218

XEPOMAHT, сам понимаешь, лепил не я. Проще всего в 3.59 будет. Просто изменить размеры массивов и перекомпилировать.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
01.05.2020 01:47
Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1219

А есть ли возможность через ЕРМ поменять родной тип земли для определенного монстра?
03.05.2020 14:29
Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #1220

Zur13, так !!MA:O же. Или надо без принадлежности к замку?


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
03.05.2020 16:15
Visit this user's website Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1221

(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
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #1222

combat manager +0x1c4 массив клеток по 0x70 байт на клетку.
В клетке по смещению 0x10 байт флагов клетки.
Эти биты стоит проверить.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
03.05.2020 17:06
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #1223

(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

Вообще изучи хорошенько эти заголовочники Ab


game bug fixes extended.dll || My Plugins || My GitHub
03.05.2020 22:07
Visit this user's website Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1224

Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Sm Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?


(03.05.2020 22:07)igrik Wrote:  Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?

Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться Bad
04.05.2020 00:32
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #1225

(04.05.2020 00:32)Zur13 Wrote:  Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Sm Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
http://wforum.heroes35.net/showthread.ph...7#pid83787

(04.05.2020 00:32)Zur13 Wrote:  
(03.05.2020 22:07)igrik Wrote:  Всмысле? Подменить тип мины на что? Каков аналог мины, или на что ты хочешь её подменить?

Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться Bad
А чем эти мины отличаются? Чет я не помню разницы кроме видимости/невидимости.
Куда записываются мины - нужно исследовать. Точно не скажу. Я посмотрю позже.


game bug fixes extended.dll || My Plugins || My GitHub
04.05.2020 01:07
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #1226

(04.05.2020 01:07)igrik Wrote:  
(04.05.2020 00:32)Zur13 Wrote:  Я где-то, точно помню, видел упоминание о том как рассчитать расстояние между хексами на поле битвы, но сейчас никак не удается найти, а самописный метод как-то сильно усложняется никак его дописать не могу Sm Кто-то может подсказать способ через ЕРМ найти дистанцию между двумя клетками поля битвы?
http://wforum.heroes35.net/showthread.ph...7#pid83787
36


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
04.05.2020 01:19
Visit this user's website Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2814
Post: #1227

(04.05.2020 01:19)Algor Wrote:  http://wforum.heroes35.net/showthread.ph...7#pid83787
36
А то 118
Шесть лет, как никак, уже...

Вот ещё, но если мне не изменяет память - это определение прямого расстояния: http://wforum.heroes35.net/showthread.ph...#pid103827


game bug fixes extended.dll || My Plugins || My GitHub
04.05.2020 01:44
Visit this user's website Find all posts by this user Quote this message in a reply
Zur13 Offline

Posts: 223
Post: #1228

(04.05.2020 01:07)igrik Wrote:  
(04.05.2020 00:32)Zur13 Wrote:  Была идея заменить мину от заклинания, миной которая вместо рва при осаде Башни используется, мины от Башни не открываются осаждающему герою, даже если у него в армии есть монстры с родным типом почвы, но я уже успел побайтово сравнить структуры гексов с обоими типами мин, и ничего отличного не нашел. Но зато от безысходности я придумал новую безумную механику вместо механики с минами, жаль конечно на код с минами уже больше недели потратил суммарно, а обходов рабочих не придумал, потому, видимо, буду полностью от них отказываться Bad
А чем эти мины отличаются? Чет я не помню разницы кроме видимости/невидимости.
Куда записываются мины - нужно исследовать. Точно не скажу. Я посмотрю позже.

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

Я точно не знаю чем мины отличаются в игре, но точно видимость и работоспособность мин рва работают по-другому, мины рва Башни всегда невидимы и работают. Обычные мины не только теряют видимость но и теряют работоспособность, т.е. если вражеский герой увидел чужие мины любой его стек может спокойно встать на такую мину и она не срабатывает.

(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
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16488
Post: #1229

По минам нужен имхо патч, который вообще отменит проверку на родные почвы. Она лишняя в игре.


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
04.05.2020 18:30
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #1230

Разве? Мины проверяют нативность почвы для существ , чтобы отображать их или скрывать.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
04.05.2020 18:54
Visit this user's website 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-2024 MyBB Group