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

Post Reply 
Threaded Mode | Linear Mode
ERA II
» WoG Era 2: Русская и Английская версии
Author Message
Berserker Online
Administrators

Posts: 16657
Post: #4021

For making file to exe patches I recommend using Era\Tools\BinMagic.exe.
Call diff.bat to generate bin/txt patch with difference between two files.
Call text.bat or bin.bat to convert txt/bin patches to each other.

Bin file format is simple:

NumPatches: int32
Patches: array NumPatches of Patch

Patch is:
Address: int32
Length: int32
Bytes: array Length of byte


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

Posts: 118
Post: #4022

I have documented all my old hex edits so adding them to dll will be simple.

Unleashed was originally based on the standalone maped by BlackPhantom to be used, being able to run the editor with around 16MB of data only. It became useful to add LOD support at some point and that is when I decided to make all of Unleashed text be loaded through txt file in LOD.

Now I can perform simple check to see if Unleashed.dll is being loaded via ERA or H3Unleashed and disable some hooks, but I still need to be able to load Unleashed.lod from custom path. Simplest would be to get h3wmapedpatch's function and call that with path to Unleashed.lod which is why I wondered whether you could export that function... if not I can always get it from memory or even read data from the LOD myself; I just try to seek the option with least amount of work))

If you prefer to add Unleashed as a 'mod' and provide path to Unleashed.lod that way, that works too I suppose.
I can just disable LOD support when loaded by ERA and let it handle that part of the work.
(This post was last modified: 15.02.2020 03:33 by RoseKavalier.)
15.02.2020 03:27
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #4023

RoseKavalier, right, I could include editor in WoG mod with dll in EraEditor and the contents of unleashed.lod in unleashed.pac or even hmm35wog.pac, does not matter if you load resources via native functions like LoadTxtFromLod or LoadDefFromLod without specifying concrete lod. All you need would be to check via GetModuleHandle if era is loaded and disable a few patches/hooks, that may have conflicts.

In fact, you can take any Era package even now, create a mod and put .pac file in mod data and dll in EraEditor.


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

Posts: 16657
Post: #4024

Вот обещал же, что ничего в ветке 2.х из улучшений ЕРМ более не будет… Sorry


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

Posts: 4343
Post: #4025

(13.02.2020 12:04)daemon_n Wrote:  XEPOMAHT, насколько я знаю, он не был переведен.
Кстаааааати. Нашёл, что называется, себе работу.96-copy

Переводить там только Sod_sp опции надо. Остальное взял из WoG Rus\Data\MapEdPatch Yes

Добавлю, что скрипт " сопротивление" вызывает ошибки в поиске номера слота - пытаюсь сообразить сам, но не выходит. Сейчас скину вам96-copy

UPD: не осилил
Нужен всеголишь скрипт "Сопротивление 2"
Скачать и помочьAb - в архиве сразу карта, сейв и дебаг, хотя он лишний, как по-мне - обновится ведь.
Суть в том, что номер слота становится 24


Image: widget.png?style=banner2

Новейший Heroes Launcher
15.02.2020 08:26
Visit this user's website Find all posts by this user Quote this message in a reply
Mahno Offline

Posts: 49
Post: #4026

(12.02.2020 20:46)Berserker Wrote:  Gross master, этим занимался Сергей Роженко. Отличный программист, автор множества утилит, расширений, альфы 3.59 и т.д. Я лишь слегка адаптировал его работу под Эру.

Может есть ссылка на 3.59 альфа?) Хочется проверить, что там нового
15.02.2020 14:46
Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #4027

Mahno, https://github.com/GrayFace/wog/releases...pha8.0.rar
daemon_n, вижу сразу спагетти-код с ошибками и запутанной логикой, только злость берёт копаться в нём. Переписывать нужно. Сделать нормальный хэлп, довыпустить обновление Эры и пилить свои опции на замену костыльным оригинальным. Лучше вопрос помести в соответствующие темы по скриптам, иначе захламляется всё.


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

Posts: 5422
Post: #4028

15.02.2020 20:30
Visit this user's website Find all posts by this user Quote this message in a reply
Bes Offline

Posts: 5422
Post: #4029

Bes, наткнулся в скрите ФМ на такое...
тут нет ни какой ошибки?
15.02.2020 20:37
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #4030

96-copy96-copy96-copy
Сейчас придёт Валера и снова скажет, что я нарушаю обратную совместимость. Конечно нарушаю!
Видите пробел перед +21? Ранее ЕРМ анализировал этот код так: пробел — это команда-пустышка, +21 тут же съедается наперёд парсером через GetNumAuto. Затем ;. Итог: никакая команда не выполнялась.

Что с Эрой? Пробелы, как положено, пропускаются, "+" срабатывает как команда сложения с аргументом 21. То есть код начинает выполняться.
Поэтому Игрик прав. Команду удаляем Выше в функции в коде "!!VRv902:Sx2 *20 R6; " *20 заменяем на *21. А
!!VRv912:Sv902 %7; [get an actual slot number]
на
!!VRv912:Sv902 %21; [get an actual slot number]



(15.02.2020 20:37)Bes Wrote:  Bes, наткнулся в скрите ФМ на такое...
тут нет ни какой ошибки?

Bes, в коде всё верно. 4-й параметр = 0, значит массив не сохраняется/загружается,только его размер запоминается. Для временных данных так и нужно.


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

Posts: 4343
Post: #4031

Berserker, ничего не понял, разве что только то, что скрипт починили.


Image: widget.png?style=banner2

Новейший Heroes Launcher
15.02.2020 22:21
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #4032

daemon_n, всё просто:
1) BA:M работает со стороной боя (0..1) и номер слота (0..6). Это ещё не номер слота в бою, просто бой можно инициировать с макс 7 отрядов на 7.
2) В скрипте была команда
Из-за пробела перед +21 ранее она не выполнялась. Потому значение переменной оставалось равным 0..6.
3) После исправления движка команда выполняется.
4) В функции выше есть умножение стороны боя (0..1) на 20 (должно быть число ID боевых отрядов на каждую сторону). Но отрядов может быть по 21 (0..20) (21..41). Поэтому ошибку исправляем.
5)
Здесь операция обратная. Преобразования номера боевого отряда (0..41) в номер слота 0..6 атакующего/защитника в предположении, что переменная v902 имеет значения 0..6 или 21..27. Остаток от деления нужно получать на 21.


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

Posts: 4343
Post: #4033

Berserker, проще говоря, раньше 21 прибавлялось не к v912, а к v902, с которой уже нужно было проводить дальнейшие операции?


Image: widget.png?style=banner2

Новейший Heroes Launcher
15.02.2020 22:47
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Online
Administrators

Posts: 16657
Post: #4034

Нет, команда +21 не выполнялась вообще, так как перед ней был пробел.


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

Posts: 16657
Post: #4035

Обновление 2.9.11 обещает быть довольно радикальным. Возвращение к истокам в плане скина/музыки/кампаний + ЕРМ 2.0 (прекомпиляция для локальных именованных переменных и, при возможности, ограниченная поддержка глобальных именованных в командах и условиях).


Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
16.02.2020 00:47
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