Wake of Gods Forum | Форум Во Имя Богов
ERA III - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Герои Меча и Магии 3.5 WoG/ERA (/forumdisplay.php?fid=99)
+--- Forum: Моды (/forumdisplay.php?fid=104)
+---- Forum: ЭРА / ERA (/forumdisplay.php?fid=182)
+---- Thread: ERA III (/showthread.php?tid=5624)


ERA III - Berserker - 01.06.2020 04:53

ERA 3

Image: era3-poster2.jpg

Image: e29aa1.png Вышла новая мажорная версия HoMM 3 ERA
Текущая версия: 3.0.0 (альфа 0)

Image: f09f9383.png Что нового ?

Image: e2ad90.png Опциональный режим ERM 2.0: именованные константы, локальные переменные и функции на стадии прекомпиляции. На ЕРМ становится возможным писать понятный код с малым числом комментариев.
Image: e2ad90.png Переписан движок ЕРМ: множество исправлений наследия прошлого, универсальный синтаксис, удобная работа со строками, исправление багов, расширение и добавление команд и многое другое.
Image: e2ad90.png Добавлена стандартная библиотека ЭРЫ на ERM: 1 расширенное событие и тысячи предопределённых констант.
Image: e2ad90.png ЭРА становится полноценным ядром для мододелов всех мастей: больше нет навязанных модов, анимации, большинства графических изменений, нового интерфейса, заменённых кампаний и музыки и т.д. Установив ЭРУ вы получаете рабочий скелет со всеми инструментами для создания уникальной сборки под ваши вкусы и желания. Базовый комплект новых монстров/объектов из WoG 3.58 остаётся в качестве ресурсов и включаемых/выключаемых игровых механик.

Image: e29884.png Скачать: https://mods.hmm35.ru/Era%203.X.exe

История изменений на русском (автоперевод): https://mods.hmm35.ru/Era%20III%20changelog%20rus.txt
История изменений: (Click to View)



RE: ERA III - XEPOMAHT - 01.06.2020 11:41

Команда VR:S в этой версии ERA работает? Ибо с ERA Scripts вылазит куча ошибок с сообщениями "cannot set string variable to non-string value".


RE: ERA III - nekro666 - 01.06.2020 12:44

Поздравляю с первой публикацией 3.0 Sm

3.0 несовместима со старыми модами? на все, что есть ругается и зависает.

UPD: Отключил все моды, типичные для эры 2 и пока что ничего не виснет,а дальше посмотрим.


RE: ERA III - Valery - 01.06.2020 12:57

Nice development, congrats 109

Have yet some dilemma, what can we do about incompatibilities with previous mods? keep Era 2 and Era 3 as separate entities?


RE: ERA III - Berserker - 01.06.2020 15:14

XEPOMAHT, nekro666, это альфа версия. Ещё не создал баг трекер, но думаю открыть в скорости на trello.com.
Мне очень нужны короткие примеры некорректно работающих команд/скриптов, чтобы исправить шероховатости интерпретатора. Я включил все опции в WoG Scripts старом и провёл ряд операций/боёв, исправив, что нашёл.

Valery, thank you, dear friend.
The process is as usual. 97-99% compatibility is granted (old mods are important heritage), a few edge cases should be either reported as engine bugs and fixed in Era or fixed in mods. So a bit of adaptation is required for almost all changing programming products. In old times I ported mods myself, but currently it's hardly possible. Maybe slowly one by one. Or by reports by enthusiasts.


RE: ERA III - Valery - 01.06.2020 15:24

Except that most authors are no longer active and no one to test their work. Also, if a single command does not work, the mod is 100% disabled most of times, so is not that simple. I may return to Homm do some test (actually modding Skyrim) but not so soon.


RE: ERA III - Berserker - 01.06.2020 15:33

Valery, I'm playing Skyrim with lots of mods ) Crashes from time to time, but still without critical bugs.
You're right, but fixing one command in one small mod will automatically fix all other mods. Moreover, if one big mod is working, most other mods will work too. So the task is solvable.


RE: ERA III - Valery - 01.06.2020 16:04

ok, but I propose you keep ~Era 2.80 available, just in case, as I hardly see someone starting to test all mods which previously worked until that version. What version added the hook plugin so from that point we needed to remove from previous mods? Was 2.80 or before?


RE: ERA III - Berserker - 01.06.2020 16:41

Valery, of course, Val. Sometimes we just need to install something 100% stable for mod and play without any further investigations Ab
2.8+ introduced compatibility with Linux, Windows 10 and so on. Reimplemented virtual file system.
2.9+ was scripting engine improvement with ERM hooker integrated and 2 plugins by gamecreator for pandora and seer huts fixed and integrated.
So for 2.9.13 no need in both.
-------
And 3.0.0 is really alpha, so I will write tests myself, receive other people reports and fix the bugs.


RE: ERA III - Berserker - 02.06.2020 02:01

Quote:Команда VR:S в этой версии ERA работает? Ибо с ERA Scripts вылазит куча ошибок с сообщениями "cannot set string variable to non-string value".
Я столкнулся с такими ошибками в бормотании монстров.
Там реально что-то вида: !!VRz5:S8;


RE: ERA III - Berserker - 02.06.2020 04:09

Добавил поддержку для написания тестов.
Пример ниже. Функция ET_Fail вызывается при нарушенном условии корректной работы скрипта, аналог ASSERT в других языках программирования.
Она ожидает 3-4 параметра: имя файла, номер строки, код строки и опционально пользовательский текст ошибки.

Image: test.png

Чтобы функция работала, добавлена поддержка магических констант (FILE), (LINE), (CODE) и последовательностей экранирования:
%\" интерполируется в ^ (запрещённый символ для строковых литералов)
%\: интерполируется в ; (тоже запрещённый символ для строковых литералов).


RE: ERA III - AlexeevAV - 11.06.2020 11:40

Александр, установил последнюю версию Еры и сверху русификатор Era 2.8.3 Rus? в итоге в Era Start Menu отсутствует Управление плагинами. Может я не тот русификатор поставил?


RE: ERA III - wessonsm - 11.06.2020 15:39

AlexeevAV, в мод-менеджере клик ПКМ на моде "Во имя Богов"\Плагины и патчи.
Plugin Manager как бы и не особо нужен уже, поэтому ссылка на него была удалена из Start Menu.


RE: ERA III - AlexeevAV - 11.06.2020 16:21

(11.06.2020 15:39)wessonsm Wrote:  AlexeevAV, в мод-менеджере клик ПКМ на моде "Во имя Богов"\Плагины и патчи.
Plugin Manager как бы и не особо нужен уже, поэтому ссылка на него была удалена из Start Menu.
Спасибо.


RE: ERA III - V_Maiko - 11.06.2020 18:16

Hello Berserker, I want to do a little interview you.

1. What are the new goals of ERA III in addition to a better ERM engine?

2. Do you plan the implementation of a new scripting language?

3. Are you aware that a much better modding platform could come than VCMI and that its scripting language will be even more flexible than lua? What do you plan to do if ERA is stopped using due to its limitations?

I'm expecting a lot from ERA III, I hope to be able to do all the things I want and do not leave the mods I have created be forgotten. I will continue to be faithful to ERA for all the development it has had over the years, I only worry that ERA may remain in the shadows as VCMI Yes


RE: ERA III - Berserker - 12.06.2020 02:18

V_Maiko, Hi!

1. The first goal is Lua support with wrappers upon ERM.
Possible second goal is dialogs system for Lua, like it's done by GrayFace for 3.59.
Parallel tasks could be:
-) New def frame replacement mechanism (currently changing portrait for single creature is impossible).
-) Porting extended structures from MoP/3.59: artifacts, monsters.

2. Nope. Lua satisfies all the needs.

3. VCMI is brilliant platform, I will enjoy, if it allows scripting and will try to make bidirectional porting more easy.


RE: ERA III - planetavril - 12.06.2020 21:25

Good if will adding extended structures for artifact and monster,but to add unlimited heroes by removing the limit of 16 per city?


RE: ERA III - Berserker - 12.06.2020 22:32

planetavril, extending heroes quantity is task for modders, I think, but barely reasonable due to amount of work.


RE: ERA III - XEPOMAHT - 12.06.2020 23:07

(12.06.2020 21:25)planetavril Wrote:  removing the limit of 16 per city?

ERA works with it, but HD-mod not works and crashed.


RE: ERA III - Berserker - 14.06.2020 04:30

У кого-нибудь ещё возникали какие-либо проблемы с новой версией? HE:X6 исправлена (была жалоба от игрока карт Valery/Salamandre), заодно и HE:X7 заработала.
Code:
[+] Added support for %Vf..t syntax in interpolated strings, that was present in WoG 3.58.
[+] Restored short !!HE:X6 syntax support and fixed ERM HE:X7 bug: short syntax worked as X7/a/d/0/0/0/0 instead of X7/0/a/d/0/0/0.

Тесты всё подтверждают.
Val, from now, when I fix ERM bug, I write ERM automatical tests to ensure, that future releases do not break the same thing again.



RE: ERA III - planetavril - 15.06.2020 10:01

support for png images will be implemented, in order to use png images for town mage guild windows, for cprsmall icon and heroes portraits?


RE: ERA III - Valery - 15.06.2020 10:13

(14.06.2020 04:30)Berserker Wrote:  Val, from now, when I fix ERM bug, I write ERM automatical tests

Frankly I have no idea what to do. Every day I get a message from someone complaining there are errors in my maps. The thing is you will continue to upgrade Era so it makes no sense for me to start a test and then find that next version brings errors again.

Will write more when I find them, the problems remain that people upgrade their ERA to latest (2.9) and I never tested this version. Now I am at 2.8.3 and already CM:R0 errors after 1 minute of playing. So why report, are you going to fix an obsolete version (283) just for my mods?

This is very annoying.


RE: ERA III - PerryR - 15.06.2020 11:05

You could put an ERA version check in your mods. It's just a matter of a few minutes. I do it for my mod too.
In that statement, you can explicitly tell people to use a certain ERA version because the mod was developed and tested for that version. Together with that, you put a link where they can download that version.
That should reduce the number of complaints and give us time to fix either ERA or your mods so they work with the newest version if you want that.




RE: ERA III - Valery - 15.06.2020 11:22

Good idea, but the last era version working 100% for me is 2.4.6. And I see no download link anywhere.


RE: ERA III - Berserker - 15.06.2020 16:01

Quote:planetavril, support for png images will be implemented, in order to use png images for town mage guild windows, for cprsmall icon and heroes portraits?
It depends. png and HD mod are not friends.

Valery, I uploaded 2.46 version, but it's Yandex link.

Never got any reports, that CM:R0 does not work.


RE: ERA III - Sandris - 19.06.2020 13:12

Когда можно ожидать внедрение разделения героев на женский и мужские фигурки на карте и поле боя?
Женский портрет с фигуркой скачущего бородатого старика (и наоборот) как-то не очень стыкуется.


RE: ERA III - XEPOMAHT - 19.06.2020 14:00

(19.06.2020 13:12)Sandris Wrote:  Когда можно ожидать внедрение разделения героев на женский и мужские фигурки на карте и поле боя?
Женский портрет с фигуркой скачущего бородатого старика (и наоборот) как-то не очень стыкуется.

В ERA III зачем такое внедрять? 148 В MoP давно есть, в ERA+ тоже можно портировать.


RE: ERA III - Berserker - 19.06.2020 15:26

XEPOMAHT, не подскажешь место, где имя def-а подменяется? Думаю, это будет очень простой плагин.


RE: ERA III - XEPOMAHT - 19.06.2020 16:19

(19.06.2020 15:26)Berserker Wrote:  место, где имя def-а подменяется? Думаю, это будет очень простой плагин.

1. Там не имя, а загруженный def (т.к. там грузится всё и сразу при загрузке диалога карты приключений).
2. Плагин-то простой, но вызовет несовместимость с ERA+, чего я не хочу. Ибо расширение структуры диалога карты приключений - удел плагинописателей-маньяков типа меня 148 . Не стоит тратить на это ценное время разработчика ERAIII.


RE: ERA III - Bes - 19.06.2020 21:30

XEPOMAHT, у разработчика ERAIII сегодня хорошее настроение и высокий боевой дух... а ты всё портишь Yes



RE: ERA III - ElfbI - 21.06.2020 00:41

Было бы здорово иметь возможность подменять часть скрипта построчно вместо замены его целиком.


RE: ERA III - Berserker - 21.06.2020 00:55

ElfbI, а кто заставляет менять целиком? Всё работает именно так, чтобы начать пользоваться сразу из коробки.

Берём скрипт ERA 2.
Меняем ZVSE на ZVSE2.
Переименовываем функции, на которые ругается компилятор.
Всё. Старый код работает.

Примеры корректных имён функций есть в changelog: elf_GiveItTry, например.
Некорректная: (This.is.test Ab


RE: ERA III - ElfbI - 21.06.2020 13:29

Berserker, вы меня не поняли. Представим, что я создаю мод, который меняет кол-во стартовых денег, и вместо того, чтобы класть в мод скрипт 38 с новым значением целиком, я создаю скрипт с указанием подменить строчку такую-то в файле таком-то.


RE: ERA III - Berserker - 21.06.2020 15:37

ElfbI, нет, так код не организуется вообще. Практически никогда и нигде.
Monkey patching — обезьяньи заплатки, это от безысходности.

Правильный подход: доработка оригинального скрипта с:
1) Вынесением основных настроек во внешние файлы и/или
2) Генерацией пользовательских событий, которые другие скрипты/моды могут обрабатывать.

Привожу пример.

Я пишу мод, в котором при посещении города герой платит за вход Х золотых, по умолчанию 100.
Назовём мод tpm (town payment mod).

Теперь напишем другой мод. ElfbI крайне возмущён дисбалансностью оригинального мода. Отчаявшись переубедить меня, как автора, ElfbI добавляет свой мод-скрипт:
balanced town payments.erm
Итого:
-) Герой заходит в город
-) Оригинальный мод ставит плату в 100 золотых, вызывает нигде не объявленную функцию-событие, которой даёт возможность изменить значение платы
-) Другой человек пишет крошечный мод-скрит, где в обработчике нового события устанавливает справедливую плату за вход.


RE: ERA III - Algor - 21.06.2020 16:33

Berserker, а потом появляется третий мод, использующий эту функцию и ты рвешь зад пытаясь найти проблему, т.к. вызов вункции запрятам в скрипте, а очередность выполнения завязанная на имени скрипта вообще неочевидна.
Тут, имхо, лучше через ini-файлы. Действует ini'шка из более приоритетного мода. Тут приоритет указывается явно, и для смены значения не нужно лезть в скрипты и знать язык.
Я в ES такие вещи как раз в ini и выношу. Пользователь (по-хорошему) копирует ini в свою мод-папку с максимальным приоритетом, правит по вкусу и в дальнейшем при обновлении ES уже ничего делать не нужно.

Вызов отдельной функции оправдан, если есть необходимость писать свой алгоритм. Например, прогрессивную таксу за вход, зависящую от уровня героя, его пола и расы, а Эдрика вообще не пускать, а то учинит беспорядки.


RE: ERA III - daemon_n - 21.06.2020 16:53

85


RE: ERA III - ElfbI - 21.06.2020 17:43

Berserker, ага, осталось только все скрипты делать правильно. И переделать весь ВОГ скриптс. Вот я делаю мод, скажем, на двойной каст для магов, но есть пещера приключений, в которой отшельник дает двойной каст на первом ходу каждому герою. Теперь мне нужно поймать событие в BG0, добавив туда SN:W переменную. Вы предлагаете ради одной-двух строчек в скрипте пещеры подменять мне в моде весь скрипт целиком. Может в программировании это и мартышкина заплатка, но для мода гораздо логичнее подменить строчку, чем скрипт.


RE: ERA III - Berserker - 21.06.2020 20:08

Algor, именно так и работают расширяемые системы. Данный форум, например, или, сюрприз, WoG. Задницу ты не рвёшь. Отключаешь один из противоречащих модов, по F11 определяешь виновника. Гибкое поведение достигается через генерацию событий. Чем больше событий, тем гибче можно мод под себя подстроить. В остальном твоя претензия сродни следующей:

Почему три мода вида
!#MA:A0/10;

!#MA:A0/20;

!#MA:A0/30;

Несовместимы друг с другом и хз где меняют настройки монстров? Может запретить эти три мода и внести настройку в ini, то есть в txt…Или стоп. Настройки и так уже есть в txt и это самая худшая реализация из возможных 96-copy

ElfbI, ваша идея реализуется только очень грубо. Через утилиты патчинга файлов. И они будут зависимы от того, чтобы исходный код мода не менялся. Такой подход где-то ещё есть, например в скриптах для Ведьмака 3, когда нужно вручную разрешать конфликты merge-3 систем. То ещё удовольствие. Уж лучше отключить один из двух модов, которые ну крайне не дружат друг с другом из-за спора в каком-то событии.


RE: ERA III - ElfbI - 21.06.2020 22:46

Berserker, так и так приходится вручную решать конфликты. Приходится класть в свой мод почти все воговские скрипты ради скромных изменений, потом отслеживать правки на форуме, потом еще вносить в несколько модов, которые тоже использую вог скриптс и учитывать приоритет с основным модом.

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

Ладно, понял-принял, что делать.


RE: ERA III - Artyr1995ua - 21.06.2020 23:15

Berserker, ссылка на скачивание не открываеться можеш другую кинуть


RE: ERA III - daemon_n - 21.06.2020 23:26

Artyr1995ua, держи - скопировал на ГУГЛ


RE: ERA III - Artyr1995ua - 21.06.2020 23:56

(21.06.2020 23:26)daemon_n Wrote:  Artyr1995ua, держи - скопировал на ГУГЛ

Спасибо!)


RE: ERA III - Artyr1995ua - 22.06.2020 00:06

daemon_n, Не запускаеться!(


RE: ERA III - daemon_n - 22.06.2020 00:25

Artyr1995ua, перекачай - вес файла 77мб должен быть


RE: ERA III - Artyr1995ua - 22.06.2020 00:37

(22.06.2020 00:25)daemon_n Wrote:  Artyr1995ua, перекачай - вес файла 77мб должен быть
Все верно.

(22.06.2020 00:25)daemon_n Wrote:  Artyr1995ua, перекачай - вес файла 77мб должен быть
Все верно че делать просто не запускаеться


RE: ERA III - daemon_n - 22.06.2020 00:56

Artyr1995ua, у меня запустился -- попробуй от имени администратора.


RE: ERA III - Berserker - 22.06.2020 01:05

ElfbI, скачайте WinMerge. Открываете сравнение двух папок: своих 3.58 скриптов и из WoG Scripts, затем пофайлово. Видите, какие места отличаются, имеете возможность копировать отдельные правки. Делается это относительно быстро. Кое-где даже автоматически.


RE: ERA III - Algor - 22.06.2020 01:38

(21.06.2020 20:08)Berserker Wrote:  В остальном твоя претензия сродни следующей
Не-не, не претензия.
Разные подходы. Один для выноса настраиваемых параметров - тут как ни крути ini-файлом лучше, как минимум, для пользователя. Второй - для кастомных обработчиков - тут функциями, без вариантов.

Собсно, квинтессенция моего предыдущего поста в двух предложениях:

(21.06.2020 16:33)Algor Wrote:  Тут приоритет указывается явно, и для смены значения не нужно лезть в скрипты и знать язык.
Вызов отдельной функции оправдан, если есть необходимость писать свой алгоритм.

Что не так?


RE: ERA III - Berserker - 22.06.2020 02:22

Algor, всё верно. Разве что в ini-файлы почти никто не лазает. Тут больше обновлённый диалог опций нужен с возможностью ввода произвольного значения.
Но самое крутое решение — опция со вводом значения + генерация события. И волки сыты, и овцы цены.


RE: ERA III - Artyr1995ua - 22.06.2020 08:47

(22.06.2020 00:56)daemon_n Wrote:  Artyr1995ua, у меня запустился -- попробуй от имени администратора.
Не идет.


RE: ERA III - ElfbI - 22.06.2020 21:36

Berserker, вы зря проигнорировали вторую часть моего поста. У меня есть предложение.

Сейчас скрипты подгружаются только из папки Data-s, правильно? Предлагаю подгружать их также из папки Data-s-Script_любое имя. Зачем? Смотрите: Algor разделил скрипт FUN.erm на отдельные файлы-функции, и я хочу сделать это же с вогскриптс и своими скриптами. Раскидать каждый кусок или скрипт в отдельный мод нелогично. Скинуть все в data-s - бардак.

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


RE: ERA III - Berserker - 22.06.2020 23:57

ElfbI, я вынужден отклонить Ваше предложение. Можно очень долго и занудно объяснять, но лучше примите не веру. Так делать не нужно. Создайте отдельный мод, в котором в Data\s поместите хоть 50 файлов. Так и происходит в реальных проектах. Например, в системе управления сайтом Joomla 30 тысяч файлов в папках лежат. Предложение с точки зрения инженерной практики лишено смысла.


RE: ERA III - ElfbI - 23.06.2020 00:09

Berserker, ну мне искренне непонятно, почему нельзя сделать удобно. Разве не смысл платформы для модов в удобстве и простоте? Разделение непонятно почему целиковых файлов на отдельно модифицируемые части просто и удобно. А как вы предлагаете... У меня в моде и так в дата s сотня фалов, так их будут тысячи.

Впрочем, я ожидал такого ответа. Очень жаль.


RE: ERA III - Berserker - 23.06.2020 00:57

ElfbI, Вы поймёте, как только изучите любой другой ЯП и начнёте работать со структурным кодом, модулями. Вам ответят как я практически любой другой программист.
Обычно файлы в проектах группируют ещё по подпапкам. Так и будем делать для библиотечных модулей, но уже в Lua. ЕРМ не стоит подобных инвестиций и является движком преимущественно старых модов. В ЭРА 3 в ЕРМ уже вложен предел сил и времени, на него отведённых.

wessonsm, по Эре 3 ещё не было опубликовано руководства по написанию скриптов, планирую по частям этим заняться в ближайшее время. Можете напомнить, если вдруг уйдёт на второй план.


RE: ERA III - Algor - 23.06.2020 01:36

(22.06.2020 21:36)ElfbI Wrote:  Смотрите: Algor разделил скрипт FUN.erm на отдельные файлы-функции, и я хочу сделать это же с вогскриптс и своими скриптами.
...
Предложенным же образом можно будет менять скрипты частями (отдельной функцией скажем)
FUN.erm не был скриптом, выполняющим отдельную задачу. Это изначально был набор функций, вызываемых из разных скриптов.
Разделен на части он был для того, чтобы мододелы могли использовать только то, что им нужно и все это хозяйство можно было просто сопровождать.

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

Кстати да, прочитайте про Monkey patch - применение и потенциальные проблемы. Там вроде понятно описано, почему нам такой подход не годится.


RE: ERA III - Berserker - 24.06.2020 00:51

Обновлён улучшатель/конвертер скриптов:
https://tools.hmm35.ru/erm-enhancer/

Добавилась опция для перехода на ЭРА 3. !!SN:W всюду заменяются на использование именованных s^...^ и i^...^ переменных.


RE: ERA III - Berserker - 27.06.2020 03:07

Created directory for ERA 3 dll updates:
Link

First tests give results:
[-] Included missing ztower1.def in hmm35wog.pac. Credits: ArnoVanClaire.
[-] Fixed bug: each reloading reduced ERT strings length by one. Credits: ArnoVanClaire.


RE: ERA III - V_Maiko - 05.07.2020 20:06

I have something I have been planning since ERA 3 and New Creature Banks scripts was released and that is when I start releasing both of my mods exclusive for ERA 3 people will start playing with that version of ERA and any bugs that players discover, daemon_n and I, we will report it to you. To improve ERA 3 132


RE: ERA III - Berserker - 05.07.2020 21:50

V_Maiko, will be greatful for any reports, thanks.


RE: ERA III - Heromant - 06.07.2020 16:35

Lua поддерживается?


RE: ERA III - planetavril - 06.07.2020 17:13

you could create a plugin similar to H3Sw_buildups and H3SW_towns that allow you to unlock blocked buildings with the difference that it works on typhon and that you can choose which buildings to unlock?, instead of all at the same time as happens in Succession Wars


RE: ERA III - Berserker - 06.07.2020 22:05

Heromant, пока не официально, планирую с середины июля заняться API.

planetavril, personally I have time only for a few tasks, sorry.


RE: ERA III - V_Maiko - 08.07.2020 23:44

Hello Berserker, could you check to avoid having to reinstall ERA 3 for nothing? It's about the objects in the map editor, it seems some are missing.


RE: ERA III - Berserker - 09.07.2020 01:47

V_Maiko, could you name missing resources? I have no issues with map editor on test package.


RE: ERA III - planetavril - 09.07.2020 03:35

ok,it does not matter


RE: ERA III - V_Maiko - 09.07.2020 19:21

Nevermind, I noticed it was fixed in later versions, although you only announced ztower1.def, I'm not sure if ztport01.def was also included because it was a missing def in the editor it had.

Furthermore, have you not thought about implementing an uninstaller for ERA? A simple one made in .bat, or the truth I never knew how to uninstall it properly, could you tell me how? I always erased my game and reinstalled an entirely new one.


RE: ERA III - Berserker - 09.07.2020 19:42

V_Maiko, uninstallation may erase files, used by other mods/projects, it was not a really necessary task. Perhaps, safe installation over previous installation is an expected feature?
How could I trigger ztport01.def error in editor?


RE: ERA III - V_Maiko - 09.07.2020 20:30

Berserker, It's a def that I was missing in ERA 3.0.2 (alpha 2), but maybe it's just my problem, I'll reinstall the whole game again and download the latest version.

Image: Screenshot-2.png


RE: ERA III - Berserker - 10.07.2020 01:52

V_Maiko, you are right. Object is present with msk, def is missing, will add it, sorry.


RE: ERA III - daemon_n - 18.07.2020 20:36

Чем может быть вызвана проблема с лагерями беженцев? Чистая Эра 3.0.2 - карта случайная, день 1.
В лагере 4 копейщика - данная проблема была еще в воге, но хотелось бы, чтобы она пропала.

И еще вопрос - так понимаю, ЭРА 3 не поддерживаает ZVSE?
все переменные в текстах отображаются как %Y...

UPD: касается только json файлов105

И ещё кое-что:
заметил, что "начать заново" из окна битвы не подгружает текст из json , когда как ert спокойно это делает.

Вывод - пока останусь на ert - постараюсь туда 2 языка влепитьSorry


RE: ERA III - Berserker - 20.07.2020 22:18

daemon_n, покажи, пожалуйста, пример, где переменные в текстах как %Y отображаются.

Quote:заметил, что "начать заново" из окна битвы не подгружает текст из json , когда как ert спокойно это делает.
Эм???


RE: ERA III - daemon_n - 20.07.2020 22:58

Berserker,
это пример 1 (Click to View)
(20.07.2020 22:18)Berserker Wrote:  Эм???

это пример 2 (Click to View)



RE: ERA III - Berserker - 21.07.2020 01:45

daemon_n, перевод не должен содержать никаких имён ЕРМ переменных. Только текст и параметры вида @имя параметра@. Можно затем в перевод передать значения этих параметров.

"route_1": "@hero_name@ не может достигнуть этой точки.",
!!SN&y8<1:T^egb_map_%Y1.route_1^/?z2/^hero_name^/z1; передали z1 в качестве параметра hero_name

В целом не вижу смысла использовать неимёнованные переменные вообще в новом коде

Quote:После начинаем игру. В бою нажимаем "Начать заново". При старте игры текст из json в чат не выходит - только звук. С ert работает нормально.
Проверяй значения ключей вида "egb_map_%Y1.battle1", чему равен y1. Проверяй значения условий. Проще говоря, установи z1 в ^TEST-TEST^ кодом выше. Если не изменилась — неверный ключ для перевода или не верное условие. Json вообще тут не при чём.


RE: ERA III - daemon_n - 21.07.2020 01:50

Berserker, 1 на имя героя плевать - мне нужны цифры пути!
2 - а здесь дело не в %Y1 - оно не работало даже в формате "egb_map_eтп.battle1"


RE: ERA III - Berserker - 21.07.2020 03:33

Проверяй так:
Или скинь мне скрипт и json-файл.


RE: ERA III - daemon_n - 21.07.2020 09:21

Berserker, так у меня ZVSE (erm 1)


RE: ERA III - Berserker - 21.07.2020 12:21

daemon_n, разницы нет, и на ЕРМ 1 принцип работы SN:T не меняется. Скинь скрипт и json.


RE: ERA III - daemon_n - 21.07.2020 13:18

Понял. Через часов 9 скину.


RE: ERA III - daemon_n - 21.07.2020 23:56

(21.07.2020 03:33)Berserker Wrote:  Проверяй так:

Это работает.


А вот это не работает105

P.S.: Прошу прощения за опоздание Sorry


RE: ERA III - Berserker - 22.07.2020 02:10


И что должен делать этот код? Если WogRusModCheck = 0? Правильно, обращаться к несуществующей egb_map_0.battlelist1


RE: ERA III - daemon_n - 22.07.2020 09:27

Berserker, как это несуществующему? В json оба лежат


RE: ERA III - PerryR - 22.07.2020 10:03

maybe this?
Does the code needs an update or is it unintended behavior?


RE: ERA III - Berserker - 22.07.2020 16:44

daemon_n, нашёл, извиняюсь. Это, кстати, очень плохая идея два языка в одном файле писать. Либо 99 языков, либо 1.
Perry указал верно на проблему, я понял, отвечаю ниже.

PerryR,
SN:T returns translated strings as is without interpolation. Same json files may be used by C++, Lua code or anything else.
The only universal recommended way to pass parameters to translations is using @param_name@ syntax.

"route_1": "@hero_name@ cannot reach the target.",

!!SN:T^route_1^/?(text:z)/^hero_name^/^PerryDaemon^; (text) = "PerryDaemon cannot reach the target"

But for old ERT using code we could use the following trick:

"route_1": "%Z2 cannot reach the target.",

!!VRz2:S^PerryDaemon^;
!!SN:T^route_1^/?z3 Iz3/?z3; get translation and interpolate/substitute all ERM variables.


RE: ERA III - daemon_n - 22.07.2020 18:01

Berserker, я как тест. Так-то планировал все языки отдельными json файлами. Только не знаю, как это все отмаркеровать.
Например, с русификатором я могу понять, что версия будет русская, но как заранее сделать окно для других языков?


RE: ERA III - Berserker - 22.07.2020 19:08

daemon_n, если окно — pcx/def, то оно и распространяется с модом локализации тоже.
Понятен ли последний пример, как при помощи SN:Iz3/?z3 заменить %Y2-подобные подстроки в переводе значениями ЕРМ переменных?


RE: ERA III - daemon_n - 25.07.2020 17:15

Berserker, нет, последний пример я не понял - есть сборник по всем новым SN? А то искать их по разным местам очень сложноYes

UPD: прочитал в справке. Кажется, понял.


RE: ERA III - Bes - 25.07.2020 18:52

daemon_n, у тебя в сборке есть последний справочник по ЕРМ, там всё и описано... см. SN


RE: ERA III - daemon_n - 25.07.2020 19:28

Bes, нашел - спасибо!

(20.07.2020 22:18)Berserker Wrote:  
Quote:заметил, что "начать заново" из окна битвы не подгружает текст из json , когда как ert спокойно это делает.
Эм???

С этим тоже разобрался: был триггер :OnGameEnter:, который не работает при переигровке сценария из боя. Заменил на PI/GM0;


RE: ERA III - daemon_n - 26.07.2020 16:59

Berserker, почему в Эре старый GameBugFixes плагин? Точнее, чем плох тот, который в сборке?


UPD: баг или намеренно ли?
ранее работала такая штука:
Ныне лишь



RE: ERA III - Berserker - 26.07.2020 22:48

daemon_n, плагин не старый, а тот, который не вносит новый или проблемный функционал. Игрик было писал в новом game bug fixes различные улучшения, которые строго к названию плагина не относились.

2) Да, намерено сделано. Нельзя присваивать числа строкам.


RE: ERA III - daemon_n - 26.07.2020 23:32

Почти закончил с переходом на Эру 3. Но сломанное отображение меню вог опций не позволяет скрипты проверить - ждать фикс в ближайшие дни?
багуются опции с ers файлами
и очень важен xxl мод - текущий не работает с Эрой 3 (
в общем, это 2 причины, по которым не могу пока выпустить сборку на 3
Dry


RE: ERA III - wessonsm - 27.07.2020 00:01

daemon_n, а что не так с XXL?
Подключил, вроде работает, не вылетает, ошибок не выдает.


RE: ERA III - daemon_n - 27.07.2020 00:13

wessonsm, любая карта выше XXL вылетает на старте


RE: ERA III - Berserker - 27.07.2020 00:32

Quote:ждать фикс в ближайшие дни?
Да.

Quote:и очень важен xxl мод - текущий не работает с Эрой 3 (
Пока особо не представляю, чему там вылетать. Скинь, пожалуйста, xxl-карту с вылетом и архив мода, который используешь.


RE: ERA III - daemon_n - 27.07.2020 00:53

Berserker, вот файл - внутри 3 карты (случайные) - можешь попробовать создать свою


RE: ERA III - Berserker - 28.07.2020 17:13

https://dropmefiles.com/1xQ2l
[+] ERS-files parser was rewritten. No more H3 bugs, caused by 12-character path length restriction.
    Any ers file name like "some loooooong script.ers" is supported.

daemon_n, не вылетела XXL.


RE: ERA III - daemon_n - 28.07.2020 18:47

Berserker, супер!!! на этой эре не вылетело тоже!!! - может, оно связано как-то?
Спасибо-спасибо-спасибо!


RE: ERA III - V_Maiko - 28.07.2020 18:51

Thanks, but I suppose it would have been better to fix all the reported bugs in one already and release v3.0.3 for players.


RE: ERA III - Berserker - 28.07.2020 19:15

V_Maiko, sure thing. Preparing 3.0.3 with extra possibility to get/set artifacts names and descriptions without z-index dependency.

daemon_n, отлично, я рад! 20


RE: ERA III - Bes - 28.07.2020 19:24

Berserker, не хватало отдельной "доски обновлений" с последними релизами, так что я это сделал в некогда открытой тобой для этих целей теме, опубликовав пост... переделай авторство поста на себя там, ок? 177


RE: ERA III - Berserker - 28.07.2020 19:34

https://dropmefiles.com/FyD3f
[+] Added command SN:H^art^/art ID/0 (name) or 1 (description)/$text to get/set any artifact name/description
    without z-variables dependency.

Проверяем, как работает получение/установка имён/описаний для артефактов. Z-переменные в прошлом.

Bes, спасибо, Bes, я уже почти готов к релизу.


RE: ERA III - daemon_n - 28.07.2020 19:37

(28.07.2020 19:15)Berserker Wrote:     with extra possibility to get/set artifacts names and descriptions without z-index dependency.

скажу сразу, что формат (text:z) крайне неудобен:

1 - требуется больше времени на ввод, так как автоподстановка текста предлагает лишь "text", когда вводиь только "t" - остальное - сам
2 - нет возможности выбрать нужную z-переменную, когда их надо выводить несколько - или порядок присваивания им номеров основывается на положении "выше/ниже"?

например, как бы это работало здесь?:



RE: ERA III - Bes - 28.07.2020 19:47

Quote:скажу сразу, что формат (text:z) крайне неудобен:
daemon_n, так используй нумерацию в имени получения
(text1:z)
(text2:z)
и т.д.

P.S. вся система ввода в ERA3 предполагает более длинное написание кода, т.к. автоматом подразумевает отказ от комментриования, как это необходимо было для ERM1.0
из двух зол выбирай сам


RE: ERA III - daemon_n - 28.07.2020 19:50

Bes, и это еще неудобнее)96-copy
хотя о такой возможности я не знал - спасибоYes


RE: ERA III - Berserker - 28.07.2020 19:51

daemon_n, ты, вероятно, что-то напутал. (text:z) — просто пример именованной локальной переменной. К SN:H отношения он прямого не имеет.
Твой пример переписывается с именованными переменными так:




RE: ERA III - Bes - 28.07.2020 19:53

daemon_n, ты там используешь именованную переменную, имя не привязано к text или var. Это просто в примерах для понимания.
можно хоть
.../?(описание.арт120:z)
upd. Berserker, ты ещё больше щас пошатнул желание daemon_n'а к скриптингу на ERM2.0 96-copy


RE: ERA III - daemon_n - 28.07.2020 19:58

я еще не освоил массивыDash1
язык игры нужен для русских и китайцев - у них свои шрифты и проблемы с отображением - для предстоящего обновления мне необходимо сделать именно так, в данном случае есть понятие язык игры, я считаю, ведь текст = шрифты. Текста у меня мало, так что плодить кучу модов плохо, а у меня планирутся лаунчер, которому важно, чтобы все мои изменения были в 1 моде.

Что касается кода, он не просто длиннее, он в разы сложнее -- где же то самое написание "без комментариев". Только и хочется сказать: "Без комментариев".96-copy

UPD: есть возможность сделать выход из erm файла?
Имеем 2 файла скриптов - 1 для Эры 2.9 , а второй - для Эры 3.
???


RE: ERA III - Bes - 28.07.2020 20:03

daemon_n, комменты Berserker для тебя расписал, так то он итак всё поймёт спустя год не у дел Yes
вообще, если писать не английским имена переменных и массивов, то куда удобнее тебе будет


RE: ERA III - daemon_n - 28.07.2020 20:10

Bes, сне вот что бы понять
вот массив - с 4 элементами/ z говорит нам, что они текстовые, так понмаю, у меня оно должно быть egb_dialogOpt, чтобы не пересекаться с иными именами.


Я просто пока делаю мод универсальный между 2.9 и 3.0 - пока работает.


RE: ERA III - Berserker - 28.07.2020 20:13

daemon_n, выход из ЕРМ файлов не предусмотрен и алгоритмически не нужен.

Quote:у них свои шрифты и проблемы с отображением
Эти проблемы никак не решаемы твоим способом. Много модов — это нормально. В этом принцип управляемости и поддерживаемости в программировании и вообще в любых сложных инженерных системах.

Сверху очень много костылей. Все они не нужны. Json-файл с локализацией должен содержать перевод только для одного языка. В другом моде свой файл с переводом для другого.
Тему школы ЕРМ я продолжу, но хотелось бы узнать задачи, которые ты пытаешься решить и примеры кода, в которых нуждаешься (могу без массивов).


RE: ERA III - Bes - 28.07.2020 20:14

daemon_n, ну массивы в таком исполнении с серией 2.9.x ты не подружишь
или делай как делал, без ERM2.0, пока ERA3 всё ещё на альфа-стадии, а потом... спустя эн-ное кол-во времени перепишешь уже красиво на ERM2.0


RE: ERA III - daemon_n - 28.07.2020 20:17

Berserker, у меня сейчас 3 json файла , в каждом свои строки
имеется такой код (Click to View)
Сейчас работает всё вообще без проблем, и на эре 2.9.14, и на эре 3.0.2.

Я уже понял, как делать тексты - спасибо, но вот вопрос остался



RE: ERA III - Berserker - 28.07.2020 20:18

Quote:у меня оно должно быть egb_dialogOpt, чтобы не пересекаться с иными именами.
Не так. Локальные переменные — это просто временные имена для компилятора для одного триггера. Они не пересекаются с глобальными, не зависят от других скриптов и триггеров.

Смотри. Происходит событие, скажем щелчок мышкой. !?CM0.
Для данного события выделяется временная память в 100 целых чисел (y1..y100). Если в рамках события произойдёт показ диалога, а в том нажатие кнопки, то у нового события будут свои уникальные y1..y100.

Так вот, ЕРМ 2 позволяет тебе не вручную в голове выделять индексы для локальных переменных, а автоматически под читаемыми именами.


Quote:почему последний индекс -1, а не 3?
Отрицательные индексы в именованных локальных переменных имеют значение: «N-й с конца», как во многих функциях Javascript/PHP, например.
-1 — последний или первый с конца
-2 — предпоследний или второй с конца

Если ты изменишь размер массива на 10 элементов, то мой код будет работать, а твой сломается.


RE: ERA III - daemon_n - 28.07.2020 20:24

То есть все новые именованные переменные локальные? Понял, значит, польза для удобного чтения кода.
А будет что-то подобное для глобальных w? вместо !!SN:W^rrtyrty^/?(howMuch:y);?

(28.07.2020 20:18)Berserker Wrote:  -1 — последний или первый с конца
-2 — предпоследний или второй с конца
Если ты изменишь размер массива на 10 элементов, то мой код будет работать, а твой сломается.

Понял! Спасибо!

Ну, говорю же, массивы пока не освоил, но надо бы - на них всё строится, как я понял147


RE: ERA III - Berserker - 28.07.2020 20:26

daemon_n, уже есть.
!!VRs^egb_caption^:S^Заголовок^ вместо !!SN:W^egb_caption^/^Заголовок^
или для чисел !!VRi^egb_age^:S29 +3 *7;

s^...^ и i^...^ — глобальные именованные переменные, SN:W больше не нужен. Можно использовать напрямую во всех командах.

!!VR(daemonAge:y):Si^egb_globalDaemonAgeReadFromSecretIniFile^;

daemon_n, массив — просто набор последовательных элементов одного типа.
Например, y10..y15 — массив из 6-и элементов.
У него логические индексы 0..5, а реальные — 10..15.

Ты можешь получить реальный индекс локальной именованной переменной через (@имя) или (@имя[логический индекс элемента массива]):



RE: ERA III - daemon_n - 28.07.2020 20:31

Berserker, вот последнее я как раз уже усвоил, когда книжку по с++ изучалYes


RE: ERA III - Berserker - 28.07.2020 20:34

daemon_n, если читал, то понимаешь разницу между логическим индексом элемента массива и адресом элемента в памяти. В ЕРМ у массива y10..y15 10 — по сути виртуальный адрес, а 0 — логический индекс первого элемента.


RE: ERA III - daemon_n - 28.07.2020 21:23

(28.07.2020 20:26)Berserker Wrote:  s^...^ и i^...^ — глобальные именованные переменные, SN:W больше не нужен. Можно использовать напрямую во всех командах.

!!VR(daemonAge:y):Si^egb_globalDaemonAgeReadFromSecretIniFile^;

Отлично!
Это ZVSE2, так понимаю, но это с какой версии Эры? на 2.9.14 работать будет?


RE: ERA III - Bes - 28.07.2020 21:25

daemon_n, нет, s^...^ и i^...^ на ERA3 началось


RE: ERA III - daemon_n - 28.07.2020 21:26

(28.07.2020 21:25)Bes Wrote:  daemon_n, нет, s^...^ и i^...^ на ERA3 началось

Понял

(28.07.2020 19:24)Bes Wrote:  Berserker, не хватало отдельной "доски обновлений" с последними релизами, так что я это сделал в некогда открытой тобой для этих целей теме, опубликовав пост... переделай авторство поста на себя там, ок? 177

Я скинул последнюю dll в дискорд, чтобы можно было скачать сразу файл
имеется прямая ссылка на подольше



RE: ERA III - Bes - 28.07.2020 21:31

daemon_n, у меня личностная неприязнь всяким современным дискордам и еже с ним ))) только обменники с ограниченным числом дней хранения 148


RE: ERA III - daemon_n - 29.07.2020 00:23

Нашёл баг. Кампании Дыхания Смерти не воспроизводят анимации (smk), когда на них наведен курсор в меню выбора кампаний.


RE: ERA III - Bes - 29.07.2020 00:30

а сами файлы кусков этих то есть в ресурсах?


RE: ERA III - daemon_n - 29.07.2020 00:42

Bes, есть. Специально этим и занимался - файлы для Клинка сперва пометсил, потом для Сод. Клинок сработал.


RE: ERA III - Berserker - 29.07.2020 00:47

daemon_n, воспроизводит у меня. Проверяй у себя. Не забудь, что исполняемый файл был изменён.


RE: ERA III - daemon_n - 29.07.2020 00:55

Заработало!! спасибо. Я забыл сменить HD экзешник, вот и не работало, как оказалось , именно с hd mod.


RE: ERA III - Berserker - 29.07.2020 01:05

daemon_n, просто я вернул в ехе исходные данные кампаний, без которых анимации не будет.


RE: ERA III - wessonsm - 05.08.2020 18:34

Berserker, команда !!SN:U работает?

У меня почему-то выбивает ошибку "Unknown command "!!SN:U".
Пробовал и ZVSE, и ZVSE2 в заголовке скрипта писать.

Если работает, я тогда не пойму, что у меня не так...
Спотыкается на строке !!SN:Uy1/y2/63/66/1/0/0/0;


RE: ERA III - XEPOMAHT - 05.08.2020 18:42

(05.08.2020 18:34)wessonsm Wrote:  У меня почему-то выбивает ошибку "Unknown command "!!SN:U".
Пробовал и ZVSE, и ZVSE2 в заголовке скрипта писать.

[*] !!SN:U was renamed to !!SN:V (Vector).


RE: ERA III - wessonsm - 05.08.2020 19:01

XEPOMAHT, спасибо!
Недосмотрел в чейнджлоге.


RE: ERA III - Berserker - 05.08.2020 21:50

wessonsm, да, успел её переименовать, пока использовать не начали.


RE: ERA III - daemon_n - 08.08.2020 17:46

файл "heroscr4.pcx" лишний. Он отображает иконку командира с отключенным данным скриптом. В этом нет смысла, поскольку иконка (кнопка) добавляется wog native dialogs.era Yes


RE: ERA III - Berserker - 09.08.2020 00:23

daemon_n, а без wog native dialogs её не будет. Отключать плагин может понадобиться при проблемах с вводом китайского текста, например. Пока оставлю картинку.


RE: ERA III - daemon_n - 09.08.2020 02:54

нашел баг в Эра 3
ПКМ на вржеских существах открывает окно о них как ЛКМ на союзных. Ранее это контролировалось скриптом для опыта существ.


RE: ERA III - Bes - 09.08.2020 03:04

уверен? вроде это со времён WoG так и было. Это мне и понравилось когда-то, в отличии от SoD, когда надо было держать ПКМ и невозможно было посмотреть длительность заклов на вражеских отрядах


RE: ERA III - daemon_n - 09.08.2020 03:24

Bes, уже не совсем уверен) 96-copy


RE: ERA III - Bes - 09.08.2020 15:26

wessonsm, меня 2.46 вполне устраивала, о каких там багах ты говоришь? если только скриптовых из WoG?
ну и тех, что от SoD остались..


RE: ERA III - Archer30 - 10.08.2020 07:01

Berserker, you might wanna fix shotcuts from Map Editor - WoG Tools. They haven't been updated since WoG.

For example, check mine (placed in ...Mods\WoG\Data\MapEdPatch).

https://mods.hmm35.ru/ seems to be dead...


RE: ERA III - Berserker - 10.08.2020 14:20

Archer30, thanks, added to release.
mods.hmm35.ru works if using direct link. Anyway, we had elections yesterday and authorities blocked most of Internet resources till everything calms down.


RE: ERA III - daemon_n - 10.08.2020 15:58

Archer30, only in assembly path to sublime is "Tools\Erm Editor Sublime\"
in clean ERA it is "Tools\Erm_Editor_Sublime\"

Berserker, may be change in era to 1st variant, cause all the tools haven't "_" in its paths?


RE: ERA III - Berserker - 10.08.2020 16:21

daemon_n, лучше без пробелов, до сих пор тьма командных утилит, не любящих пробелы. А sublime — огромный комбайн с множеством плагинов и интеграцией питона. Спасибо, что указал.


RE: ERA III - Archer30 - 10.08.2020 20:53

RolleyesBerserker, is it possible to implement Chinese character input support for WoG Native Dialogs? Just got some players asking since they stucked with Living Skulls.


RE: ERA III - Berserker - 10.08.2020 22:00

(10.08.2020 20:53)Archer30 Wrote:  RolleyesBerserker, is it possible to implement Chinese character input support for WoG Native Dialogs? Just got some players asking since they stucked with Living Skulls.

Archer30, not by me, sorry. It's igrik's plugin and he also does not know, what the main issue with special soft for Chinese characters fast input.


RE: ERA III - wessonsm - 12.08.2020 23:37

Не уверен, можно ли это считать багом, но сейчас команда !!HE:P возвращает координаты 65535/65535/65535, если героя нет на карте.
Раньше она возвращала -1/-1/-1.
Это может быть критично для некоторых скриптов, где присутствие героя на карте проверялось примерно так:
!!HEv1:P?y1/?y2/?y3;
!!if&y1>-1:;


RE: ERA III - Berserker - 13.08.2020 00:32

wessonsm, спасибо, исправлю в следующем релизе.


RE: ERA III - daemon_n - 17.08.2020 13:05

Предлагаю ещё вернуть анимации победы и поражения в сценарии. Уж очень они ностальгию наводят)


RE: ERA III - Berserker - 17.08.2020 18:08

daemon_n, а их кто-то удалял разве?


RE: ERA III - XEPOMAHT - 17.08.2020 18:12

(17.08.2020 18:08)Berserker Wrote:  а их кто-то удалял разве?

В кастратных версиях игры традиционно удаляются (т.к. они на CD в оригинале). Архив со всеми роликами полгига почти весит. Можно просто залить его куда-нибудь для тех, у кого нет.


RE: ERA III - daemon_n - 17.08.2020 18:31

Berserker, дело не в том, что они удалены, а в том, что не проигрываются.


RE: ERA III - Berserker - 22.08.2020 18:49

Для будущей сборки от daemon_n обновление DLL:
https://dropmefiles.com/mVx0z
[-] Fixed bug: HE:P used to return unsigned 65535 instead of signed -1.
[-] Fixed bug: ERM compiler didn't process post-triggers.
[-] Fixed bug, causing SN:K with 3 parameters to return garbage string instead of valid character.


RE: ERA III - daemon_n - 23.08.2020 15:01

Berserker, спасибо за файл) намёк понял Ab


RE: ERA III - daemon_n - 23.08.2020 16:34

Berserker, все не получается разобраться с команддой SN:R
она лишь в иснтрукции работает?
пытаюсь заменить текстовый файл, но не выходит


RE: ERA III - PerryR - 23.08.2020 16:35

Berserker, good to see you are still working.
I send you a little bug report in the discord Ab


RE: ERA III - Night - 23.08.2020 18:14

Блин, раз уже всё больше и больше намёков, экивоков на Эру 3, пора уже начинать пользоваться потихоньку, тестить... А то Berserker, скриптец на Эру3 сделает, хитрец Sm, то daemon_n, затравочное сообщение делает, мол "Скоро на всех мониторах страны, самое лучшее" Sm

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

Но честно признаюсь - когда прочитал про релиз, то сначала обрадовался, потому что реально много отличных нововведений, тем более само развитие не стоит на месте, это правильно... Но потом малодушно подумал:
"Бааагов будет... подожду пока другие потестят, потом нормальную исправленную поиграю" =)
Как-то играть хочется, а страдать в ошибках - нет.Rolleyes

Вот как-то первое, что в голове промелькнуло... Хотя частично в своё оправдание скажу, что играя по сети, эксперименты с новыми не обкатанными версиями Эры не очень хочется проводить. Слишком уютная атмосфера в процессе игры, которая итак порой портиться, когда по часу-другому мелкие крит ошибки исправлять приходится в текущей версии, а тут такое серьезное испытание и поле для тестов.
Но раз уже к полноценному релизу подбираемся, не только от Berserker, но и daemon_n, сборку готов предоставить, то хочется прояснить один основной момент по Эре3, на который вконтакте был создан опрос даже.

В частности узнать, какие скрипты будут недоступны?

Мне сложно сходу понять, насколько непростой вопрос задал, поэтому попробую выдвинуть предложение, а там уж, зная сцецифику вопроса, скажите, почему нельзя или сложно сделать так, как я предложу.

По примеру WoG-меню из скринов ниже - закрасить разными цветами, что доступно в Эре3 (зеленным), что недоступно будет совсем или некоторое время до обновления кода (красным).
Чтобы наглядно было видно, что в данным момент отсутствует. Мне просто без некоторых скриптов совсем игра не идёт и не представляю, как без них играть - настолько уже привычны и удобны, геймплейно желательны.
И подобное сделать для всего Вог-Меню (фактически соответствующие), а там уже предметно каждый решит, без чего он будет играть и сможет обойтись, а где нужно оперативно подсуетиться (или подсуетить другого 96) к исправлению.
Остается отдельный вопрос к сторонним модам, но то, что лично я использую, вполне себе живые и активные авторы способны оперативно подправить, если будет несовместимо. Я надеюсь.

Сколько смысла в таком предложении и возможен ли такой подход или всё немного (или даже много) не так и такое прояснение в принципе невозможно?


RE: ERA III - Berserker - 23.08.2020 21:38

daemon_n, txt файлы загружаются ещё до создания основного окна игры и более не выгружаются. Здесь нужен Lua/C плагин, который вызывает GlobalRedirectFile в событии OnAfterWoG, например.

Quote:Слишком уютная атмосфера в процессе игры, которая итак порой портиться, когда по часу-другому мелкие крит ошибки исправлять приходится в текущей версии
Как я тебя понимаю. Сам долгое время пытался повлиять на автора игры Leylines, чтобы тот поправил баги сетевой игры. С б ратом нам очень нравилось, но ни одной игры в splitscreen не могли довершить. Тщетно. Хорошо, когда есть опорные стабильные версии, на которых можно просто играть, а не тестировать.

Night, доступно всё. Просто вылезают иногда мелкие несовместимости или что ещё хуже, ранее скрытые баги и опечатки, которые ныне рапортуются как ошибки. Реальные баги Эры 3 буду править. Спасибо всем за отчёты.

PerryR, will be able to open Discord tomorrow, I hope, thanks.


RE: ERA III - Berserker - 24.08.2020 22:06

Срочное микрообновление: https://dropmefiles.com/iG89Z
[-] Fixed bug, causing many Era commands to return garbage after valid string contents. Credits: PerryR.


RE: ERA III - Bes - 24.08.2020 22:19

Berserker, такого бага нет на era2 ?


RE: ERA III - Berserker - 24.08.2020 22:41

Bes, нет.


RE: ERA III - Berserker - 25.08.2020 00:08

https://dropmefiles.com/t0ayD
[+] Extended town income limits from -32768..32767 to -2147483648..+2147483648 and added new event OnCalculateTownIncome
    with three parameters: Town ID, Income (gold amount), Account resource silo? (0 or 1).


RE: ERA III - Bes - 27.08.2020 00:16

Berserker, использование ini-файлов для хранения данных ещё оправдано, или уже надо все эти манипуляции с записью/чтением значений переводить на SN:M функционал?
я не знаю достоинства/недостатки того или иного по части скорости операций, загрузки игровой памяти, удобства с сохранёками и пр.моментов..


RE: ERA III - Berserker - 27.08.2020 03:27

Bes, для чтения — да, для записи → насилие над диском (каждый раз весь файл записывается).


RE: ERA III - Bes - 27.08.2020 03:30

Berserker, короче, если нужно периодически в процессе игры менять значения, то лучше отказаться от ini ? ок, взял на заметку


RE: ERA III - helgtla - 27.08.2020 19:11

Есть проблемы с ресивером !!IF:N
не работает синтаксис вида: !!IF:N^Текст^;
работать стало только так:
!!VRz1:S^текст^;
!!IF:N9/10/9/11/9/12/9/13;
!!IF:N1/z1;

Это поправимо в ближайшее время?


RE: ERA III - Bes - 27.08.2020 19:20

helgtla, а если синтаксис ERM2 ?
!!IF:Ns^Текст^;
Unsure


RE: ERA III - helgtla - 27.08.2020 19:36

Bes, так тоже не работает.
Уточнение, изначально диалог показывается (и показывается верно), но после сообщает об ошибке (что-то про то, что неверные индекс Z переменной 0). И если в триггере есть ещё какие-либо рессиверы (далее по тексту скрипта)- может выдавать ошибки по ним (неизвестная команда)


RE: ERA III - Berserker - 27.08.2020 20:33

Quote:helgtla, а если синтаксис ERM2 ?
!!IF:Ns^Текст^;
Bes, s^Текст^ — это глобальная строковая SN:W переменная с именем «Текст», а нужно просто ^Текст^.

https://dropmefiles.com/hkzHx
[-] Fixed bug: IF:N$ used to cause ERM errors and crashes. Credits: helgtla.


RE: ERA III - helgtla - 27.08.2020 21:18

Berserker, Спс, заработало20, надеюсь, что daemon_n так же оперативно дополнит этим фиксом сборку.


RE: ERA III - Berserker - 27.08.2020 21:52

helgtla, спасибо за отчёт. Будет что ещё досадное — сразу пиши )


RE: ERA III - Archer30 - 28.08.2020 11:02

Hi Berserker, I'm a bit confused here...

zaobjts.txt has 1416 objects while the object count on top is on only 1415. As far as I know, the wrong count here could result in serious issue. But this seem to have been quite a while and I don't have any issue at all. Should it be corrected?

Edit: Sorry, 1416 is for ERA 2. For ERA 3 it should be 1415 as ZTPort.def was cut.


RE: ERA III - Berserker - 28.08.2020 14:43

Archer30, thanks, fixed. Crashes occur only if objects count is greater, than real number of lines. But less is ok, just the last object is excluded from generation at all ))


RE: Сборка HoMM3 ERA с модами. - ArKan - 28.08.2020 21:53

С новой Эрой возможно сделать независимый наем войск в городах?


RE: Сборка HoMM3 ERA с модами. - Berserker - 28.08.2020 22:53

ArKan, поясните, пожалуйста.


RE: Сборка HoMM3 ERA с модами. - daemon_n - 28.08.2020 23:00

Berserker, как я понял, возможность нанимать отдельно улучшенных и неулучшенных существ


RE: Сборка HoMM3 ERA с модами. - ArKan - 28.08.2020 23:25

Да. Обсуждалось уже со старым функционалом.

Интересно как с новым.


RE: Сборка HoMM3 ERA с модами. - daemon_n - 28.08.2020 23:37

ArKan, а что за старый? Мод на доп существ же есть - вот


RE: ERA III - Archer30 - 29.08.2020 13:42

Hi Berserker,

Nagash's spec doesn't work, he seem to have no spec now, neither +350 gold nor veil of darkness.
As for Jeddite, he still has his spec from WoG (Rebuiilding).

I kinda remember that you intended to revert their specs to H3 vanilla in ERA 3?


RE: ERA III - Berserker - 29.08.2020 13:47

Archer30, right, will check it out, thanks.

Use system (Windows) file inputs plugin. Credits: igrik.
https://dropmefiles.com/Ej8mo


RE: ERA III - igrik - 29.08.2020 17:11

Berserker, а что это и как оно работает? И почему "Credits" мои?


RE: ERA III - Berserker - 29.08.2020 18:06

igrik, не сработало. Завтра посмотрю, в чём проблема. Плагин должен просто загружать wog native dialogs и вызывать твою экспортируемую функцию в событии OnAfterWoG. Здесь первая версия со статическим импортом, но вторая просто вылетает. Не было времени с ходу понять, в чём проблема.


RE: ERA III - Archer30 - 30.08.2020 13:36

Hi Berserker,

There is a bug probably was originally from SoD that I hope to be resolved someday.

Wrong town description of random maps:
Image: hPN264E.png

As you see in the picture, blue is Conflux while the text description says it's Rampart, which is incorrect.
In fact, The type of town in the description is only related to player's colour (ie: Red - Castle, Blue - Rampart) instead of the actual choice the player made.

Apart from resolving this bug, a further request is to have these text exported to an external files so that it can be localized.

Btw, the issue about zaobjcts.txt I reported here was wrong. I used txt from ERA 2 and thought it was the same. 1415 would be the corrected number for ERA 3.

UPD: Thank you Berserker and igrik! Berserker slipped away too soon from Discord, but the plugin of wog 3.58 input dialog worked like a charm! That's just too good to be true!


RE: ERA III - helgtla - 30.08.2020 15:23

(27.08.2020 21:52)Berserker Wrote:  helgtla, Будет что ещё досадное — сразу пиши )
Пример:
В 2.9.х такой пример работал корректно. Т.е. бой стартует с монстром (триггер ивент), монстру даётся герой, который ставит мины и пески (игрок их не видит и они для него враждебны- при попадании урон/остановка). В 3.0.3 - установленные мины/пески для игрока "свои"(игрок их видит и они не причиняют урона) , а для "защитника"-враждебны (урон+ остановка).
Такое поведение теперь(3.0.3) ТОЛЬКО при условии, что бой "навязан игре" (триггер ивент), в случае если бой стартует "стандартно" с монстра/монстра в гарнизоне (которым выдаётся герой)- всё работает корректно.
В принципе у себя я поправил подобное заменив ресиверы вызова мин/песков на !!BH1&v5183=6:Q0/90/0; !!BH1&v5183=6:Q1/106/0; с ними проблем нет.
Суть: !!BM21 в 3.0.3 "работает" только при стандартной инициализации битвы(в 2.9.х - работало всегда, независимо от того, что послужило началом сражения).


RE: ERA III - daemon_n - 30.08.2020 18:30

Команда !!UR#1/#2/#3:XXXX; - университет в X Y L. Университет - тип 104.
перестала работать
!!URx1/x2/x3:Sy1/?y2/?y3/?y4; - в игре пишет "wrong internal university index" (типа нерабочая зона) - если нажать ПКМ на "желтый" квадрат (клетка посещения), игра вылетает.
На 2.9.14 всё работало.

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

Berserker, обновил сборку до Эры 3, называется, надеюсь, силы и время на все это есть36 Удачи!


RE: ERA III - Berserker - 31.08.2020 04:31

daemon_n, на тестовой карте проверял? Всем спасибо, буду смотреть.


RE: ERA III - RoseKavalier - 31.08.2020 06:05

(30.08.2020 13:36)Archer30 Wrote:  Hi Berserker,

There is a bug probably was originally from SoD that I hope to be resolved someday.

Wrong town description of random maps:
Image: hPN264E.png

As you see in the picture, blue is Conflux while the text description says it's Rampart, which is incorrect.
In fact, The type of town in the description is only related to player's colour (ie: Red - Castle, Blue - Rampart) instead of the actual choice the player made.

Apart from resolving this bug, a further request is to have these text exported to an external files so that it can be localized.

Method 1
Code:
_LHF_(RMG_PlayerTownSelection)
{
    c->eax = (*c->Local<INT8*>(4)) * 4;
    return EXEC_DEFAULT;
}
...
pi->WriteLoHook(0x54A4A2, RMG_PlayerTownSelection);
Method 2
Code:
bin patch @54A495
EB 03 90 90 90 F3 A4 8B 45 F0 8B 00 8D 95 DC FC FF FF C1 E0 02
Image: iJfNZnA.png

The description text is hardcoded in exe, it would be simplest to just rewrite it all with a hook using external json as text source starting at 54A2B0 and skipping to 54A4FA.


RE: ERA III - Archer30 - 02.09.2020 01:05

With so much effort and enlightenment from RK, my first bin patch is here.
rmg town info fix.bin
Code:
01 00 00 00 95 A4 54 00 15 00 00 00 EB 03 90 90 90 F3 A4 8B 45 F0 8B 00 8D 95 DC FC FF FF C1 E0 02
I know it has no use since RK is going to release his new mod about this. But this post is for remembering that for this patch I did not sleep last night. So many variants I tried and so many hours of testing, and it turned out my only mistake was forgetting to put the bin in ERAplugin\AfterWoG, instead it was in ERAplugin.


RE: ERA III - Berserker - 02.09.2020 16:45

RoseKavalier, thank you very much for info.

Quote:Berserker, можно ведь скрыть как-то кнопки на карте приключений?
Не в курсе.

Archer30, congrats with hard success Rolleyes. Write here if you fail to apply binary patch again ))))


RE: ERA III - XEPOMAHT - 02.09.2020 17:33

(02.09.2020 00:42)daemon_n Wrote:  можно ведь скрыть как-то кнопки на карте приключений?

Попробовать вызывать содовские функции DlgItem_Enable и DlgItem_Disable для диалога карты приключений разве что, если делать без костылей.


RE: ERA III - Archer30 - 02.09.2020 19:16

Berserker, next time I will not fall into such simple mistake again 96-copy

I have got a new question here - In ERA 3, names of creatures loads from crtraits.txt, and after wogification it loads from zcrtrait.txt instead. Is there any benefit of using different files? Is there any other text resources using the same strategy (using different files after wogification)?


RE: ERA III - Berserker - 02.09.2020 21:23

Archer30, all txt files are loaded before main window creation and are not reloaded anymore.
Look at Mods\WoG\Data\Redirections\Missing\era.json
You will find which files game uses, when it does not find requested resources. No zcrtrait => crtrait.txt there.


RE: ERA III - Archer30 - 02.09.2020 22:52

Berserker, thanks. It's pretty strange. I struggled with the Englsh creature names quite some time in scenario screen (right click on selected faction) with my localization mod loaded, and those names are all localized after starting a map. But now I can't reproduce it.
Maybe it's a failure of VFS. I should keep both zcrtrait.txt and crtraits.txt to prevent unexpected problem.

PS: Sometimes I extract txt in ...\mods\[mod name]\data to make some quick edit. I know it would interfere VFS. But even when I remove those txt, the VFS is frequently still messed up.


RE: ERA III - Berserker - 02.09.2020 23:04

Archer30, if txt file is present in data, it will be loaded and used until you terminate Heroes 3 executable. VFS should not be the source of issue.


RE: ERA III - daemon_n - 03.09.2020 18:49

Berserker, не помогло - "волшебство" на университете всё ещё крашит.

Code:
EIP: Era.45567 (Erm.Hook_ZvsApply + 31 in Erm.pas on line 4979 offset 3). Code: C0000005

> Registers
EAX: D88EBEF8 (int: -661733640)
ECX: 00000000 (int: 0)
EDC: 1AB776B0 (int: 448231088, pint: 0x00000011 = 17)
EBX: 0748DC18 (int: 122215448, pint: 0x00000000)
ESP: 02D30A2C (int: 47385132, pint: 0x0748DE26 = 122215974)
EBP: 02D30A44 (int: 47385156, pint: 0x02D30A84 = 47385220)
ESI: 02D30CEC (int: 47385836, pint: 0x00000014 = 20)
EDI: 1AB77600 (int: 448230912, pint: 0x1AB77580 = 448230784)



RE: ERA III - Berserker - 03.09.2020 21:00

Данный скрипт не рекомендуется использовать в реальных проектах. Он использует механизмы, которые могут быть изменены и позволяет памяти утекать.
По правой кнопке мыши на карте приключений циклически играет файл ACID.wav.




RE: ERA III - Bes - 03.09.2020 21:06

Berserker, 132 , таки сделал что хотел?


RE: ERA III - Berserker - 03.09.2020 21:31

Bes, нет, это просто кирпичики, заменить нужно весь механизм, но по сути он состоит из функций и нескольких структур данных.


RE: ERA III - Berserker - 04.09.2020 02:24

По запросу GarryR пишу универсальный настраиваемый мод Mixed Neutrals. Феникс всегда возрождается.


RE: ERA III - Algor - 05.09.2020 22:32

3.0.4:

Синтакис освобождения, типа !#VA(-myArts); вызывает ошибку:
Image: e3err1.jpg

1000 era - consts.erm:
!#DC(PRIM_SKILL_FIRST) = 0;
!#DC(SKILL_ATTACK) = 0;
!#DC(SKILL_DEFENSE) = 0;
!#DC(SKILL_POWER) = 0;
!#DC(SKILL_KNOWLEDGE) = 0;
!#DC(PRIM_SKILL_LAST) = 3;

1000 era - stdlib.erm:
Не мешало бы добавить (week), (month) и переименовать (isAi) в (isAI)


Точно проверить не могу (см п.1), но сильно подозреваю, что в общем случае пример из changelog'а не корректен, т.к номера могут выделяться не последовательно:



RE: ERA III - Berserker - 05.09.2020 22:52

Algor, спасибо, исправляю.

Я в именовании придерживаюсь соглашения о только первой заглавной в аббревиатурах. То есть ToHtml вместо ToHTML и GetId вместо GetID. Поскольку много капса сложно печатать.

Quote:Не мешало бы добавить (week), (month)
И monthWeek (0..3). Тут будет удобнее набор глобальных переменных. Их и проверять проще прямо в условии триггера.

Предлагаю:

i^timerDay^ 1..+inf
i^timerWeekDay^ 1..7
i^timerMonthDay^ 1..28
i^timerWeek^ 1..+inf
i^timerMonthWeek^ 1..4
i^timerMonth^ 1..+inf
i^timerOnce^ 0..1
i^timerOwner^ 0..7
i^timerIsAi^ 0..1
i^timerIsHuman^ 0..1

Quote:Точно проверить не могу (см п.1), но сильно подозреваю, что в общем случае пример из changelog'а не корректен, т.к номера могут выделяться не последовательно:
Я зарелизю мод сегодня, посмотришь. Индексы для массивов всегда последовательные.


RE: ERA III - Berserker - 05.09.2020 23:13

Вылет исправлен.
https://dropmefiles.com/PSysA


RE: ERA III - Algor - 06.09.2020 01:57

(05.09.2020 22:52)Berserker Wrote:  Я зарелизю мод сегодня, посмотришь. Индексы для массивов всегда последовательные.

Да, ругается, что не может выделить, если нет нужного последовательного куска. С одной стороны это хорошо, можно использовать такое свойство непрерывности. С другой - могут появиться проблемы с фрагментацией.
Нужно ли что-то менять? Наверное, нет. Просто учитывать, что большой массив из локальных переменных не всегда можно выкусить и использовать временные SN:M-слоты с последующим освобождением.


RE: ERA III - Berserker - 06.09.2020 02:04

Algor, для этих целей в SN:M добавилось значение 4-го параметра в виде (SN_M_TRIGGER_LOCAL). Массив автоосвобождается по выходу из текущего триггера. В моде на смешанные нейтралы активно пользуюсь.

По фрагментации всё верно. Можно через !#VA в начале функции объявить массивы, которые потом освобождать. Для огромных данных SN:M и SN:V в помощь.


RE: ERA III - Algor - 06.09.2020 02:14

(06.09.2020 02:04)Berserker Wrote:  Algor, для этих целей в SN:M добавилось значение 4-го параметра в виде (SN_M_TRIGGER_LOCAL).
Угу, видел в описании. Удобно.

(06.09.2020 02:04)Berserker Wrote:  По фрагментации всё верно. Можно через !#VA в начале функции объявить массивы, которые потом освобождать.
Если в своей функции, то зачем освобождать, если при выходе они и так обнулятся?
А если в общем триггере, это не поможет, т.к. хрен знает сколько таких переменных уже занято и не освобождено сторонними скриптами. Или я что-то не так понимаю? На примере сферического кода в вакууме:

UPD: туплю (сонный уже), написал код, а запустить и посмотреть не судьба.
Будет 1.
Но вопрос не в том, а в том, что объявление (myVar:y) затерло фактически использовавшуюся y1, т.е.


С этим могут быть проблемы. Наверное. Подумаю на свежую голову.


RE: ERA III - daemon_n - 06.09.2020 02:17

Algor, 1


Рад снова видеть!Rolleyes



RE: ERA III - Berserker - 06.09.2020 02:22

daemon_n, всё верно. будет 1 всегда. Потому как имена локальных переменных определены только до следующего триггера в тексте. Собственно, всё верно. Каждый обработчик будет насиловать y1..y100 по-своему.


RE: ERA III - Algor - 06.09.2020 02:30

(06.09.2020 02:22)Berserker Wrote:  Собственно, всё верно. Каждый обработчик будет насиловать y1..y100 по-своему.

Т.е., фактически, можно вообще никогда не использовать синтаксис освобождения, кроме отдельных способов особо циничного извращения (это я про попытки использования многих больших временных массивов без SN:M)

daemon_n, взаимно, но я пока еще не надолго.


RE: ERA III - Bes - 06.09.2020 02:34

(06.09.2020 02:14)Algor Wrote:  Но вопрос не в том, а в том, что объявление (myVar:y) затерло фактически использовавшуюся y1, т.е.


С этим могут быть проблемы. Наверное. Подумаю на свежую голову.
Berserker, а вот да, вопрос почему !!VR(myVar:y):S1; возьмёт y1, а не y2. ERM2 разве не смотрит, есть ли в использовании y1 до присвоения ей метки myVar ???Unsure


RE: ERA III - Berserker - 06.09.2020 02:41

Algor, да, но вдруг тебе сперва нужен массив на 50 ячеек, потом высчитать среднее по ним, потом сгенерировать другие 50 чисел на основе среднего + рандома. Вот тут и придётся, чтобы уместиться в y1..y100 и использовать два разных логических имени, таки освободить первый массив. А так будет очень редко использоваться.

Bes, локальные переменные локальны для одного триггера до следующего триггера в тексте. Реальный код точно также переиспользует y1.

!?BA0;
!!BA:H0/?y1;
...

!?BA0;
!!OW:C?y1;
...


RE: ERA III - Algor - 06.09.2020 12:18

(06.09.2020 02:41)Berserker Wrote:  Algor, да, но вдруг тебе сперва нужен массив на 50 ячеек, потом высчитать среднее по ним, потом сгенерировать другие 50 чисел на основе среднего + рандома. Вот тут и придётся
Это как раз тот случай, который я выше описал как "особо циничное извращение".


(06.09.2020 02:41)Berserker Wrote:  Bes, локальные переменные локальны для одного триггера до следующего триггера в тексте. Реальный код точно также переиспользует y1.

Берс, даже внутри одного триггера:


Т.е. использовать смешанный стиль вообще раскованно и, по-хорошему, недопустимо.

Это НЕ плохо.

Если взялся за оружие написал ZVSE2, будь готов получить пулю добр использовать только новые правила. Главное, чтобы при этом не возникало коллизий с используемым в сборке старым кодом. Навскидку, да, не должно. На практике - посмотрим.


RE: ERA III - Berserker - 06.09.2020 16:11

Algor, всё верно, смешивать нельзя. Но можно взять старый код и обновить только один триггер или дописать один новый обработчик в новом стиле. Плавное улучшение. На это был расчёт.


RE: ERA III - daemon_n - 06.09.2020 17:00

!!HE-1:N?y1;
   при смене героя кликом на интерфейсе не изменятся, пока новый герой не совершит действие - считаю, это баг, ведь активный герой теперь другой102


RE: ERA III - Berserker - 06.09.2020 17:16

daemon_n, активный/выделенный герой возвращается через OW:A.
Использовать -1 вместо номера героя не рекомендуется вообще. Это значение в ЕРМ, которое заполняют часть триггеров, активируемых героем. Часть, не все. Любые вложенные события его могут переписать. Потому делаем сразу !!HE-1:N?(hero:y) и далее уже пользуемся переменной. И да, до события !?HM, как видишь, -1 не работает. Это не баг.


RE: ERA III - daemon_n - 06.09.2020 17:29

Berserker, спасибо огромное - ты заставил рабоать скрипт верно!Dance3


RE: ERA III - Algor - 06.09.2020 18:28

era iii changelog Wrote:Note, that similar OnBattleStackObtainsTurn event occurs when stack becomes active and is not related to regeneration phase at all.
    Normally OnBattleStackObtainsTurn occurs after OnBattleRegenerationPhase but may also be triggered manually by calling
    464F10 (THISCALL, ecx = CombatManager, Side 0..1, StackInd 0..21).

Мне надо при помощи ERM в произвольном месте кода передать активность нужному мне отряду. Фаза регенерации не нужна. Можно пример?


RE: ERA III - Berserker - 06.09.2020 18:57

Не проверял, но попробуй:



RE: ERA III - Bes - 07.09.2020 19:15

(22.08.2020 18:49)Berserker Wrote:  Для будущей сборки от daemon_n обновление DLL:
https://dropmefiles.com/mVx0z
[-] Fixed bug: HE:P used to return unsigned 65535 instead of signed -1.
[-] Fixed bug: ERM compiler didn't process post-triggers.
[-] Fixed bug, causing SN:K with 3 parameters to return garbage string instead of valid character.
нет упоминания об этом исправлении в основном changelog листе исталлятора. 141
надеюсь, просто забыл добавить текст, а само исправление уже включено?


RE: ERA III - Berserker - 07.09.2020 21:05

Bes, это исправление переименовано в более общее.


RE: ERA III - igrik - 08.09.2020 17:10

Berserker, в 1000 era - const.erm
Id первичных скиллов ты недозаполнил



RE: ERA III - Berserker - 08.09.2020 17:26

igrik, выше указал Алгор. Первички уже поправил. На днях 3.0.5 с исправлениями нужно выпустить.
За MON_LAST_WOG спасибо, исправил.

Когда сам пишешь, гораздо быстрее проблемы и недочёты обнаруживаются.


RE: ERA III - Berserker - 16.09.2020 04:03

[+] Added exported functions for array sorting:
// Sorts given integer array in ascending order
procedure SortInt32 (Arr: pointer to array of integer; MinInd, MaxInd: integer); stdcall;
// Sorts given integer array in ascending order using custom ERM comparator function
procedure Erm_CustomStableSortInt32 (Arr: pointer to array of integer; MinInd, MaxInd: integer; ComparatorFuncId: integer; State: integer); stdcall;

The caller passes ID of ERM function, which will be used for items comparison. The function must return:
    - 0 if two values are equal;
    - positive number if the first value is greater than the second one (i.e. +1);
    - negative number if the first value is smaller, than the second one (i.e. -1).

The comparator function prototype is:
Function will always receive special 'State' argument, containing the value, you specified calling Erm_CustomStableSortInt32.
This value may hold array ID, some structure address or any other useful custom data.



RE: ERA III - Archer30 - 18.09.2020 14:38

Hi Berserker, There is a small issue with the bin patch skeleton transformer fix.

As I notice that it enables hydra family to be transformed into bone dragons, which is quite good, however it has some issues.
1. Hell Hydra is not included. It still turns into skeleton.
2. If this patch makes hydra transform into bone dragon, then maybe hydra should have dragon nature as well (boost by dragon spec)?
3. And maybe Slayer should be considered too? (although that requires text change)

My preference: 1# is necessary to fix, as it's purely a bug. 2# and 3# hmmm...leave it be maybe.


RE: ERA III - Berserker - 18.09.2020 15:44

Archer30, I'm not original patch author, just included it in the first Era versions probably.


RE: ERA III - Archer30 - 18.09.2020 15:47

Oh, I see. Personally I don't think what this patch does makes sense to me in the first place. Maybe considering disable it by default?


RE: ERA III - Bes - 18.09.2020 16:00

я на выходных займусь, если никто не опередит, hell hydra и сделаю новый skeleton transformer fix.bin Sorry


RE: ERA III - Archer30 - 18.09.2020 16:09

That will do too 96-copy Thanks Bes


RE: ERA III - Bes - 19.09.2020 04:33

SKELETON TRANSFORMER FIX.BIN
Code:
; CREATURE XX TRANSFORMING TO YY
;
; 157 to 68
7C3F74 44
;
; 196 to 196
7C4010 C4



RE: ERA III - Bes - 19.09.2020 04:58

Berserker, я до сих пор использую bingen.exe, который как я понял в последствии стал BinMagic Unsure
Кстати, мне вдруг стало странно, что прочие не драконоподобные существа 7+ уровней также превращаются в Скелета Dry Может стоит этот патч нормально так расширить, чтобы всякие там Верховные Архангелы тоже становились не скелетами, а чуть мощнее? Драконами костяными?
В игре явно не хватает градации для конвертирования. Мы имеем только
- улучш.Единорог и Чемпион в Чёрного Рыцаря
- драконы в Костяного дракона
- все остальные в Скелета
- Боги/машины/башни естественно не подпадают по трансформатор


RE: ERA III - daemon_n - 19.09.2020 04:59

Bes, сразу скажу, что нет - по лору только драконы и гидры. Я бы только добавил драколича, горыныча, кровавого дракона, если они тоже в скелетов превращаются.

Archer30, does the bone dragon have dragon nature?


RE: ERA III - Bes - 19.09.2020 05:05

daemon_n, извини, не увидел что ты тож на форуме, думал втихую отредактирую себя, а получилось криво
Нет, Горынычи и Кровавые в Костяного превращаются, тут всё ок Yes
а вот что вся нежить Некрополиса трансформируется в Скелета, имхо, не логично. Вот это можно было бы поправить в патче (Привидение, кстати разрабы отключили от трансформации, и правильно)
Image: f215eeeb76a2.png


RE: ERA III - daemon_n - 19.09.2020 05:13

Bes, но не драколичи


RE: ERA III - Bes - 19.09.2020 05:18

daemon_n, забыли? или в разные временные этапы разные люди кодом занимались и потому последних просто проглядели 105


RE: ERA III - Bes - 19.09.2020 05:33

Berserker, короче, в патче оставил две правки
Драколичи в драколичей, Адские Гидры в костяных драконов
Мумий убрал, они будут, как и родственная нежить Некрополиса, превращаться как было прописано изначально. Я б под такую механику и Привидений в скелетов сделал, но... это не мне решать.
В общем, если согласишся ВСЮ нежить отлучить от трансформации, то добавлю их без вопросов


RE: ERA III - daemon_n - 19.09.2020 05:46

Bes, не-не-не, всё есть скелеты)
Большинство стратегий игры за некров преобразует 1-3 лвл некросуществ в скелетов.


RE: ERA III - Berserker - 19.09.2020 16:21

Согласен с daemon_n.
В оригинале драконы в драконов тоже превращались?


RE: ERA III - Bes - 19.09.2020 16:28

да, в оригинале и было, смотри ФИЗМиг, и конь в коня тоже оттуда. Ну, если тока WoG Team что-то не изменяло в этой таблице. Я лишь две позиции изменил, как видно выше...


RE: ERA III - Bes - 21.09.2020 00:26

Berserker, а ты для ERA3 будешь на github у себя инфу дополнять?
там отметка последняя в августе стоит Unsure


RE: ERA III - Berserker - 21.09.2020 01:08

Bes, не понял вопроса. Код в репозитории обновляется постоянно.


RE: ERA III - Bes - 21.09.2020 02:05

ну, на сайте последняя точка на календаре изменений (как я понял) указана 25 августа... а в сентябре то было обновление платформы


RE: ERA III - Berserker - 21.09.2020 02:22

Bes, там вообще какая-то дичь отображается. Например 2.8.4 не последний релиз. Так и не понял, почему.


RE: ERA III - daemon_n - 21.09.2020 04:49

Berserker, круто!!
ссылка на файл мертва.


RE: ERA III - V_Maiko - 21.09.2020 04:56

Any news about loop sounds support in this versión? Ab


RE: ERA III - Berserker - 21.09.2020 15:42

V_Maiko, postponed to the nearest versions (3.06, probably). I remember about it, written in TODO list Yes
daemon_n, спасибо, обновил.


RE: ERA III - Night - 22.09.2020 04:01

Berserker, послали направили меня сюда, по моему вопросу.
Суть из двух частей.

По первому моменту хочу узнать, отчего в новой Эре 3.0.4 (может и ранее) появилось два файла fast upgrade stacks in town.dll? Один находится в WoG и весит 10 752 байт, второй находится в GEM и весит 45 568 байт. По работе обоих файлов, каждого по отдельности я видео записал, но словами скажу, что тот, что "толще" - лучше. Он улучшает из 7 уровня существ в 8 уровень, при нажатии A + LMB, если опция На улучшенных существ включена, а тот, что в WoG на 10,5 кб - он только по существам SoD'a производит улучшения, а WoG не улучшает.

Плохо это тем, что скачав сборку, я открыл плагины, увидел, что мой основной используемый плагин отключен и включил его и у меня не улучшались существа WoG'a, только SoD'a.
Как-то разобраться с этим нужно, один оставить наверно. Лучший.

Второй момент связан также с fast upgrade stacks in town.dll и в частности его невозможность использовать в сетевой, при том, что играя с теми же настройками в одиночной никаких проблем нету. На записанном видео это показано. Спасает только дополнительный плагин, которые я подрубаю в HD-mod - Plugin.AutoGradeMonInTown.dll. Он улучшает не так хорошо, как fast upgrade stacks in town.dll в одиночной, но по крайней мере мобов SoD'a улучшить можно.

Плагин fast upgrade stacks in town.dll за авторством igrik, вроде бы...? Посмотрите пожалуйста, что не так с ним, когда по сети играешь. Возможно такой же код/запрет, как в BattleReplay был..




RE: ERA III - daemon_n - 22.09.2020 04:22

Night, Gem - это мой мод. Туда добавлен плагин, чтобы быть по умолчанию включенным.


RE: ERA III - Berserker - 22.09.2020 04:29

Night, в Эре нет указанных плагинов. В сборке игрика/даемона есть. Потому помочь с ними не могу.


RE: ERA III - Night - 22.09.2020 04:30

daemon_n, если твой включенный и работает отлично, зачем второй? Чтобы я его постоянно удалял из новой сборки? Такое себе...

Вот смотри - качаю сборку 3.0.4 по ссылке у тебя в подписи, устанавливаю чистую, открываю "Управление плагинами"

Это тот, что весит 10.5 кб и не гредит из 7 в 8. Твой в GEM он включен и работает отлично. Хорошо. Тогда на скрине который - зачем?
Только удалять, как скачал сборку, чтобы не мазолил глаза...


P.S. Если не твой daemon_n и не berserker'a - то кто туда его засунул?


RE: ERA III - daemon_n - 22.09.2020 04:41

Night, либо он всё-таки есть в чистой эре (скачай и поверь), либо я забыл удалить, что маловероятно116


RE: ERA III - Night - 22.09.2020 04:49

daemon_n,
Quote:либо я забыл удалить, что маловероятно

Зафиксировал Sm
Есть и в чистой эре и ты видимо забыл удалить в сборке.



RE: ERA III - daemon_n - 22.09.2020 04:52

Night, нет, я не забыл удалить (я бы забыл удалить, если в Эре данного плагина не было). Как я говорил ранее, мод Вог я более не изменяю. Чтобы пользователи могли обновить Эру сами, если я на обновляю сборку.


RE: ERA III - Night - 22.09.2020 04:58

daemon_n, ну тогда видимо Berserker'у из Era нужно убирать, раз в GEM он всегда будет? К чему плодить сущности разных файлов, создавая путаницу.
Щас запустил проверить с двумя включенными файлами - улучшает. А первый раз не улучшало, когда включил файл из папки WoG.
И вот разбери, когда она будет туда-сюда и кто еще включит, увидел, что у него отключено.


RE: ERA III - daemon_n - 22.09.2020 05:05

Night, нет, убирать не надо - разве что обновить до версии из сборки.
когда есть два файла с одинаковым именем, используется только последний в списке модов.
Будь механизм, позволяющий ругулировать плагины вне мода, я бы в GEM не добавлял - повторюсь, суть в том, что в моем моде это включено по умолчанию, и пользователи не искали способы включать что-либо - да и вряд ли о плагинах многие знают.


RE: ERA III - daemon_n - 22.09.2020 09:42

Berserker, а что за новый мод? Точнее, зачем скрипты вынесены в него?


RE: ERA III - wessonsm - 22.09.2020 11:18

(21.09.2020 03:44)Berserker Wrote:  [*] Creating array using SN:M with 5 parameters does not change v1 anymore.

При автовыделении номера массива (первый параметр -1) он по-прежнему пишется в v1?
Иначе некоторые из моих скриптов сломаются.


RE: ERA III - Berserker - 22.09.2020 15:32

Night, в чистой Эре он включён с расширением off, то есть неактивный. Когда-то включил, чтобы помочь распространению. Заменить на более новый из сборки даемона?
daemon_n, чтобы при отключении/удалении мода было 0 глобальных переменных, функций и констант, созданных Эрой. Если нужна полностью своя сборка. К тому же отдельный мод можно всегда отдать кому-то в шефство.

Quote:При автовыделении номера массива (первый параметр -1) он по-прежнему пишется в v1?
Иначе некоторые из моих скриптов сломаются.
При 4-х параметрах — да. Если используешь пятый, то нет. Пятый параметр даёт возможность не v1 портить, а записать в любую переменную.


RE: ERA III - XEPOMAHT - 22.09.2020 15:57

Что добавилось в era_camp.dll для редактора кампаний? В ченчлоге ни слова, а мне вот интересно.


RE: ERA III - Night - 22.09.2020 16:57

Berserker,
Quote:Сменить на более новый из сборки даемона?

Да, желательно. Я писал, что впервые скачав сборку, увидел, что отключён Dll - включил, а в игре не улучшались юниты.
Начал выяснять, что к чему, копаться... Странно, что потом повторив действия я так и не добился того, что при работающих двух файлах не улучшались существа с 7 на 8 уровень. Но раз один было, будет и у кого-нить подобное. Лучше сразу обновить файлом из сборки GEM.

Quote:Что добавилось в era_camp.dll
Тоже отметил. Любопытно также. Поддерживаю вопрос XEPOMAHT'a.


RE: ERA III - Berserker - 22.09.2020 17:31

XEPOMAHT, перевод на виртуальную файловую систему Эры 2.8х+.
Night, включу обновлённый.


RE: ERA III - Archer30 - 22.09.2020 19:35

A typo found when I localized ZNPC01.txt.

Line 107
Cavean - should be Clavean as in his bio.


RE: ERA III - Berserker - 22.09.2020 21:14

Archer30, thanks, will fix.


RE: ERA III - Bes - 24.09.2020 03:20

Berserker, ты этот патч использовал?
(07.04.2015 02:19)gamecreator Wrote:  
(07.04.2015 00:51)Elzivir Wrote:  при нападении героя AI на человека в режиме одиночной игры и при попытке последнего путем нажатия ПКМ на кнопку Defend (оборона) поменять тип атаки лучников/командира со стрельбы на рукопашную, выдается сообщение: "This feature does not work in Human vs Human network baced battle", т.е. если стрелки никем не заблокированы им остается лишь дистанционная атака, а переход в режим рукопашного боя невозможен, даже если вражеский юнит находится в пределах досягаемости. Причем, если на стороне атакующего героя будет человек, то данной проблемы не возникает

(07.04.2015 01:16)Berserker Wrote:  Может быть кто-нибудь напишет патч, отключающий проверку.

Лучше. Меняем проверку флага 997 на 998 (патч для памяти):
Code:
762604 С5



RE: ERA III - igrik - 24.09.2020 12:23

Berserker, при отладке скриптов очень сильно не хватает номера функции, из которой была вызвана функция с текущей ошибкой. Такое возможно реализовать? (опустим функции хукера)


RE: ERA III - Berserker - 24.09.2020 15:12

igrik, SN:F^GenerateDebugInfo^, после чего сразу же смотрим erm tracking.erm и чаще всего что-то видим. Подходит?

Bes, добавил в TODO, но решение должно быть другое.


RE: ERA III - igrik - 24.09.2020 19:46

(24.09.2020 15:12)Berserker Wrote:  igrik, SN:F^GenerateDebugInfo^, после чего сразу же смотрим erm tracking.erm и чаще всего что-то видим. Подходит?
Чутка конечно не то, но пойдёт (на самом деле я совсем забыл об этом способе).


(24.09.2020 15:12)Berserker Wrote:  Bes, добавил в TODO, но решение должно быть другое.
Почему это? Там действительно просто перепутан номер флага.


RE: ERA III - Berserker - 24.09.2020 20:24

igrik, понял, тогда просто применю патч. Спасибо! 4


RE: ERA III - Bes - 24.09.2020 21:59

Berserker, все патчи растерял за годы Dry, благо они все на форуме так или иначе есть Yes


RE: ERA III - Berserker - 24.09.2020 23:15

Bes, тебе нужно официальное звание «архивариуса» присвоить.


RE: ERA III - Bes - 25.09.2020 00:28

обойдусь "барахольщиком" 148



RE: ERA III - Archer30 - 27.09.2020 10:38

Hi Berserker!

Just wondering, is resolving the bug "revealing the whole XXL map + Load game = Crash" in the to-do list? I thought it was done a few versions ago but just found out I was wrong Rolleyes


RE: ERA III - Berserker - 27.09.2020 15:23

Archer30, hi, archer! No it's not in priority and was not fixed before.


RE: ERA III - Archer30 - 27.09.2020 16:40

Berserker, ok. Rolleyes

A new report to ERA 3:
Animated tree defs, including avlpntr6.def and avlpntr7.def seem to be accidentally packed.


RE: ERA III - Berserker - 27.09.2020 16:54

Archer30, really? I thought they were always in a separate pac. Maybe it's special decorative object, which can be manually placed on map>


RE: ERA III - Archer30 - 27.09.2020 17:02

Well, these 2 defs are also in wog - animated trees.pac from ERA 2 so you get that idea.

Edit: Sorry, it's more complicated than I thought. Let me show you screenshots below.
Left: Vanilla (static)
Middle: WoG main pac (animated)
Right: WoG Animated Tree (animated)

So basically the avlpntr6.def from animated tree pac doesn't make trees animated (becoz it's already animated), instead it change the shape and size of them.
My suggestion is just remove avlpntr6 and avlpntr7 (def+msk+msg) from wog if your idea is elimating animated trees.

Btw, you might also wanna do a file comparison between animated trees.pac and the main wog pac. As I see there are a few mutual files, which might also be considered removing.
Black - same
Red - different

List of mutual files (in text)



RE: ERA III - Berserker - 27.09.2020 18:11

Archer30, thank you very much for detailed investigation. Added everything to TODO. Will be fixed.


RE: ERA III - XEPOMAHT - 27.09.2020 23:44

От msg, как от необъяснимого наследия вога, можно было бы вообще избавиться в ERA (например, проект MoP спокойно обходится без msg).


RE: ERA III - Berserker - 28.09.2020 00:55

XEPOMAHT, подскажи, пожалуйста, как? Затронет ли это редактор карт?


RE: ERA III - RoseKavalier - 28.09.2020 01:09

^Replace 'msg' to 'msk' in maped and in Grayface patch, done.


RE: ERA III - Raistlin - 28.09.2020 01:41

А что вообще хранится в этих файлах?


RE: ERA III - RoseKavalier - 28.09.2020 06:52

(1) Width
(1) height
(6) mask of 8x6 cells with defined color
(6) mask of 8x6 cells with defined shadow


RE: ERA III - Raistlin - 28.09.2020 13:30

RoseKavalier, ok, thanks!


RE: ERA III - Berserker - 28.09.2020 16:45

Do I understand correctly, msg is 1 to 1 odd copy of msk?


RE: ERA III - XEPOMAHT - 28.09.2020 17:18

(28.09.2020 16:45)Berserker Wrote:  msg is 1 to 1 odd copy of msk?

Естественно. По крайней мере на MoP за 5 лет отказа от msg проблем в редакторе обнаружено не было.


RE: ERA III - Berserker - 28.09.2020 19:49

XEPOMAHT, нужно ли что-либо где-то патчить, как пишет Rose? В коде патча GrayFace msg обрабатываются, ищутся и т.д. Ты просто их удалил из pac-ов без каких-либо проблем?


RE: ERA III - Archer30 - 28.09.2020 19:54

Hi Berserker, I've got players reported that ERA 3 is not compatible with ExaGear, they are confused about it since it works great on ERA 2.46. Udated VFS is the reason I guess?


RE: ERA III - Berserker - 28.09.2020 19:57

Archer30, I think so. Era 2 has much simplier/higher level VFS implementation, which does not work with Unicode paths and does not handle many things. Though, it's safe to use on ExaGear-like emulators.

Perhaps, it's possible to restore it some day as a separate VFS of era 2.dll for systems without Unicode file names, but currently it's not in priority.


RE: ERA III - XEPOMAHT - 28.09.2020 20:21

(28.09.2020 19:49)Berserker Wrote:  XEPOMAHT, нужно ли что-либо где-то патчить, как пишет Rose?

Все строковые переменные, содержащие msg, заменяются на msk.

(28.09.2020 19:49)Berserker Wrote:  В коде патча GrayFace msg обрабатываются, ищутся и т.д.

Формат полностью совпадает, если что, исходники патча ведь есть, там можно посмотреть, если что-то заработает не так.

(28.09.2020 19:49)Berserker Wrote:  Ты просто их удалил из pac-ов без каких-либо проблем?

Просто удаляются 1 кликом мыши из архива.


RE: ERA III - Night - 29.09.2020 02:46

А почему в Эра 3 если в heroes.ini я включаю ErmLegacySupport=1, то загружая hotseat нельзя никаких символов ввести в поля никнеймов?
В этом меню (Click to View)
Если выйти и зайти в игру - всё нормально. Это к чему баг относиться, к движку Эры или...?

P.S. Если была ранее загружена сетевая и также если в одиночной играть - после выхода в меню нельзя в Hotseat ничего ввести. И "ESC" не нажимается, не выходит с игры.


RE: ERA III - Berserker - 29.09.2020 03:27

Night, одно с другим не связано вообще. Диалог я не менял.


RE: ERA III - Night - 29.09.2020 07:04

Berserker, Хм, лан, посмотрю ещё отчего такое, раньше просто не замечал подобного...На 2.9.14 всё ок.


RE: ERA III - Berserker - 29.09.2020 16:09

Night, дело в том, что я на 3.0.5 тоже любые символы ввожу. Это может быть hd-mod или wog native dialogs, но вряд ли Эра, ведь я диалог не менял уже давно.


RE: ERA III - Night - 29.09.2020 17:53

Berserker, дело не в любых, а в том, что вообще нельзя после загрузки вписать что-либо. И в главном меню ESC не работает.
Но я разобрался в чём дело. В поставке Эры включил "no erm scripts turning.bin" с ним такое и происходит. А именно:
Загружаем игру, потом выходим в главное меню, жмем Hotseat и в нём ничего не вводится. Вообще клавиатуру через раз отрубает.

В справке про заплатку указано:
Quote:Запрещает отключение ЕРМ скриптов при ошибках. Отключение производилось путём записи в место ошибки символа конца строки (#0), что вызывало обрезку скрипта при загрузке игры.
Но мне кажется тут (в Эре 3) она как-то иначе работает, потому что в 2.9.14 подобного не наблюдается.


RE: ERA III - Berserker - 29.09.2020 18:49

Night, подтверждаю. Жесть какая-то.

Проверил без HD — всё ок. Жду подтверждения.


RE: ERA III - Night - 29.09.2020 19:23

Berserker, Хм, сейчас проверил также без HD - такое же. Ещё я 2.9.14 не тот файл отключал, "no erm scripts turning.bin" у меня в папке был, чтобы список не засорял. Щас вернул оттуда, проверил - такая же ситуация. И в HD и без HD.


RE: ERA III - Berserker - 29.09.2020 21:32

Без HD мода не могу повторить баг. Идеально работает диалог при старте, загрузке, возвращении. Нужен ещё тестер.


RE: ERA III - Panda - 30.09.2020 10:23

Berserker, Night, протестировал немного, баг повторить не смог, все вводится без проблем - русские и английские символы, цифры.
ErmLegacySupport=1 - включен, no erm scripts turning.bin.off - выключен, HD мод 5.0 RC94 - включен, ERA 3.0.4, сборка 1.35 daemon_n от 09.09.2020.


RE: ERA III - daemon_n - 30.09.2020 10:33

Panda, так бинарник надо включить


RE: ERA III - Berserker - 30.09.2020 16:56

daemon_n, что тот бинарник вообще делает и к чему он здесь?

Нужно сперва войтив меню Хот Сит, потом загрузить любую игру, затем попытаться загрузить Хот Сит и уже там вводить во все поля.


RE: ERA III - daemon_n - 30.09.2020 17:02

(29.09.2020 17:53)Night Wrote:  Но я разобрался в чём дело. В поставке Эры включил "no erm scripts turning.bin" с ним такое и происходит. А именно:
Загружаем игру, потом выходим в главное меню, жмем Hotseat и в нём ничего не вводится. Вообще клавиатуру через раз отрубает.

В справке про заплатку указано:
Quote:Запрещает отключение ЕРМ скриптов при ошибках. Отключение производилось путём записи в место ошибки символа конца строки (#0), что вызывало обрезку скрипта при загрузке игры.
Но мне кажется тут (в Эре 3) она как-то иначе работает, потому что в 2.9.14 подобного не наблюдается.


Berserker,


RE: ERA III - Berserker - 30.09.2020 17:09

Спасибо. Этому патчу уже столько лет. К тому же он больше не актуален вообще, потому и выключен. Удаляю его.


RE: ERA III - Archer30 - 03.10.2020 21:52

Hi Berserker, can you share the source code of all war machines in blacksmith.dll please?96-copy


RE: ERA III - Berserker - 03.10.2020 22:16

No. Never. Don't ask.
Author: Baratorch or MoP, I don't remember.


RE: ERA III - Night - 03.10.2020 22:33

Archer30,
Quote:[+] Добавлен модуль "all war machines in blacksmith.dll" от baratorch. Он позволяет покупать все машины войны в кузнице.

This is the HD-mode developer. You can try to write to him by mail baratorch@yandex.ru


RE: ERA III - Archer30 - 03.10.2020 22:44

Thanks Berserker and Night. I have heard from daemon about his experience communicating with bara, was a very tough experience according to him. Rolleyes


RE: ERA III - Berserker - 03.10.2020 23:00

Night, Бара мне уже много лет не отвечает на письма на этот ящик.


RE: ERA III - Archer30 - 05.10.2020 19:29

There is function to remove a neutral stack when the amount is exactly 4095, right click on a 4095 stack and we got this.
Image: AxmNyOl.jpg
Is this hard-coded? It seems to be a little bit old-fashionable - is this function still needed?


RE: ERA III - Berserker - 05.10.2020 19:32

Archer30, seems like some mod feature. Try without mods.


RE: ERA III - Archer30 - 05.10.2020 19:36

Tried )



RE: ERA III - daemon_n - 06.10.2020 19:14

Archer30, new game? checked your "wog/data/s" folder?


RE: ERA III - Archer30 - 06.10.2020 19:38

daemon, I don't even have a "s" folder from mods\wog\data. Neither it shouldn't be just me having this dialog, set a stack with quantity equal to 4095 and check for yourself )


RE: ERA III - daemon_n - 06.10.2020 19:39

backdoor :mon_demon:


RE: ERA III - Berserker - 06.10.2020 21:34

Archer30, there is real issue with such stacks. Many functions, calculating Fight Value or other value multiply monster quantity by big number. Such number must not exceed 2 147 483 647. Of course, simple binary patch is able to suppress the above mentioned message. We need to find out Azure Dragon fight value and calculate possible new limit.


RE: ERA III - daemon_n - 06.10.2020 22:21

Berserker,

Azure Dragon
AI Value - 78845
Fight Value - 56315


RE: ERA III - V_Maiko - 06.10.2020 22:34

Berserker, daemon_n, , I do not agree to put a limit equal to or below Azure Dragon to the values of the creatures, in my mod I have creatures more powerful than Azure Dragon and therefore the AI value will be higher, look at this case.
Image: Screenshot-1.png


RE: ERA III - Berserker - 07.10.2020 00:06

Посмотрел я код WoG. Максимальное число монстров в виде отряда на карте — 4095 или 12 бит. Больше просто физически не хранится. Кто-нибудь, проведите эксперимент. Установить число 4095 и дождитесь прироста населения. Если число монстров не увеличится на 10%, то проверку можно убрать. Важно, чтобы ЕРМ скрипты и моды учитывали это ограничение на !!MO:G.


RE: ERA III - Night - 07.10.2020 00:17

Berserker, не знаю, насколько соответствует моя проверка твоей задаче, но я как только увидел сообщение Archer30, где предлагают убрать юнит с карты, сразу захотел у себя такое же посмотреть и поставил в редакторе 4000 существ (больше не дало) гидр Т8, включил мод на увеличение нейтральных стаков на 10% в неделю и пропускал - не увеличились сверх этого лимита.
Эту проверил опцию (Click to View)
Другие не проверял, но там вроде, как опция в правилах игры, где по 4% в день армии увеличивает, она так делает, но у меня дальше другие дела появились, подзабилбыл дальше глянуть.


RE: ERA III - Berserker - 07.10.2020 02:03

Night, больше невозможно физически, но есть риск, что дальше начинает портиться поле «агрессия»:

unsigned Number :12; 12 бит
unsigned Agression : 5; 5 бит
Через ЕРМ физически больше не поставишь, уйдёт дальше в значение немногим > 0, то есть произойдёт переполнение.
Далее ждём понедельника.


RE: ERA III - Archer30 - 09.10.2020 10:49

Latest finding about Revealing the whole XXL map = crash upon loading

Basically, there are 5 ways in total to reveal the whole XXL map, they are
1. Heroes' vision (by walking through the whole map)
2. Skyship (The wonder of Tower)
3. Cheat code
4. Erm
5. Cartographer

I wasn't able to test the 1st as obviously it's too time consuming. But for the rest of them, an interesting finding is that the 5th, cartographer (with all 3 types) can safely reveal the whole map without a crash upon loading.

Download for examples: XXL Map+savegame revealed the whole map without crash

At this point, the way of revealing a map can be distributed into ethical and unethical ways. The ethical way provide a safe way of revealing the map, while the unethical way is dealing with the devil.
Ethical: Cartographer
Unethical: Skyship, cheat code and erm
not sure: Heros' vision

Another interesting finding is that if a map has been already revealed by Cartographer fully, it does not matter if it's revealed by unethical ways followed by, the savegame will still be safely loaded.

Now return to fixing the crash of XXL by revealing the map. A possible approach to solve this issue is comparing the difference between Cartographer and other ways. The might be enough to tell the answer.
Alternatively, assuming that revealing the map with heros' vision is an ehical way (very likely), the only thing needs to be fixed is Skyship in normal gameplay without cheating. A simple patch changing the effect of Skyship (for example, reveal only a fixed range) could resolve the crash problem.

____________________

Edit:A more interesting fact is that even with an unethical way for revealing, pass a turn and then save/load will also become safe.
This might be the best way to avoid crash before a real solution comes out.


RE: ERA III - XEPOMAHT - 09.10.2020 12:02

(09.10.2020 10:49)Archer30 Wrote:  Latest finding about Revealing the whole XXL map = crash upon loading

XXL-мод давно пора полностью переписать и встроить в era.dll. Например для MoP он когда-то был переписан на 90%, т.к. бинарная версия XXL-мода, которая используется в качестве мода для ERA, по тестам на MoP оказалась довольно багованной и просто недоделанной (сейчас и не вспомню конкретно, дело было года 3 назад...). Тем более часть пачтей XXL-мода заменяется HD-модом (радар, окно обзора королевства) и самой era.dll (патчи на воговские массивы данных, привязанные к размеру карты), поэтому предложение встроить XXL-мод в эру по-прежнему остаётся открытым (меня до сих пор смешит то, что глючный и недоделанный XXL-мод десятилетней давности - по прежнему один из популярных модов для ERA 96 ).


RE: ERA III - Berserker - 09.10.2020 13:41

Archer30, thanks for valuable report.

XEPOMAHT, это всё без конкретики.


RE: ERA III - Bes - 09.10.2020 13:58

Berserker, это же стиль подачи инфы у XEPOMAHT'а такой на форуме, ещё не привык?

XEPOMAHT Wrote:меня до сих пор смешит то, что глючный и недоделанный XXL-мод десятилетней давности - по прежнему один из популярных модов для ERA
ну, так он востребован игроками и потому им хоть какой-то, даже с багами, главное чтобы карты создавал


RE: ERA III - XEPOMAHT - 09.10.2020 15:06

(09.10.2020 13:58)Bes Wrote:  ну, так он востребован игроками и потому им хоть какой-то, даже с багами, главное чтобы карты создавал

Да, потому что не критично. Но тех же кнопок для генерации больших размеров по-прежнему на ERA нет (используются текущие id кнопок) и сам код получения размеров использует сложное вычисление размера вместо получения готовых значений (как в оригинале), что замедляет перерисовку окна карты приключений (а она перерисовывается практически постоянно, например в MoP перерисовку по движению мыши я вообще убрал и на моем древнем ПК немного поднялась производительность игры 148 ).


RE: ERA III - Bes - 10.10.2020 03:49

Berserker, если не секрет, можешь вкратце обрисовать дальнейшие свои планы в развитии линейки ERA3 ?
что так сказать в значимых планах файла TODO ?
иногда хочется так сказать испытывать чувство предвкушения (на этом наркотике вся киноиндустрия уж точно нас держит своими трэйлерами) от той или иной реализации или задумки Rolleyes


RE: ERA III - Berserker - 10.10.2020 04:02

Bes, выпуск мода на Смешанные Нейтралы 2, Управление циклическими звуками, Автообновление, Lua.


RE: ERA III - Bes - 10.10.2020 04:11

спасибо
ERM2.0 как я понимаю сейчас в окончательном релизе? только дошлифовка мелких огрехов и скрытых багов?
ничего из нового уже не ждать?


RE: ERA III - Berserker - 10.10.2020 14:52

Bes, как движок да, конечно.


RE: ERA III - igrik - 10.10.2020 21:11

(09.10.2020 12:02)XEPOMAHT Wrote:  XXL-мод давно пора полностью переписать и встроить в era.dll. Например для MoP он когда-то был переписан на 90%, т.к. бинарная версия XXL-мода, которая используется в качестве мода для ERA, по тестам на MoP оказалась довольно багованной и просто недоделанной (сейчас и не вспомню конкретно, дело было года 3 назад...). Тем более часть пачтей XXL-мода заменяется HD-модом (радар, окно обзора королевства) и самой era.dll (патчи на воговские массивы данных, привязанные к размеру карты), поэтому предложение встроить XXL-мод в эру по-прежнему остаётся открытым (меня до сих пор смешит то, что глючный и недоделанный XXL-мод десятилетней давности - по прежнему один из популярных модов для ERA ).
ХЕРОМАНТ, а дай свой код пожалуйста. Я попробую его адаптировать для ERA. Если уже есть готовый продукт, не хотелось бы копать всё заново с нуля.


RE: ERA III - XEPOMAHT - 11.10.2020 01:04

(10.10.2020 21:11)igrik Wrote:  Если уже есть готовый продукт, не хотелось бы копать всё заново с нуля.

Сохранились только сами "раскопки" - разобранный бинарник от AlexSpl и версия Андрея, на основе которых была написана версия под MoP: https://vk.com/doc-118013293_472373462

Из MoP - только диассемблированием (т.к. всё, что встраивается в mop.exe, производится без использования исходных кодов напрямую байткодом). Что не было встроено - только код, который ставит кнопки:

Code:
        mAlloc 68h
        DrawDefButton eax, 0DDh, 81, 41, 33, Экран_опций_карты_!_Кнопка_карты_180х180, RanSize180_def, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt

        mAlloc 68h
        DrawDefButton eax, 106h, 81, 41, 33, Экран_опций_карты_!_Кнопка_карты_216х216, RanSize216_def, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt

        mAlloc 68h
        DrawDefButton eax, 12Fh, 81, 41, 33, Экран_опций_карты_!_Кнопка_карты_252х252, RanSize252_def, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt

        mAlloc 68h
        DrawDefButton eax, 230, 535, 166, 40, Экран_опций_карты_!_Кнопка_меню_выбора_случайной_карты, 683580h, 0, 1, 0, 0, 2
        call AddItemToArray_MapOpt



RE: ERA III - igrik - 11.10.2020 19:43

Ох. Я понял что не всё так просто. В любом случае - спасибо!

PS: не сказать как я ошалел, когда увидел "40A08F E9B4940000; JMP 00413548" и то, что мы втупую прыгаем из одной функции прямо в свитч другой функции. Это вообще нормально?


RE: ERA III - Berserker - 11.10.2020 19:56

igrik, если в свитче не используется ранее инициализированных локальных переменных/аргументов и обе функции имеют одно и то же число параметров и размер локальной памяти.


RE: ERA III - igrik - 11.10.2020 20:01

Вот то то и оно. Но в данном случае это совершенно не так...


RE: ERA III - XEPOMAHT - 12.10.2020 00:24

(11.10.2020 19:43)igrik Wrote:  Это вообще нормально?

Не очень нормально, поэтому в MoP просто берётся готовое значение из таблицы и пишется в local.2:

Code:
CPU Disasm
Address   Hex dump                  Command                                  Comments
0040A07F  |.  83F8 07               CMP EAX,7
0040A082  |.  77 22                 JA SHORT 0040A0A6
0040A084  |.  8B1485 585E7000       MOV EDX,DWORD PTR DS:[EAX*4+705E58]
0040A08B  |.  8955 F8               MOV DWORD PTR SS:[LOCAL.2],EDX
0040A08E  \.  EB 1D                 JMP SHORT 0040A0AD
0040A090   .  90                    NOP
0040A091   .  90                    NOP
0040A092   .  90                    NOP
0040A093   .  90                    NOP
0040A094   .  90                    NOP
0040A095   .  90                    NOP
0040A096   .  90                    NOP
0040A097   .  90                    NOP
0040A098   .  90                    NOP
0040A099   .  90                    NOP
0040A09A   .  90                    NOP
0040A09B   .  90                    NOP
0040A09C   .  90                    NOP
0040A09D   .  90                    NOP
0040A09E   .  90                    NOP
0040A09F   .  90                    NOP
0040A0A0   .  90                    NOP
0040A0A1   .  90                    NOP
0040A0A2   .  90                    NOP
0040A0A3   .  90                    NOP
0040A0A4   .  90                    NOP
0040A0A5   .  90                    NOP
0040A0A6  />  C745 F8 00008040      MOV DWORD PTR SS:[LOCAL.2],40800000

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


RE: ERA III - Bes - 14.10.2020 01:56

Berserker, хорошо бы таки поставлять в инсталляторе ERA инфу по идущим с WoG патчам, дабы сразу нуждающиеся в их расшифровке понимали что тот или иной bin (даже из числа *.off) в себе несёт конкретно.
** - на правах пожеланий


RE: ERA III - SergOz - 15.10.2020 18:27

JC_howdy
Подскажите, что неправильного в таком коде:

P.S. Эра 3.04


RE: ERA III - Berserker - 15.10.2020 18:48

SergOz, это рудимент воговского кода только для команды !!HE[xxx], попробую исправить.

А тебе нужны локальные переменные.



RE: ERA III - Berserker - 15.10.2020 19:01

Спасибо за отчёт.
[-] Fixed HE receiver to support any ERM variable like !!HEi^heroId^.
https://dropmefiles.com/zzPVA


RE: ERA III - SergOz - 15.10.2020 19:07

Berserker, вот ещё что. В школе по Эра III не нашёл упоминания об глобальных строковых s^xxx^, хотя здесь упоминание о них было.

P.S. Увидел правку [-] Fixed HE receiver to support any ERM variable like !!HEi^heroId^.
Для того чтобы заработало, что нужно сделать?


RE: ERA III - Berserker - 15.10.2020 19:36

SergOz, прямо в том же посте по ссылке выкачать обновлённую dll? 96-copy

s^...^ и i^...^ это глобальные переменные, с которыми работает и команда SN:W. Просто команда по типу аргументов определяет, строка имеется в виду или число, а «голые» переменные нуждаются в явном указании. Напомню, для каждого ключа SN:W в действительности хранит 1 строковую и одну числовую переменную.


RE: ERA III - Berserker - 17.10.2020 19:36

SN:O исправлена, спасибо игрику. Заодно и в ЕРМ коде исправили одну неточность.


RE: ERA III - Bes - 17.10.2020 19:41

Berserker, здорово. 132
одно печалит, что все такие косяки ERA команд (SN:K, SN:O) остались в ERA2.9.14, которая для многих пока является базой (а может и останется на несколько лет, как то было с ERA2.46).
Ты ну совсем не хочешь/сможешь сделать 2.9.15 ? Sorry
(исключительно для правки erm-команд, не более)


RE: ERA III - igrik - 17.10.2020 19:44

Bes, я лично против. Если и делать, то откат до версии ниже 2.8.3.
Чтобы такие моды, как у Валерия, работали корректно. Другие обновления - я вижу неправильными.


RE: ERA III - Bes - 17.10.2020 19:48

igrik, странно слышать именно от тебя это "против", когда именно благодаря тебе была выпущена 2.9.14 при уже выпущенной на тот момент ERA3 Dry


RE: ERA III - igrik - 17.10.2020 19:50

Когда такое было? 36


RE: ERA III - Bes - 17.10.2020 19:53

соррян, 2.9.13 (март-апрель 2020г.)


RE: ERA III - Night - 17.10.2020 21:27

Berserker, в теме смешанных нейтралов, ссылка на era.dll и прочее - насколько актуальна в рабочем смысле?

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

Вообщем из предыдущего сообщения (от 29.09) era.dll вернул и перестали внезапные краши появляться.
Если нужен Debug, то вот ссылка. Без сейва, ибо краши внезапные и не повторяемые были.


RE: ERA III - Berserker - 17.10.2020 22:41

Night, актуально последняя, но ты файл из DebugMaps не распаковал или вылет какой-то странный на повышении героя. Сложно сказать.
Если будет возможностьв сингле проверить, скину тебе ещё более актуальную. Но с вылетом что-то непонятное.


RE: ERA III - Night - 17.10.2020 23:25

Berserker,
Quote:Но с вылетом что-то непонятное.
Я также подумал.
Файл распаковал, из Debug maps с заменой, проверил только что, у меня сборка осталась та, что я брату на комп в отдельную папку закидывал. Сравнил в Тотале, одинаковые. Из твоего архива и того, что игралось и крашило.




RE: ERA III - Bes - 18.10.2020 04:24

Berserker, в истории изменений опечатка
Quote:d& unsets bits, specified in #. d&17 unsets bits 1 and 16
Тут же имеется ввиду d~ как я понимаю


RE: ERA III - Berserker - 18.10.2020 04:59

Да, всё верно. Исправляю, спасибо.


RE: ERA III - Bes - 18.10.2020 05:28

(17.10.2020 19:41)Bes Wrote:  одно печалит, что все такие косяки ERA команд (SN:K, SN:O) остались в ERA2.9.14, которая для многих пока является базой (а может и останется на несколько лет, как то было с ERA2.46).
(17.10.2020 19:44)igrik Wrote:  Bes, я лично против. Если и делать, то откат до версии ниже 2.8.3.
Чтобы такие моды, как у Валерия, работали корректно. Другие обновления - я вижу неправильными.


увы, но я вынужден для текущей версии справки по ерм делать вот такие замечания Dry
(справку, с ориентированием на движок ERM2 я не планирую)
Quote:SN:O
...
Комментарии:
  • ...
  • Если же кликнуть на любом из входов объекта, возвращает координату этого же входа.
    Замечание: команда вызывает сбои игры, если кликнуть на входе, где стоит активный герой.



RE: ERA III - igrik - 18.10.2020 05:45

(18.10.2020 05:28)Bes Wrote:  увы, но я вынужден для текущей версии справки по ерм делать вот такие замечания Dry
(справку, с ориентированием на движок ERM2 я не планирую)
Quote:SN:O
...
Комментарии:
  • ...
  • Если же кликнуть на любом из входов объекта, возвращает координату этого же входа.
    Замечание: команда вызывает сбои игры, если кликнуть на входе, где стоит активный герой.
Не активный герой! Пассивный))

Пример: активный Орин, где угодно на карте.
Пассивынй Джелу, в двеллинге у эльфов.

Активный Орин кликает на двеллинге этих эльфов - Джелу исчезает.
Если активный Джелу кликает по двеллингу, где стои Джелу - всё норм. Если стоит пассивный Орин, Орин пропадёт.

А ю нау ндастэнд?)))


RE: ERA III - Bes - 18.10.2020 05:48

если Оррин активный, стоит на входе, и кликнуть на этот вход - бага не будет?


RE: ERA III - igrik - 18.10.2020 05:50

Нет. Только если кликнет активный Орин.


RE: ERA III - Bes - 18.10.2020 05:53

Code:
команда вызывает сбои игры, если кликнуть на входе, где стоит другой герой.
ок, исправил, хотя лучше бы этого бага в принципе не было... как и других у SN при работе со строками Kap (в ERA2)


RE: ERA III - XEPOMAHT - 18.10.2020 14:27

(18.10.2020 05:53)Bes Wrote:  хотя лучше бы этого бага в принципе не было...

Надо было рапортовать ещё лет 5 назад, когда этот баг (ну я бы не считал это багом, просто так реализована функция в самой игре) был известен (правда и самой SN:O тогда ещё не было, а использовался её SN:E-аналог, я тогда очень удивился, что Берсеркер вдруг без повода сделал из неё отдельную команду). Тогда наверное и исправлен он был бы быстрее. Для пользователей старых версий ERA можно добавить решение из ERA+ (работает и на старых версиях ERA) или код от Игрика на замену SN:O или аналогичную ассемблерную функцию из MoP, написанную ещё чёрт знает когда, в которой этого бага соответственно тоже нет.


RE: ERA III - Berserker - 18.10.2020 16:58

Накопилось много изменений с момента предыдущего релиза. Следующая версия будет 3.1. С игриком ведём плодотворную работу.
Bes, ERM 1 — морально устаревший диалект, который никто больше поддерживать не будет. У нас не бесконечная жизнь. Новые скрипты игрика я могу открыть, прочесть и исправить. Старые скрипты без комментария на каждой строке — нет. И скорость разработки в разы выше.


RE: ERA III - Berserker - 18.10.2020 18:23




RE: ERA III - igrik - 18.10.2020 18:47

... а дальше - чёрная магия, а не код ...


RE: ERA III - Berserker - 18.10.2020 19:04

Кажется, спасибо, igrik-у, у нас будет диалог с выбором до 8-и изображений!
Image: NX5NI_ez4Og.jpg


RE: ERA III - Night - 18.10.2020 19:07

Berserker, Оооо, это Легендарная новость. Всякого можно теперь из идей реализовывать.

Это только на КП будет или в городе также сработает? Если верно последнее, то это ваще зачёт. Давно хотел сделать скрипт на скупку юнитов с карты, чтобы в городах были диалоги.

P.S. Кстати, что с тестированием. Говорил, что скинешь какие-то новые файлы, с кучей исправлений. Я сейчас играю одиночку, мог бы сразу проверить.


RE: ERA III - Berserker - 18.10.2020 19:56

Quote:Это только на КП будет или в городе также сработает?
В любых местах.


RE: ERA III - Berserker - 18.10.2020 21:50

Тестируем уже:
Image: 8j37KmQuwFM.jpg?size=584x393&amp;qua...194d6982b7



RE: ERA III - Berserker - 19.10.2020 01:02

Code:
[+] Implemented extended complex dialogs support in ERM. Credits: igrik, Berserker.
    IF:N(msgType/^text^[/?result/(textAlignment)/(preselectedPicId)].
    Display dialog with up to selectable 8 pictures.

    msgType           is one of MSG_TYPE_XXX constants (message, question, popup, picture selection with optional cancel button).
    textAlignment     is bit mask of TEXT_ALIGN_XXX flags. Both vertical and horisontal alignment are supported. -1 means "use default".
    preselectedPicId  is preselected picture index: 0-7 or -1 for none
    result            will contain -1 in most cases, (TRUE) or (FALSE) for questions, 0-7 (picture index) for picture selection and -1 for cancelled selection.

    Example:

    !?FU(OnAfterErmInstructions);
    !!IF:N(PIC_TYPE_SPELL)/(SPELL_TOWN_PORTAL)/(PIC_TYPE_RES_GOLD)/300/
          (PIC_TYPE_RES_WOOD)/5/(PIC_TYPE_RES_MERCURY)/10/(PIC_TYPE_RES_ORE)/15/
          (PIC_TYPE_RES_SULFUR)/20/(PIC_TYPE_RES_CRYSTAL)/25/(PIC_TYPE_MONEY)/5000;

    !!IF:N(MSG_TYPE_CHOOSE_PIC_OR_CANCEL)/^Take anything you need, bro!^/?(chosenItem:y)/(TEXT_ALIGN_LEFT);

    !!IF:M^%(chosenItem)^;



RE: ERA III - XEPOMAHT - 19.10.2020 01:15

(18.10.2020 19:04)Berserker Wrote:  у нас будет диалог с выбором до 8-и изображений!

Круто. Надеюсь, совместимость с messages.dll не сломана?


RE: ERA III - Berserker - 19.10.2020 01:32

XEPOMAHT, не тестировали. Дашь библиотеку и тестовый код? Напомни, что она позволяла делать. Забываю постоянно.


RE: ERA III - XEPOMAHT - 19.10.2020 02:00

(19.10.2020 01:32)Berserker Wrote:  Дашь библиотеку и тестовый код?

Из ERA+ можно скопировать. Завтра на работе попробую протестировать.


(19.10.2020 01:32)Berserker Wrote:  Напомни, что она позволяла делать. Забываю постоянно.

(01.05.2019 00:46)XEPOMAHT Wrote:  
(30.04.2019 19:38)igrik Wrote:  По messages.dll: есть исходник или хотя бы инструкция как им пользоваться?

Там просто прописывается в typemsgs.txt имя дефа, номер спрайта, текст под картинкой и подсказка по пкм. Затем можно вызывать сообщение с картинкой любыми средствами, например "!!IF:Q1/100/1/4/z100504;" (ERM) или "Message стр ebx*4+524 MoPSpec, Type_Msg_RMBINFO, Pic_MoP, Pic_Арена" (WERD)

Исходник наверное есть у Берсеркера. И в исходниках MoP ассемблерный код тоже можно найти.



RE: ERA III - Berserker - 19.10.2020 03:11

Хорошая идея. Нужно сделать такую возможность без привязки к messages.dll. Совместимость пропадёт тогда, но messages.dll не расчитана на два и более мода.


RE: ERA III - XEPOMAHT - 19.10.2020 03:38

(19.10.2020 03:11)Berserker Wrote:  Совместимость пропадёт тогда, но messages.dll не расчитана на два и более мода.

Оно и используется, на моей памяти, только в 2-х модах - Фениксе и ERA+, которые... и так не совместимы друг с другом. Режима глобального мода в ERA (чтобы глупые пользователи модов не могли их запустить единовременно) по-прежнему увы нет (как будто это только мне нужно).


RE: ERA III - Berserker - 19.10.2020 05:03

XEPOMAHT, может и можно сохранить совместимость. Реализовали с игриком поддержку выбора картинки по умолчанию для диалога:
https://yadi.sk/i/gUmUzwwL-0aUIQ



RE: ERA III - XEPOMAHT - 19.10.2020 11:36

(18.10.2020 21:50)Berserker Wrote:  Тестируем уже:
Image: 8j37KmQuwFM.jpg?size=584x393&amp;qua...194d6982b7

Протестировал. С ERA+ несовместимо, увы.

На этой строке при любом раскладе

Code:
!!IF:N(MSG_TYPE_CHOOSE_PIC_OR_CANCEL)/^Hi!^/?(res:y);

вылетает всегда:

Code:
Failed to read data at ECE8EDE0.
EIP: H3era.004F55D3. Code: C0000005

> Registers
EAX: 00000000 (int: 0)
ECX: FFFFFFFF (int: -1)
EDC: ECE8EDE0 (int: -320279072)
EBX: 00227F8C (int: 2260876, pint: 0x00000024 = 36)
ESP: 00227C38 (int: 2260024, pint: 0x00227F8C = 2260876)
EBP: 00227D00 (int: 2260224, pint: 0x00227D20 = 2260256)
ESI: FFFFFFFF (int: -1)
EDI: ECE8EDE0 (int: -320279072)

Ну и проверки на синтаксис так же на новой команде нет, берёт в себя любой мусор, а проверка на синтаксис работает только для старых !!IF:N-команд.


RE: ERA III - igrik - 19.10.2020 13:25

(19.10.2020 11:36)XEPOMAHT Wrote:  
(18.10.2020 21:50)Berserker Wrote:  Тестируем уже:
Image: 8j37KmQuwFM.jpg?size=584x393&amp;qua...194d6982b7

Протестировал. С ERA+ несовместимо, увы.

На этой строке при любом раскладе

Code:
!!IF:N(MSG_TYPE_CHOOSE_PIC_OR_CANCEL)/^Hi!^/?(res:y);

вылетает всегда
А как ты смог протестировать, если у тебя нет новых era.dll и wog native dialogs.era?
Я сейчас поставил ERA+ и протестировал. У меня всё отлично работает.
Image: Image.jpg

На данном скрине видно, что:
1. Работает выравнивание текста СЛЕВА
2. Выбран элемент №6 (напомню, что индексация 0-7)
3. Элемент №6 выбран по дефолту (т.е. элемент при показе диалога уже подсвечен и активна клавиша ОК)
4. Тип сообщения 10 (есть выбор элементов, кнопки ОК и ОТМЕНА)


RE: ERA III - XEPOMAHT - 19.10.2020 14:01

(19.10.2020 13:25)igrik Wrote:  А как ты смог протестировать, если у тебя нет новых era.dll и wog native dialogs.era?

Меня воодушевил призыв Берсеркера (видимо с бодуна неправильно его понял), скачал версию era.dll, что постом выше, почему-то на радостях подумал, что там оно есть. JC_see_stars

(19.10.2020 13:25)igrik Wrote:  Я сейчас поставил ERA+ и протестировал. У меня всё отлично работает.

Это хорошо. Значит в будущем можно пытаться переходить на ERA 3.1, раз такие фишки добавляются, ERM эволюционирует дальше. Ab


RE: ERA III - Berserker - 19.10.2020 15:19

XEPOMAHT, проверил, messages.dll из Феникса не вылетает.


RE: ERA III - Bes - 19.10.2020 17:34

Berserker Wrote:Дашь библиотеку и тестовый код? Напомни, что она позволяла делать. Забываю постоянно
Berserker, вот тема ж по messages.dll - http://wforum.heroes35.net/showthread.php?tid=5659
делал специально летом её, чтоб потом не искать где попало, а сразу под глазами 116
там же и есть исходники от Мастера


RE: ERA III - Berserker - 20.10.2020 03:51

Code:
[+] Improved UN:U command. It does not raise error if no more objects are found, but sets x-coordinate to -1 instead. Thus no premature
    objects counting is required. A new syntax with 6 parameters was added to allow using arbitrary integer variables instead of v-variables.
    !!UN:U(objectType)/(objectSubtype)/(direction like -1/-2 or object index)/(x)/(y)/(z).

    Example:
    ; Let's traverse through all map monsters, doubling their quantity

    !#VA(x:y) (y:y) (z:y); define variables to store object coordinates
    !!VR(x):S-1;           setting x-coordinate to -1 will force to start search from scratch
    
    !!re i; endless loop
      !!UN:U(OBJ_MONSTER)/(ANY_OBJ)/-1/(x)/(y)/(z); find next monster, (x) = -1 on failure
      !!br&(x)<0:;                                  exit loop if nothing found
      !!MO(x)/(y)/(z):Gd*2;                         double monsters quantity
    !!en:;



RE: ERA III - Archer30 - 20.10.2020 14:39

Thanks for the update Berserker, great work!

Just wondering if the Era Erm Framework mod is the latest in ERA 3.1.0. By checking files it is the same as in 3.0.5.

Another thing is the animated trees. I thought you would have removed them 102


RE: ERA III - Berserker - 20.10.2020 15:27

Archer30, thanks for report, you're right. Will release 3.1.1 update in a few hours, I hope.


RE: ERA III - Berserker - 20.10.2020 15:45

Reuploaded. Included missing Era Erm Framework files and:
[-] Removed rest files from "Animated Trees" mod. Credits: Archer30.

Version remains the same.


RE: ERA III - Berserker - 21.10.2020 05:07

If there are other unsolved issue, please mention, because 3.1.1 may be released soon.

В версии 3.1.1 планируется убрать у Санта-Гремлинов подарки и сделать урон от ледяной стрелы пропорциональным количеству Санта-Гремлинов, одновременно уменьшив его до 5 хитрым способом рандома.


RE: ERA III - Archer30 - 21.10.2020 07:30

Here I come again, the seeker of perfection.

Succubus and Astral Spirit skill icons from the latest WND were revamped to match H3 style (found here, Dlg_NPC1.def, Author: FfuzzyLogik).
Why not include them 102
Image: unknown.pngImage: unknown.png

Another concern is the primary skill icons in Kingdom Overview. The spell points and knowledge icons swapped places (the main difference is the "scroll").
Fixed: pskil32.def

And another one. The compatibility with Warmachine Enhancement II option.
The script uses 124 as the creature number of Catapult in normal battles. The big portrait was replaced to make the compatibility, while nothing was done to the small portrait. It was all fine until we have Battle Queue by RoseKavalier.
Fixed: cprsmall.def (made from ERA 3.1.0)


RE: ERA III - Night - 21.10.2020 10:39

Berserker,
Quote:и сделать урон от ледяной стрелы пропорциональным количеству Санта-Гремлинов

Ну всё, значит я вечно на 3.1.0 играю...Kap
А как нам выиграть в начале, на максимальной сложности Difficulty мода с Судным днём на 5 число?) Сейчас только сантами и тащим Fie и то комп на 3 недели с полным набором прибегает под 10 шт т7 и прочей мишуры, когда у тебя едва наскреблось 5шт т7 не улучшенных.

Надеюсь изменение будет отменяемым/опциональным? 4

P.S. Против отключения подарков ничего не имею против, только за. А вот с уроном не вижу смысла править. Кто хочет, меняет в sptraits урон базовый и прочее, а кто не хочет, не меняет.


RE: ERA III - SergOz - 21.10.2020 12:45

(21.10.2020 10:39)Night Wrote:  Надеюсь изменение будет отменяемым/опциональным?
Хотелось бы чтобы все изменения были опциональными.
А вот если бы эти опции можно было вкл/выкл во время игры... JC_tongue


RE: ERA III - igrik - 21.10.2020 12:51

Специально для желающих, я сделаю плагин, который вернёт весь функционал Санта-Гремлинов. Но в ERA 3.1.1 и выше, это "недразумение" (я про нынешних Санта-Гремлинов) должно быть вырезано.

(21.10.2020 10:39)Night Wrote:  А как нам выиграть в начале, на максимальной сложности Difficulty мода с Судным днём на 5 число?) Сейчас только сантами и тащим Fie и то комп на 3 недели с полным набором прибегает под 10 шт т7 и прочей мишуры, когда у тебя едва наскреблось 5шт т7 не улучшенных.
А кто виноват, что Difficulty мод дисбалансит игру. Кто виноват, что Санта-Гремлины - такой же диспаланс, который позволяет противостоять дисбалансу Difficulty мода.
В целом, это всё какой-то бред, который не может быть обоснованным аргументом.


RE: ERA III - Night - 21.10.2020 12:59

SergOz, хотелочно оченя, да Rolleyes

В ГЕМ кстати уже реализовано это вкл/выкл - принятие существ за деньги, опция просмотра героев в бою по ПКМ. Удобно.


Если уж взялись за встроенные навыки, чудесно было бы сделать некий мод/опцию, который отключал выборочно любой из существующих встроенных.
Подарки гремлинов, призыв водного у Лазурных, стена огня у Пожаров и т.д. Вот такое чертовски хотелось бы увидеть когда-нибудь. Ибо накрутили Слава и Ко в Heroes 3.5 всякого мобам, встроили в exe, что не выковырять простым способом...


RE: ERA III - Night - 21.10.2020 13:05

igrik,
Quote:Кто виноват, что Санта-Гремлины - такой же диспаланс

Охрана, охрана ихняя дикий дисбаланс и бред.
Да и выглядит это ужасно, дичайшее кол-во существ из ниоткуда. (Click to View)

То что существа кастуют ледянной стрелой не так уж и бредово. Третий апдейт, да и дорогие они твари. Лучники их за раз убивают, скорости мало, хп мало, от существ с защитой от магии общей или магии воды не помогают. Мы уже игр 10 с ними бегаем, успели понять, где ими удобно, а где очень сложно использовать.

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


RE: ERA III - igrik - 21.10.2020 13:38

Будут вырезаны:
- подарки.
- каждодневное накопление в двеллингах.
- урон станет пропрциональным их кол-ву.

Останется только охрана (но тут я не уверен как решит Берс).


RE: ERA III - XEPOMAHT - 21.10.2020 14:00

(21.10.2020 13:38)igrik Wrote:  Будут вырезаны:
- подарки.
- каждодневное накопление в двеллингах.
- урон станет пропрциональным их кол-ву.

Останется только охрана (но тут я не уверен как решит Берс).

Что-то слишком радикально и противоречиво. Отредактировать стоит только все атакующие заклинания, чтобы они учитывали количество монстров при касте от монстров (для любых монстров, которым выставлена атакующая магия, там вообще Санта-Гремлины ни при чём). Остальное трогать - болезненно для игроков, привыкших к Санта-Гремлинам, ну и опять же эти игроки будут недовольны новой версией Эры и просто перестанут её обновлять.

Если Санта-Гремлины так сильно мешают балансу, то можно просто запретить в рандоме по-умолчанию (в Тифоне - поставить галочку в редакторе), оставив их полностью на совести картоделов. Ну и лишить возможности читерного апгрейда до них, заодно и повысить уровень и пересчитать все проставленные от фонаря параметры (так же делается с помощью Тифона, в MoP 2.xx было сделано очень давно вообще для всех монстров в игре, никто пока не жалуется, правда, может быть потому, что никто в MoP не играет 148 ).


RE: ERA III - Bes - 21.10.2020 14:01

(05.10.2020 15:56)Berserker Wrote:  
Вредители Moral148



RE: ERA III - igrik - 21.10.2020 14:17

Я ещё раз повторяю - я сделаю плагин, который будет возвращать их тупорылый функционал в полной мере. Кто захочет - пусть тот и пользуется.
Плагин будет восстанавливать функционал методом восстановления оригинального воговского asm кода - а значит никакая совместимость нигде не пострадает.


RE: ERA III - Berserker - 21.10.2020 15:23

igrik, слава тебе господе, ты свет в конце туннеля. Ребята, не забывайте, что сплошной ретроградизм, неприятие исправлений и инерция мышления убивают вообще любое направление.

Quote:Что-то слишком радикально и противоречиво.
Обычный прирост и пропорциональный урон — это не радикально, а нормально для Героев 3.

Quote:Отредактировать стоит только все атакующие заклинания, чтобы они учитывали количество монстров при касте от монстров
А сейчас не так?


RE: ERA III - Bes - 21.10.2020 15:45

Berserker, ретроградинг?
ты лучше скажи тебе то чем эти существа (да, дисбалансные, сомнительные,но как раз из числа необязательных в игре и не вездесущих), что ты в лидеры партии "НЕТ САНТЕ" подался?
они реально так встали в ERA поперёк горла?
(я не против движухи, я просто не вижу особой нужды в ней... слишком много внимания просто к этим гремлинам)


RE: ERA III - Berserker - 21.10.2020 15:47

Archer30, thanks for fixes 132. Each def rebuilding makes graphics worse. I'm afraid, all of us faced that issue. Anyway, I'll include your defs.

Bes, да, генерируются, используются в модах, а в бою полный швах. Или дисбалансный Win в кол-ве 1-1-1-1-1-1 или полнейший мусор, да ещё растут каждый день.. Какое бы ещё тупое свойство им придумать? Пусть после смерти воскресают в виде единорогов, если ты не против.


RE: ERA III - Bes - 21.10.2020 15:50

(21.10.2020 15:23)Berserker Wrote:  igrik, слава тебе господе, ты свет в конце туннеля..
сразу не позитивный смысл читается, а наоборот... веянье долгожданной кончины, и концов твоих многолетних мучений, а igrik прям эдаким ангелом смерти для тебя будет 96



RE: ERA III - Bes - 21.10.2020 15:55

Berserker, я понимаю, что столкнувшись с ними в реализации мода смешанных нейтралов, ты ощутил весь их дисбаланс. Но, как по мне, и зная твой некогда практикуемый подход "рациональное расходование сил и времени", хватило бы банального игнора их, сделав под это дело небольшое исключение в скрипте и всё.


RE: ERA III - Night - 21.10.2020 16:03

Berserker,
Quote:А сейчас не так?
Не так в большей части. Титаны бьют молнией всегда одним уроном, также как и магоги, также как стена пожаров и т.д.

Ну санта мне видятся без подарков (как мы уже играем давно), без гвардов и молния базовая (где-то 30 урона без Remagic) если существ =1 и +n, за каждого доп.существо, где n скажем 3 или 4 урона. Они всё таки дорогие довольно таки.

Просто если гвардов уберут в сборке - этот вариант будет гораздо желательнее. Я уже готов бы убрать сам, кодом, да брат возмущается, привык зараза Sm А так скажу, что вот новая версия, тут вырезали 96-copy

   Мне самому не очень нравятся последние игры, где первые 3 недели бегают по 4 героя с красношляпниками, но вижу имболансность именно в том, что гварды позволяют защититься на 2-3 хода, когда пробьют их и тем самым санта настреляют нормально.


RE: ERA III - Berserker - 21.10.2020 16:04

Bes, так игрик мне помог, подкинул адреса. И код ВоГ под рукой. Почему бы не исправить то, что во время многих партий в Феникс всегда казалось мусором с огромным Fight Value? Как думаешь? В остальном согласен. Если бы трудозатратно, не трогал бы.


RE: ERA III - Archer30 - 21.10.2020 16:05

(21.10.2020 15:47)Berserker Wrote:  Each def rebuilding makes graphics worse. I'm afraid, all of us faced that issue.

Oh no, I thought changing only the order of BMPs could avoid that. It turns out to be wrong...there are still minor differences before and after rebuilding. 112

I must keep a library of those most original BMPs.


RE: ERA III - Berserker - 21.10.2020 16:09

Night,
Quote:Титаны бьют молнией всегда одним уроном, также как и магоги, также как стена пожаров и т.д.
Это всё способности от системы опыта и мы про громовержцев?

Охрану планировал оставить. Средний урон 5 от лед. стрелы на санту. Выйдет магический апгрейд для мастер-гремлинов со стрелкой и охраной. FightValue/Цену пересчитаю. Приятно играть, интересно сражаться. Да, вероятность успешного каста ледяной стрелы для числа существ < 8 тогда будет рассчитываться как количество сант / 8. То есть малые отряды (по 1) будут чаще 0 урона наносить, а не бить как Герой с силой магии 1 и заклинанием второго уровня.

Archer30, you can unpack portraits from H3 complete, add those from WoG 3.58 and new ones, then rebuild. Should I send you WoG 3.58 package?


RE: ERA III - Night - 21.10.2020 16:16

Berserker, они стреляют Image: icebolt.png, а не Image: ma.png

Quote:Это всё способности от системы опыта и мы про громовержцев?
Это способности НЕ ОТ системы опыта, встроенные, такие же, как и у санта. Только у санта всё же увеличивается урон, если >64 юнита, там есть нехитрая формула, а вот с остальными мобами увеличения урона не заметил. Сейчас конечно посмотрю физ.миге вога, но кажется там ничего нету про это.

P.S. Некоторые заклинания монстры кастуют от навыков опыта, но урон там статичен. А другие кастуют от базовых умений (та же стена огня пожара), но и этот урон статичен 148

P.P.S.
Quote:Громовержец
Удар молнии при ударе (вближнем бою) из расчета 10 урона на одного Громовержца;
Не знал этого. Ну есть некоторые исключения. Где-то 50% существ имеют статичный, не зависящий от кол-ва монстров урон, а остальные капельку, но получают бонусы.


RE: ERA III - Bes - 21.10.2020 16:20

(21.10.2020 16:04)Berserker Wrote:  Bes, так игрик мне помог, подкинул адреса.
ты не думааешь, что igrik, возможно, затратил(ит) куда больше времени на это дело?
инфа для размышления, не надо отвечать.

Night Wrote:Просто если гвардов уберут в сборке - этот вариант будет гораздо желательнее. Я уже готов бы убрать сам, кодом, да брат возмущается, привык зараза
А ты не думал. что таких как твой брат может быть в разы больше?
инфа для размышления, не надо отвечать.

разработчик ERA Wrote:Охрану планировал оставить. Выйдет магический апгрейд для мастер-гремлинов со стрелкой и охраной. Приятно играть, интересно сражаться.
В рамках некоего custom мода аля Yona ? вообще тогда вопросов нет.
В рамках базы ERA и зашитого в основу? точно перебор


RE: ERA III - Berserker - 21.10.2020 16:26

Night, да, заменил. 5 урон достигается через ледение существ на 8, а с остаток применением рандома. То есть 16 сант будут гарантировано бить с силой магии 2. Сейчас, как ты заметил это Число существ / 64 + 1. Что делает их
1) Сверхсильными по 1-е
2) Сверхслабыми в больших количествах


RE: ERA III - XEPOMAHT - 21.10.2020 16:37

(21.10.2020 15:23)Berserker Wrote:  Обычный прирост и пропорциональный урон — это не радикально, а нормально для Героев 3.

Там как бы закос под Heroes 4 был когда-то. Тогда давайте сразу переименуем Heroes 3.5 обратно в Heroes III. 148 Странно видеть возрастающую неприязнь к вогу уже и у авторов ERA. 112

(21.10.2020 15:23)Berserker Wrote:  
Quote:Отредактировать стоит только все атакующие заклинания, чтобы они учитывали количество монстров при касте от монстров
А сейчас не так?

А сейчас - так же как в SoD, в этом плане вообще ничего не менялось. Т.е. оригиналом установка атакующей магии подразумевается только для Сказочных Драконов, в дополнении Клинок Армагеддона, сделанному впопыхах. Вогом не было добавлена ни учёт силы монстра, ни его количество (если следовать традиции оригинального кода, то для монстров нужно добавлять отдельные атакующие заклинания и не трогать оригинальные атакующие вообще, но это возможно только на MoP, увы, поэтому для всей атакующей магии придётся делать поправки исходя из колдующей стороны, что уже будет "неканон").

(21.10.2020 15:47)Berserker Wrote:  Или дисбалансный Win в кол-ве 1-1-1-1-1-1 или полнейший мусор, да ещё растут каждый день.. Какое бы ещё тупое свойство им придумать? Пусть после смерти воскресают в виде единорогов, если ты не против.

Ох, оставили бы весь WoG на усмотрение самих моддеров (в той же ERA+ Санта-Гремлины немного усилены, если скляроз не изменяет), если сам WoG - отдельный от ERA мод (условно конечно, но всё же). Можно просто выпустить мод, удаляющий часть свойств Санта-Гремлинов. Можно добавить новую встроенную опцию. Ну а так как предлагается сейчас - думаю, на том же http://heroescommunity.com/ или вовконтакте будут недовольные отзывы (можно сделать голосование за/против способностей Санта-Гремлинов в ERA).


RE: ERA III - Night - 21.10.2020 16:40

Bes,
Quote:инфа для размышления, не надо отвечать.
Грязные приёмчики!!11 148Spiteful Так нечестно!


В таких случая (обсуждения и определения дисбаланса и его исправления), всегда есть два момента.

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

Второй случай - когда обсуждаемый дисбаланс даёт слишком большие преимущества, НО! при этом сам игровой процесс подчинён умениям и способностям ИГРОКА. Вроде и абуз, но абуз специфичный, не каждым повторяемый, зависит от навыка, знаний, понимания специфики использования.

Сейчас Санта - первый случай. И это неадекватный абуз и игрок должен понимать или понимает, что слишком просто всё.

Такое должно лечится нерфами. Но нерфы должны СУЩЕСТВУЮЩИЙ абуз доводить до второго случая - когда юнит становится предметом использования умельца.
А чтобы он не был самым-самым, вводятся противовесы, аналогичные по сути, но разные по использованию (как это должно быть правильно в ММО и вообще ПК-играх, а не вырезать всё и забыть, как сейчас).

В большинстве своём люди понимают, что и как, просто не желают расставаться с удобством, даже если это нарушает восприятия игрового процесса. Если делать это за них, ПРАВИЛЬНО делать, отмечу, приводя первый случай ко второму - это будет оценено правильно, пусть и не сразу, но со временем.


Berserker, ну давай ещё гвардов порежем, давай? 116
Пусть будет 1 юнит перед ними, хоть так. Хочется, чтобы это было вшито в код и забыто, чтобы рука не дергалась к отмене. Сейчас твоё видение с уроном мне нравится - слабые, если мало и сильные, если много. Но нужно доводить до конца правки ^_~


RE: ERA III - Berserker - 21.10.2020 16:43

Quote:в той же ERA+ Санта-Гремлины немного усилены, если скляроз не изменяет
Сам-то давно с ними играл? Spiteful

Реальному микропроценту староверов будет плагин/bin-патч от igrik-а, который просто восстановит воговский оригинальный код. Остальные смогут начать полноценно играть с данным юнитом.


RE: ERA III - Archer30 - 21.10.2020 16:54

(21.10.2020 16:09)Berserker Wrote:  Should I send you WoG 3.58 package?

I can find it online, but a link from you is more appreciated 96-copy


RE: ERA III - XEPOMAHT - 21.10.2020 16:55

(21.10.2020 16:43)Berserker Wrote:  Сам-то давно с ними играл? Spiteful

Играл. В армии их обычно не много, особого влияния они не оказывают, скорее болтаются либо в городе, либо у тараканов (что нормально для нейтралов 2-го уровня), т.к.:

1. Нельзя купить в городе
2. Нельзя получить апгрейдом гремлинов

Т.е. если Санта-Гремлины не выпали в рандоме на карте (т.е. нет их жилищ и не получится завербовать их дипломатией), то игрок ими и не поиграет никак.

Ну если даже есть жилище, это 7 в неделю, для монстров второго уровня считай что ни о чём (для начала, жилище ещё предстоит захватить, ибо в ERA+ оно охраняемо).

Ну и дипломатией вряд ли карта будет ими кишеть, чтобы можно было бы насобирать достаточное количество.

А вообще, даже Мастер в своё время их не стал трогать, хотя им те же Эмиссары были удалены (мне потом пришлось их восстанавливать).

(21.10.2020 16:43)Berserker Wrote:  Реальному микропроценту староверов будет плагин/bin-патч от igrik-а, который просто восстановит воговский оригинальный код. Остальные смогут начать полноценно играть с данным юнитом.

Этот патч ещё предстоит найти и активировать. И он, как и остальные, может затеряться во времени. А полноценно играть в рамках быстрого и доступного получения Санта-Гремлинов, как тут пытаются со включенной опцией, делающей их апгрейдом гремлинов, - полностью на совести автора этой вог-опции (лично я использую апгейды, выставленные согласно моим представлениям об улучшениях монстров и пихать туда всякий дисбаланс точно не стану).


RE: ERA III - PerryR - 21.10.2020 16:59

I can offer my Santa Balance.erm minimod which can be found on the Discord Server under "Plugins". It adds damage scaling and gives the possibilites the change the attributes of the summoned guards.
A mini mod made personally for me because because I agree that these Santa Gremlins are way to useful when playing vs the AI but I still do like to have them in my army 96-copy just not as strong as the are.
I support the icentive to give them normal growths and remove the "gift" option.


RE: ERA III - Berserker - 21.10.2020 17:30

Archer30, https://dropmefiles.com/kPqnm


RE: ERA III - Berserker - 21.10.2020 17:57

Кто ещё неправильно колдует? Пожары огненную стену, Громовержцы удар молнией.

Да, смотрю в воге волшебным драконам подняли силу магии в 5 раз.
Стрелка бьёт не на 10, на 50.
Молния не на 25, а на 125.
Ледяной болт не на 20, а на 100.
Цепная молния не на 50, а на 250.

Неслабое изменение. Стоит уменьшить?


RE: ERA III - SergOz - 21.10.2020 18:16

Есть существа наносящие урон магией в дополнение к физическому урону, а есть те, что бьют или только магией, или только физикой. Тут нужно быть осторожным и учитывать этот факт.


RE: ERA III - Berserker - 21.10.2020 18:17

Так, удар грома Громовержце наносит урон 10 * число громовержцев.


RE: ERA III - Night - 21.10.2020 18:55

Berserker, Тут не стоит с горяча рубить. Даже если усилен, это в рамках ВоГа с существами т8 сущие копейки, а не урон.

Да и где этих драконов найдёшь, на дороге не валяются...
Вообще нужно не об ослаблении думать, а наоборот, об усиление. Те же Громовержцы, пусть и получают увеличение от кол-ва, но что это за мелочь, когда 100 штук будут 1000 урона наносить - это 2 моба Т8, без прокачки, без артефактов. Даже если получится и приличное число с усилением, то нужно подумать о самом существе - многие труднополучаемые или кроме маг урона бесполезные, слабые, медленные или разнофракционные, что влияет на мораль...

Короче я посмотрю вечером список юнитов и их заклинаний, напишу выборку.
Желательно конечно сделать так, чтобы каждый юнит, который кастует магию, получил усиление. А там уже смотреть по балансу, куда и чего ослаблять или увеличивать. Пока все юниты с магией крайне бесполезны, чтобы рассчитывать на эти умения в бою.


RE: ERA III - Berserker - 21.10.2020 19:26

Отбой. Только сант правлю.

У мастер-гремлинов макс. урон составляется 3 + 300% = 12. В бою с равным по силе урон может быть 3 или вплоть до 0.9.
У санта-гремлинов будет 10 (урон ледяной стрелы без бонусов). По силе это похоже на волшебных драконов. Сила магии отряда сант = (число монстров - 1) + 1 для чётного числа монстров с вероятностью 50%. К итоговому урону прибавляется 10 (эффект заклинания, не зависящий от ранга школы).

Привожу примеры числа сант и их уронов:

1 - 10
2 - 10 или 30
3 - 30
4 - 30 или 50
5 - 50
6 - 50 или 70
и т.д.

Охрану тоже оставляю. У неё несколько обработчиков, завязки на систему опыта. Кому нужно — ковыряйтесь )
Выходит слабый по жизням юнит, но защищённый базово от ближних атак и с довольно мощным ледяным болтом.
Идеален для мода на третий апгрейд.


RE: ERA III - Berserker - 21.10.2020 19:35

https://dropmefiles.com/BW1ez


RE: ERA III - Night - 21.10.2020 19:39

Berserker,
Quote:Отбой. Только сант правлю.
Добро.
Я себе всё же составлю список, не помешает. Если появится желание/возможность прикрутить проверку - обращайся, таблица будет.

Quote:Привожу примеры числа сант и их уронов:
Неплохо. Мне нравится.


RE: ERA III - Berserker - 21.10.2020 19:43

Патчи на санту отменить просто. Вернуть воговские 6 байт по 44836D, 1 байт по 760D6D и 2 байта по 75A964. Это простой bin-patch.
Я отключил подарки и вернул обычное накопление в жилищах.

Какой у них стандартный прирост, кто знает?


RE: ERA III - Night - 21.10.2020 19:50

Berserker,
Quote: * Во внешнем жилище Снеговик Санта-гремлины приходят каждый день. Прирост Санта-гремлинов в день равен 1
за каждого оставшегося в игре игрока. Например: Если в игре всѐ ещѐ все 8 игроков, то прирост Санта-гремлинов
составит 8 в день. В Портале вызова Темницы прирост Санта-гремлинов составляет 1 в неделю.


P.S. Какие же дол... странные юниты. Словно работа школьника-девятиклассника, который сделал самый_любимый_юнит_победун.


RE: ERA III - Berserker - 21.10.2020 20:04

Да, это уже отключено.


RE: ERA III - Berserker - 21.10.2020 21:53

Code:
[+] Replaced Heroes 3 pseudo random number generator with high quality Mersenne Twister generator.
    Native generator is still used for battle obstacles generation and in multiplayer battles, excluding Hot Seat.



RE: ERA III - Panda - 22.10.2020 01:24

Смотрю тут "жарко", подолью масла в огонь: 147
(20.10.2020 15:45)Berserker Wrote:  Reuploaded. Included missing Era Erm Framework files and:
[-] Removed rest files from "Animated Trees" mod. Credits: Archer30.

А зачем анимированные деревья удалили, кому они то помешали? Или я неправильно что-то понял? 118


RE: ERA III - daemon_n - 22.10.2020 01:40

(21.10.2020 19:43)Berserker Wrote:  Патчи на санту отменить просто. Вернуть воговские 6 байт по 44836D, 1 байт по 760D6D и 2 байта по 75A964. Это простой bin-patch.
Я отключил подарки и вернул обычное накопление в жилищах.

Какой у них стандартный прирост, кто знает?

В сборке я поместил бинарник на исправленный прирост. Что санта-гремлинов, что т8 юнитов.


RE: ERA III - Berserker - 22.10.2020 01:41

Panda, они случайно остались в Эре. Должны быть в отдельном моде. Постараюсь скоро выложить.

daemon_n, на санты уже не нужно. В текстовиках прирост теперь 16, оригинальный воговский код отключён.


RE: ERA III - daemon_n - 22.10.2020 02:19

Berserker, 16 много, мне кажется.

С точки зрения левелинга, если он первого уровня, то логично...
Но если смотреть на их вэлью и цену, то 16 - много. Просто потому что это звери.

А что со сказочным драконами? Их урон в воге разве менялся?


RE: ERA III - Berserker - 22.10.2020 02:55

Нет, не менялся.
Поставил 16. Совокупная цена в золоте для одного прироста - 3200. Сравни в любым 3-м апгрейдом а-ля Верховный Архангел. Это ровно прирост мастер-гремлинов без доп. строений. И 16 * 5 = 80. Всего 80 жизней у такого отряда.


RE: ERA III - Berserker - 22.10.2020 05:54

Code:
Version 3.1.2 (10/2020)
------------------------
[*] Fixed Json library to allow sequential comment lines. Example:
  {
    "mix": {
      // comment line 1
      // comment line 2

      "global": {
        "test":"best"
      }
    }
  }



RE: ERA III - Archer30 - 22.10.2020 09:15

Great update! Thank you Berserker.

I'm looking for some advice about localizing plugins in WoG (no prison on random maps.bin, etc.). They are not very understandable if not localized. Is it true that the only way is to rename them?
____

Another thing, the creature description "Can Gift" of Santa Gremlin should be removed? 102

____

There is a question from Hawaiing, I'm also curious. Why random towns in this map were only generated with one single type? How can we increase diversity?
Download: Town Testing Map


RE: ERA III - Berserker - 22.10.2020 15:31

Archer30, The only way to rename them is to rename them. Yes.

Quote:Another thing, the creature description "Can Gift" of Santa Gremlin should be removed?
I left it as Easter egg ) In Russian localization this line is absent.

Quote:There is a question from Hawaiing, I'm also curious. Why random towns in this map were only generated with one single type? How can we increase diversity?
I don't know the reason, except that it's real random.


RE: ERA III - wessonsm - 22.10.2020 19:47

Berserker, то есть в !!VR:T теперь нет нужды? Они равнозначны с !!VR:R?


RE: ERA III - Algor - 22.10.2020 22:16

ERA 3.1.2 (Click to View)



RE: ERA III - daemon_n - 22.10.2020 23:03

Algor, уже исправлено. Ты там сделал именованную v-переменную Sm Вскрылось ещё на Эре 3.0.0


RE: ERA III - Berserker - 23.10.2020 00:02

wessonsm, да, можно просто использовать VR:R, не переживая ни о чём.


RE: ERA III - Algor - 23.10.2020 15:10

(22.10.2020 23:03)daemon_n Wrote:  Algor, уже исправлено. Ты там сделал именованную v-переменную Sm Вскрылось ещё на Эре 3.0.0

Что значит исправлено? Да, там именованная переменная и, с моей точки зрения, это вполне себе корректный код.
Другое дело, что при этом выделяется фактический номер v-переменной, с которой не работает стандартный ERM-ресивер - это уже баг движка.


RE: ERA III - Berserker - 23.10.2020 16:19

Algor, код там не совсем некорректный. ERM 2 поддерживает только именованные локальные переменные. И синтаксис их объявления: ?(someOpt:y), а не ?y(someOpt).
Если нужна глобальная, то с префиксом ?i^esr_someOpt^, например. i^...^ равносильна переменной SN:W.
Примеры в моде смешанных нейтралов: https://dropmefiles.com/XX2Hy

Без ZVSE2 ЕРМ 2 не включается, а потому у тебя просто идёт автовыделение ИД функции, которое в Эре 2 имеет синтаксис "(что угодно)".


RE: ERA III - V_Maiko - 23.10.2020 17:06

Berserker, new ERM engine is completely new, you make even the most veterans take ERA scripting courses again, I think these courses should become mandatory 96-copy



RE: ERA III - SergOz - 23.10.2020 17:32

(23.10.2020 17:06)V_Maiko Wrote:  
Berserker, new ERM engine is completely new, you make even the most veterans take ERA scripting courses again, I think these courses should become mandatory 96-copy
Иначе 119Gigakach_01


RE: ERA III - XEPOMAHT - 23.10.2020 18:00

(23.10.2020 17:06)V_Maiko Wrote:  new ERM engine is completely new, you make even the most veterans take ERA scripting courses again, I think these courses should become mandatory 96-copy

Впереди ещё обещанная LUA, вот где точно переучиваться придётся всем (если кто-то доживёт). Лично я остаюсь верен старому ERM, только в целях совместимости скриптов WoG и MoP.


RE: ERA III - daemon_n - 23.10.2020 19:58

(23.10.2020 15:10)Algor Wrote:  Что значит исправлено?


Заменил на !!SN:W во всех местах - и поместил в сборку. В т.ч. выложил на Дискорд-сервере.


RE: ERA III - Bes - 23.10.2020 20:01

(23.10.2020 06:23)SergOz Wrote:  При определении координат клика не использовал i^...^, потому что у меня на ERA3.04 ругается на !!OBi^x^/i^y^/i^z^:...;, а значит не мог протестировать.

Berserker, а вот кстати, нельзя разве так?102


RE: ERA III - Berserker - 23.10.2020 20:35

Bes, будет исправлено для всех подобных синтаксисов в Era 3.1.3. Там вызов воговского GetVarVal, который только ЕРМ 1 переменные обрабатывает.


RE: ERA III - SergOz - 23.10.2020 21:18

(23.10.2020 20:35)Berserker Wrote:  будет исправлено для всех подобных синтаксисов в Era 3.1.3. Там вызов воговского GetVarVal, который только ЕРМ 1 переменные обрабатывает.
И хорошо бы !?OBi^...^: ну как !?OB998:


RE: ERA III - Algor - 23.10.2020 21:20

(23.10.2020 16:19)Berserker Wrote:  Если нужна глобальная, то с префиксом ?i^esr_someOpt^
Да, оно и есть. Спасибо.


RE: ERA III - Berserker - 23.10.2020 21:48

SergOz, !?OBi^...^: — триггер, там нельзя.


RE: ERA III - SergOz - 23.10.2020 21:49

Berserker, та это я провтыкал. Имелось ввиду !!OB


RE: ERA III - Berserker - 23.10.2020 22:03

SergOz, этот и десяток ему подобных исправлю, да.


RE: ERA III - Bes - 23.10.2020 22:15

не забудь и про



RE: ERA III - Berserker - 23.10.2020 22:52

Bes, они самые.


RE: ERA III - Berserker - 25.10.2020 03:45

Товарищи, не пора ли заменить OnBattleRound на OnCombatRound полностью (сделав их синонимами) + v997 всегда чтобы содержала номер раунда тот же, что и в OnCombatRound.
Некоторые скрипты поломаются, которые корректно обрабатывали кривые воговские ситуации с пляшущим -1 раундом при чёрном экране, зависящим от тактики и двумя(1) раундами 0.
Давайте этот нарыв вскроем раз и навсегда.

Напомню, OnCombatRound вызывается только для видимых раундов, номера раундов не повторяются и всегда возрастают. 0 - всегда реальный послетактиковый первый раунд, а -1000000000 — первый раунд тактики. Достала эта путаница.


RE: ERA III - Berserker - 25.10.2020 04:48

Code:
[*] Totally disabled old buggy "OnBattleRound" event behavior. From now "OnBattleRound" is an alias of "OnCombatRound".
    v997 contains valid battle round throughout the whole battle.



RE: ERA III - Bes - 25.10.2020 05:18

так а что теперь делать с кодом вида !?BR# ?
если его использовать, он автоматом будет завязан на событие (OnCombatRound) ?


RE: ERA III - Berserker - 25.10.2020 06:17

Bes, автоматом.
!?BR = OnBattleRound = OnCombatRound без гемороя.

Так, научил сохранять и загружать глобальные константы в сейв, а также получить их значение по имени в любой момент. Стало возможным в json-конфигах использовать константы!
Code:
{
  "mix": {
    "global": {
      "minNumNeutralStacks":        "2",                // Minimum number of mixed neutral stacks in battle.
      "maxNumNeutralStacks":        "4",                // Maximum Number of mixed neutral stacks in battle.
      "neutralStackSpread":         "MIX_SPREAD_SPACE_BETWEEN", // Default spread strategy for neutral stacks.
                                                        // Possible values:"sp_no", "sp_random", "sp_top_down", "sp_near_center", "sp_away_form_center", "sp_space_between".
      "neutralStackScale":          "125",              // Multiplier for original neutrals quantity on adventure map in percents.
      "netralStackScaleForHuman":   "200",              // Additional multiplier of neutrals power only for humans in percents.
      "noNeutralsMorale":           "1",                // If 1, neutrals will have no morale at all.
      "generateMonstersByFactions": "1",                // If 1, additional generated monsters will belong to the same faction.
      "allowAlliedFactions":        "1",                // If 1, allied faction monsters will also be generated.
      "moveNeutralsToFactions":     "1",                // If 1, all WoG neutral monsters will be assigned a faction / town.
      "registerRegularMonsters":    "1",                // If 1, all regular WoG creatures are registered and will become accessible for generation.
      "registerFactionAllies":      "1",                // If 1, configurates each faction allies and their association level.
    },

    "mon173": {
      "custom": "1",
      
      "slot0": {
        "type": "mt_same_faction",
      }
    }
  }
}



RE: ERA III - Bes - 26.10.2020 02:26

Berserker, я тут это, опять в прошлое отсылаю...
смотри, это тебе для ERA3 не интересно?

(16.09.2015 22:44)igrik Wrote:  
Quote:!!EX:R$1/$2/$3/$4
    $1 – есть артефакт или нет (0 = нет, 1 = да)
    $2 – номер артефакта (сейчас только 156)
    $3 – подтип артефакта (опции 0…15 – еще не все используются)
    $4 – количество копий артефакта (0...3)
gamecreator, ты не вкурсе как увеличить кол-во копий арта с 0...3 до 0...6?

(19.09.2015 14:12)gamecreator Wrote:  Как-то так с индикатором:
Code:
; SetArtAll
753313 8B45088B510881E2FF1FC0FF85C0740C8B45144083E01FC1E00D09C28B451083E00FC1E01209C289​51088BE55DC210009090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090
; HasArt
7279C3 8B41082500E003007406B80100000090
; GetArt
728263 B89C00000089EC5DC390909090909090909090909090909090
; ArtCopy (get)
727A63 8B41082500E003007406C1E80D489090
; DelArt + new GetIndicator(uint amount)
727903 8B410825FF1FC0FF89410889EC5DC390909090909098028600E0187900E4187900E8187900EC1879​00909090905589E58B450883F8047605B8040000008B04851879720089EC5DC20400909090909090​
; SetArt
7279E3 8B51088B450C81E2FF1FC0FF83E00F81CA00200000C1E01209C2895108B80100000089EC5DC20800​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090
; GetArtNums
768B93 8B41082500E00300C1E80D89EC5DC3909090909090909090909090909090909090909090909090
; TakeArt
728283 8B410889C22500E00300741EC1E80D48740A81E2FF1FFCFF09C2EB0681E2FF1FC0FFB80100000089​510889EC5DC390909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090
; CopyArt
727D53 8B55088B42088B51082500E03F0081E2FF1FC0FF09C289510889EC5DC20400909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​
; ArtCopy (set)
727A83 8B51088B450881E2FF1FFCFF83F8007D07B801000000EB0D83F81F7C07B81F000000EB0140C1E00D​09C289510889EC5DC204009090909090909090909090909090
; Exp2String calls GetIndicator
717363 8B451050E8C40501008945E0EB3A9090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090909090909090909090909090
; Exp2String2 calls GetIndicator
717470 8B55108B028B4A0450E8B20401008945C451E8A90401008945F8EB79909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​90909090909090909090909090909090909090909090909090909090909090909090909090909090​9090909090909090909090909090909090909090909090909090909090

если интересно, там можешь в тот период полистать их переписку


RE: ERA III - Berserker - 26.10.2020 03:26

Bes, спасибо, я пока воздержусь от применения указанных заплаток.


RE: ERA III - igrik - 26.10.2020 20:47

Bes, эта заплатка работает не совсем корректно. Я уже не помню что-именно, но её нельзя применять.


RE: ERA III - igrik - 26.10.2020 21:01

Ох скоко сборок появилось 96-copy Теперь при каждом обновлении ЭРЫ, каждую сборку теперь нужно будет отлаживать - работы тьма....

Вот яркий пример: если Берсеркер согласится (а для этого есть резонные причины) wog native dialogs в следующем релизе будет отвязывать текстовик, а в замен него будут использоваться JSON файлы такого содержания:
wog options rus.json (Click to View)
Причина - это очень и очень гибкая настрока названий вкладок диалога WoG Опций.
Например, тот же мод Era Scripts теперь не будет заменять весь файл "zsetup00.txt" целиком, а создаст свой файл JSON с частью необходимых ему строк:
wog options ES rus.json (Click to View)



RE: ERA III - SergOz - 26.10.2020 21:23

Berserker, при инициализации переменной (any:y) в первом триггере !?GE1; она не переносит своё значение во второй, такой же !?GE1; хотя обычные устаревшие y# это успешно проделывают.
В чём секрет? Или так и задумано?


RE: ERA III - Berserker - 26.10.2020 23:01

SergOz, локальная переменная даже в теории должна быть локальной, то есть личной для конкретного обработчика событий ака триггера. Это его частная приватная память.


RE: ERA III - Bes - 27.10.2020 02:59

SergOz, ещё не поздно вернуться на родной ЕРМ, ZVSE, и при этом вроде как на ERA3 быть Spiteful
а я... конфет по почте перешлю за этоYes


RE: ERA III - SergOz - 27.10.2020 03:36

Bes, ни шагу назад!
Хотя больше топчусь на месте
Привычные фишки автоматом тулишь в код, а Эра потом страшно ругается. Аж багровеет. 134
Я уже выучил несколько нехороших выражений на английском из её лексикона.
Но, данное ограничение, наверное, уменьшает количество потенциальных багов, хотя и вносит некоторое неудобство.


RE: ERA III - Berserker - 27.10.2020 04:33

SergOz, данное ограничение присутствует в любом ЯП. Приведи, пожалуйста, пример, где оно мешает.
Ты смотри. Код от !?XX до следующего !?XX — это просто уникальный обработчик события, никаких не связанный памятью с остальными, кроме глобальных переменных и функций. Если это функция, то у неё есть входные и выходные параметры. Например, функция возведения в квадрат числа. Принимает одно число — возвращает другое. Никто не должен знать, что там в личной локальной памяти у обработчика творится. Никто никогда не даёт никаких гарантий, что y1..y100 будут сохранять свои значения между разными обработчиками. Их предыдущие значения — просто мусор.


RE: ERA III - SergOz - 27.10.2020 06:40

Berserker, "небольшое" неудобство только в отличии новых правил ERM2.
Вот, как я "спалился" вчера.
Я узнаю сложность, выбранную игроком. Потом, в !?GE1, отталкиваясь от этого значения, я с градациями от сложности, редактирую коэффициент получения опыта, ресурсы игрока, статы героев, их армию, вторнавыки, строения в городе и т.д. Получается довольно большой скрипт, который я именую "СЛОЖНОСТЬ" и закрываю, потому что длинные скрипты потом неудобно редактировать. Ресурсы я получал в (wood:y), (merc:y), (ore:y) и т. д. добавлял бонусы (bonusWood:y), (bonusMerc:y), (bonusOre:y)... получал окончательное (endWood:y)... и устанавливал в !!OW:R#/0/(endWood);...
Потом, я захотел во всех Гротах установить охрану и плюшки от сложности. В скрипте "ГРОТЫ" я решил воспользоваться уже ранее вычисленными значениями и со спокойной душой написал: !?GE1; !!CB(x)/(y)/(z):R0/(endWood);... потом запускаю игру и получаю кучу ошибок.
Я понимаю, что можно занести рассчёты в i^endWood^/i^endOre^... но, я же этого не знал, а знал что y# сохраняет значение между одинаковыми !?GE1; как и между другими одинаковыми триггерами, чем я раньше без опасений пользовался.
Но, я за прогресс обеими руками и, несмотря на полученные душевные травмы, "небольшими неудобствами" меня не запугать! 113


RE: ERA III - Berserker - 27.10.2020 06:56

Quote:а знал что y# сохраняет значение между одинаковыми !?GE1;
Это не гарантируется. Бывало, что перед каждым все занулялись, просто это неэффективно, потому мусор и сохраняется.
У тебя всё можно сделать цивилизованнее. В данном случае уровень сложности лучше хранить в глобальной переменной, а множители для ресурсов в константах или глобальном массиве.

Например, начальное дерево = 5 * уровень сложности. 5 вынесем в константу. Да и скрипт Грота может поменяться, равно как и скрипт инициализации. Их нельзя таким неявным грязным способом связывать. Либо функции вызывать с передачей параметров, либо в каждом обработчике свой расчёт.


RE: ERA III - Night - 27.10.2020 13:24

igrik,
Quote:Причина - это очень и очень гибкая настрока названий вкладок диалога WoG Опций.
Выглядит здорово.
Ещё реализовать бы доп.вкладку в текущий вид, чуть потеснив существующие вкладки, как вариант. Сейчас всё фактически занято и если использовать сторонний мод/скрипт, которому необходимо строка в WoG-меню, то выглядит не очень прилично это дело:
Может вторую страницу сделать, если есть такая возможность? Раз уж в рамках Era 3 такие глобальные обновления везде к лучшему, то и тут нужно как-то расширить возможности. Мне кажется многим мододелам хотелось бы иметь кусочек личных галочек в меню от своего мода...


RE: ERA III - Bes - 27.10.2020 13:30

нужно новое окно. А это нынешнее упирается в ограничитель горизонтальных закладок, даже реализовав прокрутку для каждой страницы
выход - вертикальные закладки, где всегда можно внедрить кнопки пролистывания доп.закладок, как это в основном реализуют в мировой практике


RE: ERA III - igrik - 27.10.2020 13:36

В настоящее время не получится - сам движок WoG не позволяет сделать новые вкладки. Ну вот совершенно никак. Там жёстко всё пришито к 8 вкладкам. Если бы это было просто сделать - я бы уже это сделал. А чтобы сделать новые вкладки, нужно переписать весь код, который отвечает за инициализацию и создание стуктуры диалога WoG Опций. И это уже по части Берсеркера ...


RE: ERA III - XEPOMAHT - 27.10.2020 15:12

(27.10.2020 13:36)igrik Wrote:  А чтобы сделать новые вкладки, нужно переписать весь код, который отвечает за инициализацию и создание стуктуры диалога WoG Опций.

1. Можно растащить окна опций вверх (надпись "Опции ВоГ-ификации" неплохо влезает в свободное место рядом с кнопками) с помощью патча функции создания борландского диалога в zvslib1.dll (там портянище та ещё, но сделать можно).

2. Можно перевести диалог целиком на !!DL и написать dll-обработчик диалога (решение из MoP).

3. Можно портировать диалог из WoG 3.59, где он целиком посажен на lua.

4. Можно вообще удалить старый диалог и на его месте вызывать абсолютно новый, совместимый с данными старого.

5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.

6. Почистить наконец-то вог-опции от мусорных опций, некоторые опции можно объединить, некоторые сделать неопциональными...

В общем, всё в руках моддеров. 20


RE: ERA III - Panda - 27.10.2020 15:24

(27.10.2020 15:12)XEPOMAHT Wrote:  5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.

6. Почистить наконец-то вог-опции от мусорных опций, некоторые опции можно объединить, некоторые сделать неопциональными...

Прям мои мысли прочёл )) Давно хотел подкинуть эту идею, но потом подумал, что моддерам виднее, что и как.


RE: ERA III - Bes - 27.10.2020 15:25

XEPOMAHT, +1


RE: ERA III - igrik - 27.10.2020 15:36

(27.10.2020 15:12)XEPOMAHT Wrote:  1. Можно растащить окна опций вверх (надпись "Опции ВоГ-ификации" неплохо влезает в свободное место рядом с кнопками) с помощью патча функции создания борландского диалога в zvslib1.dll (там портянище та ещё, но сделать можно).

2. Можно перевести диалог целиком на !!DL и написать dll-обработчик диалога (решение из MoP).

3. Можно портировать диалог из WoG 3.59, где он целиком посажен на lua.

4. Можно вообще удалить старый диалог и на его месте вызывать абсолютно новый, совместимый с данными старого.

5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.

6. Почистить наконец-то вог-опции от мусорных опций, некоторые опции можно объединить, некоторые сделать неопциональными...
XEPOMAHT, ты видимо не до конца понимаешь как сейчас сделан диалог WoG Опций в WND.

Графическая часть диалога полностью написана с нуля (это и есть тобой и указанный п.2). Вообще каждый диалог, который реализован в WND, написан с нуля и zvslib1.dll вообще в них - выпелен к чертям.
А это значит, что пункт 1 ты описал по не знанию.
3. В топку. Уже реализовано по п.2. Нахрена тогда я его переписывал?
4. Диалог как раз таки абсолютно новый. А вы их путаете, потому что сдалал я его визуально точь-в-точь как оригинальный воговский.
5. Да я хоть щас добавлю эту кнопку - толку то.... Кто будет заниматься заполнением структуры? Правильно - о чём я и говорю. Нужно писать заново обработчик.
6. Всё в руках сообщества, но с увереностью тебе скажу, что появится масса вопросов: А куда делось? Я хочу вернуть. Как вернуть? и т.п. Вот когда выйдет WoG Scripts 2 (на ERM 2), тогда и поговорим. Хотя я и так в нём планирую выпилить процентов 30% хлама.

Теперь, самое главное - я ещё раз повторяю, что нужно переписать обработчик создания и заполнения опций. Все данные для диалога я беру из уже готовой структуры. Вот кто по твоему создаёт эту структуру? Правильно - сам WoG, а не zvslib1.dll. В вэб-программированиии это называется бэкенд. Вот когда бэкенд будет переписан, я адаптирую фронтенд диалога (саму визуальную часть) как пожелаете, хоть "вверх-ногами", потому что п.2 уже мной сделан на 100%. Но сделан он не на DL, а на "внутреннем SOD" функционале.

Вот открой файл "wogsetup.cpp" и хорошенько изучи его - вот его и нужно переписать для создания нового окна ВОГ опций. Ты думаешь в 3.59 он сильно переписан (предложение п.3)? Очень и очень сомневаюсь.


RE: ERA III - Bes - 27.10.2020 15:51

igrik, почему ты не стал делать с вертикальными закладками, дабы автоматом расширить область под возможные опции на страницу?
это ведь не подпадало в сферу бэкенда? Unsure
в топку всех, кто будет с непривычки хаить такое расположение, оно общепринятое везде и куда привычнее горизонтальных закладок... смирится слюбится



RE: ERA III - igrik - 27.10.2020 15:59

(27.10.2020 15:51)Bes Wrote:  igrik, почему ты не стал делать с вертикальными закладками, дабы автоматом расширить область под возможные опции на страницу?
это ведь не подпадало в сферу бэкенда? Unsure
Вертикальные закладки? Сделай дизайн макет - тогда и поговорим 96-copy Я дизайнер - от слова "худо" со всеми вытекающими... Тот же фотошоп для меня - боль и страдания, а не программа.
А скролы не сделал - просто потому что до этого не дошли руки. Были более приоритетные задачи, а потом просто забылось. На вскидку - там работы - пару часов. Значит займусь в скором времени.

Но объясню еще один момент - без переписывания так называемого бэкенда, в диалоге мы не можем уйти от 8 вкладок и 4х блоков на каждую вкладку.


RE: ERA III - Bes - 27.10.2020 16:12

как в во всех браузерах сейчас....
вертикальные закладки... вот в таком стиле
(не слева сбоку, а на верху... а сам размер шрифта названия закладок сделать мельче, или с разбивкой на две строки, если длинно)


RE: ERA III - igrik - 27.10.2020 16:15

Да я тебя прекрасно понял. Но какая разница - сверху вкладки, или сбоку, если мы привязаны к жесткому ограничению в 8 вкладок и ни одной больше!


RE: ERA III - Berserker - 27.10.2020 17:08

igrik, бэкэнд будет, как и планировали.
Я за.
Quote:5. Можно просто добавить новую кнопку что-то вроде "Опции ERA", с новым диалогом, оставив диалог вог-опций без изменений.
Старые опции оставляем для совместимости со старыми модами. Кстати да, плохо, что файл zsetup00 вообще убрал. Лучше, если бы значения из Json переопредеяли значения из zsetup00.txt при наличии. Тогда сохранилась бы обратная совместимость. Напомню, что если в json отсутствует значение, tr вернёт строку ключа «как есть».

По новому диалогу.

Нюанса два:
1) Нужно уметь удалять элементы и пересоздавать их заново (при переходе на другую страницу меняется местоположение пунктов и заголовков в группах). Либо, если это визуально не скажется, просто закрывать и заново показывать диалог, что будет равносильно.

2) Хотелось бы иметь возможность задавать тип опции. Нужны галочки, радиокнопки из нескольких вариантов и поля ввода произвольного текстового значения.
В полях ввода можно было бы настраивать то, что сейчас требует json/ini конфигов. То есть множители, коэффициенты, шаблоны строк.

Если макет делать схожим с текущим, то без введения, и, например, верхняя вкладка имеет текст НАЗАД, а нижняя ВПЕРЁД, работая как кнопки навигации по страницам опций.


RE: ERA III - igrik - 27.10.2020 17:16

1) Это уже реализовано. Переход на другую страницу отображает текущую вкладку и скрывает все остальные. Проблем никаких не будет с изменением местарасположения элементов. Всё в настоящее врему уже гибко.
2) Проблем нет. Расширь поле type и укажи мне как ты расширил. И всё. Мне в диалоге исправить - 1 место!
Code:
struct _DlgSetup_ItemList_
{
  char  *Name;        // название группы
  char  *Hint;        // текст хинта внизу (при наведении на имя группы)
  char  *PopUp;       // текст в окне по правой мыши (при клике на имя группы)
  int   *ItemState;   // ук. на массив состояния галочек
  char **ItemName;    // текст справа от галочки
  char **ItemHint;    // текст хинта внизу (одна строка)
  char **ItemPopUp;   // текст в окне по правой мыши.
  int    Type;        // 0-нет группы, 1-чекбоксы, 2-радиобутоны
  int    ItemCount;   // число элементов
};



RE: ERA III - XEPOMAHT - 27.10.2020 17:36

(27.10.2020 15:36)igrik Wrote:  Все данные для диалога я беру из уже готовой структуры. Вот кто по твоему создаёт эту структуру? Правильно - сам WoG, а не zvslib1.dll. В вэб-программированиии это называется бэкенд. Вот когда бэкенд будет переписан, я адаптирую фронтенд диалога (саму визуальную часть) как пожелаете, хоть "вверх-ногами", потому что п.2 уже мной сделан на 100%.

В чём сложность перенести все таблицы диалога? Можно сделать сторонней dll но... твоя dll по-прежнему будет читать старые адреса, поэтому выделять память и переносить таблицы (а их там штук 10, для оптимизации кода можно перенести только половину, обычно я беру те, которые меньше используется кодом) потребуется в твоей dll.

(27.10.2020 15:36)igrik Wrote:  Вот открой файл "wogsetup.cpp" и хорошенько изучи его - вот его и нужно переписать для создания нового окна ВОГ опций. Ты думаешь в 3.59 он сильно переписан (предложение п.3)? Очень и очень сомневаюсь.

В 3.59 lua - бурелом кода, не очень понятно как у них сделано. Но скроллинг в опциях у них работает, что на ERA так и не смогли перетащить. Т.е. ограничение в 8 вкладок преодолевать не обязательно.


RE: ERA III - igrik - 27.10.2020 17:45

(27.10.2020 17:36)XEPOMAHT Wrote:  В чём сложность перенести все таблицы диалога? Можно сделать сторонней dll но... твоя dll по-прежнему будет читать старые адреса, поэтому выделять память и переносить таблицы (а их там штук 10, для оптимизации кода можно перенести только половину, обычно я беру те, которые меньше используется кодом) потребуется в твоей dll.
Сложности никакой нет. Только я не хочу этим заниматься и не должен. Это движок игры. А движком игры у нас занимается тольк один человек - Berserker. Я в Воговский движок не лезу.

(27.10.2020 17:36)XEPOMAHT Wrote:  В 3.59 lua - бурелом кода, не очень понятно как у них сделано. Но скроллинг в опциях у них работает, что на ERA так и не смогли перетащить. Т.е. ограничение в 8 вкладок преодолевать не обязательно.
Ты как буд-то читаешь сквозь пальцы. Я же написал что сделаю скролл, просто были более важные задачи, и до скролла руки так и не дошли. И не зачем мне откудо-то его перетаскивать. Тем более, что весь диалог там написан на lua. Даже если бы я и хотел его перетащить - как по твоему я бы это сделал?


RE: ERA III - Berserker - 27.10.2020 17:49

Quote:1) Это уже реализовано. Переход на другую страницу отображает текущую вкладку и скрывает все остальные. Проблем никаких не будет с изменением местарасположения элементов. Всё в настоящее врему уже гибко.
У тебя строго 8 вкладок, которые ты только скрываешь и показываешь. А нужно при переходе на 9 удалить старые элементы вкладки 1 и пересоздать. Тебе нужен метод элемента диалога «Удалить» или что-то в этом роде. Возможно, нужна прокрутка вкладок и прокрутка опций внутри одной вкладки.

Quote:2) Проблем нет. Расширь поле type и укажи мне как ты расширил. И всё. Мне в диалоге исправить - 1 место!
Давай второй диалог делать независимым от первого по отдельной кнопке. Там и опции будут по имени, а не с кодом. И формат сохранения/загрузки другой.

XEPOMAHT, да, нужно уточнить у Сергея, как в Г3 скроллинг работает.


RE: ERA III - igrik - 27.10.2020 17:58

(27.10.2020 17:49)Berserker Wrote:  А нужно при переходе на 9 удалить старые элементы вкладки 1 и пересоздать.
А кто будет инициализировать и заполнять структуру 9й вкладки? Если ты это сделаешь и она в реальности будет 1й вкладкой (твоя псевдо-9ая), то диалог уже это легко схавает и переварит.

1. У меня строго 8 вкладок, потому что так требует структура _DlgSetup_. Будет в ней больше вкладок - сделаю больше. Это вообще не проблема. За прокрутку перестаньте уже мне говорить, надоели, честное слово. Сделаю я её (пока что внутри вкладок). Будет 20 вкладок - сделаю прокрутку вкладок. Проблемы с прокруткой у меня нет. Хотите вкладки сверху - сделаю сверху.
2. Легко. Но нужен бэкенд!

Сделайте мне бэкенд, тогда будет вам диалог, какой хотите, хоть с блекджеком и шлюхами.


RE: ERA III - Berserker - 27.10.2020 18:52

А ориентироваться нужно будет на схожую визуальную структуру? Вкладки, группы вкладок с заголовками и прокручиваемые страницы? Если не прокручиваемые, а перелистываемые страницы (псевдовкладки НАЗАД и ВПЕРЁД), то скажешь потом.


RE: ERA III - Bes - 28.10.2020 03:06

(27.10.2020 17:58)igrik Wrote:  надоели, честное слово.

...Хотите вкладки сверху - сделаю сверху.

... какой хотите, хоть с блекджеком и шлюхами.
последние слова должен был говорить Algor 147

igrik, вкладки сверху тем хороши, что не урезают по ширине область опций, ведь у нас окно имеет бОльшую сторону по ширине, а не высоте.
Так можно даже без скроллинга вместить три столбца опций. Шрифт главное не гигантить
Ab


RE: ERA III - Berserker - 28.10.2020 05:41

Столкнулся с нехваткой 100 y-переменных и освобождением привязок через !#VA(-имя переменной). А Алгор говорил, что не понадобится ))


RE: ERA III - Bes - 28.10.2020 05:54

Berserker, теперь 200 сделаешь?


RE: ERA III - Berserker - 28.10.2020 06:03

Нет, конечно. Уместился в 100 )
Просто пометил в коде, что вот этот массив на 7 y-переменных далее не используется. Можно освободить его и эти переменные на другие имена завязать.

Это когда ты y90..y96 использовал под типы монстров, а дальше у тебя y90 - номер героя, y91 - стратегия распределения монстров по слотам и т.д.


RE: ERA III - Bes - 28.10.2020 06:11

вот сижу щас битый час подстраиваясь под ЕРМ2-синтаксис... как же тяжко, хочется бросить и быстренько сверстать что хочется на родном (для меня уж точно) ЕРМ Dash1
но я упёртый, надо пройти этот вязкий путь, для потомков нужно исходник сделать таки с модными каля-маля


RE: ERA III - Berserker - 28.10.2020 06:13

Bes, накидал тебе в тему помощь. Обращайся.
Поверь, писать сложный мод а-ля Феникс на ERM 2/SCVS в 2-3 раза быстрее, чем без. А сложные вещи на ЕРМ 1 не пишутся вовсе. Пока работал над модом на Смешанные Нейтралы с функционалом на все случае жизни в этом очередной раз убедился.


RE: ERA III - Bes - 28.10.2020 06:22

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


RE: ERA III - Berserker - 28.10.2020 06:29

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


RE: ERA III - Archer30 - 28.10.2020 07:22

Bersy, it seems ERA 3.1.2 breaks the compatibility with some dialogues from WoG Scripts. Currently, issues of Arcane Tower and New Chests have been identified.
The selection will always be the leftmost one (combat in this case) no matter what exactly is picked.


RE: ERA III - Panda - 30.10.2020 15:52

Berserker, как уже писал Archer30, помимо новых сундуков 1/2 и башни, нашёлся ещё навык "Орлиный Глаз I" с такой же проблемой, это будет правится в Эра, или это уже в скриптах копаться нужно?


RE: ERA III - Berserker - 30.10.2020 17:33

Archer30, Panda, мне нужно сохранение только с модом WoG Scripts, на котором можно проверить данный баг.


RE: ERA III - Panda - 30.10.2020 19:21

Berserker, ок, вот сохранение бага навыка Орлиный Глаз - тыкаем "woggandalfwhite", выбираем правое заклинание, смотрим книгу магии - получаем в неё левое.
https://yadi.sk/d/0LmbmSDbMFb9EQ


RE: ERA III - Berserker - 30.10.2020 20:02

Panda, спасибо, исправлено. Войдёт в ближайший релиз.


RE: ERA III - Panda - 30.10.2020 20:06

Berserker, как оперативно 120Rolleyes


RE: ERA III - Berserker - 30.10.2020 21:47

Panda, за тобой угонишься 96-copy


RE: ERA III - Berserker - 31.10.2020 06:45

Готовится к выходу 3.2.0.
Archer30, did you rebuid def fixes you suggested earlier?
http://wforum.heroes35.net/showthread.php?tid=5624&pid=117825#pid117825


RE: ERA III - Archer30 - 31.10.2020 08:41

Yes Berserker, I rebuilt all 3 icons from their most original sources (from what I can find).
Note that there are two versions of CPRSMALL I made. One directly from WoG and the other made from H3 (GOG Edition) for creatures < #150 and WoG for the rest. You can decide which one to be used.

igrik, I rebuilt Dlg_NPC1 from WoG and two new icons by FfuzzyLogik, should be the highest quality of icons that can be achieved. Use mine if you prefer Sm

Download: dropmefiles (with source)


RE: ERA III - Berserker - 31.10.2020 16:22

Archer30, thank you very much!


RE: ERA III - Raistlin - 01.11.2020 01:30

Berserker, здравствуйте, у меня есть некоторая просьба. Я вот в который раз столкнулся с естественными ограничениями формата def, а потому мне стало интересно, а нельзя ли просто выделить больше памяти под палитру? Если def - это структура, то по идее ее должно быть можно модифицировать, не прописывая изменений в каждом отдельном случае. Или же тогда все патчи полетят? Я, сказать по правде, не знаю, насколько это реализуемо, но мне очень хотелось бы, чтобы что-то подобное было бы сделано.


RE: ERA III - Berserker - 01.11.2020 01:33

У меня пока нет готовых лекарств по def-файлам. Тут тебе и утилиты по их созданию/распаковке, и тьма игровых функций, которые жёстко ожидают 256 палитру, и HD мод.


RE: ERA III - Raistlin - 01.11.2020 02:34

Я понял. Жаль, конечно, но похоже сделать пока действительно ничего нельзя.


RE: ERA III - Berserker - 01.11.2020 02:39

Идеи есть по замене кадров дефа аналогично плагину alphase.dll, но нужно будет с ХД-модом сделать совместимость, а Бараторч нигде не отвечает. И это будет не для анимаций существ в бою. Ахивы будут больше весить, требования к опер. памяти возрастут. Посмотрим.


RE: ERA III - Raistlin - 01.11.2020 04:28

Berserker, а что, если выпустить сторонний патч? Просто хукнуть нужные функции, как в случае с самой игрой?


RE: ERA III - Berserker - 01.11.2020 18:52

Raistlin, попробуй )


RE: ERA III - Raistlin - 01.11.2020 19:06

Berserker, это немного не мой профиль, я высокоуровневое программирование понимаю лучше) Однако попытка - не пытка, быть может когда найдётся свободное время, я поэксперементирую ради интереса Ab Кстати, а пробовал кто-то ещё что-то такое делать?


RE: ERA III - SergOz - 02.11.2020 16:20

Препятствия на поле боя при переигровках меняются. ERA 3.1.2


RE: ERA III - igrik - 02.11.2020 16:39

Это уже исправлено в следующей версии ERA 3.2.хх


RE: ERA III - Berserker - 02.11.2020 16:47

Raistlin, плагин akphaSE от Семёна, если не ошибаюсь. Перехват 6-8 функций отрисовки кадров дефов с выводом png картинок вместо них. Но там нет совместимости с HD модом.


RE: ERA III - Archer30 - 02.11.2020 22:10

Berserker, it seems the beta 3.2 (or probably since 3.1?) gives me some unexpected surprises :D

Check this out. Some dialogues now become 3-selection type (should be 2)
Image: QzUD3Mm.jpg
52 wog artificer.erm

Moreover, the selection is also broken. It never pops up the following dialogue with the item I pick now. From what I see, the relation between user input and v1 is now different from the previous.

A savegame for you to test over. I'd like to know whether you are going to update the engine to allow less edit to scripts or just leave it as it is now.


RE: ERA III - Berserker - 02.11.2020 22:17

I'll check it out, thanks. In updated dialog all pictures are selectable now and this behavior will not be changed.


RE: ERA III - Berserker - 02.11.2020 22:35

https://dropmefiles.com/g9u0I
Selecting third image will be treated as CANCEL if it's dialog with cancel button or as LEFT image if not CANCEL button is present. It's advised to remove the third image from dialog by changing

!!IF:Q1/7/y5/6/y6/8/y2/10/z126050; in 52 wog - artificer.erm on line 157 at pos 3

into

!!IF:Q1/7/y5/6/y6/10/z126050; in 52 wog - artificer.erm on line 157 at pos 3


RE: ERA III - Berserker - 03.11.2020 00:10

Archer30, we are working with igrik on this issue.


RE: ERA III - Artyr1995ua - 03.11.2020 01:09

(22.10.2020 04:36)Berserker Wrote:  Image: e29aa1.png Вышло обновления для HoMM 3 ERA
Текущая версия: 3.1.1

Image: e29884.png Скачать: https://mods.hmm35.ru/Era%203.X.exe

Можно другую ссылку на обнову ,не работает эта


RE: ERA III - Berserker - 03.11.2020 01:38

Artyr1995ua, антивирус отключи. И скажи название антивируса.


RE: ERA III - Panda - 03.11.2020 01:51

Berserker, на мой дистрибутив вчера тоже (причем только на лёгкую версию) яндекс-диск при загрузке начал жаловаться, типа вирус Sorry


RE: ERA III - Berserker - 03.11.2020 02:22

Подтверждаю. Нужно выяснить, какой антивирусный движок вредит нам.


RE: ERA III - XEPOMAHT - 03.11.2020 11:00

Может быть проще убрать из инсталлятора ЭРЫ весь софт (а вообще зачем он там??? ) ?

1. Снижение размера архива на 27MB (и установленной ЭРЫ на 72MB).
2. Там какая-то куча малопонятных и устаревших программ, к которым и описания какого-то нет.
3. Для моддеров думаю самыми необходимыми являются только MMArchive, DefTool и erm_s с ERM-хелпом, которые можно оставить, остальное предлагаю выложить отдельным архивом, чтобы меньше было подозрений у антивирусов.


RE: ERA III - Panda - 03.11.2020 11:44

XEPOMAHT, это не решит проблемы, т.к. некоторые антивирусы жалуются не (или не только) на утилиты из папки "Tools", но и на некоторые .exe файлы самой игры.

Однако идея очень даже хорошая, лучше было бы из папки "Tools" убрать всё, кроме "Era Start Menu" и файлов, необходимых для установки/обновления Эры, а все остальные утилиты в ней выложить отдельным архивом. Моддеры скачают, если им нужно, ну а обычным игрокам они подавно не нужны.

Berserker, кстати, в дискорде недавно был случай, антивирус "360 total security", убил ей некоторые .exe файлы игры.

PS: провел эксперименты:
1. Конкретно яндексу вдруг не понравились мои файлы на смену 10SSkills, причём на .bat файл он не жалуется, а не нравится ему sfx-архив, в котором лежит 10SSkills.dll... (у кого есть огнетушитель, срочно мне его, у меня горит 5 место 148)
2. Загрузил на вирус тотал Light версию сборки сначала с папкой "Tools", потом без неё, но количество срабатываний это не уменьшило.


RE: ERA III - XEPOMAHT - 03.11.2020 12:43

(03.11.2020 11:44)Panda Wrote:  это не решит проблемы, т.к. некоторые антивирусы жалуются не (или не только) на утилиты из папки "Tools", но и на некоторые .exe файлы самой игры.

Не решит, но придирок от антивирусов будет в разы меньше. От антивирусов спасёт разве что использование отдельного инсталлятора + архива, нечитаемого антивирусами и любыми популярными распаковщиками. В том виде, в котором сейчас выкладывается ERA, антивирусы всегда смогут просканировать архив и найти там ассемблерные вставки и прочий нестандартный хакерский код, наличие которого сейчас приравнивается к вирусам во многих бесплатных антивирусах (которые от реальных вирусов защищают редко, т.к. вирусописатели тоже не дураки и умеют маскировать вредоносный код; в голом виде вирусы, имеющие ярко выраженный ассемблерный вид, уже давно сняты с производства). Например, чтобы выложить Тифон, приходится переименовывать редактор монстров, а моддерам (если кто-то хочет им пользоваться) приходится переименовывать обратно 148 .

(03.11.2020 11:44)Panda Wrote:  1. Конкретно яндексу вдруг не понравились мои файлы на смену 10SSkills, причём на .bat файл он не жалуется, а не нравится ему sfx-архив, в котором лежит 10SSkills.dll...

Кстати, перехваты и патчи в скрытом виде позволяют избавиться от маниакальности антивирусов (например HoA до версии 1.5 имела традиционную систему хуков и бинарных патчей, отлично читаемую как в отладчике, так и антивирусами, а вот начиная с 1.5 они усложнили жизнь антивирусам, но сообщения о ложных срабатываниях антивирусов всё равно иногда да проскальзывают, правда и плата за это - сильное увеличение времени загрузки игры, по крайней мене на моём старом ПК разница была заметна сильно, а про распухший после этого в 3 раза dll от HoA и редактора карт можно и не говорить), но тоже не панацея. Лучше уж тогда не использовать яндекс или переименовать все dll (сейчас некоторые особо умные антивирусы видя, что dll собрана компилятором десятилетней давности, однозначно принимают её за вирусную угрозу и удаляют нафиг).


(03.11.2020 11:44)Panda Wrote:  2. Загрузил на вирус тотал Light версию сборки сначала с папкой "Tools", потом без неё, но количество срабатываний это не уменьшило.

Тут уж как повезёт. Обычно добавляют в код разную хрень, запутывающую анализ программы (например чтобы антивирус посчитал код данными и пропустил их при анализе и т.д.). Но борьба с антивирусами = борьбе с ветреными мельницами и нужна только вирусописателям, пользователям модом можно только советовать выключать или ставить исключения в антивирусах, ну использовать холтинги с наименьшей маниакальностью (т.е. с нормальным платным антивирусом, реально проверяющим, а не делающим вид).


RE: ERA III - Berserker - 03.11.2020 15:43

Идея разбивки установщика на компоненты у меня записана в TODO. Стартовое меню Эры при таком решении поломается. Выживаемость и распространённость утилит снизится. Возможность давать советы новичкам тоже, ведь придётся начинать с «загрузи утилиты с сайта ххх».


RE: ERA III - Bes - 03.11.2020 17:49

Berserker, я бы, всё же, прислушался к советам порезать папку Tools в установщике ERA.
такие полезные для тестинга проги как DEE, EVME, Dialog Editior, BinMagic и др. ну реально не востребованы простым игрокам.
Кто любит самостоятельно устранять мелкие проблемы, пользуясь советами знатоков, скачает доп.пакет прог без особых бурчаний


RE: ERA III - Panda - 03.11.2020 20:53

В любом случае это не нам решать.

Я бы сделал вот так:
Из папки "Tools" удаляется всё, кроме Era Start Menu, Mod Manager и install-файлов для установки самой Эры.
В папку "Help" кидается файл "Utilities.url", в папку "Tools\Era Start Menu" файл "settings.ini" из архива ниже по ссылке. Теперь меню будет выглядеть так:
Image: Start-Menu-Lite.jpg
Пункт "Загрузить утилиты" (будет вести к файлу "Utilities.url") в нем ссылка на скачивание sfx-архива с утилитами "Tools HoMM3 ERA.exe" (ссылку в файле "Utilities.url" заменишь на свою, это я показательно сделал, что и как все это работает). Т.е. юзеру будет достаточно нажать на пункт "Загрузить утилиты" и скачать их, ему не нужно будет искать или спрашивать у кого-то ссылки, все очень просто: тыкнул, скачал. Установка так же предельно проста: просто указать папку с установленной игрой, и всё, распаковщик сам все сделает без запроса, и создаст ярлык на рабочем столе на "Era Start Menu". И теперь стартовое меню будет выглядеть так:
Image: Start-Menu-Full.jpg.

Ссылка на архив:
https://drive.google.com/file/d/1-jXXmh_GGUKtloTdWzU2SunbdwJXBMKL/view?usp=sharing


RE: ERA III - SergOz - 03.11.2020 21:37

(03.11.2020 20:53)Panda Wrote:  В любом случае это не нам решать.
Несколько дней назад смотрел стрим Glenn'а. Зашёл разговор о "нелюбви" к WoG'у. Одному то не нравится другому - сё. Я написал, что любую "нелюбимую" опцию можно отключить - и делов то. На что мне ответили, что для того, чтобы отключить, нужно знать где и что отключать. А сидеть втыкать и долго разбираться - не в кайф. Напомню, что речь идёт об меню "Опции WoG", в котором за столько лет существования, казалось бы и мартышка уже разобралась бы.
Но, ключевое здесь - "не в кайф", а не в умственной неспособности.
Если добавлять ещё какие-то условия: перейди по ссылке =>загрузи => установи => активируй (а, если не знаешь, то спроси у шарящих), - популярность Эры снизится. ИМХО.


RE: ERA III - Bes - 03.11.2020 21:53

SergOz, нет, ты путаешь "настройки для игрока" с настройками" для продв.уровня фаната/моддера.
аналогия с опциями игры в данном ключе не совсем равнозначна.
Для игрока, которому "не в кайф" что-либо кликать/искать где кликнуть, сама ERA не подходит в принципе. Ибо там надо частенько лезть в Менеджер модов ,что уже "не в кайф".
для таких только отдельные готовые игровые сборки, где всё уже отстроено и включено, и остаётся лишь запустить игру и играть.

Мы же (я же), говорим именно что про вычленение из основы ERA заведомо продвинутого софта, которым такие игроки просто никогда не станут пользоваться, ибо "не в кайф". И то, только самые сложные для понимания.
Менеджер модов, ЕРМ редактор и пр. частые проги конечно пусть будут автоматом включены в установщик


RE: ERA III - Berserker - 03.11.2020 21:53

Panda, но с сборках наличие Tools более чем желательно. Качаешь одну сборку — получаешь всё наследие.


RE: ERA III - Bes - 03.11.2020 21:56

Berserker, если только саму сборку автор не позиционирует как "просто кликни и играй" Yes
"сборка" не тождественна "инструментарий моддинга"
для этого ты и сделал раздел Сборки ,чтобы там нужную для себя скачать и не глумить голову лишним


RE: ERA III - wessonsm - 03.11.2020 22:25

Для того и нужны готовые сборки, чтобы установить и играть.
Тот, кто хочет что-то менять в игре, обычно сам или с минимальной помощью может разобраться, что нужно скачать или установить.


RE: ERA III - Bes - 03.11.2020 22:40

(03.11.2020 22:37)Raistlin Wrote:  
(02.11.2020 16:47)Berserker Wrote:  Raistlin, плагин akphaSE от Семёна, если не ошибаюсь. Перехват 6-8 функций отрисовки кадров дефов с выводом png картинок вместо них. Но там нет совместимости с HD модом.
Не могли бы Вы дать мне ссылку? Я что-то ничего не нахожу...

это? Unsure
http://wforum.heroes35.net/showthread.php?tid=5747
там вроде мелькали исходники альфа плагина


RE: ERA III - Panda - 03.11.2020 23:03

Berserker, wessonsm, я в своей сборке ничего "урезать" не буду. В этом нет никакого смысла.
1. "Параноидальники" будут всегда. Однако искать движка-поганца всё равно нужно, одно дело когда антивирус грохает что-то из "Tools" или мой несчастный sfx-архив с 10SSkills, на самой игре это никак не отразится, а другое дело, когда уже сами .exe файлы Эры и игры страдают.
2. В моей сборке как раз для того и переделано стартовое меню, чтобы в 1 закладке было только то, что нужно обычному игроку, а-ля скачал, установил, может что-то поднастроил, запустил и играй, и всё. 2 закладка уже как раз для опытных/продвинутых.
Image: 01.jpgImage: 02.jpg
3. В Лёгкой версии папку "Tools" можно было бы и урезать, ведь по сути в ней изменяется только один файл, но тогда тот, кто установит легкую версию не на мою сборку, получат полностью неработоспособное стартовое меню. Поэтому урезать в легкой версии тоже ничего не буду.


RE: ERA III - Berserker - 03.11.2020 23:32

wessonsm, инструменты умрут, если их не распространять в основном установщике или сборках. Я едва HMM 3.5 TE откопал и старый WoG. А вы их хотите и из Эры убрать, и из сборок. Вот Панда убирать инструменты не собирается из сборки и мне легче будет отрезать ещё кусок, который редко обновляется, а место в каждом установщике занимает.


RE: ERA III - wessonsm - 03.11.2020 23:38

Berserker, я против, чтобы убирать утилиты из Эры.
Искать их на просторах интернета - удовольствие ниже среднего.
Ну а за сборки отвечают их авторы.


RE: ERA III - Panda - 04.11.2020 00:32

Berserker, ну я лишь озвучил самый безболезненный способ, если вдруг инструменты будут убраны из установщика Эры. Ничего против них не имею.
Так же для распространения эти инструменты можно загрузить в тему "[Архив] игровых сборок Героев III". Проблема лишь в том, что при установке этих инструментов, это поломает стартовое меню, которое было у чела до установки этих инструментов.
Значит, на будущее, нужно сделать как уже писал XEPOMAHT: "От антивирусов спасёт разве что использование отдельного инсталлятора + архива, нечитаемого антивирусами и любыми популярными распаковщиками. В том виде, в котором сейчас выкладывается ERA, антивирусы всегда смогут просканировать архив".


RE: ERA III - Bes - 04.11.2020 00:41

(03.11.2020 23:38)wessonsm Wrote:  Berserker, я против, чтобы убирать утилиты из Эры.
Искать их на просторах интернета - удовольствие ниже среднего.
достаточно один раз их скачать (что уже все давно сделали итак) и положить вне папки ERA. Я так и сделал в 2011. И не лазаю в папку Tools вообще. Новым скриптером тож не пользуюсь, меня устраивает старый добрый редактор.
А новые моддеры так же скачают вместе с ERA отдельным архивом пак с инструментарием, или сразу готовую сборку с ними, и не надо опять что-то выискивать спустя месяц


RE: ERA III - Raistlin - 04.11.2020 01:44

(03.11.2020 22:40)Bes Wrote:  это? Unsure
http://wforum.heroes35.net/showthread.php?tid=5747
там вроде мелькали исходники альфа плагина
Спасибо! Там, правда, ссылки умерли, но суть я в общих чертах понял


RE: ERA III - Berserker - 04.11.2020 02:53

Bes,
Quote:Новым скриптером тож не пользуюсь, меня устраивает старый добрый редактор.
Ты теряешь 90% скорости разработки. Множественное выделение/курсоры, переход к объявленным функциям, автодополнения, полная подсветка синтаксиса и многое другое. На тебя равняться нельзя.


RE: ERA III - Bes - 04.11.2020 03:08

(04.11.2020 02:53)Berserker Wrote:  Bes,
Quote:Новым скриптером тож не пользуюсь, меня устраивает старый добрый редактор.
Ты теряешь 90% скорости разработки. Множественное выделение/курсоры, переход к объявленным функциям, автодополнения, полная подсветка синтаксиса и многое другое. На тебя равняться нельзя.
мне просто не хочется вникать в эти хитрые раскладки клавиш, да и привыкать к новому сложнее (без мотивации особой и придерживания к привычному) и вообще я ж не пишу уж сколько лет ничего, так, тока правки редкие.
И равняться на меня уж точно не надо, это правда. 115

(для ускорения рутины редактор отличный, часто меня выручает, но по html писанине)



RE: ERA III - wessonsm - 04.11.2020 03:59

Я тоже старым редактором пока пользуюсь, но это просто из-за ретроградства и нежелания привыкать к новому.

Именованные переменные я оценил. Некоторое усложнение написания скриптов с лихвой компенсируется при тестировании и отладке.


RE: ERA III - SergOz - 04.11.2020 04:36

(04.11.2020 00:41)Bes Wrote:  Новым скриптером тож не пользуюсь, меня устраивает старый добрый редактор.
(04.11.2020 03:59)wessonsm Wrote:  Я тоже старым редактором пока пользуюсь, но это просто из-за ретроградства и нежелания привыкать к новому.
Я тоже... Так чего же хотеть от простых игроков, не желающих вникать в новшества Эры? Tease


RE: ERA III - XEPOMAHT - 04.11.2020 04:58

(04.11.2020 04:36)SergOz Wrote:  
(04.11.2020 00:41)Bes Wrote:  Новым скриптером тож не пользуюсь, меня устраивает старый добрый редактор.
(04.11.2020 03:59)wessonsm Wrote:  Я тоже старым редактором пока пользуюсь, но это просто из-за ретроградства и нежелания привыкать к новому.
Я тоже... Так чего же хотеть от простых игроков, не желающих вникать в новшества Эры? Tease

И я тоже. Лично мне старый просто привычнее, с ним проще, не надо переучиваться и мучиться с настройками (блокнот - он и в африке блокнот). Да и в самом ERM-е я безнадёжно отстал, т.к. на MoP оно сейчас почти не обновляется (за год только расширил 1 команду и больше ничего не делал), а совместимость скриптов между ERA и MoP для меня важна.


RE: ERA III - Berserker - 04.11.2020 07:23

Редактор/Трафик (щёлкайте на любой картинке для увеличения всех) (Click to View)



RE: ERA III - igrik - 04.11.2020 10:38

Кругом столько старпёров 36


RE: ERA III - V_Maiko - 04.11.2020 14:19

Are you guys talking about preferring to use the classic ERM Scripter more than Sublime Text Editor? because, although I'm not as veteran as you guys, I prefer to also use the old one, because it is a tool that lived with us many years before and is better suited to our liking 96-copy


RE: ERA III - Berserker - 04.11.2020 17:28

igrik, мы окружены староверами 96-copy


RE: ERA III - Berserker - 06.11.2020 08:34

Почти релизное обновление библиотеки: https://dropmefiles.com/uqbOb


RE: ERA III - Panda - 07.11.2020 13:21

Berserker, нашёл ещё один баг, он связан со скриптом 27 wog - enhanced commanders, у командира "Астральный Дух" вызов Элементалей стал работать неадекватно, он не зависимо от силы командира вызывает только по 3 элементаля, хотя должен 3, 6, 9, 12, 15 в зависимости от силы командира. На Эра 3.0.4 и 3.0.5 все хорошо, вызов работает как положено. С последней версии библиотеки из сообщения выше тоже пробовал - баг остался. Может посмотришь, как будет возможность. Ab


RE: ERA III - Berserker - 07.11.2020 16:23

Подтверждаю. Что-то пошло не так в переписанном после Сант коде, найду баг.

Спасибо большое за отчёт. Исправление: https://dropmefiles.com/x1arv


RE: ERA III - Panda - 07.11.2020 16:45

Berserker, спасибо за исправление, теперь призыв работает как надо 132


RE: ERA III - Panda - 09.11.2020 20:50

Berserker, спасибо за обновление! Ab Пару замечаний:
1. Все ссылки на скачку ведут к версии 3.1.2, а не 3.2.0.
2. В Era 3.2.0 плагин "wog native dialogs.era" по контрольным суммам не сходится с плагином, который я только что скачал с гитхаба у igrik.


RE: ERA III - Berserker - 09.11.2020 21:36

Panda, всё верно, на гите игрик оставил версию без одной правки. Спасибо за заметку, обновляю ссылку )


RE: ERA III - igrik - 09.11.2020 22:05

Я сегодня обновил плагин для ERA 3.2.0 на гите. А после этого обновил ещё раз, засунув туда одну очень мелкую, не влияющую на геймплей правку. Поэтому контрольные суммы и различаются. Но функционал полностью идентичен.


RE: ERA III - Berserker - 09.11.2020 22:12

igrik, если перейдём на std::string, можно будет одну версию держать. Или теперь плагин на гите под Эру 3.2+?


RE: ERA III - igrik - 09.11.2020 22:16

Ребята, которые пишут скритпы - обратите пожалуйста внимание! Плагин BattleReplay в будущем (не в скором времени, но всё же...) перестанет поддерживать функции !?FU870520; и !?FU870530;
Начиная с ERA 3.2 и выше - переходите на функции !?FU(OnBeforeBattleReplay); и !?FU(OnAfterBattleReplay);



RE: ERA III - igrik - 09.11.2020 22:22

(09.11.2020 22:12)Berserker Wrote:  igrik, если перейдём на std::string, можно будет одну версию держать.
Столько танцев с бубном мне нужно сделать, чтобы использовать std::string. Сама игра в подавляющем большинстве случаев заставляет использовать char*, и постоянное использование string.c_str(), которое не всегда корректно отрабатывет при созданнии тех же элементов диалогов, меня, мягко выражаясь, не один раз очень сильно огорчало. Но, как я вижу, в любом случае придётся это сделать.

На гите wog native dialogs под 3.2+ (все нужные версии wnd под соответствующие версии эры есть у тебя в установщиках самой эры)


RE: ERA III - Archer30 - 10.11.2020 21:40

Hi Berserker, just to confirm a small thing. I can see the Dragon Spec from UN44 is now the icon of Crystal Dragon, is it intentional? If so, then UN32 has to be updated too. 102

Also, can you share the source of the updated UN44, please?


RE: ERA III - Bes - 10.11.2020 22:36

Archer30, нет, это моя ошибка, когда я собирал базовые кадры из H3COMPLETE исходника. Там была иконка кристального дракона.
исправлю


RE: ERA III - Bes - 10.11.2020 22:46

https://dropmefiles.com/p21G9
UN44 с головой дракона (Click to View)
+ те кадры, что я исправлял из оригинального WoG3.58f файла UN44.def

Upd.Я таки планирую другие незатронутые кадры из un44 так же доработать под общую wog-подложку (заклы/навыки), после чего уже выложу все файлы разом.
Кстати, касаемо головы, которую wogteam вставила в кадры специализации - может поменять её? раз уж занялись этой темой?
взять голову одного из драконов NWC-рендеров и уменьшить в размер 36 пикселей по длине?
Мутарэ на каком драконе должна специализироваться? кристальном же?


RE: ERA III - Berserker - 11.11.2020 00:11

Bes, на твоё усмотрение. Мне казалось, что специализация по всем драконам.


RE: ERA III - Archer30 - 11.11.2020 17:19

Thanks Bes132

Berserker, is there anything changed to HE:L1 and HE:L2? They don't seem to work now. Although HE:L5 works the same.

Another question is, how can I check the number of scenarios of a campaign?
I'm trying to write external scripts for campaigns. I learn from the WoG Campaign structure. It turns out I have to put my script for a campaign scenario in Maps\Resources\[campaign file name]\[scenario #]\Data\s directory. But where I can get the scenario # from?


RE: ERA III - Berserker - 12.11.2020 07:07

Archer30, I didn't change HE:L, maybe wrong path. Show me the code, please.
Open campaign editor. When you select map, you see Zone name. There is a txt with campaign zone names in h3bitmap.lod, afaik. Map name is zone index in group, starting from zero.

Or simply create 1, 2, 3, 4 directories with Data\s\test.erm inside with

ZVSE2
!#IF:M^1^; or 2 or 3 or 4


RE: ERA III - Archer30 - 12.11.2020 17:33

Berserker,

Thanks for the tip of campaign index. What if it's a 3rd party campaign that I have only the h3c? Guess testing each of them is the only choice?


RE: ERA III - daemon_n - 12.11.2020 23:06

(09.11.2020 22:16)igrik Wrote:  

igrik, Раньше было так (Click to View)
То есть !!FU87052:P; и !!FU87053:P; больше не нужны?


RE: ERA III - Berserker - 13.11.2020 00:09

Archer30, look at zamptext.txt or camptext.txt

Say, the map zone is Even way home

Long Live the Queen
Liberation
Song for the Father
Dungeons and Devils
Long Live the King
Spoils of War
Seeds of Discontent
Bracada
Islands
Krewlod
Nighon
Tatalia
Armageddon
A Life of A-d-v-e-n-t-u-r-e
Evil Way Home - 14-th item in the list
In the Wake of Gods
The Samaritan
Rise of the Necromancer
Unholy Alliance
Specter of Power

Item index is 14. In each campaign group item indexes start from zero.


RE: ERA III - igrik - 13.11.2020 02:05

(12.11.2020 23:06)daemon_n Wrote:  
igrik, Раньше было так (Click to View)
То есть !!FU87052:P; и !!FU87053:P; больше не нужны?
Нужны. Я ошибся. Исправлю в своих сообщениях.


RE: ERA III - Archer30 - 13.11.2020 22:20

Berserker, I don't fully understand your way as it seems only works for the official campaigns. When it comes to 3rd party campaign, for example, Heroes Chronicles, I got confused. But anyway I figured out with IF:M.
HC - Masters of the Elements

Another question I would like to ask is about installmod.exe. What parameter should I use to insert text in list.txt with it (if I run a cmd)?
Trying to create a custom installer without Sydr's Mod Manager.


RE: ERA III - Berserker - 13.11.2020 23:26

Archer30,
Edit - Campaign properties - Map: Armageddon

open zamptext.txt
Search for Argageddon:
// Armageddon Map Region Names
Armageddon A
Armageddon B
Armageddon C
Armageddon D
Armageddon E
Armageddon F
Armageddon G
Armageddon H

So Armageddon A = 0
Armageddon B = 1
Armageddon C = 2
...

installmod.exe "mod name"

You can open Mixed Neutrals.exe mod file with winrar and see sfx comments and settings. All my mods can be installed without mod manager.


RE: ERA III - Archer30 - 14.11.2020 06:28

Thanks Berserker, now I understand how it works! 132

A small drawback is that installmod.exe triggers UAC, which makes an installer far more suspicious. For now, is there no way to have the same function as installmod.exe but without UAC warning?

Also, any idea about HE:L1/L2? They don't seem to work in the latest ERA (no need to check in a hurry, just reminding).


RE: ERA III - Berserker - 14.11.2020 08:02

Welcome Sm

Archer30, installmod is simpliest program, used for years. I don't know, why it triggers UAC at your side.

Quote:Also, any idea about HE:L1/L2? They don't seem to work in the latest ERA (no need to check in a hurry, just reminding).
I will recheck both, added to TODO, thanks.


RE: ERA III - Berserker - 14.11.2020 08:18

HE:L1^^ is invalid syntax for Era 3+
I'll rewrite the command from scratch, but you will have to write HE:L1/^name^ (not slash, separating arguments).


RE: ERA III - Archer30 - 14.11.2020 09:24

Strange, so HE:L2 does work? 102 Then we have different results here.

The example you gave
isn't this the same as the previous HE:L1 syntax (without /)?

I'm surprised that UAC does not trigger on your end with installmod.exe. How could it be? I use the OS with the most market share - Windows 10 Home btw. Fie
It would be really handy if installmod.exe also remove the outdated mod folder with the name specified.


RE: ERA III - Berserker - 14.11.2020 09:26

I use Windows 7 with UAC off. installmod should not trigger anything, unless you've installed the game on C drive in program files.

Update:
https://dropmefiles.com/RcmX5

Code:
[!] HE:L command was rewritten to support #/^...^ Era 3 syntax. Automatical adventure map redrawing was removed.
    From now command supports any ERM string.



RE: ERA III - Archer30 - 14.11.2020 10:25

Berserker, thanks! Now HE:L works like a charm.

Hehe, you won't believe it unless I show a screenshot, check this one.
As you see, installmod.exe is with a "shield" on its icon, that's the mark for programs that triggers UAC. Also I don't think it matters which location I put it or my games, the program itself has been marked and will trigger UAC whenever it's run.


RE: ERA III - Berserker - 14.11.2020 17:11

4. Right click on the desktop shortcut icon and select “Properties”. Select tab for “Compatibility”.
5. On “Privilege Level” at the bottom of this window: remove check from the box next to “Run this program as an administrator”.


RE: ERA III - Archer30 - 14.11.2020 17:58

Sorry Berserker, I should have identified the cause sooner. The reason that installmod triggered UAC is becoz it's not from a known publisher.

So basically if a user clicks "yes" in this pop-up, installmods will run as it should, nothing more. But it looks suspicious. That's why I'm looking for an alternative way.


RE: ERA III - Berserker - 14.11.2020 18:11

Archer30, I didn't received a single compliance on UNC for years. It's normal, that any new application without a company signature will trigger such a warning single time. Many people have UAC disabled.


RE: ERA III - Berserker - 15.11.2020 07:25

Обновление dll и ЕРМ библиотеки: https://dropmefiles.com/5eNn5


RE: ERA III - Berserker - 17.11.2020 03:32

Era 3.3:
-) Создать временный массив строк
-) Получить список всех папок в каталоге Mp3
-) Объединить элементы списка, используя перевод строки в качестве разделителя
-) Вывести пользователю список папок в каталоге Mp3



RE: ERA III - Berserker - 18.11.2020 07:32

Обновление для работы мода «Безлимит на музыку»:
https://dropmefiles.com/pGC0K


RE: ERA III - SergOz - 20.11.2020 03:08

(20.11.2020 02:51)Berserker Wrote:  SergOz, переходи на тройку. Я вчера ради интереса запустил Феникс-Мод. Стартанул без ошибок, как и новая карта Валеры. Ну разве не пример 99% совместимости? А возможности новые растут с каждым обновлением.
Та, я уже здесь, просто мой, не раз простреленный в геройских боях мозг, не поспевает за всеми нововведениями + отсутствие простых понятных примеров использования.
А чтобы задать вопрос, нужно хоть немного вникнуть в суть вопроса...
Афоризм - мой, при употреблении ссылка на автора не обязательна



RE: ERA III - Bes - 20.11.2020 03:14

SergOz, предлагаю тебе попробовать сделать одну сборку нововведений ERA3, это максимально продуктивный способ узнать всё, без практики по сути, и реально увидеть что даже и не знал. Заодно и всем пользу принесёшь эдаким ЕРМ-справочником по новой платформе 116


RE: ERA III - Berserker - 20.11.2020 03:20

SergOz, начни с простого. Пишешь новый скрипт — вместо y и z переменных пиши при первом использовании

(urovenMonstra:y), (opisanieGildii:z) или (monLevel:y), (guildDescription:z), а далее уже без :z, :y

Пример:

Второй уровень — это почти везде, где хочешь написать голое число, поищи константу в 9999 era - const.erm (включены в автодополнения редактора).
Итого:



RE: ERA III - SergOz - 20.11.2020 03:48

Berserker, та это я уже "схавал" и новую маленькую карту пишу исключительно на ERM2, где нет ни одной v и y, а sublime (да будут счастливы дни его авторов), очень помогает мне в этом. Прям сто раз уже клял себя, что раньше не попытался в нём работать. Но, всё даётся туго и времени мало. А тут ещё и времена тяжкие настали.
Не такие, конечно, как в периоды набегов половцев и печенегов, но ...

Bes, я бы с радостью помог, но, про мозг помнишь где копать и собирать, как оформить и т. д. - я не знаю. Я абсолютно не знаком со стуктурой Героев, никогда ничего (кроме mp3) не менял, в папки не лазил и даже чем что открывать не знаю. За последние пол-года, благодаря этому форуму, появились небольшие просветы в этой области, но, так чтобы создать справочник - сори. Sorry
P.S. Я, если бы не твой Хэлп, так вообще бы 75


RE: ERA III - Berserker - 20.11.2020 03:52

SergOz, обращайся, если будут вопросы )


RE: ERA III - Bes - 20.11.2020 03:59

SergOz, да я ж не о том, справочник должен был быть написан в ковычках.
Я просто тебе предложил внимательно, с кучей вопросов тут пройтись по истории изменений ERA3 ;-)
Так реально многое проясняется. А записывая для себя эти куски инфы по ЕРМ, потом ими можно со всеми поделиться, простым текстовиком с скопированными выдержками. Многие даже этого боятся/ленятся сделать, тем самым не давая себе же новый нужный для своих задач материал


RE: ERA III - daemon_n - 20.11.2020 07:06

(20.11.2020 03:20)Berserker Wrote:  

иллюзия удобства: из-за обилия констант, перечисленных в столбик, довольно часто приходится прыгатьь по файлу. Мб, отделить особо крупные списки? Скажем, номера героев, артефактов, существ и объектов - в отдельные erm-файлы.

Ну и в справку добавить можно основные префиксы? Так будет сразу наводка на ERM2


RE: ERA III - Berserker - 20.11.2020 07:57

daemon_n, так про любой справочник и документацию можно сказать. Прыгать нужно всегда. Найти нужно группу лучше всего по поиску: CTRL+F, "FLAG" + F3...

Чисто для визуального ознакомления да, сортированный список префиксов может быть удобен.


RE: ERA III - Panda - 21.11.2020 04:51

Berserker, вылет при заходе в город, из модов только WoG Scripts, без HD мода результат такой же. Эра 3.2.0 + патч который для работы смешанных нейтралов нужен был.
Нанимаю оруженосца, допустим эльфа, беру знамя, и либо вылет сразу, либо вылет при попытке зайти в город.
Дебаг плюс сохранение:
https://cdn.discordapp.com/attachments/755379249744969830/779492369779130374/Debug.rar


RE: ERA III - Archer30 - 21.11.2020 12:36

Hi Berserker,

Can I ask you to implement the support for h3m like what you have done to h3c - putting scripts in resources folder makes those scripts only enabled when a specific scenario is loaded, please? That would be really handy. 96-copy


RE: ERA III - Berserker - 21.11.2020 17:24

Panda, ровно о таком же девушка с ВК дважды мне писала. Но там была сборка. Что за патч?

Archer30, Maps\Resources\Arrogance\Data\s\...

Done for years already.


RE: ERA III - Panda - 21.11.2020 18:53

Berserker, когда ты выпускал мод смешанные нейтралы версию 2.1.0, ты скидывал и обновления эры, т.к. на чистой 3.2.0 мод бы не работал.
Вот этот:
"Обновление dll и ЕРМ библиотеки: https://dropmefiles.com/5eNn5".


RE: ERA III - Berserker - 21.11.2020 19:00

Panda, понял, спасибо. Буду разбираться. Действительно, нужно срочно решать.


RE: ERA III - Berserker - 21.11.2020 19:39

Panda, как вызвать вылет? Один раз получилось при поднятии баннера. Дальше — ни в какую.


RE: ERA III - daemon_n - 21.11.2020 19:42

Berserker, как я понял, надо в замок сессть после этого


RE: ERA III - Berserker - 21.11.2020 19:46

daemon_n, заходил в город по сто раз. Вылет при посещении объекта должен быть. Но у меня он крайне редкий.


RE: ERA III - Panda - 21.11.2020 19:48

Berserker, Нанимаю оруженосца, допустим эльфа, беру знамя полководца, жму "пробел" ну или просто мышкой зайти в город, "улетаю в космос" 148 Улетаю увы не всегда, иногда можно и 3 часа не улетать, и иногда несколько раз подряд улететь, так и не увидев карты...


RE: ERA III - Berserker - 21.11.2020 22:05

Panda, печально, что баг плавающий. Посмотрю, что можно сделать.


RE: ERA III - Panda - 22.11.2020 11:10

Berserker, да, согласен, могу лишь высказать свои подозрения: вылет возможно как-то связан либо с оруженосцем, либо со знаменем полководца у врат города, либо с их сочетанием. Но это не точно, это лишь предположение.


RE: ERA III - Berserker - 22.11.2020 16:27

Уже отписался в другой теме. Попробуй отключить wog native dialogs плагин и выполнить те же действия с оруженосцем и городом. А потом поднять баннер войны.

Обновление dll и библиотеки. Теперь в форме удобного инсталлятора.
Нужно для новых версий модов.


RE: ERA III - Berserker - 22.11.2020 18:50

https://dropmefiles.com/IuGHC


RE: ERA III - Archer30 - 23.11.2020 17:21

Quote:Done for years already.
Thanks!

Berserker, latest bug of the ERM engine. Spiteful

A side effect of the !!CO:A series is that it messes up the name string of the commander.
Currently, this bug has been spotted on ERA 2.46, ERA 2.9 and ERA 3.2+ with CO:A1 and A3. Most likely A2 and A4 also have the problem.


RE: ERA III - Berserker - 23.11.2020 17:41

But CO:A should change only artifact name, no? Show me the code, please.

Multiple hot keys cannot be set now, but I'll see what can be done.


RE: ERA III - Archer30 - 23.11.2020 18:28

Berserker, try this one.
In theory, Archer should always be your loyal commander. But in reality, it ends up with some random guys... Rolleyes

A question - is it possible to raise the priority of scripts inside Maps\Resources\[Name]\data\s ? According to a map maker, scripts in this directory will always have the lowest priority (execute sooner than other scripts) without the consideration of priority in list.txt. Changing the names of scripts also didn't help. Yes, he's making a map allowing wogification with external scritps


RE: ERA III - SergOz - 23.11.2020 18:29

У меня, с самыми последними обновлениями Эры 3, по прежнему, при переигровке боя, меняются препятствия на поле боя.
Может, нужно изменить? Но, после предупреждений Бараторча и Игрика опасаюсь это делать, так как не уверен 96
Не дай Бог, жена увидит этот пост...



RE: ERA III - Berserker - 23.11.2020 23:30

SergOz, у тебя явно древняя версия плагина на переигровку.

Archer30, scripts from Maps\Resources\[Name]\data\s are currently loaded before global scripts, thus they are executed first. thus nothing has to be done to achieve the goal.

Thank you for code examples, I'll look into them.


RE: ERA III - Berserker - 26.11.2020 08:44

https://mods.hmm35.ru/Era%20Update.exe
Обновление Эры. Далее будет использоваться эта же ссылка для неофициальных обновлений.
Понадобится для мода Difficulty Mod и других.


RE: ERA III - daemon_n - 26.11.2020 08:50

НА последних версиях Эры стал встречать странно отбражение "лычек и мечей" опыта. То они появляются, то пропадают - нередко даже с отключенной опцией на опыт.

UPD: баг была получен без новых "багофиксов.dll", потому изучу поподробнее. Мало ли кто ещё сталкивался с этим, но как минимум один репорт я уже получил.


RE: ERA III - Berserker - 26.11.2020 09:14

daemon_n, сомневаюсь, что дело в Эре. Лычки и опыт не трогал никаким боком.


RE: ERA III - Archer30 - 26.11.2020 20:01

Berserker, there is a new bug found with WoG Scripts - 31 wog - creature relationships. It seems
from the script is incorrect, both x9 and x10 = 0 no matter what.
is corrected.

I am happy to update this particular script. But isn't the first case should be allowed?


RE: ERA III - Berserker - 27.11.2020 00:32

It should be allowed, thanks. I'll recheck it. Thank you for report.


RE: ERA III - Berserker - 27.11.2020 07:27

В Эре 3.3 реализована поддержка цветных текстов для всех режимов HD мода. Плагин дли китайского языка, использующий свои функции отрисовки, работает по-старому.
https://mods.hmm35.ru/Era%20Update.exe


RE: ERA III - Algor - 27.11.2020 10:05

132


RE: ERA III - daemon_n - 27.11.2020 10:33

(27.11.2020 07:27)Berserker Wrote:  В Эре 3.3 реализована поддержка цветных текстов для всех режимов HD мода.
Работает!!!

P.S.: в апдейтере мусорная папка "Runtime"


RE: ERA III - Berserker - 27.11.2020 15:14

daemon_n,
Code:
[+] Added "Runtime" directory to Heroes 3 directory. Mods should read/write data, created or modified at runtime there.
    If you need config, that player will be able to alter using GUI interface, read data from "Runtime\you mod.ini",
    fallbacking to json config values from Lang directory. Thus cleaning "Runtime" directory will have the same effect as reinstalling all mods from scratch.
Удалишь эту папку, самые современные моды не смогут в ней настройки хранить. Её задача — хранить изменяемые файлы но так, что если всю её очистить, эффект будет как от переустановки всех модов. То есть моды считывают резервные json-конфиги или используют настройки по умолчанию. Новый Difficulty Mod от Perry уже вовсю использует сохранение/загрузку ini из Эры 3.3.


RE: ERA III - daemon_n - 27.11.2020 18:34

Может, тогда туда и плагниы добавить? А то одно там включи, другое там выключи, ну, вы поняли.


RE: ERA III - Algor - 27.11.2020 18:52

daemon_n, не надо мешать, это не для плагинов папка.
Берс вроде вполне однозначно обозначил ее роль.


RE: ERA III - Archer30 - 28.11.2020 00:28

Berserker, there is a mini bug with Campaign - starting bonus.

When picking Building Lookout Tower at Main Town as the starting reward, the game is trying to find BoTCasW.pcx as the picture of the option, instead of BoTCastW.pcx. The first one does not exist.
Testing campaign - In zone 2 you will have the Lookout Tower as the starting reward.


RE: ERA III - Berserker - 28.11.2020 00:53

Quote:BoRUni2.pcx BoRTre2.pcx BoRPeg2.pcx BoRElf2.pcx BoRDwf2.pcx BoRCen2.pcx BoRDra1.pcx BoRUni1.pcx BoRTre1.pcx BoRPeg1.pcx BoRElf1.pcx BoRDwf1.pcx BoRCen1.pcx BoRHoly.pcx BoRTre2h.pcx BoRTre1h.pcx BoRGar2.pcx BoRDwf2h.pcx BoRDwf1h.pcx BoRGar1.pcx BoRAid.pcx BoRMrk2.pcx BoRMrk1.pcx BoRHal4.pcx BoRHal3.pcx BoRHal2.pcx BoRHal1.pcx BoRCas3.pcx BoRCas2.pcx BoRCas1.pcx BoRTav.pcx BoRMag5.pcx BoRMag4.pcx BoRMag3.pcx BoRMag2.pcx BoRMag1.pcx BoCsAng2.pcx BoCsCv2.pcx BoCsMon2.pcx BoCsGr2.pcx BoCsPik2.pcx BoCsAng1.pcx BoCsCv1.pcx BoCsMon1.pcx BoCsSwd1.pcx BoCsGr1.pcx BoCsPik1.pcx BoCsHoly.pcx BoCsTav2.pcx BoCsCv2S.pcx BoCsGr2H.pcx BoCsGr1H.pcx BoCsLite.pcx BoCsBlak.pcx BoCsMrk2.pcx BoCsMrk1.pcx BoCsHal4.pcx BoCsHal3.pcx BoCsHal2.pcx BoCsHal1.pcx BoCsCas3.pcx BoCsCas2.pcx BoCsCas1.pcx BoCsDock.pcx BoCsTav1.pcx BoCsMag5.pcx BoCsMag4.pcx BoCsMag3.pcx BoCsMag2.pcx BoCsMag1.pcx
BotCasW seems to be valid name. I didn't find "BoTCastW" in the executable. Strange.


RE: ERA III - Berserker - 28.11.2020 01:01

Lifehack. WoG Chinese\Data\Redirections\Missing\chinese.json
Code:
{
  "BoTCastW.pcx": "BoTCasW.pcx"
}



RE: ERA III - Archer30 - 28.11.2020 01:13

Well, you didn't find BoTCastW from the executable becoz there isn't one. Dry It looks for BoTCasW.pcx like I said, while BoTCastW is the only one available.
Please add this lifehack to the next release so I don't have to correct the Heroes Chronicle mod 96-copy


RE: ERA III - Berserker - 28.11.2020 02:11

No problem, done.


RE: ERA III - daemon_n - 28.11.2020 08:03

Заметил уже дважды. Если в карте присутствует скрипт на замену портрета через эрм, то меняется он некорректно, а при загрузке игры так вообще жалуется на отсутствие ресурса и отображает не пойми что.

P.S.: Насчёт папки Runtime (а ещё random_maps и games).
Может, добавить возможность эре создавать данные папки автоматически? Или будут проблемы со стороны доступа к системе?


RE: ERA III - Archer30 - 28.11.2020 09:59

daemon, from testing the chronicles mod I did not find the same issue. As far as I know, HE:L might not be correctly working for ERA 3.0 - ERA 3.1. That might interfere with the test. In ERA 3.2 everything works just fine.

Berserker, thanks! Just make sure it's
Code:
"BoTCasW.pcx": "BoTCastW.pcx"
(The post swapped these two around)


RE: ERA III - Panda - 28.11.2020 14:17

Berserker, погонял последнюю Эру, пока всё хорошо, багов не замечено, за исключением одного краша - он редкий, случается при передаче хода, повторная загрузка автосейва решает проблему. Так же скидывали еще пару дебагов, которые очень похожи на этот. Глянь, как будет время, в чём там дело, в Эра или это скрипт нужно править.
Дебаг + сохранение:
https://yadi.sk/d/bHVAcx2dh7GZBw


RE: ERA III - Berserker - 28.11.2020 15:43

daemon_n, отличная идея. Буду проверять и автоматически создавать папки Runtime, random_maps, games.

По портретам действительно проверь последнее обновление.

Archer30, right, done.

Panda, понял, посмотрю, спасибо.


RE: ERA III - daemon_n - 28.11.2020 17:19

Berserker, последняя эра, кажется (отзыв из ВК) (Click to View)
UPD: возможно, уже исправлено. Потому и нет смысла смотреть, но я пока оставлю здесьAb

P.S.: Напоминаю о своей просьбе: добавить кнопку вог настроек в окно перед стартом кампании.Ab


RE: ERA III - Berserker - 29.11.2020 01:40

Quote:Berserker, последняя эра, кажется
1000 const.erm из старой Эры 3. Установили обновление поверх старой версии. Нужно переустановить поверх чистых героев или скачать сборку.

Quote:P.S.: Напоминаю о своей просьбе: добавить кнопку вог настроек в окно перед стартом кампании.
Это к Игрику. Идеально для wog native dialogs.


RE: ERA III - daemon_n - 29.11.2020 02:28

Berserker, понял, а что касается (Click to View)
Тоже неправильно обновили?
Я просто не могу понять, где взятть новый erm framework. Только из ERA 3.2 с яндекса? Что странно, он там старее и меньше моего текущёго. И все жалуются на вылет при нападении на замок.

P.S.:
с каких пор я не daemon_n?Dry


RE: ERA III - Berserker - 29.11.2020 02:30

Panda, вылет в начале боя. Пробуй без всех плагинов igrik-а. Если будет повторяться, пробуй начать карту без BattleSave и иже с ними вообще.


RE: ERA III - daemon_n - 29.11.2020 02:35

Berserker, это game bug fixes extended.dll

P.S.: 1000 era - stdlib.erm и 1000 era - consts.erm более не нужны?

UPD: вот текст дебага (Click to View)
P.P.S.: два краша уже вот с этим - то есть багофиксы при нападении на город дают это:

Era.34AB6 (Triggers.Hook_EnterTownScreen + 54 in Triggers.pas on line 514 offset 31)


RE: ERA III - Panda - 29.11.2020 03:29

Berserker, спасибо, теперь хотя бы понятно, что проблема не в Эра и не в скрипте, а в каком-то плагине. За 2 дня это единственный вылет. Загрузка автосейва после вылета решило проблему, повторного краша не было, и игра дальше шла без каких-либо проблем ещё 2 часа. Однако от других есть уже 2 отчета о краше при передаче хода, и ещё 2 о краше при нападении на город.

daemon_n, это печально, если эти 2 вылета при передаче хода и при нападении на город делает game bug fixes extended.
Новую эру и её комплектацию вот отсюда взять можно:
https://mods.hmm35.ru/Era%20Update.exe
Обновление Эры. Далее будет использоваться эта же ссылка для неофициальных обновлений.


RE: ERA III - daemon_n - 29.11.2020 04:09

Panda, именно про город я уже написал


RE: ERA III - Berserker - 29.11.2020 04:30

Quote:Berserker, это game bug fixes extended.dll
Да, я детально ознакомился с папкой Debug. Это в тему плагинов к игрику.

Quote:Я просто не могу понять, где взять новый erm framework. Только из ERA 3.2 с яндекса? Что странно, он там старее и меньше моего текущёго. И все жалуются на вылет при нападении на замок.
Игрик писал, что исправил указанный вылет. И что карты портятся, если играть со старым BattleSave плагином.

Обновление берётся отсюда: http://wforum.heroes35.net/showthread.php?tid=5624&pid=119273#pid119273
Там постоянная ссылка.

Panda, попробуй без game bug fixes extended.dll. У меня код уже давно (с 2.х?) не трогает ничего с городами. Если это баг плагина, то будем просить игрика исправить.


RE: ERA III - Berserker - 29.11.2020 07:22

Image: image.png





RE: ERA III - Archer30 - 29.11.2020 08:13

Berserker, very interesting feature. It might be useful for displaying the required resources of the next building to be built (with a building priority list).

Bes, can I confirm that dropmefiles link of this post has included every frame you fixed? To build the UN44 with the best quality, I only need to use UN44 from WoG and replace with the frames you shared, right?

I did a comparison with every frame you shared, and there is one frame that caught my notice.
Image: wA17yr3.jpg
(Left for WoG, Right for Bes)
It seems the hellhound you fixed has some green dots on its body. 102 Is this normal?


RE: ERA III - Berserker - 29.11.2020 08:20

Archer30, actually, it's now possible (alpha) to use most def pictures in messages, captions and hints.


RE: ERA III - daemon_n - 29.11.2020 08:28

Berserker, выглядит так, словно случайно был найден кусок непримечательного кода, который таким же случайным образом через авось выдало текущий результат)

Однако выглядит просто замечательно, особенно с песенкой)
Теперь все релизы чтобы были под музыку и цитаты философов античности.

P.S.: Разве что нет поддержки wog native dialogs, как я понял.


P.P.S.: в sublyme нет поддержки !!TL; ресивера.


RE: ERA III - helgtla - 29.11.2020 12:00

(29.11.2020 07:22)Berserker Wrote:  

Вот ЭТО очень даже офигенно.
Есть вопрос:
1) Будут ли ограничения на показ типов ДЭФ файлов (объекты на карте, интерфейс, герои в битве и т.д.)?
2) На картинке этого не понять, но: в сообщении показывается только первый кадр ДЭФа или проходит полная анимация (случай с несколькими кадрами в одном ДЭФ файле)?
3) Данная фича будет распространятся только на !!IF :M или и с другими диалоговыми окнами будет работать(!!IF :N / !!IF :Q и т.д.)?
4) ДЭФы будут "подхватываться" из директории MOD или это только к стандартным, запакованным в оригинальных LOD архивах относится?
-----------------------------------------------
UPD: Посмотрел, вопросы сняты.
daemon_n Разве что нет поддержки wog native dialogs, как я понял.
С ЭТИМ да, пока доработать надо бы, а то странно смотрится иногда.
Image: image.jpg


RE: ERA III - daemon_n - 29.11.2020 12:57

Berserker, найден баг.

Если у существа в текщем раунде (кажется, лишь у человек) сработала мораль, то у всех существ того же типа в этом раунде сработает мораль.

Смотреть баг с моралью ОНЛАЙН БЕЗ СМС И РЕГИСТРАЦИИ!!!!!11
Эра 3.04 и 3.2.+ - результат един.


RE: ERA III - feanor - 29.11.2020 13:58

К такой фиче надо библиотеку иконок, а то в самой игре маловато тех, которые в текст вписываются нормально.


RE: ERA III - Berserker - 29.11.2020 14:42

helgtla,
Quote:Вот ЭТО очень даже офигенно.
MicroHTML в мире Героев. Схожая функция есть в Цивилопедии. Там большинство текстов с иконками, что занятно упрощает локализацию.

wog native dialogs работает. Я отключил его для ввода фигурных скобок в диалогах.
Размер внедряемых изображений должен либо быть схожим с межстрочным расстоянием, либо нужно пустыми переводами строк отбить место под картинку.
У тебя в примере несколько символов текста съедено, кинь его код, пожалуйста.

Пока что поддерживается первая группа кадров, сам кадр может быть любым, начиная с 0.
Поддерживается во всей игре, где есть тексты.

daemon_n, у меня такого бага ни в одном тесте не было, а проверял много. Нужен гарантированный сейв с доказательством без модов.

feanor, хотел такую же идею предложить. Библиотека иконок схожего со шрифтами размера (высоты) была бы очень кстати.


RE: ERA III - helgtla - 29.11.2020 17:04

(29.11.2020 14:42)Berserker Wrote:  У тебя в примере несколько символов текста съедено, кинь его код, пожалуйста
Здесь CH02.def это дэф героя в битве (размер кадра ДЭФа 150х175). Разрешение игры - 1180x664.


RE: ERA III - Berserker - 29.11.2020 22:13

helgtla, как не пытался, съеденные символы повторить не удалось.
Image: image.png



RE: ERA III - Chaomen - 29.11.2020 22:55

Я насколько понимаю, IF:N ещё не позволяет указывать количество монстров?


RE: ERA III - Berserker - 29.11.2020 23:10

Chaomen, всегда позволяла. Число * 65536 + Тип, если не ошибаюсь.


RE: ERA III - Chaomen - 29.11.2020 23:20

(29.11.2020 23:10)Berserker Wrote:  Chaomen, всегда позволяла. Число * 65536 + Тип, если не ошибаюсь.

119 Я никогда об этом не знал, спасибо! И да, я проверил и именно так работает.


RE: ERA III - helgtla - 29.11.2020 23:31

Berserker, ХЗ, у меня часть букв иногда съедается, зависит от количества пропущенных строк и размера Деф кадра.
Пример кадр героя в битве (150х175)
Пример 1 (без пробелов)
Image: image.jpg
Пример 2 (10 строковых пробелов)
Image: 3.jpg
Пример3 (Дэф существа в битве 450х400 + 10 строковых пробелов)
Image: 2.jpg
------------------
И ещё, все Дэфы ставятся не по центру диалогового окна.

пар-ры ХД мода (1180x664 + 16 бит Верок / стрейч фильтр None + Hemite)


RE: ERA III - Berserker - 30.11.2020 00:35

Возможно, ещё от шрифтов зависит. Кинь, пожалуйста, свой шрифт, def, на котором можно проверить, и коды IF:M, буду тестировать.


RE: ERA III - helgtla - 30.11.2020 01:35

Berserker,
https://drive.google.com/file/d/1mWmMQSXc0rO0j5ue6zg226KWei_PJQ3r/view?usp=sharing


RE: ERA III - Berserker - 30.11.2020 02:06

helgtla, спасибо, вижу теперь.


RE: ERA III - SergOz - 30.11.2020 02:49

Это действительно круто!
Да, что там круто - это просто ахрененно!!!

Первый блин комом. Не пойму как показать всю картинку
P.S. Это будет работать на Эра 2, если обновить dll ?


RE: ERA III - Berserker - 30.11.2020 03:18

SergOz, сейчас картинка рисуется вместо символа, на неё не выделяется вертикальное место. Для крупных центрированных картинок это частично решаемо, но пока можно просто отбивать пустыми строками снизу. Я правильно понял вопрос?


RE: ERA III - V_Maiko - 30.11.2020 03:18

The dialog with icons reminds me a lot when I was playing the first Exile trilogy from Spiderweb software, but this is much more advanced.



RE: ERA III - Berserker - 30.11.2020 03:21

V_Maiko, I was always excited with idea to embed graphics in text in Heroes 3, though the code with character replacement was remaining an experimental for years. Maybe, we will have something more or less usable, but there are many technical issues too.


RE: ERA III - SergOz - 30.11.2020 03:23

Berserker, нет, в игре всё как надо! Я про то, что в посте не вся картинка.
Видно нужно сперва в редакторе править, а потом кидать в ibb

Повторюсь: Это будет работать на Эра 2, если обновить dll ?
Или это будет уже Эра3


RE: ERA III - Berserker - 30.11.2020 03:38

SergOz, это будет уже Эра 3.


RE: ERA III - V_Maiko - 30.11.2020 03:38

SergOz, It seems to me that if it depended once more on the Erm Framework it will only work for the latest versions.


RE: ERA III - Berserker - 30.11.2020 05:57

V_Maiko, actually no, colored texts is dll-only feature without ERM relation. But images in texts is a feature of Era 3.3+ dll.


RE: ERA III - Berserker - 30.11.2020 08:06

Новое обновление: https://mods.hmm35.ru/Era%20Update.exe
-) ERA учитывает цвет, который HD-мод устанавливает для своих нужд через переменную "HotA.FontColor".
-) Исправлено вычисление ширины символов. Изображения в тексте теперь корректно центрируются, а символы не пропадают.


RE: ERA III - daemon_n - 30.11.2020 14:30

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

Также "Содовский" ПКМ при игри без опыта корректно работает лишь на свой ход - на ход оппонента используется "Воговский" ПКМ.


RE: ERA III - daemon_n - 30.11.2020 15:54

Странный баг с константами:
- всё норм (Click to View)
- всё не норм (Click to View)

UPD: HERO_LAST_WOG тоже даёт лишь 0


RE: ERA III - Berserker - 30.11.2020 17:28

daemon_n, ZVSE2 забыл и скобки -> k/0/(HERO_LAST_WOG).

Quote:в сетевой игре даёт-ся возможность нажать клавишу "F" на ход вражеского сказочного дракона - в руку даётся спелл, но не кастуется, и отображается дальность хода вражеского дракона, словно он союзный.

Также "Содовский" ПКМ при игри без опыта корректно работает лишь на свой ход - на ход оппонента используется "Воговский" ПКМ.
Нужна отдельная тема сугубо для багов Героев 3/WoG, просто как справочник.


RE: ERA III - Bes - 01.12.2020 11:07

(29.11.2020 08:13)Archer30 Wrote:  Bes, can I confirm that dropmefiles link of this post has included every frame you fixed? To build the UN44 with the best quality, I only need to use UN44 from WoG and replace with the frames you shared, right?

I did a comparison with every frame you shared, and there is one frame that caught my notice.
Image: wA17yr3.jpg
(Left for WoG, Right for Bes)
It seems the hellhound you fixed has some green dots on its body. 102 Is this normal?
нет, я этот кадр не правил. Вот что было мной в плане фона кадров изменено
Code:
Un44Behe.bmp
Un44Beho.bmp
Un44Cycl.bmp
Un44Devi.bmp
Un44DFly.bmp
Un44Drag.bmp
Un44Eelm.bmp
Un44Efre.bmp
Un44Ench.bmp
Un44Felm.bmp
Un44Gobl.bmp
Un44Gole.bmp
Un44Harp.bmp
Un44Hell.bmp
Un44Lich.bmp
Un44Liza.bmp
Un44Mant.bmp
Un44Mino.bmp
Un44Naga.bmp
un44none.bmp
Un44Ogre.bmp
Un44Pelm.bmp
Un44PitF.bmp
Un44Shar.bmp
UN44Trea.bmp
Un44Tree.bmp
Un44Unic.bmp
Un44Vamp.bmp
Un44Wigh.bmp
Un44Wolf.bmp
Un44Wyve.bmp
как вы видите, здесь нету UN44Cerb
на всякий случай, повторю тот архив с исходными файлами, которые указаны выше в списке
https://dropmefiles.com/PDeeU


RE: ERA III - Bes - 01.12.2020 11:13

Berserker, обалденная вещь, картинки в тексте132


RE: ERA III - Archer30 - 01.12.2020 13:08

Thanks Bes for uploading again!

But as you see, it's Un44Hell.bmp I showed in the post, not UN44Cerb. Would you please check if everything's alright with this frame? 96-copy


RE: ERA III - Bes - 01.12.2020 18:59

Sorry Archer30, извини, после ночной работы не увидел, что речь про гончих а не церберов.
Однако, у меня кадр из WoG такой первоначальный
Image: 306cf8a9cc6e.png
я же за основу брал кадр из сборки daemon_n, где правил сам фон.
Короче, позже посмотрю что да как там с пикселями, хорошо


RE: ERA III - Archer30 - 01.12.2020 19:26

Bes, no worries! The icon you showed here is originally from GOG Heroes 3 Complete Edition.

Download GOG/WoG spec icons in case you don't have them - these are extracted directly from the source defs, so they should have the least quality loss.

From what I see, the art styles of GOG icons are different from WoG/ERA - the sizes, the shadows, the poses, etc. Thus they are not very recommended to mix together as they might break the consistency IMO.


RE: ERA III - SergOz - 02.12.2020 21:48

(01.12.2020 19:18)SergOz Wrote:  как узнать дэф вторнавыка, в частности "Мудрости", "Продвинутой Мудрости"?
(01.12.2020 19:45)Berserker Wrote:  SergOz, secskill.def от Secondary Skills (Вторичные Навыки).
Не получается у меня вставить картинку вторнавыка. Был уверен, что после secskill нужно добавить 17 или 017, но это - ошибка; {~>secskillWisdom.def} - так же ошибка. Пробовал и {~>secskillW.def} и... и... и... - всё без толку.
Альтернативные способы постичь знание Pioneer_smoke тоже были безуспешными

Пожалуйста, направьте на путь истины...


RE: ERA III - helgtla - 02.12.2020 22:06

SergOz, Berserker вроде писал, что пока с помощью {~>х.def} можно отображать лишь первый кадр ДЭФ файла. А выбор кадра/анимация всех кадров ДЭФа - это только в будущих релизах (пока данная опция на "обкатке"). Я потому сам пока не спешу всё это внедрять, всё равно после придётся заново корректировать. Думаю дождаться обновления ХД мода (на котором можно "безопастно" стопорнуться) + с цветными шрифтами доработку (тексты с прокруткой) + корректная вставка картинок из готового ДЭФа (или полной анимации).


RE: ERA III - SergOz - 02.12.2020 22:13

helgtla, я про картинку, которую можно увидеть в !!IF:Q#/20/24/1^^;
Там же не анимация... или я чёт не так понимаю?


RE: ERA III - helgtla - 02.12.2020 22:57

SergOz, secskill.def содержит кадры всех вторичных навыков (технически это ничем не отличается от анимации). Если указать такой ДЭФ, то с помощью этой "разметки" - выведется только первый кадр ДЭФа (начальная стрельба вроде).
Ни о каком варианте прописать 17 и т.д. речи скорее всего не идёт, так как команда IF Q уже берёт готовый РСХ из дэфа (через слеш номер кадра в ДЭФе).
   Имею ввиду, что никаких {~>secskillWisdom.def} и т.д. в игре физически не существует, а в IF Q идёт параметр ТИП/ПОДТИП. И тип это не сам ДЭФ(физически)а лишь ссылка-метка для след пар-ра "подтип" (берущий уже готовый РСХ). НАВЕРНО(по крайней мере я так себе представляю). Sm


RE: ERA III - SergOz - 02.12.2020 23:06

helgtla, Thank_you


RE: ERA III - Berserker - 02.12.2020 23:19

helgtla, можно первую группу выводить. Кадр через двоеточие:
secskill.def:13, например.

SergOz, IF:Q1/20'24/2/^What?^;


RE: ERA III - helgtla - 03.12.2020 22:05

Berserker, есть ли какой-либо способ выравнивать изображения выведенные в диалогах с помощью {~>х.def} кроме выставления пробелов?
   Сколько ни пытался, но в большинстве окон, первый ДЭФ часто оказывается с левой стороны диалога (начало абзаца), поставить на середину его получается лишь в некоторых диалогах (подсказки). А если одновременно нужно задействовать несколько картинок, то порой приходится очень постараться, чтобы их расположение в окне диалога было хотя бы более или менее адекватно распределено (я не говорю про картинки с разными разрешениями, имею ввиду, что спецом создавал картинки одного разрешения и пытался их выровнять/отцентровать). Ко всему прочему, сейчас, насколько я видел, бывают случаи, когда при каком-либо исправлении орфографии текста(бывает достаточно и запятую поставить), расположение картинок может значительно измениться.
Потому и хотелось бы знать, может есть способ как-то управлять смещением изображений, с последующей их фиксацией в показываемом окне. Просто, вроде бы как, на форуме проскальзывала инфа по редактированию текста в диалогах (отступы, центровка и т.д.), может эта возможность будет применима и на картинки?


RE: ERA III - Berserker - 03.12.2020 23:43

helgtla, обновление устанавливал? Изображение и так центрируется автоматически, как и остальной текст. Только в диалогах с прокруткой центрирование по левому краю. Возможно, я добавлю теги для управления построчным выравниванием, но и сейчас уже всё работает даже с твоим модом для тестов.


RE: ERA III - helgtla - 04.12.2020 00:10

(03.12.2020 23:43)Berserker Wrote:  helgtla, обновление устанавливал?
Наверно нет, у меня эровская библиотека с того момента, когда данная особенность была анонсирована. Попробую скачать последнюю сборку от Панды (в ней ведь есть эти правки?)

(03.12.2020 23:43)Berserker Wrote:  Возможно, я добавлю теги для управления построчным выравниванием.

    Вот это было бы очень хорошо.
---------------------------------------
Ещё, есть ли возможность как-то решить проблему с цветным выделением шрифтов в диалогах с прокруткой? Сейчас при цветовом выделении если есть прокрутка, цвет "сбрасывается" на белый после определённой длины текстового сообщения, а при попытке обновления тэга цвета перед каждым словом ({~цвет}СЛОВО 1 {~цвет}СЛОВО 2 {~цвет}СЛОВО 3 и т.д.{~}) - изменяется "межсловесное" расстояние и предложение может выглядеть очень сумбурно по заполнению (я так понимаю, что кол-во символов тэга цвета учитывается в общую длину строки, и из-за этого подобное и получается)


RE: ERA III - Berserker - 04.12.2020 00:15

http://wforum.heroes35.net/showthread.php?tid=5624&pid=119483#pid119483
Сборка Панды не нужно, все обновления по одной и той же ссылке пока.

По второй проблеме согласен, нужно работать.


RE: ERA III - helgtla - 04.12.2020 05:10

Berserker, скачал обновление, изображения центруются. Я доволен132 Благодарствую.


RE: ERA III - Berserker - 04.12.2020 05:13

helgtla, отлично ) Когда я соберусь поиграть в Ваши с Sergos-ом карты, уровень атмосферности в них уже будет зашкаливать Dance3
А пока, за работу Yes



RE: ERA III - Archer30 - 04.12.2020 06:28

Berserker, Hi!

I'd like to submit a request about the localization of debug generation. I hope to inform the players to send me the debug folder (in Chinese) so they can do so. I will also tell them stop sending me HD Crash Logs there. This would make the life of assembly builder much easier 96-copy

Also, here's a small list of my previous requests:
1. Skippable x vars. in DO loop
2. CO:A messing up commander's name

No hurry, just reminding in case they are not in your list. Thank you for all the great works!


RE: ERA III - Berserker - 04.12.2020 07:54

Archer30, thank you Archer, added to TODO all clauses 4


RE: ERA III - Berserker - 04.12.2020 08:56

Archer30, please, check if this dll is ok with Chinese colored texts and HD different modes:
https://dropmefiles.com/fwVqm


RE: ERA III - Archer30 - 04.12.2020 10:01

Berserker, there are some issues.

With WoG Native Dialog input dialog+32-bit HD modes
The previous dll: allows Chinese characters to be removed with backspace in input dialogues from WoG Native Dialog
New dll: is an instant crash with backspace on Chinese characters.
debug

Without WoG Native Dialog+32-bit HD modes
The backspace crash is non-existent.
Both old and new old dlls have no problem displaying Chinese text with different colour, but it has a problem with English characters.
For example,
{~Fuchsia}Events OFF 中文{~}
Image: os83927.jpg
You only get the Chinese text changed in colour. Even if it's {~Fuchsia}Events OFF{~}, the colour is still white.

With 16-bit HD modes
English and Chinese characters can be changed to any colour. WoG Native Dialog + Backspace on Chinese = crash still (on new dll).


RE: ERA III - Berserker - 05.12.2020 01:12

Archer30, thank you. Working on it.


RE: ERA III - Archer30 - 05.12.2020 14:56

Berserker, latest bug report of ERA today 96-copy

1. Missing golden colour from creature rank fonts.
Image: pG0alM9.jpg
Now I have double white swords.

2. A crash report from a player while using assembly+ACM.
Debug+Save
The player reported a crash happens when attacking the beholder (henchman). I tested with the save + reading the crash logs, it seems the problem happens with Liches when they cast death ripple with an attack. But I can't reproduce the problem with a new game.


RE: ERA III - PerryR - 05.12.2020 16:05

Archer30,
thanks for report, I played the fight 3 times, no crash 105

So maybe it was just bad luck.
Error says nothing to me...




RE: ERA III - daemon_n - 05.12.2020 16:32

PerryR, for me it says, that liches tried to cast mass death ripple


RE: ERA III - Berserker - 05.12.2020 18:10

Archer30, crash because of missing def. Any new creatures mods?


RE: ERA III - Archer30 - 05.12.2020 18:25

Well, that doesn't look like that at all. The mod list is in the debug folder, no creature mod was included.


RE: ERA III - Berserker - 05.12.2020 18:58

Seems like battle stack 0 def is set to null. If it is not related to some plugin, of course. Try the same battle without game bug fixes extended.dll, for instance.
Battle manager tries to access stack 0 def groups and stack 0 def is not loaded. Structure corruption, UN:C hack or some plugin interruption.


RE: ERA III - Archer30 - 05.12.2020 19:27

Rolleyes Hmmm, strange. It's getting weirder. I was able to reproduce the crash with the save, but now I can't. Even with the suspicious mass death ripple, everything's fine. I will leave this.


RE: ERA III - Archer30 - 06.12.2020 16:36

Berserker, I'm looking for some help with a crash report from Yunings.
Debug+save generated on turn end, using assembly+ACM
He suffers from random crashes on turn end and picking up treasures. The crashes are not reproducible. Would you please check the debug tell what might be the cause?
I suspect that has something to do with a portrait mod he loaded recently. The .pac is named in Chinese, which might impact the compatibility.


RE: ERA III - Berserker - 06.12.2020 17:39

Archer30, Battlereplay/Battlesave used to corrupt game structure. Thus crashes is almost in the same place and occurs when AI tries to visit Oasis object.


RE: ERA III - igrik - 06.12.2020 18:10

Berserker, они уже переписаны, исправлены и тщательно мной протестированны. В сборке у Панды сейчас точно актуальные версии. Также актуальные версии лежат на гите. И сейчас я уверяю, что они не могут создавать проблемные сейвы.

И укажу ещё вот что - плагин переигрываемой битвы вообще не трогает и не создаёт сейвы.


RE: ERA III - Archer30 - 06.12.2020 18:39

Berserker, then it seems like a dead end, becoz I know it quite well, yunings did not uses Battlesave plugin. It was the battle save script he used Rolleyes


RE: ERA III - Berserker - 06.12.2020 18:42

igrik, ты смотрел debug? На тех же местах вылет с тем же рандомом и с той же порчей структуры. Полагаю, администратор китайского форума yunings играл с более старой версией. Или wog native dialogs более старая. Ибо вылет Панды вызывался при активации сперва диалога wog native dialogs.

Battlereplay ("D:\HoMM 3 ERA3\EraPlugins\BattleReplay.dll", size: 77824, addr: 7CA50000, entry: 1D8E)

Image: image.png
Вылет в нижней строчке.


RE: ERA III - igrik - 06.12.2020 19:00

(06.12.2020 18:42)Berserker Wrote:  igrik, ты смотрел debug? На тех же местах вылет с тем же рандомом и с той же порчей структуры. Полагаю, администратор китайского форума yunings играл с более старой версией. Или wog native dialogs более старая. Ибо вылет Панды вызывался при активации сперва диалога wog native dialogs.
Да, я хорошо посмотрел дебаг.
Вот где ты тут в стеке увидел вызов "wog native dialogs"?
К тому же WND никогда не портил структуру.
И когда была порча структур (от плагина сохранения BattleSave), вылетало в другом месте (жаль адрес не сохранился), а в "erm memory dump.txt" всегда показывало, что виновен скрип новых боевых полей.
BattleReplay вообще уже месяц как не трогает сохранения, а ошибка в нём была только в том, что нельзя было увидеть окно повышения уровня (очень быстро оно закрывалось).


RE: ERA III - Berserker - 06.12.2020 20:11

Это в точности вылет из сейва Панды. Я тебе его уже кидал с последовательностью действий. Перепроверил ещё раз с генерацией вылета. Благо, сейв сохранился. Ты сказал тогда, что карта уже битая из-за плагина и бесполезно что-либо менять.

Вот сейв Панды:
https://dropmefiles.com/9uHEt

Открываем окно героя. Выбираем нового оруженосца.
Заходим в окно города и выходим.
Пробуем поднять Знамя Войны у города основным героем. Вылет ровно в том же месте.

Хотя, кажется, это были не твои плагины. Смотри:

Quote:if(NPCinBattleStr[0]==0) goto No_NPC; // и не было
if(*(int *)&NPCinBattleStr[0][0x4C]!=0){ // остался жив
Мусорный указатель на стэк командира в бою? Хотя боя не была, идёт подъём артефакта или посещение объекта.

int PlaceNPCAtBattleStart2(Byte *bm,int Side,int Placed)
NPCinBattleStr[Side]=0; этот код сработает только при бое, а если мы только загрузили игру и стартовали сохранение?

Проблема в том, что
// NPC
{0x4DA9B6,0,DP(NPC_AddExpo)}, //

Этот вызов происходит не только после боя, но и после посещения любого объекта. А ВоГ считает, что после боя и использует мусор в глобальной переменной NPCinBattleStr из прошлых боёв для проверки командира. Я прав?


RE: ERA III - Archer30 - 06.12.2020 20:18

Hi, here I upload the plugin yunings used in his game, might help with the diagnosis

WoG Native Dialog+Game Bug Fixes+Battle Replay used


RE: ERA III - Berserker - 06.12.2020 20:23

Archer30, seems, that I've found the source of bug. Will be fixed.


RE: ERA III - Panda - 06.12.2020 20:39

(06.12.2020 20:18)Archer30 Wrote:  Hi, here I upload the plugin yunings used in his game, might help with the diagnosis

WoG Native Dialog+Game Bug Fixes+Battle Replay used

Attention! I checked the given archive. I don’t know where these files were taken from, but the checksums of the plugins "game bug fixes extended.dll" and "wog native dialogs.era" do not match those that are in the igrik, and mine assembly! It is possible that these plugins were corrupted when they were loaded, or the files were modified by someone. With plugin "BattleReplay.dll" everything is fine, checksums match.


RE: ERA III - Archer30 - 06.12.2020 20:42

RolleyesPanda, older version doesn't mean they aren't from igrik.

Edit: Thanks all, I will pass yunings the latest plugins.


RE: ERA III - igrik - 06.12.2020 20:47

(06.12.2020 20:11)Berserker Wrote:  Открываем окно героя. Выбираем нового оруженосца.
Заходим в окно города и выходим.
Пробуем поднять Знамя Войны у города основным героем. Вылет ровно в том же месте.
Я исправлял этот вылет. У тебя может устаревшая WND?

(06.12.2020 20:11)Berserker Wrote:  Этот вызов происходит не только после боя, но и после посещения любого объекта. А ВоГ считает, что после боя и использует мусор в глобальной переменной NPCinBattleStr из прошлых боёв для проверки командира. Я прав?
Да, там мусор в Воге. Но вылетало по другой причине (в окне героя я использовал структуру артефакта _Art_{id, mod}. А вог использует только int id арта. Моя ошибка при переписывании части функции, хотя по исходникам Вога я это не разобрал, а разобрал только в Олли). Но это уже исправлено (см.выше ссылка)


RE: ERA III - Berserker - 06.12.2020 21:17

Archer30, please recheck the same savegame with the newest battlereplay and wog native dialog plugins.


RE: ERA III - Panda - 06.12.2020 21:35

Archer30, I also now checked the files from the installation Era 3.2.0, as well as the three previous versions of these plugins igrik - there is no coincidence, from which I conclude that either these plugins are too old, or they are damaged or changed.

Berserker, igrik, вылета при заходе в город со времен исправления WoG Native Dialog не было.


RE: ERA III - Berserker - 06.12.2020 21:52

Panda, вылет у yunings, судя по логу, при посещении Оазиса, то есть крайне напоминает старый вылет от старой wog native dialogs + мутный код Вога.
Скорее всего, источник плавающего бага с мёртвым командиром найден.


RE: ERA III - Archer30 - 07.12.2020 19:27

Berserker, bug report for today is about artifacts Spiteful

The right-click info of artifacts from #146 - #160 is not available if these artifacts are unequipped.


RE: ERA III - Berserker - 08.12.2020 00:27

Archer30, is it WoG 3.58 behavior? Seems like they have no static description in txt files and dynamical description is used in commander's screen only.


RE: ERA III - Archer30 - 08.12.2020 18:06

Berserker, that's wrong. At least in ERA 3.0.4, right-clicking on commander artifact still pops up the info. Note that in the latest ERA, #156 - #160 normal WoG artifacts lose their right clicks too.


RE: ERA III - igrik - 08.12.2020 18:49

Berserker, это HD мод, и его новый функционал разбора артефактов в рюкзаке героя. Все артефакты с номерами 146 и выше не имеют ПКМ в окне героя, в окне встречи героев. Может быть где и ещё. Нужно отписаться Бараторчу.


RE: ERA III - Panda - 09.12.2020 02:33

Berserker, хотел полчаса покатать в героев, но не тут то было, при создании/старте рандомной карты получил вылет. После позапускал рандомки еще примерно 10 раз, вылета не было. Но учитывая, что данного вылета я не припомню с версии Эра 3.0.4, то возможно это не единичный случай. Глянь, может чем и поможет этот дебаг.
Дебаг:
https://yadi.sk/d/OqMw36XQqcaHTQ

PS: на более подробные тесты времени к сожалению нет. Про баг с артефактами знал давно, но я сейчас в такой глубокой пятой точке, что в голове ничего не держится, совсем забыл про это. Простите.


RE: ERA III - XEPOMAHT - 09.12.2020 03:08

(09.12.2020 02:33)Panda Wrote:  при создании/старте рандомной карты получил вылет. После позапускал рандомки еще примерно 10 раз, вылета не было.

В функцию генерации монстра не ушла структура монстра. Всё таки запускать лучше с лаучера HD-мода, а не с "h3era HD.exe".


RE: ERA III - Algor - 10.12.2020 16:38

era iii changelog Wrote:[+] Added support for d- syntax in function parameters.
    !!FU(edu_Test):Pd-200; will pass -200, previously 200
Кто может пояснить механизм действия?
Емнип, при вызове функции x-переменные обнулены или равны переданному параметру. Если это всё еще так, какой практический смысл у d-модификаторов в данном случае?
Чем Pd-200 от P-200 отличаться будет?


RE: ERA III - igrik - 10.12.2020 17:02

(10.12.2020 16:38)Algor Wrote:  при вызове функции x-переменные обнулены или равны переданному параметру.
Именно так.

(10.12.2020 16:38)Algor Wrote:  Если это всё еще так, какой практический смысл ...
Не знаю для чего Берс это сделал. Я такую конструкцию ещё не разу не использовал, и вообще не вижу в ней никакого логического смысла.


RE: ERA III - Archer30 - 10.12.2020 17:32

Hi Berserker, there is a crash report from a player, saying in Multiplayer game via LAN, there's always a crash when the first human player got attacked by the AI.

Debug (assembly+TUM+ACM)

Can you help with this issue?


RE: ERA III - Berserker - 10.12.2020 18:50

igrik, Algor, поскольку функции уже давно могут проверять синтаксис, с которым передали параметр, то есть возможность реализовать ЕРМ-подобные команды, пусть и в ограниченном виде.

Code:
[+] Added possibility to query syntax, that was used for particular function parameter.
    !!FU:S#1/?$2;
    #1  - argument index
    ?$2 - syntax type (0 - get, 1 - set, 2 - add)
    Add syntax is applied via 'd' prefix like FU:Pd200.

    Using this receiver scriptmakers can write functions which act the same as normal ERM commands.
    For instance, one function to get/set/add dwelling population amount.

Скажем, если передали -200, вы установите -200 значение. А если d-200, то вычтите 200 из значения.
Пример из библиотеки Эры:
Archer30, the crash is in ReceiveCreatures function. TUM uses Amethyst, so it's majaczek issue, I suppose:
Code:
void ReceiveCreatures(int len,Byte *buf)
{
  #include "templ.h"
  int i,j,k,num;
  num=len/sizeof(_CrState_);
  if(len!=(int)(num*sizeof(_CrState_))){ MError("Wrong length of sent Modified Creatures"); RETURNV };
  if((num<0)||(num>MONNUM)){ MError("Incorrect number of Modified Creature"); RETURNV }
  for(i=0;i<len;i++) ((Byte *)CrState)[i]=buf[i];
  for(j=0;j<num;j++){
    i=CrState[j].Index;
    if((i<0)||(i>MONNUM)){ MError("Incorrect index of Modified Creature"); RETURNV }
    MonTable[i].Group=CrState[j].Group;
    MonTable[i].SubGroup=CrState[j].SubGroup; // CRASH
    MonTable[i].Flags=CrState[j].Flags;
    for(k=0;k<7;k++) MonTable[i].CostRes[k]=CrState[j].CostRes[k];
    MonTable[i].Fight=CrState[j].Fight;
    MonTable[i].AIvalue=CrState[j].AIvalue;
    MonTable[i].Grow=CrState[j].Grow;
    MonTable[i].HGrow=CrState[j].HGrow;
    MonTable[i].HitPoints=CrState[j].HitPoints;
    MonTable[i].Speed=CrState[j].Speed;
    MonTable[i].Attack=CrState[j].Attack;
    MonTable[i].Defence=CrState[j].Defence;
    MonTable[i].DamageL=CrState[j].DamageL;
    MonTable[i].DamageH=CrState[j].DamageH;
    MonTable[i].NShots=CrState[j].NShots;
    MonTable[i].HasSpell=CrState[j].HasSpell;
    MonTable[i].AdvMapL=CrState[j].AdvMapL;
    MonTable[i].AdvMapH=CrState[j].AdvMapH;
  }
  RETURNV
}



RE: ERA III - Algor - 10.12.2020 19:03

Berserker, я правильно понимаю, что любого из d#, d-#, d*#... ?$2 вернет 2 и практической пользы от него все равно нет?


RE: ERA III - Berserker - 10.12.2020 19:42

Algor, да, практическая польза в различении SET/GET/ADD/SUB.
!!FU:Pd-(someVar), например, будет преобразован в ADD с обратным значением переменной.

Порой достаточно поддержки SET/GET. Все модификаторы при большом желании пилить можно было бы, но смысла в текущем варианте нет, так как даже для поддержки SET/GET/ADD код заметно усложняется. Вот если аналог Apply завести, который к любой переменной применит переданный модификатор, то да, стало бы просто и удобно. Подумаю над этим.


RE: ERA III - Algor - 10.12.2020 20:03

(10.12.2020 19:42)Berserker Wrote:  Вот если аналог Apply завести, который к любой переменной применит переданный модификатор, то да, стало бы просто и удобно. Подумаю над этим.
Berserker, может не стоит плодить, без необходимости?
А то скриптерам вообще скоро работы не останется.


RE: ERA III - Archer30 - 10.12.2020 20:28

(10.12.2020 18:50)Berserker Wrote:  Archer30, the crash is in ReceiveCreatures function. TUM uses Amethyst, so it's majaczek issue, I suppose:
Thanks, Berserker. Then I wouldn't expect it gets fixed soon 105


RE: ERA III - Berserker - 10.12.2020 20:37

Archer30, at least, try to report it with the above mentioned code.

Algor, тоже так думаю. Нужно уже развивать что-то помимо ЕРМ.
Сейчас продвигаюсь в работе с цветным текстом. Задача — корректное разбиение на строки с корректным переносом/воссозданием тегов цвета и картинок.


RE: ERA III - Archer30 - 12.12.2020 08:32

Berserker, reported, majaczek did his attempt and failed Rolleyes

Here I'd like to raise another issue related to majaczek's work.
The latest Emerald plugin is not compatible with RoE and AB campaigns. The game crashes at loading (debug). To my understanding, that's becoz of special limits of artifacts (ie, a hero has only 4 misc slots, can't assemble combo arts) in these campaigns that conflict with Emerald. But it turns out moving these campaigns from Data to Maps folder for launching them through "Custom Campaign", problem solved. This says the problem basically has nothing to do with the map files, it is with the engine or hardcode instead.
Berserker, is it convenient for you to check whether the limit can be raised from ERA?


RE: ERA III - Berserker - 12.12.2020 09:55

Quote:Berserker, is it convenient for you to check whether the limit can be raised from ERA?
I'm sorry, but I think it's better for me to concentrate on high priority tasks in the near future, because there can exist numerous things like this and fixing single one requires quite enough time. If there is a workaround like using custom campaigns, the issue is not critical for now. Buy anyway, thanks for detailed report.


RE: ERA III - Archer30 - 12.12.2020 10:00

Berserker, ofcoz, it's not with high priority at all, don't worry about that. 4


RE: ERA III - XEPOMAHT - 12.12.2020 12:51

(12.12.2020 08:32)Archer30 Wrote:  The game crashes at loading (debug).

Таблицу запрета артефактов кто должен расширять под новые артефакты? Например приватный Тифон 3 её расширяет вместо Emerald.

Так же мод "16 2-way teleports" без патчей тоже будет приводить к порче данных 1-сторонних телепортов (т.к. игра поддерживает только 8 телепортов), не используйте его.


RE: ERA III - Berserker - 12.12.2020 18:27

XEPOMAHT, не поделишься патчем на исправление телепортов? Хуже порчи данных в сохранении ничего нет.
Archer30, majaczek should extend banned artifacts table for his plugin of new artifacts.


RE: ERA III - XEPOMAHT - 13.12.2020 00:03

(12.12.2020 18:27)Berserker Wrote:  не поделишься патчем на исправление телепортов?

Из MoP (для ERA некоторые адреса могут быть другими, ну и формат сохранений тоже поменяется, т.к. туда запишется инфа о 16 порталов вместо 8):

Code:
; map_portals 1 side
    mov esi, <адрес базовой структуры, куда переносятся данные>
    mov byte [4BD672h], кол_во_порталов - 5
    mov dword [4BD6D5h], esi
    mov byte [4BEA26h], кол_во_порталов
    mov byte [4BEA4Eh], кол_во_порталов
    mov dword [4BEA2Eh], esi
    mov byte [4BF092h], кол_во_порталов
    mov dword [4BF0DEh], esi
    mov dword [4C131Dh], esi
    mov dword [4CDA84h], esi
    mov byte [4CDF51h], кол_во_порталов
    mov byte [4CDF6Fh], кол_во_порталов
    mov dword [4CDF72h], esi
    mov byte [4CE398h], кол_во_порталов
    mov byte [4CE3AEh], кол_во_порталов
    mov dword [4CE388h], esi
    mov dword [56B10Ch], esi
    mov byte [62CA45h], кол_во_порталов
    mov byte [62CA5Dh], кол_во_порталов
    mov dword [62CA64h], esi
    mov byte [62CBE1h], кол_во_порталов
    mov byte [62CBF9h], кол_во_порталов
    mov dword [62CC00h], esi
    mov dword [713EB9h], esi
    add esi, 4
    mov dword [4BF0D7h], esi
    mov dword [4C1324h], esi
    mov dword [713EB2h], esi
    add esi, 4
    mov dword [4BF0E5h], esi
; map_portals 2 side
    mov esi, <адрес базовой структуры, куда переносятся данные>
    mov dword [4BD682h], esi
    mov dword [4BEA06h], esi
    mov dword [4BF0A4h], esi
    mov dword [4C141Dh], esi
    mov dword [4CDAC6h], esi
    mov dword [4CDF54h], esi
    mov dword [4CE3B1h], esi
    mov dword [56B154h], esi
    mov dword [62CA4Ch], esi
    mov dword [62CBE8h], esi
    mov dword [70895Fh], esi
    mov dword [713E94h], esi
    add esi, 4
    mov dword [4C1416h], esi
    mov dword [713E8Dh], esi
    add esi, 4
    mov dword [4BF09Dh], esi
    mov dword [4C2811h], esi



RE: ERA III - Berserker - 13.12.2020 01:26

XEPOMAHT, спасибо 132 Раз уж для расширения числа монолитов нужно патчить код и менять формат сохранений, почему бы не встроить в Эру сразу все 26, как ты сделал в МоР? С идентичной графикой и подтипами. Будет 100%-ая преемственность. Патч я сделаю через патчер бараторча. Нужны будут дефы и записи для добавления в txt-файлы.


RE: ERA III - XEPOMAHT - 13.12.2020 02:06

(13.12.2020 01:26)Berserker Wrote:  Раз уж для расширения числа монолитов нужно патчить код и менять формат сохранений, почему бы не встроить в Эру сразу все 26, как ты сделал в МоР?

Вообще-то это запланировано для ERA+, в которой изначально свой формат сохранений, несовместимый с обычной ERA. Т.к. базовую структуру переносить должен кто-то один (иначе будут несовместимости с той же ERA+, в которой уже перенесено почти четверть адресов базовой структуры).

(13.12.2020 01:26)Berserker Wrote:  Патч я сделаю через патчер бараторча. Нужны будут дефы и записи для добавления в txt-файлы.

Там считай порт всех хотовских монолитов + из WoG-фикса. Ничего нового. Если делать патчером Бараторча, то придётся ставить кучу хуков на все адреса и делать отвязку от базовой структуры (как это сделать так, чтобы игра при этом не глючила - придётся разбирать сами функции, в пример плагин на loop sounds, где сделана отвязка от менеджера карты приключений, в итоге моды с loop sounds подглючивают неизвестно от чего на нестандпртных сборках. Это нужно для ERA? Думаю, порт всех объектов HoA->MoP->ERA+ лучше оставить мне (нужно просто подождать, когда вся работа будет доделана).


RE: ERA III - V_Maiko - 13.12.2020 02:19

XEPOMAHT, after having played with the new version of Assembly and with the distinctive features that wog native dialogs includes with XXL and HD mod, I'm fully accepting your idea of adapting XXL to ERA as HotA has done, the reason is simple, I don't feel comfortable playing other players' maps with XXL enabled because they don't work properly, I want to have the option to choose S to G in map size. You should present your MOP code to Berserker and see if he can implement it. I don't care about the problem that it will carry with HD mod, Bara could do something with that since it would be the same work that it carried with HotA.


RE: ERA III - Berserker - 13.12.2020 04:25

XEPOMAHT, game manager структура никому не будет нужна после применения патча и переноса монолитов. Это обычные массивы. Если можешь поделиться сборкой готовых def-ов/txt — поделись. Нет — возьму из WoG Fix 16 штук. Стандартных 8-и действительно мало.

Ещё раз по поводу базовой структуры. В коде обращение всегда идёт к массивам по адресу БАЗА + СМЕЩЕНИЕ до начала массива + СМЕЩЕНИЕ в массиве. Переносятся такие подструктуры в полпинка. Патч пишет НОВЫЙ АДРЕС МАССИВА - Старое смещение от начала GameManager до массива монолитов. Всё. Так переместить можно любую изолированную подструктуру. А ты всё время думаешь, что кто-то один должен кромсать весь GameManager Ab


RE: ERA III - igrik - 13.12.2020 12:01

Berserker, моё предложение, если ты будешь менять адреса массивов:
Увеличивай пожалуйста саму структуру GameMgr, и пиши свои данные в конец. Это можно сделать по адресу 0x4EE2F3 push 4E7D0h (4E7D0h это нынешний размер).
Плюсы такого подхода:
- ты будешь править намного меньше самих указателей, т.е. для монолитов ты всего лишь изменишь смещение, но не основной указатель на GameMgr
Code:
// * +4E678
// * H3Position
H3Vector<UINT32> monolithTwoWay[8];
// * +4E6F8
// * H3Position
H3Vector<UINT32> monolithOneWay[8];
- таким же образом максимально безболезненно можно увеличить массив кол-ва героев и массив хозяевов героев, и банки, и гарнизоны и замки и т.п.
- не нужно слишком много париться об удалении этого массива - игра это сделает сама
- другим модам очень и очень легко получить доступ к твоему массиву
- также можно, и нужно расширить массив артефактов и массив доступности артефактов под WoG: randomArtifacts[170] и artifactsAllowed[170]
Code:
// * +4E224
INT8 randomArtifacts[144];
// * +4E2B4
INT8 artifactsAllowed[144];
- да и вообще, в возможном будущем, это даст тебе ряд преимуществ и упрощения работы.

Code:
template<typename _Elem>
struct H3Vector : H3Allocator
{
    BOOL _init; // useless
    // * the first item, also start of list
    _Elem *m_first;
    // * the end of last item
    _Elem *m_end;
    // * end of allocated memory
    _Elem *m_capacity;
}

struct H3Allocator
{
    PVOID operator new(const size_t sz);
    VOID  operator delete(const PVOID block);
    PVOID operator new[](const size_t sz);
    VOID  operator delete[](const PVOID block);
};

Это моё личное ИМХО. Но если бы я занялся этим процессом, я бы далал именно так.


RE: ERA III - XEPOMAHT - 13.12.2020 14:28

(13.12.2020 04:25)Berserker Wrote:  В коде обращение всегда идёт к массивам по адресу БАЗА + СМЕЩЕНИЕ до начала массива + СМЕЩЕНИЕ в массиве. Переносятся такие подструктуры в полпинка. Патч пишет НОВЫЙ АДРЕС МАССИВА - Старое смещение от начала GameManager до массива монолитов. Всё. Так переместить можно любую изолированную подструктуру.

А ничего что код игры может задать ОДИН базовый адрес и использовать его на протяжении сотни функций, не меняя его? Т.е. если изменишь этот НОВЫЙ АДРЕС МАССИВА, то он измениться в куче функций и игра полетит к майкрософту. Если что, я не понимаю твоих предложений по переносу данных базовой структуры (я переношу по-старике).

(13.12.2020 12:01)igrik Wrote:  Увеличивай пожалуйста саму структуру GameMgr, и пиши свои данные в конец. Это можно сделать по адресу 0x4EE2F3 push 4E7D0h (4E7D0h это нынешний размер).

Не стоит, т.к. в ERA+ уже так сделано и если Берсеркер сделает так же в ЭРЕ, то данные базовой структуры будут испорчены (например я пишу туда структуры героев + все данные, которые идут после них).


RE: ERA III - igrik - 13.12.2020 15:06

(13.12.2020 14:28)XEPOMAHT Wrote:  Не стоит, т.к. в ERA+ уже так сделано ...

Разве? Я проверил на текущейм моде ERA+, перед тем как написал, и вот что я увидел:

Image: image.jpg


RE: ERA III - XEPOMAHT - 13.12.2020 16:33

(13.12.2020 15:06)igrik Wrote:  Я проверил на текущейм моде ERA+, перед тем как написал, и вот что я увидел

Версия ERA+ с поддержкой новых героев не выкладывалась ещё, т.к. не готова к релизу. Чтобы не было как в басне "Лебедь Рак и Щука" и чтобы потом не думать о том, как в era.dll отключить мешающие ERA+ патчи и хуки, необходимо сразу распределись области памяти, которые патчат те или иные dll, т.е. делать это централизовано, а не как придётся.

Например ERA+ забирает себе _GameMgr_, _AdvMgr_, а так же все таблицы городов/героев/монстров/артефактов/двеллингов. Т.е. если нужна совместимость с ERA+, то переносить всё это нельзя (т.к. уже перенесено) и обращение к данным из этих таблиц - по базовым адресам, кроме структуры героев (её адрес не изменяется в рамках совместимости с кучей эровских плагинов и HD-модом).

Давайте уже работать в команде, а не порознь. Даёшь ERA Team.


RE: ERA III - igrik - 13.12.2020 23:55

(13.12.2020 16:33)XEPOMAHT Wrote:  Давайте уже работать в команде, а не порознь. Даёшь ERA Team.
Да я и не против Ab

Berserker, кстати, почему до сих пор для генерации случаного монстра мы пользуемся Содовской функцией, которая вообще не генерирует Воговских существ? Почему не переписать её, чтобы учитывались все существа.
Например как то так, чтобы не заморачиваться с компактным массивом и установкой битов как в СоДе (благо на нынешних компах памяти тьма) (Click to View)



RE: ERA III - XEPOMAHT - 14.12.2020 00:16

(13.12.2020 23:55)igrik Wrote:      // исключаем несуществующих монстров
    monArray[122] = 0;
    monArray[124] = 0;
    monArray[126] = 0;
    monArray[128] = 0;

    // исключаем Драколича
    monArray[196] = 0;

    // исключаем Супер Драконов (так делает SOD)
    for(int i = 132; i <= 135; i++)
    monArray[i] = 0;

    // исключаем Боевые Машины
    for(int i = 145; i <= 149; i++)
    monArray[i] = 0;

    // исключаем Богов
    for(int i = 160; i <= 163; i++)
    monArray[i] = 0;

    // исключаем Командиров
    for(int i = 174; i <= 191; i++)
    monArray[i] = 0;

В ERA+ монстры 122, 124, 126, 128 используются, и... генерируются содовским кодом на карте. Их принудительно запрещать не нужно.

Запрет Тифон ставит двумя хуками:

Code:
Hook 5410FDh, MonsterRandomGeneration,    TJump; запрет из таблицы запрета
      Hook 54110Fh, MonsterRandomGeneration2,    TJump; запрет при отсутствии дефа в текстовике

В Тифоне 3.XX поддержка генерации из всех 1000 слотов - надо будет подтягивать соответствующий код из MoP (т.к. Мастер его почему-то пропустил).


RE: ERA III - Raistlin - 14.12.2020 01:49

igrik, а Вы не будете против, если я приведённый Вами код использую у себя в проекте?


RE: ERA III - Berserker - 14.12.2020 03:33

Quote:Например ERA+ забирает себе _GameMgr_, _AdvMgr_, а так же все таблицы городов/героев/монстров/артефактов/двеллингов.
Мне видится правильным такой подход к разработке платформ, при котором обеспечивается максимально широкий доступ к модификациям, богатый формат описания объектов и отсутствие привязки к фиксированным значениям. То есть правильный плагин на новых монстров — это плагин, парсящий json из VCMI и предоставляющий API для получения адреса таблицы с монстрами, размера одной записи, максимального числа монстров, актуального числа монстров. Завязывать же всю игровую структуру, а то и все структуры на конкретном разработчике нельзя.

Вероятно, разумным будет предложить библиотеку с методами получения/установки адресов и пределов для всех основных игровых структур.
ПолучитьМаксимальныйИДМонстра, ПолучитьЧислоМонстров, ПолучитьТаблицуМонстров. Установить первое, втрое и третье.

Поскольку правильное расширение структур, на мой взгляд, должно иметь динамическую природу (монолитов 8, 50 или 100 зависит от содержимого json-конфигов), то и переносить подструктуры по методу Хероманта или Игрика не вариант. Исходный код gameManager->twoWayTeleports всё время генерирует команду доступа от базового адреса, который можно пропатчить смело, не боясь нарушить остальной код, поскольку далее будет всё тот же gameManager->другоеПоле, который компилятор не имел права оптимизировать. Доступ по указателю — это такая штука, которая предполагает, что значение указателя может измениться даже из соседнего потока. Потому чаще всего можно подструктуру перенести на массив динамического размера без последствий. Если найдёте в патче Хероманта доказательство обратного, сообщите, пожалуйста.

После переноса остаётся несколько вопросов:
-) Какой теперь новый адрес подструктуры?
-) Размер её элемента?
-) Количество элементов?

Вопрос, схожий с обсуждением RedirectMemoryBlock/GetAddr и решаемый на уровне АПИ и соглашений, а не на уровне «никто не имеет права расширять ни одну структуру кроме автора мода ХХХ». Стоит ещё раз подумать, какого АПИ хватило бы всем.

Для начала можно попробовать сделать 26 монолитов отдельным модом. Можно не вносить пока изменений в движок.

igrik, у меня в моде Mixed Neutrals всё есть: регистрация монстров, автоматическое их индексирование, функция генерации монстров по фракциям, включая союзные фракции, учёт ограничений по уровням и т.д. На текущий момент не вижу проблемы в том, чтобы используя мощь мода в пять строк написать скрипт, который пройдётся и заменит всех монстров на карте на случайные. Непринуждённо так и с сохранением уровня существ. В будущем плагин на новых монстров должен предоставлять схожее АПИ и да, подменять указанную функцию.

Была идея вычленить из Mixed Neutrals по сути подмод Monsters Framework, который и нужен всем скриптам для генерации монстров.


RE: ERA III - XEPOMAHT - 14.12.2020 11:45

(14.12.2020 03:33)Berserker Wrote:  То есть правильный плагин на новых монстров — это плагин, парсящий json из VCMI и предоставляющий API для получения адреса таблицы с монстрами, размера одной записи, максимального числа монстров, актуального числа монстров.

1. Мне json из VCMI не нравится, там сложно разобраться человеку, не знакомому с программированием. Куда удобнее готовый редактор монстров из Тифона (аналог которого на каком-то ведре сделали и для Аметиста, т.к. ковыряние в *.cfg - не удобно), предоставляющий готовый набор бланковых монстров в рамках одного мода.
2. Готовых средств для работы с json ЭРА не предоставляет плагинописателям на ассемблере. Изобретать велосипед как-то не хочется (мне ещё предстоит осваивать обработку текстовиков для загрузки из них всех данных городов для моддеров, желающих добавлять свои города в ERA).
3. Сложность, сложность, сложность. API на новых монстров должно быть встроено в саму ЭРУ тогда уж. Но вот практическая польза от этого какая? Исходных кодов самой игры у нас нет. Тонна работы, когда всё это и так есть на VCMI? Смысл? Для кого? API нужно профессионалам. Ту же VCMI используют небольшое количество народу, она в России популярна намного намного намного меньше, чем ЭРА.

(14.12.2020 03:33)Berserker Wrote:  Завязывать же всю игровую структуру, а то и все структуры на конкретном разработчике нельзя.

Другого пути нет. Например, сейчас есть 2 плагина на новых монстров, ну и наверняка приходится не просто поддерживать совместимость с обоими, а потом и кровью, хотя реально нужен какой-то только 1 из них.

(14.12.2020 03:33)Berserker Wrote:  Вероятно, разумным будет предложить библиотеку с методами получения/установки адресов и пределов для всех основных игровых структур.
ПолучитьМаксимальныйИДМонстра, ПолучитьЧислоМонстров, ПолучитьТаблицуМонстров. Установить первое, втрое и третье.

Думаю, что установленных 1000 бланковых монстров, артефактов, жилищ и т.д. моддерам хватит заглаза. Зачем лишние сложности? Памяти хватает на всё это, экономить-то зачем?

(14.12.2020 03:33)Berserker Wrote:  Поскольку правильное расширение структур, на мой взгляд, должно иметь динамическую природу (монолитов 8, 50 или 100 зависит от содержимого json-конфигов), то и переносить подструктуры по методу Хероманта или Игрика не вариант.

Мой способ добавления новых героев - как раз динамический, т.к. Тифон пересобирает базовую структуру вместо переноса её частей. И значение количества будет вынесено в конфиг в будущих версиях ERA+.

(14.12.2020 03:33)Berserker Wrote:  После переноса остаётся несколько вопросов:
-) Какой теперь новый адрес подструктуры?
-) Размер её элемента?
-) Количество элементов?

Систему базовых адресов, которую я предлагал несколько раз, которая используется в HD-моде для совместимости с HoA. Т.е. функции ничего никому не передают, а берут эти данные напрямую из кода SoD.

(14.12.2020 03:33)Berserker Wrote:  Вопрос, схожий с обсуждением RedirectMemoryBlock/GetAddr и решаемый на уровне АПИ и соглашений, а не на уровне «никто не имеет права расширять ни одну структуру кроме автора мода ХХХ». Стоит ещё раз подумать, какого АПИ хватило бы всем.

Проблемы совместимости модов, расширяющие одинаковые структуры, - серьёзные проблемы. Подавляющее число моддеров не является профессиональными программистами, как реализовывать "соглашения", они не знают. Я уже обжегся с этим в Тифоне, сразу скажу, что это сложно реализовать, тем более во всех плагинах (очень много подводных камней).

(14.12.2020 03:33)Berserker Wrote:  Для начала можно попробовать сделать 26 монолитов отдельным модом. Можно не вносить пока изменений в движок.

Лучше не надо. Тот патч, который я выложил, вызовет несместимость с ERA+. Одним несовместимым модом больше - я не хочу. Только если будет полная отвязка от базовой структуры (и сделать это в разы сложнее и геморойнее).


RE: ERA III - feanor - 14.12.2020 12:33

Фатальный недостаток json - отсутствие комментариев.
Я очень люблю этот формат, конечно, хоть и в плюсах он не так удобен, как в ЯП, хранящих метаинформацию, но все-таки этот факт сильно ограничивает его применимость именно для конфигов.

Я вообще считаю, что мы стали забывать румынского диктатора геройские тхт-таблицы.

Quote:То есть правильный плагин на новых монстров — это плагин, парсящий json из VCMI и предоставляющий API для получения адреса таблицы с монстрами, размера одной записи, максимального числа монстров, актуального числа монстров.
Эээ.. и как это будет осуществляться в реальности?
Ну т.е. для того, чтобы это апи использовать, нужно _знать_ о существовании такого плагина.
Причем ладно с монстрами, там хотелка давняя и предсказуемая, можно договориться, особенно если он в поставке будет (впрочем, мне не нравится эта идея).
А вот представьте себе плагин, который увеличивает число препятствий на поле боя?

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

(алсо, определение размера записи в апи - довольно бессмысленная штука, если мы уж лезем в изменение способа обращения к структурам, то, возможно, у нас уже некоторые проблемы с самим таким понятием, как размер структуры)


RE: ERA III - RoseKavalier - 14.12.2020 18:02

There are many json formats that now support single-line // or multi-line comments /**/.


RE: ERA III - Berserker - 14.12.2020 18:41

Quote:Фатальный недостаток json - отсутствие комментариев.
Я очень люблю этот формат, конечно, хоть и в плюсах он не так удобен, как в ЯП, хранящих метаинформацию, но все-таки этот факт сильно ограничивает его применимость именно для конфигов.
В Эре парсер Json поддерживает однострочные // комментарии.

Quote:Эээ.. и как это будет осуществляться в реальности?
Как сейчас с *.btn-кнопками, только лучше. Появляется плагин на новых монстров с описанием формата. Он закрывает все вопросы, предоставляя декларативное json-api (под который без проблем можно писать визуальный редактор) и набор функций API для остальных. Для базовых потребностей по монстрам без учёта новых способностей RedirectBlock + одной функции GetMonCount хватило бы за глаза.

Quote:Лучше не надо. Тот патч, который я выложил, вызовет несместимость с ERA+.
Эра+ — потенциальная сборка. С ней просто не включать неудобные плагины, дублирующие функциональность. Это же решается в два щелчка. Нет?


RE: ERA III - Str1g0 - 14.12.2020 18:55

Quote:Мне видится правильным такой подход к разработке платформ, при котором обеспечивается максимально широкий доступ к модификациям, богатый формат описания объектов и отсутствие привязки к фиксированным значениям. То есть правильный плагин на новых монстров — это плагин, парсящий json из VCMI и предоставляющий API для получения адреса таблицы с монстрами, размера одной записи, максимального числа монстров, актуального числа монстров. Завязывать же всю игровую структуру, а то и все структуры на конкретном разработчике нельзя.

Вероятно, разумным будет предложить библиотеку с методами получения/установки адресов и пределов для всех основных игровых структур.
ПолучитьМаксимальныйИДМонстра, ПолучитьЧислоМонстров, ПолучитьТаблицуМонстров. Установить первое, втрое и третье.

Поскольку правильное расширение структур, на мой взгляд, должно иметь динамическую природу (монолитов 8, 50 или 100 зависит от содержимого json-конфигов), то и переносить подструктуры по методу Хероманта или Игрика не вариант. Исходный код gameManager->twoWayTeleports всё время генерирует команду доступа от базового адреса, который можно пропатчить смело, не боясь нарушить остальной код, поскольку далее будет всё тот же gameManager->другоеПоле, который компилятор не имел права оптимизировать. Доступ по указателю — это такая штука, которая предполагает, что значение указателя может измениться даже из соседнего потока. Потому чаще всего можно подструктуру перенести на массив динамического размера без последствий. Если найдёте в патче Хероманта доказательство обратного, сообщите, пожалуйста.

После переноса остаётся несколько вопросов:
-) Какой теперь новый адрес подструктуры?
-) Размер её элемента?
-) Количество элементов?

Вопрос, схожий с обсуждением RedirectMemoryBlock/GetAddr и решаемый на уровне АПИ и соглашений, а не на уровне «никто не имеет права расширять ни одну структуру кроме автора мода ХХХ». Стоит ещё раз подумать, какого АПИ хватило бы всем.

Для начала можно попробовать сделать 26 монолитов отдельным модом. Можно не вносить пока изменений в движок.

Quote:Как сейчас с *.btn-кнопками, только лучше. Появляется плагин на новых монстров с описанием формата. Он закрывает все вопросы, предоставляя декларативное json-api (под который без проблем можно писать визуальный редактор) и набор функций API для остальных. Для базовых потребностей по монстрам без учёта новых способностей RedirectBlock + одной функции GetMonCount хватило бы за глаза.

Just wait a bit, will ya? Sm


RE: ERA III - XEPOMAHT - 14.12.2020 19:04

(14.12.2020 18:41)Berserker Wrote:  Эра+ — потенциальная сборка. С ней просто не включать неудобные плагины, дублирующие функциональность. Это же решается в два щелчка. Нет?

Да, но как пользователям это объяснишь? Давно прошу добавить в ERA режим глобального мода (или сборки), принудительно отключающий ненужные моды, но вот воз и ныне там. 105


RE: ERA III - feanor - 14.12.2020 19:45

Quote:Появляется плагин на новых монстров с описанием формата. Он закрывает все вопросы, предоставляя декларативное json-api (под который без проблем можно писать визуальный редактор) и набор функций API для остальных.
Но ведь это не ответ.
Т.е. "автор сделает нам зашибись, а как - ну как-нибудь сделает". Я за такое даже за бабки грязно ругаюсь и иногда даже отказываюсь, а тут прост так.

Как будет реализовываться единообразное чтение json? Эра поддерживает комментарии, но не предоставляет плагинам ничего для работы с json (емнип), поэтому библиотек будет..разнообразно, и с теми же нестандартизированными комментариями будут наблюдаться всякие интересные эффекты.
Если это будет не просто "api c json", а именно JSON:API "типа я restful", то нужна сразу эталонная реализация. Кто её подгонит? Кто будет гарантировать, что она адекватна всем возникающим задачам? Как убедить людей, что она нужна?

Как будет это апи реализовываться? Экспорты из дллплагина, и заголовочник? Это возможно и без эры, но почему-то этим никто не пользуется. Не говоря уже об опухании дллмейна от всяких InitializeEra(); InitializeMonsterExtender(); InitializeMonsterExtender2(); InitializeArtifactExtender(); InitializeSomeshit1Extender(); InitializeSomeshit2Extender(); .. InitializeSomeshit37Extender();
Как будет решаться вопрос с разными версиями плагинов, и вообще с известной проблемой пятнадцатого стандарта? У нас уже есть два разных плагина для добавления монстров, и при этом этот зоопарк еще и не закрывает всех потребностей.


Альтернативное предложение: нам просто нужен обмен переменными на уровне эры, как это делают плагины и хота для общения с HD-модом.
Т.е. никакого внешнего апи, которое поддерживается волшебными гномиками, а тупо глобальное key-value хранилище, и функции типа GetEraDword("name", [default_value]), добавить по вкусу вариаций для разных типов.

Тогда, для получения размера монстров - GetEraDword("amethyst.monster_count", 197) или там даже GetEraDword("amethyst.monster_count", GetEraDword("typhon.monster_count", 197))

Более того, мы даже для массива существ можем использовать тогда конструкции вида (_CreatureInfo_*)GetEraDword("amethyst.monster_table_ptr", o_Creatures)

И вообще функция универсальная. У меня давно подгорает от того, что для SN:W-переменных нету прямого доступа, например, приходится писать всякие ненужные обертки над erm.
Туда же можно заливать прочитанный эрой JSON, типа какой-нибудь {plugin_config":{"param":1}} будет мапиться в "_json.plugin_config.param".. ладно, увлекся.


RE: ERA III - Berserker - 14.12.2020 20:39

Quote:Давно прошу добавить в ERA режим глобального мода (или сборки), принудительно отключающий ненужные моды, но вот воз и ныне там.
Так с любой игрой с модами. Есть параметр командной строки modlist="путь к файлу со списком модом". Если это сборка, то и вовсе включи в архив list.txt. А если я всё равно хочу включить какой-то мод, я его включу.

Quote:Just wait a bit, will ya?
It's not an announcement. Just point of view.

Quote:Альтернативное предложение: нам просто нужен обмен переменными на уровне эры, как это делают плагины и хота для общения с HD-модом.
Т.е. никакого внешнего апи, которое поддерживается волшебными гномиками, а тупо глобальное key-value хранилище, и функции типа GetEraDword("name", [default_value]), добавить по вкусу вариаций для разных типов.

Тогда, для получения размера монстров - GetEraDword("amethyst.monster_count", 197) или там даже GetEraDword("amethyst.monster_count", GetEraDword("typhon.monster_count", 197))
Это форма неявного, нечёткого и более хрупкого API. Конкретно его низкоуровневая часть. В твоём высокоуровневом коде всё равно будут функции-обёртки, если делаешь по уму.

15 стандартов есть, когда нет ни одного удобного. Сам плагин через любую json-библиотеку сам считывает json-конфиги в своём формате. Как Yona считывает свой ini-файл. В чём сложность? Другим lua/dll/erm модулям нужно простое и рабочее API для доступа к новым возможностям. Даже указатель на массив структур можно получать, считывая части кода SoD, как и предлагали выше.

Доступ к SN:W переменным и глобальному хранилищу ключ-значение сделаю.


RE: ERA III - feanor - 14.12.2020 21:17

Quote:Сам плагин через любую json-библиотеку сам считывает json-конфиги в своём формате. Как Yona считывает свой ini-файл. В чём сложность?
А в чем смысл?
Ну т.е. это все то же самое, что и сейчас, ровно с теми же проблемами. Только стильный, модный, молодежный json (со своими новыми стильными проблемами).

Quote:Другим lua/dll/erm модулям нужно простое и рабочее API для доступа к новым возможностям.
Ну всем понятно, что лучше быть здоровым и богатым, чем бедным и больным, но это неконструктивное утверждение.
Это просто клич "авторы, чаще используйте extern "C" __declspec( dllexport )"? Ну ок, будем использовать, но к чему эти разговоры про единое замечательное апи, если его предлагается не то что реализовывать, а даже декларировать своими силами — и следовательно, оно не будет ни таким уж единым, ни таким уж и замечательным.

Quote:Это форма неявного, нечёткого и более хрупкого API. Конкретно его низкоуровневая часть. В твоём высокоуровневом коде всё равно будут функции-обёртки, если делаешь по уму.
Нет, не будут, я же не бессмертный оборачивать все, что у нас там нареверсено, под обертки.
¯\_(ツ)_/¯
Либо тогда мне нужна стоковая поставка из Эры описывающих герои заголовочников, которые по функционалу эквивалентны хотя бы тем, которые когда-то в начале десятых были в последних HD-шных сорцах, 3.15f, кажется. Там немного, килобайт триста.

Алсо
> хрупкое
НD общаться с HotА и HD с плагинами так общаться нехрупко, а тут ну не норм.
И сравнивать с решением, в котором мы будем зависеть как минимум от имени dll-файла плагина и считать это менее хрупким.. ну такое.
И да, оно неявное, нечеткое и низкоуровневое - и это еще не все его достоинства!
Смешно бояться хрупкости в реверсинговой сцене.


RE: ERA III - Archer30 - 15.12.2020 13:26

Berserker, reporting an issue related to characters/colour
Check this one:
Debug+Save
The menu pops up when fighting a neutral stack is totally messed up.

Checked w/ and w/o WoG Native Dialgos/HD mod, it turns out
1. w/o WoG Native Dialog, the issue can be resolved.
2. w/o HD, the issue persists.

This could be a problem with WoG Naitve Dialog, but since ERA gets so many updates related to characters/colour recently, I believe it's more likely needed to be adjust from ERA Yes


RE: ERA III - Raistlin - 15.12.2020 13:50

(14.12.2020 19:04)XEPOMAHT Wrote:  
(14.12.2020 18:41)Berserker Wrote:  Эра+ — потенциальная сборка. С ней просто не включать неудобные плагины, дублирующие функциональность. Это же решается в два щелчка. Нет?

Да, но как пользователям это объяснишь? Давно прошу добавить в ERA режим глобального мода (или сборки), принудительно отключающий ненужные моды, но вот воз и ныне там. 105
Подписываюсь под Вашими словами. В качестве варианта реализации могу предложить использование текстовика или ini-файла, лежащего в папке с модом, который будет считываться одновременно с list.txt, и в котором будут указаны моды, которые нужно отключить. Соответственно, при чтении списка модов нужно просто пробегаться циклом по этому списку исключений и проводить сравнение с данными из, например, mod.json или ещё откуда-нибудь.


RE: ERA III - XEPOMAHT - 15.12.2020 14:08

(15.12.2020 13:50)Raistlin Wrote:  В качестве варианта реализации могу предложить использование текстовика или ini-файла, лежащего в папке с модом, который будет считываться одновременно с list.txt, и в котором будут указаны моды, которые нужно отключить. Соответственно, при чтении списка модов нужно просто пробегаться циклом по этому списку исключений и проводить сравнение с данными из, например, mod.json или ещё откуда-нибудь.

Думаю, что вместо чёрного списка модов лучше использовать белый список - проверенные на совместимость моды. Т.е. пользователь подключает ERA+, перед загрузкой движок ERA рядом с list.txt находит whitelist.txt, сравнивает содержимое с list.txt и подгружает только моды, имена которых совпали в обоих листах. Пользователь отключает ERA+, и моды уже грузятся согласно list.txt (т.е. список модов, который пользователь мог собирать и настраивать под себя годами, никак не повреждается от включения/выключения ERA+, т.е. всё проходит автоматически и мне потом не нужно уговаривать людей УСТАНАВЛИВАТЬ ERA+ В ОТДЕЛЬНУЮ ПАПКУ С ГЕРОЯМИ, ЧТОБЫ НИКАКИЕ СТОРОННИЕ МОДЫ НЕ МЕШАЛИ ПОЛЬЗОВАТЕЛЯМИ, КОТОРЫЕ В НИХ НИЧЕГО НЕ ПОНИМАЮТ И ХОТЯТ ТОЛЬКО ИГРАТЬ В САМУ ИГРУ 141 ).


RE: ERA III - Berserker - 15.12.2020 19:25

Имхо, это уровень ответственности настроек мода в json и менеджера модов. Менеджер модов должен предупреждать о несовместимых модах по набору критериев: явные чёрные списки и и явные белые.

Archer30, thank you. My bug, will be fixing it.


RE: ERA III - XEPOMAHT - 15.12.2020 20:19

(15.12.2020 19:25)Berserker Wrote:  Менеджер модов должен предупреждать о несовместимых модах по набору критериев: явные чёрные списки и и явные белые.

Вообще-то Менеджер Модов не является приложением Win32 не работает в виндовозах младше 7-й. Лично мне он за всю историю ни разу не пригодился (не запускается, и не надо) и всецело заменим обычным блокнотом, т.к. только управляет содержимым list.txt (чем я кстати не занимаюсь, как 5 лет прописал там 4 мода, так они там и остаются). Ну а винить-то будут опять ERA+, в том что не смогут её запустить, а никак не Менеджер Модов. Мне вот не хотелось бы решать проблемы этого самого Менеджера (который всё равно ничего не знает о ERA+ и совместимых с ним модов). 141


RE: ERA III - Berserker - 15.12.2020 20:31

У твоей аудитории уже давно стоят Windows 10. И да, они пользуются менеджером модов.


RE: ERA III - Archer30 - 15.12.2020 21:14

Berserker, help needed with SN:D/BU:R
How exactly does these work? Why are they sometimes result in crashes that only reproducable in particular PC?

From discord:
Quote:всё ещё пытался поймать вылет тума и пока что он работает без вылета и выключение помогает, но произошло это: включена автобитва, прилетаю в хижину ведьмы, там страж, победа, начинается бой, краш.
debug - This is a crash realated to SN:D from 40 Karmic Battles.

I had this report a week ago. I tested with the savegame the player sent and not able to reproduced his issue, while he had a very high chance of crash (like every 3 battles). I thought that was only a rare situation. But since now I see the second report, it must be something.


RE: ERA III - Berserker - 15.12.2020 21:49

SN:D calls BU:R. BU:R crashes if called on round 0. That's all I know. Thanks for report.

Seems like some def was not loaded still and BU:R requires it.

Ah, seems like BU:R in autobattle is a bit unsafe.


RE: ERA III - Archer30 - 16.12.2020 16:11

Berserker, I'd like to have some suggestion from you about 40 Karmic Battles.

This script had the same issue with BU:R due to ERA updated battle round definition. I fixed it by moving the call to the same timing before ERA updates (from round -100000000 to round 0). It works perfectly on the most situation but still, 2 players reported about getting crashes. Should we move neutrals generation to round 1? 102


RE: ERA III - Berserker - 16.12.2020 18:03

Archer30, I will try to fix crash in autobattle and see what can be done in round 0.


RE: ERA III - SergOz - 17.12.2020 16:11

В последнее время "старая" гвардия стала проявлять интерес к Эре
80 166 161 Laie_56 113


RE: ERA III - totkotoriy - 18.12.2020 00:16

Раз уж зашёл: нифига вы там за это время делов то наворотили, коллекции, джоинты, даже думать страшно чтоб свой мод адаптировать под новую версию, это ж неделю безвылазно сидеть, потом ещё месяц дорабатывать... Молодцы короче)))) я думал всё давно загнулось.... Хороших реализаций вашего движка не хватает, я наверное только 30% возможностей старой версии использовал.


RE: ERA III - Berserker - 18.12.2020 02:38

totkotoriy, да, возможностей много. Можно использовать те, которые нужны под конкретную задачу.


RE: ERA III - SergOz - 18.12.2020 20:05

Очень странный глюк получил в игре.
Хочу сделать так, чтобы при посещении заброшенной шахты, имея определённый арт (у меня это арт №101 - Брелок Ясновидения), можно было бы выбирать ресурс, добываемый этой шахтой.
Написал:
Это работает при любых раскладах. Но, если такой шахте установить ERM'ом охрану, например:
и если у игрока установлена быстрая битва, то при переигровке боя с драконами за шахту, появляется клон героя, который стоит на входе в шахту и не исчезает.

Глюк воспроизвёлся на двух произвольных тестовых картах постоянно

P.S. добавление в код строк
не помогает


RE: ERA III - igrik - 18.12.2020 20:32

SergOz, у вас видимо старый плагин переигровки. Обновите плагин. Данная проблема была решена в переигровке с месяц назад.


RE: ERA III - SergOz - 18.12.2020 20:48

Плагин только недавно переустанавливал, но только что ещё раз переустановил. Это не помогло.
Плагин установлен в Mods/BattleQueue/EraPlugins.


RE: ERA III - igrik - 18.12.2020 21:59

(18.12.2020 20:48)SergOz Wrote:  Плагин только недавно переустанавливал, но только что ещё раз переустановил. Это не помогло.
Плагин установлен в Mods/BattleQueue/EraPlugins.
Что за странный путь установки? Вы уверены, что он в самом высшем приоритете?
Я у себя проверяю - у меня проблемы развоения нет.

Раздвоение возникает из за неправильного создания сейва игры (точнее там указан неправильный параметр, из-за чего вызывается функция Скрыть Героя). В плагине создания сейва нет.


RE: ERA III - Berserker - 18.12.2020 23:24

Нужна папка Debug по f11. Возможно, там старый плагин или присутствует BattleSave.era плагин.


RE: ERA III - SergOz - 19.12.2020 00:59

(18.12.2020 21:59)igrik Wrote:  Что за странный путь установки? Вы уверены, что он в самом высшем приоритете?
(01.12.2018 21:28)igrik Wrote:  Переигрываемая битва для ERA
Автор: igrik
Язык: не имеет значения
Поддерживаемые версии: только ERA
Способ установки: Класть в EraPlugins любого мода
Вот я и поклал его в EraPlugins любого мода. Как задавать приоритет - не знаю..

Berserker, а где может находиться старый BattleSave.era плагин?


RE: ERA III - igrik - 19.12.2020 01:30

(19.12.2020 00:59)SergOz Wrote:  Berserker, а где может находиться старый BattleSave.era плагин?
В одной из папок EraPlugins
Найди поиском (виндовским, или тотал-коммандером)

PS: у тебя в папке "Mods\Game Enhancement Mod\eraplugins" лежит старый плагин. А мод Game Enhancement Mod имеет наивысший приоритет. Удали плагин в этом моде.


RE: ERA III - SergOz - 19.12.2020 02:00

igrik, спасибо за пояснения.
Поисковик не нашёл BattleSave.
В папке "Mods\Game Enhancement Mod\eraplugins" старый плагин удалил до того, как написал.

U.P.D. Всё, отбой. Я нашёл причину. Без команды
глюка нет.

U.P.D.D. Уф... Если инструкцию !#UN:J3/^:clear:^; сделать ресивером !!UN:J3/^:clear:^; после !?PI; то глюка тоже нет!
Это меня абсолютно устраивает! Не зря как-то писал, если не ошибаюсь, ХЕРОМАНТ, что старается избегать инструкций...


RE: ERA III - Berserker - 19.12.2020 03:29

SergOz, чёрная магия. Команда явно не при чём. Скорее всего, она отключает скрипт сохранений перед боем мода GEM, а точнее его опцию.


RE: ERA III - SergOz - 19.12.2020 03:49

Berserker, инструкцией отключает, а ресивером нет?
Это точно что-то потустороннее 26
Пользуясь возможностью, передаю привет спрошу: в папке maps находится файл Zutorial. Для чего он?


RE: ERA III - Berserker - 19.12.2020 04:21

Ресивером отключает позже, уже после того, как остальные скрипты тоже выполнили свои инструкции. То есть триггер !?PI (post instructions) выполняется после инструкций всех скриптов. Часть скриптов к тому моменту уже сохранили состояния опций в глобальных переменных. В общем, что-то с опциями. Попробуй без мода GEM вообще.


RE: ERA III - igrik - 20.12.2020 01:48

(19.12.2020 03:49)SergOz Wrote:  Пользуясь возможностью, спрошу: в папке maps находится файл Zutorial. Для чего он?
Это карта-обучение.


RE: ERA III - SergOz - 20.12.2020 14:58

igrik, Thank_you
Странно, что на него не распространилось действие "открывать подобные файлы с помощью программы..."

Я окончательно разобрался с вышеописанным глюком. Да, как и писал Berserker, !!UN:J3/^:clear:^; не при чём.
Я переместил плагин в Game Enhancement Mod и всё стало ОК.


RE: ERA III - Panda - 20.12.2020 22:18

Berserker, краш при заходе в город, как утверждает чел, при заходе в город Инферно крашей происходит больше всего.
PS: отключение мода TavernVideosBIKv2HD ни к чему не приводит, краш остаётся.
Дебаг:
https://yadi.sk/d/XiPZ-sQAdagT7g


RE: ERA III - daemon_n - 20.12.2020 23:05

SergOz, а мод включен?
Так-то данный плагин должен лежать в GEM


RE: ERA III - XEPOMAHT - 20.12.2020 23:20

(20.12.2020 22:18)Panda Wrote:  Berserker, краш при заходе в город, как утверждает чел, при заходе в город Инферно крашей происходит больше всего.

По логу, ошибка происходит в бою, а не при заходе в город. Если в городе такое, значит кто-то пытается перерисовывать окантовку строений функцией от перерисовки окантовок на стеках в бою.


RE: ERA III - Berserker - 21.12.2020 02:17

Какой-то бой, затем через v2055 = -1 обращение к !!BM-несуществующему монстру. Сохранение нужно.


RE: ERA III - PerryR - 21.12.2020 02:36

v2055 is only existing in the Enhanced Warmachine 1 script 11



RE: ERA III - Berserker - 21.12.2020 02:44

Right. The last executed command:
!!BMv2055:N?y1 H?y2 L?y3 I?y4 S?y13; in 24 wog - enhanced war machines 1.erm on line 127 at pos 3


RE: ERA III - Archer30 - 23.12.2020 08:20

Berserker, hi!

Just want to provide more info related to a problem I reported about BU:R / 40 - Karmic Battles

Here's the latest debug+save (Assembly+TUM+ACM). With this save, fight a few neutral stacks and should be able to reproduce the crash.
It should be noted that the crash happens when initializing the battlefield, quick combat is not necessary for the condition.

Edit: It seems the crash stops after I disable SN:D (BU:R) Rolleyes There is no need to refresh in the first place, right?


RE: ERA III - Berserker - 23.12.2020 09:40

Archer30, right.


RE: ERA III - Panda - 24.12.2020 02:26

Berserker, igrik, Есть стабильный вылет если напасть на синего и после завершения битвы переиграть

Дебаг+сохранение:
https://yadi.sk/d/obiiJBDx8_FsyA


RE: ERA III - Berserker - 24.12.2020 07:23

Вылет при переигрывании нужно смотреть igrik-у, скорее всего:

> Callstack
H3era hd.00473AA0
Wog native dialogs.E032 (?CreateNewBattleLogDlg@@YAXPAU_BattleMgr_@@@Z + 1170)


RE: ERA III - Panda - 24.12.2020 09:43

Berserker, спасибо, до последнего надеялся, что это не плагин Wog native dialogs Sorry Передал igrik-у в тему плагинов.
PS: предыдущий вылет при заходе в город - сохранения чел так и не предоставил.


RE: Плагины. Обсуждение - igrik - 24.12.2020 11:13

Panda, проблема в скриптах. Я отключил ВСЕ плагины (кроме переигровки), а вылет всё равно сохранился. В чем конкретно проблема я не смог разобраться.


RE: ERA III - igrik - 24.12.2020 11:16

(24.12.2020 07:23)Berserker Wrote:  Вылет при переигрывании нужно смотреть igrik-у, скорее всего:

> Callstack
H3era hd.00473AA0
Wog native dialogs.E032 (?CreateNewBattleLogDlg@@YAXPAU_BattleMgr_@@@Z + 1170)
Причем здесь Баттлог, когда вылет внутри функции 473A9B call BattleMgr_PlayWaitAnim()?
К тому же даже с отключенным WND вылет остаётся.
Berserker, ты уверен, что твой лог правильно генерируется?


RE: ERA III - Berserker - 24.12.2020 19:51

igrik, смещение 1170 намекает на то, что это конец функции или всё же за ней. Генерируется верно, если Debug-файл актуальный (а он в сборках может быть не актуальный совсем). Но вылет именно на переигровке, которая, как ни крути, не является встроенной механикой.


RE: ERA III - igrik - 24.12.2020 22:04

Вылет не из-за переигровки. Вылет из-за скриптов, которые не поддерживают переигровку. И это факт.
У данных граждан есть 2 выхода на выбор: либо найти бажный скрипт и адаптировать его под плагин, либо не пользоваться плагином переигровки вовсе.
Я не буду лезть в плагин, потому что он работает стабильно (во всяком случае без скриптов уж точно). А что там делают скрипты - я не знаю.

Да, Debug-файл сто процентов не актуальный.


RE: ERA III - Berserker - 24.12.2020 23:01

Вылет снова при обращении к дефу одного из отрядов. Как такое выходит, что у отряда отсутствующий деф, я не знаю. Возможно, ему проставлен флаг живого, тип и количество, хотя сам отряд отсутствует. Сложно сказать.


RE: ERA III - Panda - 25.12.2020 01:59

Понял, зря побеспокоил, не поругайтесь только. Там этот персонаж днём еще дебагов накидал, видимо у него там явно где-то что-то не здоровое...


RE: ERA III - Berserker - 25.12.2020 08:35

Panda, спасибо за отчёты, все важны.

$ <= $\Mods\BattleQueue [Overwrite = 0, Flags = 0, $ = "C:\Games\HoMM3 ERA"]
$ <= $\Mods\WoG Animated [Overwrite = 0, Flags = 0, $ = "C:\Games\HoMM3 ERA"]

Возможно, стоит попробовать выключить эти мода или один из них. Раз вылет на анимации ожидания, то где-то был плагин на одновременные анимации. Тестировать нужно.


RE: ERA III - igrik - 25.12.2020 14:59

Berserker, я больше не принимаю отчетов, что виноват WND или переигрываемая битва без конкретных аргументов в причине бага. Это был очень показательный пример, и я потратил хреналион времени чтобы найти причину вылета. В следующий раз я этой хернёй заниматься не буду.

Теперь о причине - проблема вылета скрипте "23 wog - enhanced war machines 2.erm"
Решение проблемы - добавить проверку на тактику.

Если копнёшь глубже, то поймешь почему происходит вылет при переигровке.

Короче WoG Scripts как обычно - доставляет.
А ещё махинации с несуществующим монстром 124 - отличное место для потенциальных багов.

(24.12.2020 19:51)Berserker Wrote:  Но вылет именно на переигровке, которая, как ни крути, не является встроенной механикой.
А скрипты являются встроенной механикой?


RE: ERA III - Panda - 25.12.2020 15:02

igrik, Berserker, спасибо за разъяснения. Мне 24 wog - enhanced war machines 1 никогда проблем не доставлял, я не знаю, как получить тот вылет при заходе в город. Сохранения чел не предоставил. С 23 wog - enhanced war machines 2.erm никогда не играл, и даже не заглядывал в этот скрипт. Может позже загляну и добавлю, если настроение будет
Code:
; добавить эту проверку
!!BU:T?y1; !!FU&y1=1:E;



RE: ERA III - Panda - 25.12.2020 15:39

Berserker, вот, очередной отчет+сохранение, говорит, что актуальный: "Еще стабильный вылет если переиграть нападение после пропуска хода".
https://yadi.sk/d/n6hSWHpXs1T3nQ


RE: [ERA 3] Сборка HoMM3 ERA HD Rus/Eng от Panda - SergOz - 25.12.2020 17:31

Panda, такую вот штуку заметил. Из Хелпа:
Quote:В ERM-сообщениях (M- и Q-команды) вы можете использовать специальный синтаксис показа:
“%Dd” → текущий день недели
“%Dw” → текущую неделю
“%Dm” → текущий месяц
“%Da” → текущий день с начала игры
и раньше так и было.
Теперь же “%Dm” - показывает день недели, а “%Dd” - месяц


RE: ERA III - Berserker - 25.12.2020 18:22

igrik, я, наверное, не совсем понятно выразился.
Quote:Но вылет именно на переигровке, которая, как ни крути, не является встроенной механикой.
Может быть два источника бага:
1) Гипотетически неучтённый момент в состоянии игры, который проявляется только при повторе битвы.
2) Переменные/события скриптов, не рассчитанных на переигрывание.

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

Panda, вылет идентичен предыдущему с той же причиной.

Quote:Если копнёшь глубже, то поймешь почему происходит вылет при переигровке.
Судя по цитате, скрипт не делает отличий между тактической фазой и нетактической или криво определяет тактическую фазу.


RE: [ERA 3] Сборка HoMM3 ERA HD Rus/Eng от Panda - Berserker - 25.12.2020 18:30

SergOz, исправил, спасибо.


RE: [ERA 3] Сборка HoMM3 ERA HD Rus/Eng от Panda - SergOz - 25.12.2020 18:41

Berserker, а я у себя могу иправить, чтобы не переустанавливать?


RE: [ERA 3] Сборка HoMM3 ERA HD Rus/Eng от Panda - Berserker - 25.12.2020 18:55

SergOz, нет пока. Но можешь сам получить нужные значения:

месяц = (день - 1) / 28 + 1
день недели = (день - 1) %7 + 1


RE: ERA III - Panda - 25.12.2020 19:08

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


RE: ERA III - Bes - 28.12.2020 14:00

Quote:[+] Добавлена поддержка выравнивания изображений по вертикали относительно текущей строки (для внутристрочных) или границ блока (для блочных).
Атрибут "valign" может принимать одно из трёх значений: top, middle или bottom. По умолчанию: middle.
Berserker, может сделать сокращение в три символа, всё ж короче и, как мне кажется самое главное, это ЕРМ и нам можно сокращать, чай не обременены всякими чужими стандартами и спецификациями.
top, mid или bot


RE: ERA III - helgtla - 28.12.2020 15:27

Berserker установил последнее обновление. Теперь ВСЕ картинки (по умолчанию) отображаются зеркально (необходимо исправить) и выравнивание идёт по центру(это поправимо, но лучше бы "центровку по высоте" оставить на усмотрение пользователя, так как перед вставкой картинки может быть поле с текстом).

Image: 04.jpg


RE: ERA III - Berserker - 28.12.2020 17:31

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

helgtla, старый файл был по ссылке. Обновил.

По умолчанию картинки теперь внутристрочные, для которых естественно выравнивание по центру. Для выравнивания не по центру строки и виртуально они занимают одну строку в высоту. По верхнему краю выравнять:
{~>test.def valign=top}.

Ты чаще всего используешь одну большую блочную картинку по центру. Вот такие блочные картинки:
{~>test.def block}

будут скоро, надеюсь, сами корректно резервировать себе место по вертикали, так что проблема стоять не будет.

И поддержка выравнивания уже в самых ближайших планах.


RE: ERA III - helgtla - 28.12.2020 17:57

Berserker, скачал заново. Зеркальность пропала, но ни одна и команд (valign=top, valign=middle, valign=bottom или block) - не срабатывает. Картинка в любом случае отрисовывается посредине строки слева.


RE: ERA III - Berserker - 28.12.2020 22:17

Приведи, пожалуйста, полный код IF:M.


RE: ERA III - helgtla - 28.12.2020 22:42

Berserker, пример сообщения (дэф сменил на стандартный, результат тот же):
   Пробовал и в ивент на карте приключений чисто сообщением, и в ивент в настройках карты. В оригинале схожее сообщение есть и при старте карты и в памятке (!!IF:M через триггер по клику мышью !?CM0; ).


RE: ERA III - Berserker - 28.12.2020 23:39

Всё верно, в многострочных диалогах не работало. Там вообще сложная внутренняя кухня. Посмотрю, что можно сделать.


RE: ERA III - Berserker - 29.12.2020 00:11

Исправил и обновил.


RE: ERA III - helgtla - 29.12.2020 00:27

Berserker, скачал обновление тчк Работает зпт буду тестить тчк Спасибо тчк


RE: ERA III - Berserker - 29.12.2020 00:42

Отлично Ab Спасибо за тесты.


RE: ERA III - Archer30 - 31.12.2020 09:57

Hi Berserker, it looks like the latest ERA update a few hours ago breaks the compatibility with WoGCN.dll. The colour of Chinese characters is messed up.
I tested with every single ERA update, pretty sure this is a new problem starts only from this version.
Can you fix that either on wogcn.dll or era? Thanks 96-copy


RE: ERA III - V_Maiko - 31.12.2020 10:14

Archer30, WoGCN.dll is some kind of Chinese core designed specifically for your language version?


RE: ERA III - Berserker - 31.12.2020 11:23

Archer30, right, WoG Chinese is not supported currently. Text opacity will not be supported unless plugin functionality is rewritten in Era. I'll provide quick fix later to allow normal colors.


RE: ERA III - Archer30 - 31.12.2020 11:43

Berserker, thanks! That would be the best.

V_Maiko, yes! You won't need it unless you want some hieroglyph in your game


RE: ERA III - feanor - 31.12.2020 19:31

Quote:Для шрифтовой тени реализована поддержка градаций, 1 - полностью непрозрачная, 254 — почти полностью прозрачная. Рассматриваются и варианты отключения тени в файлах шрифтов и рисования автоматической тени.

Изображение: image.png

Друзья, нужны советы и отзывы. Нужна ли нам полупрозрачность в текстах и тенях? Нужны ли нам автоматические тени или рисованные вручную для каждого символа?
Для TSW определенно нужна возможность либо отключать, либо _очень_ гибко переопределять.
Ну то есть мы все равно будем отменять хук (если вообще будем мигрировать на 3.x), так что лучше сделать это как-то ко всеобщей выгоде.


RE: ERA III - feanor - 31.12.2020 21:58

А, или компромиссный вариант. Нам же не нужно действительно _255_ теней?

Из 253 доступных нам значений пикселя шрифта выделяем, допустим, 50 под оттенки тени, 50 или 100 под оттенки шрифта, N под фиксированные цвета (шрифт с гарантированными цветными элементами), возможно, определяемые в файле шрифта, и еще в M случаях - на табличное соответствие: таблица[16-битный пиксель фона] -> итоговый цвет шрифта, M*64 кб таблиц.


RE: ERA III - Berserker - 31.12.2020 23:17

feanor, уже сейчас функция отрисовки символа полностью переписана. Ещё добавится встроенная поддержка азиатских языков.
Мне кажется, что для шрифта достаточно того цвета, который ему передают, а сами значения 0..255 — это просто альфа канал (непрозрачность). Тогда 255, как сейчас, чистый цвет, 0 - отсутствие цвета, а градации — реализация сглаживания, как в True Type. Тени, имхо, лучше отрисовывать автоматически по смещению x+1, y+1 для всего зоопарка шрифтов, у которых чаще всего нет этой самой тени в оригинале. А вы каким путём пошли?


RE: ERA III - V_Maiko - 01.01.2021 00:23

Berserker, Are you planning to include igrik's improved XXL mod in later versions of ERA once it works properly without HD mod? This would greatly benefit the future of ERA.


RE: ERA III - feanor - 01.01.2021 02:21

Quote:Тогда 255, как сейчас, чистый цвет, 0 - отсутствие цвета, а градации — реализация сглаживания, как в True Type. Тени, имхо, лучше отрисовывать автоматически по смещению x+1, y+1 для всего зоопарка шрифтов, у которых чаще всего нет этой самой тени в оригинале..
Плохо.
Сглаживания больше, чем математически имеет смысл в RGB565 @ зато указываем автору шрифта, как будет располагаться тень. Даже если он этого намеренно не планировал.

В ванильном троечном интерфейсе это не очень страшно, потому что на темном коричневом на самом деле пофигу, есть там тень или нет, но есть ведь и интерфейсные моды, типа NIM или тех попыток в четверочный.

Quote:А вы каким путём пошли?
Ну нам нужен вот такой эффект:
Image: 165_519920388620d.jpg

Image: 87278914.jpg

Когда не блендинг с фоном, а сам текст имеет оттенки.


RE: ERA III - Berserker - 01.01.2021 05:33

V_Maiko, XXL mod should be tested and HD-mod independent before inclusion.

feanor, напомни, пожалуйста, как кодируете тени вы.
Возможно, стоит идти по пути разных версий шрифтов. Где-нибудь есть описание формата fnt-файлов?


RE: ERA III - MaGoth - 01.01.2021 15:53

Berserker, а напрямую вектора вкрутить нельзя, вместо убогих фнт ?!


RE: ERA III - Berserker - 02.01.2021 01:09

MaGoth, какого именно формата? Даже для китайского 3D0 использовала простой растровый формат шрифтов. Проще — лучше.


RE: ERA III - MaGoth - 02.01.2021 04:42

Berserker, на ОТФ наверное было бы самое то, там же галимый вектор в матане.. про последнее я бы поспорил что лучше.. Sm


RE: Ваши вопросы по ERM-скриптам - Archer30 - 02.01.2021 13:14

Need some help with !?FU(OnAdvMapTileHint)

My code:
Code:
{
"0_WF": {
"HintBones": "Bones!!!!!!"
},
}

With this code, I got this in the game
Right click info keeps switching between objHintBones and name in objnames.txt

What could be wrong here Unsure


RE: ERA III - Berserker - 02.01.2021 15:06

This code has nothing to todo with right click. It's a hint when you hove mouse over object. And it's correct in your gif.

Seems like your !?CM0 trigger uses some garbage code like !?CM0; !!IF:Mz1; what is z1 here???

(02.01.2021 04:42)MaGoth Wrote:  Berserker, на ОТФ наверное было бы самое то, там же галимый вектор в матане.. про последнее я бы поспорил что лучше.. Sm

Попробую. Может, что и выйдет. Спасибо за совет )


RE: Ваши вопросы по ERM-скриптам - Archer30 - 02.01.2021 15:34

Quote:This code has nothing to todo with right click
Thanks Berserker, I thought the same. But from my test it also affect right click, made me wonder if I was wrong.

Checked with !?CM0; !!IF:M^%z1^; z1 is "WoGification is completed!" Doesn't look suspicious.


RE: Ваши вопросы по ERM-скриптам - Berserker - 02.01.2021 16:45

Send me test savegame with this script only please and above mentioned bug.


RE: Ваши вопросы по ERM-скриптам - Archer30 - 02.01.2021 18:38

Berserker, please check this one.

I changed to another object: dead vegetation 119. The result is the same.
Savegame + debug

Right-clink on this object and you will see
Image: VNHlopn.jpg


RE: Ваши вопросы по ERM-скриптам - Berserker - 02.01.2021 21:36

You are right. I'll try to deal with it.


RE: ERA III - daemon_n - 06.01.2021 16:33

!?FU(OnTownHallMouseClick);
не работает у меня вообще.


RE: ERA III - Berserker - 06.01.2021 20:05

daemon_n, проверял в экране выбора постройки города?


RE: ERA III - daemon_n - 06.01.2021 20:17

Berserker, да, там и проверял.


RE: ERA III - Berserker - 06.01.2021 20:58

Это окно форта/цитадели/замка — найм существ. В оригинале без форта не Town Hall называется?


RE: ERA III - daemon_n - 07.01.2021 04:21

Berserker, насколько я знаю,town hall - городская управа. Это знаете, которое приносит деньги и даёт строить здания. От форта и прочего зависимости нет. Да и все справочники говорят о том, что этот триггер для муниципалитета


RE: ERA III - Archer30 - 07.01.2021 11:25

Berserker, a very interesting bug here Sm

A player reported that his hero (Christian) is controled by purple player at the turn end.
GIF
debug+save

I tried with removing all the scripts, mods and added in !!OW:A0/6; to force Christian belonged to Red, didn't work. Any idea? Rolleyes

This really inspired me to create Berserk Adv Spell btw...


RE: ERA III - daemon_n - 07.01.2021 13:28

Archer30, disquise spell for blocking berserk? Ab


RE: ERA III - Berserker - 07.01.2021 16:42

Archer30, nice bug, confirm strange behavior.


RE: ERA III - V_Maiko - 07.01.2021 21:05

I hadn't realized that ERA was haunted 36


RE: ERA III - Archer30 - 08.01.2021 10:51

Hehe 96-copy Christian is an insider. He moves secrectly at night.

It seems the support of altering text from zsetup00 (3.2 feature) is limited.

I tried to change the text of page 4 Map Rules by adding a few characters, and it immediately overflowed. Delete "and mod options" then everything back to normal

Screenshot:
Image: XNMWkcj.jpg
Code:
{
    "wog_options": {
            "page4": {
            "name": "Map Rules and Mod Options",
            "hint": "This page lets you select the Map Rules and Mod Options you wish to use. You can also choose to have two random rules for each game or to select rules at the start of each game.",
            "popup": "This page lets you select the Map Rules and Mod Optinos you wish to use. You can also choose to have two random rules for each game or to select rules at the start of each game."
        }
    }
}



RE: ERA III - Berserker - 08.01.2021 14:37

Archer30, you mean, that length restriction because of bounding box still remains?


RE: ERA III - Archer30 - 08.01.2021 15:10

Berserker, not exactly. Sorry for didn't explain it clearly.

You see, for "name" key, I wrote "Map Rules and Mod Options". Instead of showing these characters, the game shows "Map Rules and Mod OptThis page lets you blablabla...".

Why? Becoz "Map Rules and Mod Options" exceed a unreasonable character limit (which shouldn't be existing) of "name" key and resulted in error - it shows characters from "hint" now. The restriction here is far behind the restriction of the bounding box.

Same happened to "popup". My popup msg exceed a certain restriction so that the last few words overlapped with "name" key of page 5


RE: ERA III - igrik - 08.01.2021 18:04

Дело в длине первоначальной строки в файле zsetup00.txt и в моём методе копирования строки через strcpy. Я разберусь с этим в ближайшие дни.


RE: ERA III - daemon_n - 08.01.2021 18:53

(31.12.2020 05:57)Berserker Wrote:  Друзья, нужны советы и отзывы. Нужна ли нам полупрозрачность в текстах и тенях? Нужны ли нам автоматические тени или рисованные вручную для каждого символа?

Прозрачность в тексте смотрится прикольно - вот как это влияет на тень и типы её реализации?
Из двух вариантов выбрал бы тот, что быстрее и совместимее с тем же hd mod.


RE: ERA III - Archer30 - 08.01.2021 21:03

Thanks igrik, much appreciated. 132

Quote:Friends, I need advice and feedback. Do we need translucency in texts and shadows? Do we need automatic or hand-drawn shadows for each character?
Forgive me. It's cool but I'm too dumb to understand how transparency in text can be of great use in moddding. 96-copy


RE: ERA III - Berserker - 08.01.2021 23:19

daemon_n, совместимы с HD мод все, а быстрее всегда текста без прозрачности. В акких шрифтах используются тени? Я предлагал выше, как сделано в gray формате freetype библиотеки считать коды 1..254 альфа-каналом цвета, что нужно для реализации сглаживания (anti-aliasing).

Quote:Forgive me. It's cool but I'm too dumb to understand how transparency in text can be of great use in moddding.
Perhaps, semi-transperent captions in custom DL-dialogs over images?


RE: ERA III - Archer30 - 08.01.2021 23:25

Quote:Perhaps, semi-transperent captions in custom DL-dialogs over images?
Interesting idea. Now I figure out the connection of a series of updates 132


RE: ERA III - feanor - 09.01.2021 00:27

(01.01.2021 05:33)Berserker Wrote:  V_Maiko, XXL mod should be tested and HD-mod independent before inclusion.

feanor, напомни, пожалуйста, как кодируете тени вы.
Возможно, стоит идти по пути разных версий шрифтов. Где-нибудь есть описание формата fnt-файлов?

0, 1, 255 - как в ванилле
254 - полупрозрачное затемнение (50% черный)
с 2 по 26, кажется, градации цвета шрифта (домножение на черный какой-то там прозрачности)
индексы, понятно, двигаемы

формат шрифта потом найду и выложу, но там версии если только самому прикручивать, кажется.


RE: ERA III - Archer30 - 13.01.2021 22:46

Hi Berserker,

Just want to make sure. Is it true that even if I change the ZVSE marker from any script to ZVSE2, those scripts should still work as expected, right?


RE: ERA III - Berserker - 13.01.2021 22:54

Right, except that functions naming is stricter.


RE: ERA III - daemon_n - 13.01.2021 23:14

what about text strings interpolation?


RE: ERA III - Berserker - 13.01.2021 23:37

daemon_n, а что с ними не так? Старый синтаксис работает.


RE: ERA III - daemon_n - 13.01.2021 23:40

Berserker, какие -то были сложности, что приходилось менять на "Iz1?z1", но я могу путать. В общем, тебе-то уж точно виднее96-copy


RE: ERA III - Berserker - 13.01.2021 23:55

Интерполяция работает по-новому вне зависимости от того, ZVSE или ZVSE2 указано в начало файла.


RE: ERA III - Archer30 - 14.01.2021 18:38

(13.01.2021 22:54)Berserker Wrote:  Right, except that functions naming is stricter.

Thanks a lot! Time for some coding experiments. Mail1


RE: ERA III - daemon_n - 14.01.2021 19:19

Berserker, а давно (y-1/-10) переменные не сбрасываются?

имеем WS

Также не могу понять, почем не обновляется часть экрана героя со вторичными навыками, когда они меняются в этом самом окне?
Раньше точно было динамичное отображение, когда надевал артефакт со вторичным навыком.

UPD: вижу - игра крашится. А так было разве раньше?

UPD:UPD: краш происходит лишь при СНЯТИИ артефакта "в руку", то есть мышкой, и SN:D после.
Надевание артефакта и SN:D проблемы не вызывает.
К тому же снять/надеть через CTRL/ALT + ЛКМ на артефакте (с помощью HD mod) тоже работает отлично и обновляет экран


RE: ERA III - XEPOMAHT - 15.01.2021 11:55

Зачем-то сегодня установил полную версию HD-мода 5.2 RC16 и оказалось, что ERA 2.9.14 фатально несовместима с библиотекой HD_UPD.dll (вылет происходит сразу после показа главного меню):

В общем, то-ли Берсеркер против авто-запросов обновлений HD-мода, то-ли вся хрень с обновлениями просто не фурычит на Windows XP. 148

В общем, продолжу использовать lite-версию HD-мода (вместе с lite-версией ERA 2.9.14), содержащую только необходимые файлы для запуска ЭРЫ без лишних dll, которые не являются обязательными.


RE: ERA III - daemon_n - 15.01.2021 11:58

XEPOMAHT, проблема на всех графических режимах?
Как вариант, попробовать последнюю версию HD mod


RE: ERA III - XEPOMAHT - 15.01.2021 12:18

(15.01.2021 11:58)daemon_n Wrote:  проблема на всех графических режимах?

С графическими режимами можно грузится только с HD модом не выше 5-й версии. В 5-й версии Бараторч запрашивает системную функцию "GetLogicalProcessorInformation" которой... нет на Windows XP 148

Лично мне графические режимы не интересны (мой старый ПК их всё равно тянул еле-еле, пыхтя и кряхтя как паровоз, раскручивая куллер на максимум 148 ), использую 32-bit DirectDraw, на котором всё ОК (на расширении окна 885x664 вполне хватает, т.к. у меня монитор 1024х768). Так же мне совершенно не нравится картинка, получаемая после фильтров HD-мода: либо цвета становятся пластмассово-пластелиновыми, либо вся картинка размывается, либо черезчур сильные искажения цвета и рисунка изображения.

(15.01.2021 11:58)daemon_n Wrote:  Как вариант, попробовать последнюю версию HD mod

Надо будет как-то скачать, у меня по трафику жесткий лимит - 3 гига на месяц надо растаскивать, чёртов ТЕЛЕ2 с его чёртовыми ценами за интернет. Fie


RE: ERA III - daemon_n - 15.01.2021 12:35

XEPOMAHT, нарезал, как смог 5 МБ


RE: ERA III - XEPOMAHT - 15.01.2021 12:50

(15.01.2021 12:35)daemon_n Wrote:  XEPOMAHT, нарезал, как смог 5 МБ

Спасибо. Взял от туда _HD3_.dll, HD_WOG.dll, HD_TC2.dll, HD_SCX2.dll. Остальное для обновления под Эру вроде бы не нужно (неожиданно, что даже исправленные мною дефы нимф и океанид там есть).


RE: ERA III - daemon_n - 15.01.2021 13:14

XEPOMAHT, возможно, текст и файл настроек лучше взять. И сбросить их на дефолт.
И на всякий случай пересоздать h3era HD.exe


RE: ERA III - XEPOMAHT - 15.01.2021 13:29

(15.01.2021 13:14)daemon_n Wrote:  возможно, текст и файл настроек лучше взять. И сбросить их на дефолт.

Спасибо, так и сделал.

(15.01.2021 13:14)daemon_n Wrote:  И на всякий случай пересоздать h3era HD.exe

h3era HD.exe не использую. Привык к лаунчеру.


RE: ERA III - MaGoth - 16.01.2021 01:31

(15.01.2021 11:55)XEPOMAHT Wrote:  В общем, то-ли Берсеркер против авто-запросов обновлений HD-мода, то-ли вся хрень с обновлениями просто не фурычит на Windows XP. 148
странно, у меня все работает без проблем..

(15.01.2021 12:18)XEPOMAHT Wrote:  С графическими режимами можно грузится только с HD модом не выше 5-й версии. В 5-й версии Бараторч запрашивает системную функцию "GetLogicalProcessorInformation" которой... нет на Windows XP 148
и как у меня оно работает тогда ?! чем и как запускал распиши попробую у себя проверить..

Quote:Надо будет как-то скачать, у меня по трафику жесткий лимит - 3 гига на месяц надо растаскивать, чёртов ТЕЛЕ2 с его чёртовыми ценами за интернет. Fie
у тебя мобильный инет что-ль от телека ?! если что могу кинуть тебе несколько гигов.. Ab


RE: ERA III - XEPOMAHT - 16.01.2021 02:24

(16.01.2021 01:31)MaGoth Wrote:  и как у меня оно работает тогда ?! чем и как запускал распиши попробую у себя проверить..

Проверил дома на Windows 2003 - работает. Думаю, что на Windows XP надо устанавливать последний сервис-пак, тогда может быть заработает и там (у меня на работе дремучее старьё, которое и обновлять-то некому - бухгалтерию главное тянет, остальное как получится).

(16.01.2021 01:31)MaGoth Wrote:  у тебя мобильный инет что-ль от телека ?! если что могу кинуть тебе несколько гигов.. Ab

Не надо - доступ в интернет всё равно не мой, от конторы.


RE: ERA III - V_Maiko - 16.01.2021 02:43

Why does almost everyone here use such old OS to play Heroes 3? I use windows 10, I feel like a millennial surrounded by baby boomers without offending
Unsure


RE: ERA III - MaGoth - 16.01.2021 03:10

XEPOMAHT, яснопонятно, мой хрюндель такой: 'Microsoft Windows XP' '5.1' 'Service Pack 3' '2600.xpsp_sp3_qfe.130704-0421'
3-й СП со всеми последними обновками и плюшками на сегодня..


RE: ERA III - Archer30 - 16.01.2021 08:21

The last working ERA version for Chinese players is the ERA before the transparent font update. I feel much regretful that I didn't save a copy of it. Unsure

Yet another quesiton from Hawaiing (and me) - Is there a way to identify whether a scenario is resumed from last scenario of a campaign?
I'm trying to make a features that allows to save henchman stats overs compaign scenarios. Without such flag, the only way I can figure out is saving stats into ini and load manully by players.


RE: ERA III - Panda - 16.01.2021 11:18

Archer30, I have all unofficial Era versions after 3.2.0. But which one you need, I can no longer say. If necessary, I can throw it off.


RE: ERA III - Archer30 - 16.01.2021 12:17

Panda, thanks! If you can upload all of the unofficial updates after 3.2 that would be the best! I can easily sort out which specific one I need.

Edit: Got it from Panda. Much appreciate for his help.


RE: ERA III - daemon_n - 16.01.2021 15:53

sublime editor 3

on - предлагает начать ф-цию и вставляет !?FU();
_fu - предлагает начать ф-цию и вставляет !?FU()


RE: ERA III - Berserker - 16.01.2021 18:48

Лучше писать код, считая все переменные инициализированными мусором.
y-1, y-100, y1..y100 не исключение.


RE: ERA III - daemon_n - 16.01.2021 19:25

(16.01.2021 18:48)Berserker Wrote:  Лучше писать код, считая все переменные инициализированными мусором.
y-1, y-100, y1..y100 не исключение.

В том и дело, что без инициализации она НЕ ОБНУЛЯЛАСЬ.


+ новая ошибка.

Только с новой Эрой!

Теперь любая клавиша работает как клик ЛКМ.
Например,
!?CM5; [Left Click on Adventure Screen to change pathfinding value]
!!IF:L^%x1^; выдаёт номер клавиши. Если точнее, ощущение, что возврат идёт лишь в том случае, когда клавиша хоть как-то повлияла на игру. Скажем, хоткеи или процесс набора текста.

Что в бою, что в замке, что в окне героя, что на экране встречи.
Но беда ещё в том, что оно по-прежнему работает в чате и не проходит проверку на тип клика. Потому печатание в чат вызывает все функции, которые вызывает триггер ЛКМ, игнорируя все проверки.

В общем, это и есть багAb


RE: ERA III - Berserker - 16.01.2021 20:56

Quote:Лучше писать код, считая все переменные инициализированными мусором.
И не должна. Считай, что любой однотипный триггер выше мог изменить y-переменную.

daemon_n, проверил.

Quote:Теперь любая клавиша работает как клик ЛКМ.
Не подтверждаю. Нажатие клавиши не генерирует триггеры мыши.

Quote:!IF:L^%x1^;
Ты просто выводишь мусорное значение с другого триггера.

Quote:Но беда ещё в том, что оно по-прежнему работает в чате и не проходит проверку на тип клика. Потому печатание в чат вызывает все функции, которые вызывает триггер ЛКМ, игнорируя все проверки.

В общем, это и есть баг
Дичь какая-то. Не подтверждаю.


RE: ERA III - Archer30 - 16.01.2021 23:12

Berserker, thanks for bringing us the awesome pic in text feature. That's really enjoyable to use and brings interesting gaming experince.
Just a minor imperfection of this feature.
Pictures reaches treachedge won't move when scrolling down the dialogue for some reasons. 96-copy


RE: ERA III - Berserker - 16.01.2021 23:15

It's because picture is drawn outside of text area. I know about the issue. It may or may not be resolved.


RE: ERA III - daemon_n - 16.01.2021 23:36

Archer30, top part isnt text field. As solutiion - bottom alignment


RE: ERA III - Archer30 - 16.01.2021 23:55

Thanks Berserker, no biggie.

daemon_n, thank you. Figured out myself )


RE: ERA III - Archer30 - 18.01.2021 08:28

Berserker, a very weird problem here.

A player reported that the bin patch "quick battle no retreat question" didn't work. I checked and confirm his report.

bin
Code:
01 00 00 00 D0 78 47 00 03 00 00 00 EB 26 90

My erm:

Result:
Image: 3ebaOc0.jpg

This looks super weird. Fie Why is the value changed immediately after setting up? Something hooked?


RE: ERA III - Berserker - 18.01.2021 14:20

-21 = unsigned 235.
byte is 0..255 or -128..+127, just a point of treatment.
Everything seems ok with your code. It worked earlier, tried without HD-mod?


RE: ERA III - Archer30 - 18.01.2021 16:59

Thanks. Didn't think of that 96-copy

But, it looks like ERA breaks this patch.
I have 87, -150 returned with neither mod nor HD involved.


RE: ERA III - Berserker - 18.01.2021 18:42

4748D6: EB3590909090
This is better patch. Probably, original patch is wrong.


RE: ERA III - Berserker - 18.01.2021 19:13

Image: image.png



RE: ERA III - Archer30 - 18.01.2021 23:00

My apologies Berserker, now I understand why the patch disabling retreat msg didn't work. It's only becoz when I renamed it, I also removed its "bin" extension by accident. Kap
The patch works perfectly well so there is no need to update it.

Nice list of pre-defined functions! 132


RE: ERA III - feanor - 20.01.2021 22:09

(09.01.2021 00:27)feanor Wrote:  формат шрифта потом найду и выложу, но там версии если только самому прикручивать, кажется.

Короче, так
- 5 байт заголовок, {31, 255, 8, 0, 0}
- 1 байт высоты глифов
- 26 нулевых байт
- 256 раз по три дворда: отступ от символа слева, ширина, отступ от символа справа. Отступы могут быть отрицательными
- 256 двордов, которые показывают смещение данных о глифе
- 256 битмапов на каждый глиф, ширина*высота байт

Code:
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace H3Fnt
{
    struct H3Char
    {
        public int left;
        public int width;
        public int right;
        public int offset;
        public byte[] bytestring;

        public int height;
    }
}
[/code]
Code:
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Text;

namespace H3Fnt
{
    internal class H3Font
    {
        byte[] tmp_header;
        public byte height;
        byte[] tmp_fill;
        public H3Char[] charset;

        public H3Font()
        {
            tmp_header = new byte[]{31,255,8,0,0};
            height = 0;
            tmp_fill = new byte[26];
            charset = new H3Char[256];
        }

        public void Load(string path)
        {
            using (BinaryReader br = new BinaryReader(File.Open(path, FileMode.Open)))
            {
                this.tmp_header = br.ReadBytes(5);
                this.height = br.ReadByte();
                this.tmp_fill = br.ReadBytes(26);

                for (int i = 0; i != 256; i++)
                {
                    this.charset[i].left = br.ReadInt32();
                    this.charset[i].width = br.ReadInt32();
                    this.charset[i].right = br.ReadInt32();

                    this.charset[i].height = this.height;
                }
                for (int i = 0; i != 256; i++)
                {
                    this.charset[i].offset = br.ReadInt32();
                }

                /*for (int i = 0; i != 255; i++)
                {
                    fnt[i].bytestring = br.ReadBytes(fnt[i+1].offset - fnt[i].offset);
                }
                fnt[255].bytestring = br.ReadBytes(fnt[255].width * heigth);*/

                for (int i = 0; i != 256; i++)
                {
                    this.charset[i].bytestring = br.ReadBytes(this.charset[i].width * this.height);
                }
            }
        }


        public void Save(string path)
        {
            using (BinaryWriter br = new BinaryWriter(File.Open(path, FileMode.Create)))
            {
                br.Write(tmp_header);
                br.Write(height);
                br.Write(tmp_fill);

                for (int i = 0; i != 256; i++)
                {
                    br.Write(this.charset[i].left);
                    br.Write(this.charset[i].width);
                    br.Write(this.charset[i].right);
                }

                for (int i = 0, offset = 0; i != 256; i++)
                {
                    br.Write(offset);
                    offset += this.charset[i].width * this.height;
                }

                for (int i = 0; i != 256; i++)
                {
                    br.Write(this.charset[i].bytestring);
                }
            }
        }
    }
}



RE: ERA III - daemon_n - 21.01.2021 06:45

Вот что интересно. В мультиплеерной битве игрок защитник видит 1 ПК за партией, а нападающий - больше.

Если точнее, то для нападающего:
V?$1/?$2/?$3/?$4/?$5
    $4 – один или более ПК в игре = 1 – больше одного
BA:E = 1

Для защитника обе команды возвращают 0


RE: ERA III - Berserker - 21.01.2021 15:18

XX:V? YY:V?


RE: ERA III - daemon_n - 21.01.2021 19:12

Berserker, UN:V и BA:E, если я тебя правильно понял.


RE: ERA III - daemon_n - 21.01.2021 21:49

[quote='Berserker' pid='121229' dateline='1610979222']
Image: image.png

А в новой версии не будет обновления экрана каждую секунду, если подсказка не отличается? А то в текущем варианте наблюдается мерцание подсказки на движение мыши по тому же объекту, если сделать просто

Ну и выполнение какой либо функции на MM выдаёт в строку цифры. То 10, то 1000, то 20.

UPD: Если под курсор попадает герой, который находится в центре экрана (активный - после ЛКМ на нём в панели героев или на карте), то "тип объекта" возвращается "0", а не "34";




RE: ERA III - Berserker - 22.01.2021 20:58

Проверил код. Мерцания не наблюдаю.
По герою верно. Такова механика игры. Активный герой отсутствует в структуре клетки. Вместо него виден объект под героем, например, шахта. Или 0 для почвы. Потому не грех ещё OW:A вызвать и проверить координаты активного героя, если нужна подсказка для героя.


RE: ERA III - daemon_n - 23.01.2021 00:58

Berserker, мерцания запишу на видео чуть позднее, а пока с объектами разбираюсь.
Поскольку беру в привычку писать н а ERM 2.0, то вот вопрос: как в игре выражается (NO_OBJ)? Пустая карта приключения начинается с 0, если там, скажем, нет объекта.
А то записываю (NO_OBJ), думая, что он равен 0, а код не работает) Хорошо хоть, что догадался проверить EEF consts. , а то уже писал бы в спортлотоRolleyes



RE: ERA III - Berserker - 23.01.2021 01:04

NO_BJ - флаг, что нет объекта, а не что число объектов 0. Если счётчик, то его нужно устанавливать в 0 прямо. В целом вопрос без примера не ясен до конца.


RE: ERA III - daemon_n - 23.01.2021 01:33

Berserker, да вот как раз по герою.
Мне надо, чтобы при наведении на активного героя менялась подсказка в строке состояния


Но при нажатии ПКМ на данного героя отображается подсказка ^%(currMm) {%(newD)} %(hC) / %(hM){)}^, а не окно героя. То есть PoPup окошко хранит в себе z-переменную, полученную из подсказки. И каждый следующий клик лишь добавляет подсказку к подсказке.

Image: image.png


RE: ERA III - igrik - 23.01.2021 01:39

(23.01.2021 01:33)daemon_n Wrote:  
Димон, ну что за ерунда. Что это за набор иероглифов xA, oT и т.д. Какая разница использовать старый синтаксис ERM, и твой этот, если ничерта не понятно? Цель ERM 2 сделать читабельные скрипты, а не перевести их в буквенный вид взамен цифрового. Весь Вог на таком шифровании написан, которое просто не хочется читать. Отвыкай от такого написания, пожалуйста. Используй нормальные именования переменных.


RE: ERA III - daemon_n - 23.01.2021 01:46

igrik, да вроде понятно всё105
Активный герой - и координаты с припиской A Yes
Могу, конечно, заменить на xActH././., может, есть гайдик, где подглядеть что?
а вот не я начал. тут у нас (oT) и (oS) - с этого всё и пошлоBeee хе-хе, всё-таки я начал96-copy Исправлю сейчас всё тогда

[b]P.S.:[/b Может, приделать разным триггерам в sublime автообъявлние :x переменных?
Вот печатаю я , сажем,
!?FU(OnAdvMapTileHint);
и он мне сразу.... хобана :
   !#VA(x:x) (y:x) (z:x) (objType:x) (objSubtype:x);132 (можно сразу с одобряющим смайликом:96Sm


RE: ERA III - igrik - 23.01.2021 01:55

Нет. Ты ошибаешься. Вот я смотрю на твой код и не сразу могу в него вникнуть, нужно разбирать глазами команды (так как я это делал на старом ERM). Это говорит о том, что твой код не читаем.
В чём проблема написать не oT, а objectType; не actH, а activeHero и так далее.

На самом деле красноречивое наименование переменных - это целое искусство.
Quote:Правильный выбор имени переменной – одна из самых важных и сложных вещей в программировании, которая отличает начинающего от гуру.

Дело в том, что большую часть времени мы тратим не на изначальное написание кода, а на его развитие.

Возможно, эти слова не очевидны, если вы пока что ничего большого не писали или пишете код «только для записи» (write-only, написал 5 строк, отдал заказчику и забыл). Но чем более серьёзные проекты вы будете делать, тем более актуальны они будут для вас.

Что такое это «развитие»? Это когда я вчера написал код, а сегодня (или спустя неделю) прихожу и хочу его поменять. Например, вывести сообщение не так, а эдак… Обработать товары по-другому, добавить функциональность… А где у меня там сообщение хранится? А где товар?..

Гораздо проще найти нужные данные, если они правильно помечены, то есть когда переменная названа правильно. © learn.javascript.ru



RE: ERA III - daemon_n - 23.01.2021 02:04

(23.01.2021 01:55)igrik Wrote:  Нет. Ты ошибаешься. Вот я смотрю на твой код и не сразу могу в него вникнуть, нужно разбирать глазами команды (так как я это делал на старом ERM). Это говорит о том, что твой код не читаем.
В чём проблема написать не oT, а objectType; не actH, а activeHero и так далее.

1. Мне жалко время - печатаю я медленно, а в голове мысли уходят намного, чем я напечатал. UPD: даже слово "дальше" пропустил по этой же причине.
2. Одержимость размерами файлов (erm). Сам не знаю, откуда такая экономия105

P.S.: со статьёй ознакомился, спасибо. Ещё бы Era Scripts на это дело пересадить96-copy

Но я полностью согласен, и буду стараться. Вот - переделал. (Click to View)

А вот что касается мерцающей подсказки. (Click to View)



RE: ERA III - Berserker - 23.01.2021 04:08

daemon_n, большие имена в sublime вводятся с использованием нечёткого автодополнения.
obn + TAB => objName

До и после любых if/re блоков обязательно пустая строка, если только это не подряд идущие !!en

Quote:И каждый следующий клик лишь добавляет подсказку к подсказке.
Это потому, что ВоГ по правому щелчку переиспользует буфер подсказки из подсказки при наведении. Игра в целом также отображает по ПКМ в общем случае текст подсказки. А ты выводишь оригинал + что-то. Возможно, стоит добавить параметр, подсказка это при наведении или по ПКМ, так как для ПКМ ВоГ тоже вызывает функцию обработки подсказки по клетке.


RE: ERA III - daemon_n - 23.01.2021 04:35

Berserker, но ведь пкм на герое должно отображать инфо о герое.

К слову, если прокликать пкм раз 12 на герое, то в конце появится информация о герое

В общем, всё идёт к тому, что я отказываюсь от данного скрипта.
Ведь если герой сидит в замке, то наведение на замок в подсказку помещает имя замка и имя типа замка + запас хода героя в нём. И пкм на замке также вызывает зацикливание подсказки до 12 линий, только потом появляется 1 раз инфо о замке, ну и так по кругу.
Наведение на замок уже точно никак не решить.
СМ:Р работает лишь на клик.


RE: ERA III - Berserker - 23.01.2021 14:37

Я посмотрю, что можно сделать.


RE: ERA III - Berserker - 23.01.2021 18:58

Code:
[!] Improved "OnAdvMapTileHint" event. It will not occur on RMB popup anymore and will have extended arguments:
  
  !?FU(OnAdvMapTileHint);
  !#VA(x:x) (y:x) (z:x);             Object entrance coordinates
  !#VA(objType:x) (objSubtype:x);    Type and subtype of object. For active hero it's object under hero.
  !#VA(tileX:x) (tileY:x) (tileZ:x); Real tile coordinates.



RE: ERA III - daemon_n - 23.01.2021 19:17

Berserker, *смайлик с бьющим чело о земь колобком".


RE: ERA III - igrik - 23.01.2021 23:23

Berserker, зайди в ВК. Есть серьезная проблема с получением координат в битве через CM:A при использовании HD.


RE: ERA III - daemon_n - 24.01.2021 01:09

(23.01.2021 18:58)Berserker Wrote:  [code][!] Improved "OnAdvMapTileHint" event. It will not occur on RMB popup anymore and will have extended arguments: ...


Оно, конечно, работает, но тип объекта берёт из
   !#VA(x:x) (y:x) (z:x); Object entrance coordinates


RE: ERA III - Berserker - 24.01.2021 02:53

Не так. Просто активный герой считается прозрачным, то есть возвращается объект под ним.


RE: ERA III - Archer30 - 24.01.2021 19:37

Berserker, looks like your link to the beta 3.4.0 is incorrect. It‘s a link of a previous version. Can you update it please 4


RE: ERA III - Berserker - 24.01.2021 19:51

Reuploaded, thanks.


RE: ERA III - Panda - 24.01.2021 20:44

Berserker, странно, у меня всё ещё скачивается старая версия, видимо что-то пошло не так... Unsure


RE: ERA III - daemon_n - 24.01.2021 21:04

Panda, Berserker, скачивается Новая


RE: ERA III - Berserker - 24.01.2021 21:15

Проверил обе ссылки. Новые. Удалите старый файл, если Хромо-браузеры.


[split] ERA III. Новые версии - MaGoth - 29.01.2021 06:09

эм.. некоторая критика.. )
как по мне цветной текст это вообще не про герои, из трех представленных цветов нормально сочетается только оливковый в центре про три части марксизма, остальное так или иначе бьет по глазам..

зы, в край, нужно что-то делать с подложкой фона, кмк..


RE: ERA III - SergOz - 29.01.2021 06:38

(29.01.2021 04:42)Berserker Wrote:  Вскоре на экранах:
Image: image.png
Круто!
А будут ли поддерживаться в сообщениях смещение картинок по align=right/align=center/align="left"?
И почему "left" взято в кавычки?
(29.01.2021 06:09)MaGoth Wrote:  эм.. некоторая критика.. )
как по мне цветной текст это вообще не про герои, из трех представленных цветов нормально сочетается только оливковый в центре про три части марксизма, остальное так или иначе бьет по глазам..
зы, в край, нужно что-то делать с подложкой фона, кмк..
Ну, цветовая палитра довольно обширна и всегда можно подобрать сочетающиеся цветовые комбинации.
Но, соглашусь: если бы у фона было хотя бы три-четыре варианта цвета, то это было бы ваабще..


RE: ERA III - daemon_n - 29.01.2021 06:51

SergOz, ты приглядись к коду и картинке. Там уже стоит выравнивание сперва по правой затем по левой стороне.

Но я боюсь, что для этого необходимо появление полоски скролла.


RE: ERA III - SergOz - 29.01.2021 16:03

daemon_n, я спрашивал не про текст, а про картинки, типа {~>ah10_e.def} , которые можно вставить в сообщение.


RE: ERA III - Berserker - 29.01.2021 16:07

1) Выравнивание работает в любых текстах и диалогах: с прокруткой и без.
2) Выравнивание отлично работает с картинками.
3) Цвета выбирались по-быстрому, демонстрируется альфа-канал (полупрозрачность) в красном и жёлтом.
4) Как и в HTML, значения атрибутов можно заключать в кавычки, что может быть важно для визуального форматирования, включения запрещённых знаков или пробелов.

{~RosyBrown align=left}
{~text align=left}
{~RosyBrown align="left"}
{~text color="RosyBrown Extended Non-existent" align="left"}

Image: image.png


RE: ERA III - MaGoth - 29.01.2021 21:45

Quote:3) Цвета выбирались по-быстрому, демонстрируется альфа-канал (полупрозрачность) в красном и жёлтом.
вон оно чего, михалыч.., Sm


RE: ERA III - Panda - 30.01.2021 03:05

Berserker, в последней неофициальной Эра с окном выбора вторичного навыка происходит вот это:
Image: image.jpg
Текст выбора сдвинут в левую сторону.
На предыдущей версии Эра всё ОК - текст по центру.


RE: ERA III - Berserker - 30.01.2021 04:10

Panda, перекачай ещё раз, пожалуйста.


RE: ERA III - Panda - 30.01.2021 04:24

Berserker, перекачал, контрольные суммы совпадают. Ладно, придётся опять Димона просить, теперь Эру по другому мне не скачать. Через Tor или ВПН не канает, либо пустая страница, либо вообще соединение не устанавливает. Через все остальные браузеры скачивается старая версия, как и в прошлый раз.


RE: ERA III - Berserker - 30.01.2021 04:31

Не нужно, я ещё раз перепроверю и перезалью сейчас.

https://dropmefiles.com/hD9uk

Код проверки работоспособности:



RE: ERA III - Panda - 30.01.2021 04:56

Berserker, скачал, проверил, вот что вышло:
Image: Test-01.jpg
Image: Test-02.jpg

Навыки по прежнему слева.


RE: ERA III - Berserker - 30.01.2021 05:31

Так, в диалоге всё верно. Навыки пошёл проверять.


RE: ERA III - daemon_n - 30.01.2021 08:15

(30.01.2021 06:06)Berserker Wrote:  
Code:
Examples:
  !!IF:M^{~text align=center}{~Orange}Fire camping{~}

  ----
  {~>CDEVIL.def:0:0 valign="middle" block}
  ----

  {~>cndrgn.def:12:2 block}{~}^;

Image: image.png

Image: image.png


RE: ERA III - Grossmaster - 30.01.2021 20:47

Quote:Обновление до версии 3.3.3

Исправлен баг в алгоритме разбиения текста на строки с прокруткой, который мог приводить к искажению текстов и изображений.

Растем не по дням, а по часам!


RE: ERA III - Berserker - 30.01.2021 21:43

Подумалось, что версии 3.X.[Y] как раз можно отдать под более частые обновления.


RE: ERA III. Новые версии - JhonSnow - 30.01.2021 23:27

Здравствуйте! Подскажите как и куда устновить обновление ERA 3.3.0?


RE: ERA III - daemon_n - 31.01.2021 00:15

JhonSnow, https://mods.hmm35.ru/Era%20Update.exe
распаковать в папку с игрой.


RE: ERA III - helgtla - 31.01.2021 17:27

Berserker, есть ли какая-либо принципиальная разница в написании ?
    {~>CDEVIL.def:0:0 valign="middle" block} или {~>CDEVIL.def:0:0 valign=middle block} - я про то, что тэг выравнивания по вертикали обрамлён в двойные ковычки.
    Просто я разницы не заметил и оба варианта работают. Но хотелось бы знать на будущее как правильнее писать, чтобы не переделывать тексты, если что-то поменяется/ужесточится в плане верного порядка написания синтаксиса команд.
-----------------------------------------------------------
   Изменения в плане отрисовки картинок в текстах - реально классные. Стало гораздо удобней, и от смены разрешения теперь страдать не должны (авто подгон с выделением места под изображение). Но есть всё таки небольшие артефакты (это не критично, и вполне компенсируется автором, но решил описать..)
    Если текст с прокруткой и после последнего символа в текстовом сообщении стоит перенос строки, а далее вставлена картинка, которая завершает сообщение, то вылезает графический артефакт (видно дубликат верхней части картинки). Если же вставить картинку сразу после текстового изображения (НЕ ИСПОЛЬЗУЯ перенос строки), то картинка отображается без графического артефакта (сам внешний вид картинки и её положение, в обоих случаях - идентичны). Для изображений вставленных в других частях диалога (не в конце), таких проблем нет.
-----с переносом строки---------
-----без переноса строки---------



RE: ERA III - Berserker - 31.01.2021 18:36

Разницы нет функциональной. Если значение атрибута без спец. символов и пробелов. Ещё это может быть вопросов читаемости. Кавычки порой её облегчают.

Скинь, пожалуйста, указанный def, потестирую. Реализация всего этого добра — это огромный костыльный монстр, так как все функции игры работают просто со строками, а диалоги с прокруткой разбивают текст на набор отдельных строк-надписей. Там под копотом много магии. Рад, что удобно использовать.


RE: ERA III - helgtla - 31.01.2021 18:47

Berserker, https://yadi.sk/d/AwYhZB4EXbnyfA


RE: ERA III - helgtla - 31.01.2021 19:07

Berserker, дополнение/уточнение: артефакт появляется если в начале строки с тэгом вставленной картинки был поставлен пробел (счас проверил на другом сообщении (в начальном этапе диалога), там была схожая проблема, исправил её). Просто До обновления во многих диалогах пробелами пытался смещать положение картинки.
   Сам перенос, скорее всего не причастен к созданию артефакта.


RE: ERA III - daemon_n - 31.01.2021 19:48

что-то не могу понять - краш всегда на ходу минего. (Click to View)
сейв

Проверял и без модов, и без плагинов - дебаг очень странный. Эра 3.3


RE: ERA III - Berserker - 31.01.2021 21:03

daemon_n, вылет постоянный при игре без модов? Загрузись за синего и проверь, что он пытается строить. Возможно, скриптами уже разрешено к строению здание без дефа.
helgtla, спасибо.


RE: ERA III - daemon_n - 01.02.2021 01:51

Berserker, понял. А как проверить, что он пытается строить?)


RE: ERA III - Berserker - 01.02.2021 05:51

Code:
[+] Added "OnBuildTownBuilding" event, occuring when current PC human or AI builds town building.
    Parameters: x1 = Town ID, x2 = Building ID.



RE: ERA III - XEPOMAHT - 01.02.2021 11:20

(01.02.2021 01:51)daemon_n Wrote:  А как проверить, что он пытается строить?)

Там скорее всего строение, меняющее def города на карте. А именно, что-то не так с адресом структуры _Position_, при чтении из которого происходит попадание в молоко.


RE: ERA III - Archer30 - 02.02.2021 12:01

Berserker, "looks like" a bug report here
So I wanted to put my text over a picture, aligning with the right side. Here's my code
And I got this
Image: 5M1bmZC.png

The problems:
1. The picture doesn't show fully. Looks like the height calculation is problematic. This can be fixed/adjusted by inserting newlines.
2. The text is not correctly aligned. As you see from my screenshot, they are centred. Interfered by the parameter of girl.def I guess?

____


And a wishlist
1. Is it possible to fix the DL background colour issue from ERA? A map maker asked about that. This is only issue remaining for his players to use 32-bit modes.

2. I found out a character limit:
Wrong:
(too long)

Corrected:
no big issue but is the limit necessary or it can be raised?


Thanks for helping!


RE: ERA III - Berserker - 02.02.2021 15:55

The default picture rendering style is inline = in-place = as a part of current line. Add "block" attribute to render it as a separate block with auto height allocation.
{~>girl.def block}

2. All ERM commands have fixed limit of max 16 parameters, FU:P is not an exclusion. It's a hardcore limitation, that cannot be passed.


RE: ERA III - Archer30 - 03.02.2021 11:15

Thanks, Berserker, I get the idea. I will need the def to be "non-block" as I want to put my text over the picture. Is there anything wrong with the text allignment though?

A mini bug report:
The spells of Thunder Lord should be 0 instead of 24 (from the text resources). 24 is for his shots.


RE: ERA III - Berserker - 03.02.2021 17:45

Could you provide fixed txt?
Right, alignment is wrong, I'll try to fix this issue in engine.


RE: ERA III - Archer30 - 03.02.2021 18:31

Yes, find them here please
Dropmefiles


RE: ERA III - Berserker - 04.02.2021 01:12

Archer30, seems like all found issues are fixed now, including DL background colors.
helgtla, всё исправлено.


RE: ERA III - Archer30 - 04.02.2021 07:24

Thanks! I can confirm that DL background is fixed. Although it looks like the text alignment does not behave correctly still, try with the code here


RE: ERA III - Berserker - 04.02.2021 16:13

Archer30, everything is right with alignment now. Centered image, right-aligned texts. Maybe, Chinese plugin also needs adaptation.
Image: image.png


RE: ERA III - Archer30 - 04.02.2021 17:52

Aha yes, totally forgot about Chinese plugin. It's aligned correctly without wogcn


RE: ERA III - Berserker - 04.02.2021 19:33

I confirm. Even with one extra fix in Chinese plugin I see disappearing texts.


RE: ERA III - Panda - 06.02.2021 01:39

Berserker, просьба если есть такая возможность, подтвердить или опровергнуть подлинность Эра 3.3.4:



RE: ERA III - Berserker - 06.02.2021 02:55

Всё верно.


RE: ERA III - Archer30 - 07.02.2021 18:33

Berserker, new report here :D

There is a minor issue with ERA update after the unofficial update on 11 Jan. With ERA after this version, the WND input dialogues behave strangely. It ignores the first or the first two (with wogcn) characters from the keyboard input. That is to say, you press a button several times but you get fewer characters from your screen.

mod for testing + ERA update before and after this problem appears

Load the mod and press F2 so you can get an input dialogue for testing.


RE: ERA III - Berserker - 08.02.2021 05:48

Thank you for report with utility files, my friend.


RE: ERA III - daemon_n - 08.02.2021 17:31

Berserker, хочу спросить, что там с рандомом в битвах - был ли смысл делать так, чтобы одно и то же действие вызывало разный результат при переигровке/перезагрузке боя?
Помнится, в какой-то версии ЭРА было введено закономерное повторение результата при совершении тех же действий в бою.


RE: ERA III - Berserker - 08.02.2021 19:33

daemon_n, в оригинале состояние ГСЧ тоже не сохраняется в сейве. И, поправь меня, если ошибаюсь, разве не по-разному выпадает мораль/удача при одинаковых действиях?


RE: ERA III - daemon_n - 08.02.2021 19:45

Berserker, по-разному. Мораль, удача, страх, урон...
Но вот есть возможность это контролировать бинарником или плагином?
Я вот для некоторых своих модов хотел бы иметь одинаковый результат.


Но зачем нам оригинальное состояние? Просто многие скрипты, генерирующие разные объекты/события можно "заобузить" на желаемый результат.

Хотя бы опционально это можно зафиксировать на одном значении?


RE: ERA III - Berserker - 08.02.2021 20:14

Нет, даже теоретически. Либо ты пишешь скрипт, снижающий качество ГСЧ, который на основе координат боя, номеров героев и прочих фиксированных данных генерирует хэш, которым уже инициализируешь ГСЧ через VR:R в OnSetupBattlefield или OnBattleRound 0.


RE: ERA III - daemon_n - 08.02.2021 20:23

Berserker, тогда просто вернуть "повторяемость".

И не только в бою, если возможно - хотя остальные объекты можно защитить "грамотным скриптингом" в начале карты. Та же "книга заклинаний", которая генерирует совершенно рандомныые заклинания каждый раз, когда ты её поднимаешь.

И всё же. Смотрю на пример Хота и переигровка битвы.
Там мы получаем всегда один результат в точном повторении действий в битве.

Но вопрос мой такой:

Почему ты отменил внесённое ранее сохранение ГСЧ? Было ведь даже особо объявлено, а лично мной принято с восторгом. Каковы же причины возврата?102


RE: ERA III - Berserker - 08.02.2021 21:09

Дима, ну где сохранять состояние ГСЧ? В воздухе? В Хоте используется корявый родной генератор на простой хэш функции от текущего времени в миллисекундах. Состояние генератора — 4 байта простив 1000+ у Вихря Мерсенна. Его инициализация происходит до боя и при переигровке в фиксированное значение, которое получается из набора параметров, вроде координат боя. Ровно так, как сейчас работает генерация препятствий в бою. В сохранённой игре состояние генератора не запоминается. Потому, если хочется детерминированности, то делается это скриптом ровно схожим макаром: принудительная инициализация ГСЧ хэшем от набора фиксированных параметров.

У меня в моде Смешанные Нейтралы схожим образом реализована случайная расстановка отрядов.

Подсказываю как сделать:
Получаешь фикс. параметры x, y, z, leftHero, rightHero, day. Можешь взять другие.
Получаешь первый хэш = x OR (y SHL 8) OR (z SHL 16)
Получаешь второй хэш = (leftHero SHL 4) OR (rightHero SHL 12) OR (day SHL 20).
Получаешь комбинированный хэш = первый_хэш XOR второй_хэш XOR случайное_число_карты
Вызываешь Tm32Encode из Era Erm Framework для получения конечного хэша от комбинированного
Вызываешь VR:R0/хэш T0/хэш для установки ГСЧ в фиксированное значение.

Хэш можешь рассчитать в OnBattlefieldVisible с приоритетом 999 у скрипта. Его же использовать в OnBeforeBattleReplay, например. Нужно тестировать и смотреть очерёдность событий.

Случайное число карты генерируешь при старте игры.


RE: ERA III - daemon_n - 08.02.2021 21:43

Berserker, а как ты сделал в тот раз? Работало ведь


RE: ERA III - Berserker - 08.02.2021 22:04

Никак и ничего. В лучшем случае могу вернуть родной генератор и всё. Именно его состояние принудительно устанавливает игра в значение хэша от нескольких параметров.


RE: ERA III - daemon_n - 08.02.2021 22:58

Berserker, нет, пока не надо. Я сперва должен найти лог этого. Возможно, я уже придумывать начал.96-copy


RE: ERA III - daemon_n - 09.02.2021 14:22

Для бинарников не работает проверка через !!SN:L; - так понимаю, и не должна?
Однако-таки есть возможность их определить:



RE: ERA III - Berserker - 09.02.2021 16:28




RE: ERA III - daemon_n - 09.02.2021 16:31

Berserker, потрясающе!
Всё ещё жду список всех этих !!SN:F^штучек^;96-copy


RE: ERA III - Raistlin - 12.02.2021 13:01

Berserker, а что будет, если установить ERA III на WoG 3.59 от GrayFace? Это будет работать?


RE: ERA III - XEPOMAHT - 12.02.2021 14:04

(12.02.2021 13:01)Raistlin Wrote:  что будет, если установить ERA III на WoG 3.59 от GrayFace? Это будет работать?

Теоретически должно, т.к. конфликтной папки s (которую переименовывали при установке ERA на WoG 3.58) там уже нет.

Но папку WoG в ЭРЕ придётся переименовать, иначе её содержимое будет смешано с одноимённой папкой из WoG 3.59. Можно и не переименовывать, тогда будет полный бардак. 148


RE: ERA III - daemon_n - 12.02.2021 14:21

Несколько я знаю, не заведётся.
Angel.dll не позволит.
Ну и exe другой приведёт к неожиданным последствиям


RE: ERA III - Raistlin - 12.02.2021 14:28

XEPOMAHT, хорошо, я понял. Единственное, в новый ехе придется ведь подгрузить era.dll и еще пару библиотек? Если да, то как это сделать? Вот так получится?
Code:
call loadlib
db "mydll.dll", 0
Code:
loadlib:
call LoadLibraryA
jmp OriginalEntryPoint


daemon_n, возможно. Меня просто на эксперименты тянет, да и делать прямо сейчас это необязательно - не получится, так не получится. Зато мы все потом будем это знать ))


RE: ERA III - XEPOMAHT - 12.02.2021 14:57

(12.02.2021 14:28)Raistlin Wrote:  Единственное, в новый ехе придется ведь подгрузить era.dll и еще пару библиотек? Если да, то как это сделать? Вот так получится?
Code:
call loadlib
db "mydll.dll", 0
Code:
loadlib:
call LoadLibraryA
jmp OriginalEntryPoint


Имелось в виду, что они будут работать из одной папки с разных exe. Но сама ЭРА написана под адресное пространство WoG 3.59 TE. В последнем WoG 3.59 адреса будут совершенно другими, поэтому просто так "на халяву" ничего не заработает - для объединения ERA и WoG 3.59 придётся основательно и мучительно повозится с исходными кодами обоих проектов (плюс к этому отвалится поддержка HD-мода и почти всех эровских плагинов, поэтомы смысла в этом нет абсолютно никакого).


RE: ERA III - Grossmaster - 12.02.2021 15:38

Я когда то пробовал ставить эру II на 3.59, ничего хорошего не вышло. Думаю, с эрой III тем более не должно пойти


RE: ERA III - Raistlin - 12.02.2021 15:43

Благодарю за ответы, вероятно, все действительно так и будет.


RE: ERA III - Berserker - 13.02.2021 03:39

Да, либо 3.59 допиливать, либо Эру. 3.59 по исходникам перспективнее, Сергей по сути колоссальный объём работы сделал.


RE: ERA III - Raistlin - 13.02.2021 12:34

Но ведь и Вы тоже... Как по мне, ни то, ни другое не должно пропадать, может быть есть возможность, например, несколько изменить код Сергея, чтобы он работал в условиях Эры в форме отдельных плагинов? Насколько это сложно, как бы Вы оценили?


RE: ERA III - Archer30 - 13.02.2021 13:51

Hi, Berserker, I want to ask for your help with a question from a mapmaker.

For some reasons, loading any save game from his map results in CTD with the latest ERA. You can easily reproduce the issue by saving at day 1 and loading after.

Map + debug

I believe the debug info is very straight forward, only I could not read it. Could you advise what might be wrong?


RE: ERA III - Berserker - 13.02.2021 16:54

Raistlin, я глубоко не копал, возможно, тебе удастся. Нет времени/ресурсов.

Archer30, ---------------------------
Heroes of Might and Magic® III Map Editor
---------------------------
Invalid or corrupt map file.

I cannot advice anything. Crash is on regular H3 function.


RE: ERA III - Archer30 - 13.02.2021 16:59

Thank you Berserker, I understand that Yes


RE: ERA III - Raistlin - 18.02.2021 19:26

Berserker, я думаю, многое можно обратить в плагины и использовать таким образом. Кстати, не могли бы Вы подсказать мне, как правильно записать данные в сохранение? У меня есть некий двумерный массив, я вызываю функцию "WriteSavegameSection" в событии "OnBeforeSaveGame" и передаю ей в качестве параметров размер, имя массива (пробовал ссылку, но не помогло) и строку с названием секции. В "OnAfterLoadGame" у меня вызывается "ReadSavegameSection", аргументы такие же. Результата, к сожалению, нет.


RE: ERA III - Berserker - 18.02.2021 19:39

Raistlin, в событии OnSavegameWrite нужно вызывать WriteSavegameSection с указанием адреса массива (в С++ — как раз просто имя) и размером массива в байтах.
Рекомендую иметь свою секцию/ии с уникальными именем. Первое поле писать uint32 с размером массива, затем сам массив.

В OnSavegameRead делаешь так:

Code:
int arraySize;

if (ReadSavegameSection(sizeof(arraySize), (void*) &arraySize, 'section name')) == sizeof(arraySize) && arraySize = макрос_получения_размера_массива(...)) {
  Так, всё верно:
  1) Плагин ранее записал данные, поскольку мы прочитали заголовок в 4 байта
  2) Записанный размер массива равен реальному размеру, значит плагин не устарел, та же версия
}
Мои секции называются в стиле Era.PO, Era.Triggers и т.д.
Если сохраняешь строки, то сперва пиши int32 длину строки, затем её содержимое. Читай также. В Эре есть высокоуровневая обвязка с функциями вида ReadInt, ReadStr, ReadByte.


RE: ERA III - Raistlin - 18.02.2021 20:06

Berserker, я понял, большое спасибо! 132


RE: ERA III - Berserker - 18.02.2021 22:30

Читать/писать в секцию можно много раз, порциями. Это как файл с отслеживаемой позицией.


RE: ERA III - Raistlin - 19.02.2021 17:30

Berserker, это важная деталь, буду иметь ввиду. Еще раз спасибо!


RE: ERA III - Berserker - 19.02.2021 20:12

Пожалуйста Ab


RE: ERA III - Archer30 - 19.02.2021 21:05

A strange bug report here:

Building Wall of Knowledge for Sandro results in a CTD. If Sandro is not in the town, then everything works fine.

debug+save

I removed all mods and refreshed with F12. Problem persisted. What could be wrong 105


RE: ERA III - Berserker - 19.02.2021 22:54

Manupulation with some building defs probably. Hard to say, according to logs and no time to debug. I doubt, that you'll face the same crash starting game without mods.


RE: ERA III - Archer30 - 20.02.2021 05:49

Hmmm. I doubt it is an issue related to def. Coz when you move Sandro out of the town and build Wall of knowledge, there's no Ctd. But when you visit the town with Sandro, the game crashes before displaying the knowledge gained from the building.

Could be true this issue doesn't exist if playing without mods from the start though


RE: ERA II - Raistlin - 20.02.2021 17:32

Berserker, я нашел баг в ERM: триггер CM4 срабатывает 2 раза подряд (либо что-то не так в реализации проверок условий). У меня прописана следующая логика:
!?CM4;
[...]
Если переменная Х не 0, вызываем функцию, иначе проводим махинации и, возможно, записываем в Х 1.

Эксперимент: делаем "правильный клик" (Х при этом 0)
Результат: Х = 1, функция вызвана
Эксперимент2: все то же самое, только добавляем "наблюдателя" ("!!IF:M^1^;" для триггера, "!!IF:M^2^;" для функции)
Результат: Х = 1, функция не вызвана

Могу прислать код.


RE: ERA II - Berserker - 20.02.2021 17:58

Сомневаюсь. Проблема бы уже давно себя проявила. Код приведи, пожалуйста.


RE: ERA II - Raistlin - 20.02.2021 20:44

Berserker, я сам удивлен данному парадоксу 102 Код я прислал Вам лично


RE: ERA II - Berserker - 20.02.2021 22:06

Там портянка будь-доров ).
Думаю, ты не делаешь разницы между нажатием и отжатием кнопок. Это два разных события CM4 с разными подтипами (12 и 13).



RE: ERA II - Raistlin - 21.02.2021 00:09

(20.02.2021 22:06)Berserker Wrote:  Там портянка будь-доров ).
Честно говоря, я не совсем понимаю, о чем Вы... Если о качестве кода, то да, он очень сырой. Я сегодня с утра его написал, и мне предстоит еще кое-что потестировать и доработать. Это точно не финальный вариант.

Quote:Думаю, ты не делаешь разницы между нажатием и отжатием кнопок. Это два разных события CM4 с разными подтипами (12 и 13).
Да, Вы оказались правы - для каждого из событий триггер срабатывает отдельно. Я изменил проверку флага ЛКМ на проверку подтипа 12, и все заработало как надо. Ну а IF:M врезался по середине и заставлял перевести курсор на свою кнопку "ок", из-за чего не возникал эффект дублирования клика.


RE: ERA II - Berserker - 21.02.2021 17:52

И о размере, и о форматировании Ab. Если писать на ЕРМ, то на ЕРМ 2 с именованными переменными и константами + Era Erm Framework. Пример кода выше. Получается яснее, лаконичнее и легче поддерживать. Насколько это вообще возможно с ЕРМ, конечно.


RE: ERA II - Raistlin - 22.02.2021 02:40

Berserker, у меня есть проработанная схема, по которой я реализую такого рода штучки - ход мысли всегда одинаков, а потому лично мне ориентироваться в таком коде очень легко. Плюс ко всему, я тщательно комментирую все важные места, то есть, всю логику можно проследить по комментариям.
Насчёт ERM 2 могу сказать так: да, классный инструмент, константы очень помогли в реализации одного спец.строения (и, вероятно, помогут где-то ещё), но тем не менее, насчёт ясности и лаконичности я не совсем с Вами согласен - код на самом деле становится самоописывающимся, но избыток наименований лично меня скорее путает, так как любое имя/название нужно дольше читать. Если использовать обычные нумерованные переменные, кода визуально будет меньше, а для не совсем очевидных вещей я специально пишу комментарии.
Вполне возможно, что некоторые вещи я действительно в будущем перепишу на чистом ERM 2, но сейчас лично для меня это менее удобно. Если вдруг Вам интересно, я могу прислать ещё пару примеров реализации своих идей на ERM 1 Ab


RE: ERA III - Panda - 24.02.2021 19:29

Berserker, спасибо за обновление! Теперь вопрос: а будет ли на Эра 3.3.5 корректно работать старый плагин на переигровку, где ещё есть поддержка триггеров 870520 и 870530?


RE: ERA III - Berserker - 24.02.2021 19:34

Новые имена событий не сработают (только 870520 и 870530). Также в обновлённом плагине исправлена проблема, из-за которой я не мог пользоваться плагином вообще. Если долго не перезагружать компьютер, переполнится счётчик миллисекунд с его включения и старый плагин перестаёт реагировать на кнопку переигровки.

Рекомендую временно для сборки фикс:

999 fix old battle replay clients.erm



RE: ERA III - Archer30 - 25.02.2021 16:45

Berserker, can I confirm that if I want to adapt scripts to the latest BattleReplay and ERA, I only need to replace 870530 -> OnBeforeBattleReplay and 870520 -> OnBattleReplay from all scripts, right?


RE: ERA III - Berserker - 25.02.2021 16:46

Archer30, right. Alternatively use can include single old scripts fix from the post above.


RE: ERA III - Archer30 - 25.02.2021 17:14

Berserker, thanks. This was a bit confusing. We have !?BA52 -> !?BA53 as before and after battle triggers, but when it comes to battle replay, the order becomes !?870530 then !?870520. 102
Luckily we use only letters now.


RE: ERA III - Berserker - 25.02.2021 17:24

Right. I think new names are much clearer.


RE: ERA III - daemon_n - 26.02.2021 16:41

(26.02.2021 16:32)XEPOMAHT Wrote:  
(26.02.2021 16:03)daemon_n Wrote:  
Вот что на 24 бит получается (Click to View)

В MoP вроде б было исправлено ещё лет 10 назад (по крайней мере на MoP 24-битные PCX в MoP-диалогах работают без проблем). Просите Берсеркера добавить соответствующий патч для так и не доделанного кода воговских диалогов от WoG TE 15-летней давности (удивительно, что на Эре об этом вспомнили только сейчас, хотя могли бы сделать намного и намного раньше):

Code:
; полноцветные картинки в DL:
2C4E05 83F83B;                         CMP EAX,3B
2C4E08 7502;                           JNZ SHORT mop.00729E0C
2C4E0A EBBF;                           JMP SHORT mop.00729DCB
2C4E0C 8BF0;                           MOV ESI,EAX
2C4E0E 8D45A4;                         LEA EAX,DWORD PTR SS:[EBP-5C]
2C4E11 50;                             PUSH EAX
2C4E12 6A02;                           PUSH 2
2C4E14 FF75D0;                         PUSH DWORD PTR SS:[EBP-30]
2C4E17 E8EFD20400;                     CALL mop.0077710B
2C4E1C 83C40C;                         ADD ESP,0C
2C4E1F 50;                             PUSH EAX
2C4E20 E83A360500;                     CALL mop.0077D45F
2C4E25 83C404;                         ADD ESP,4
2C4E28 894590;                         MOV DWORD PTR SS:[EBP-70],EAX
2C4E2B C745AC03000000;                 MOV DWORD PTR SS:[EBP-54],3
2C4E32 8BD6;                           MOV EDX,ESI
2C4E34 83EA41;                         SUB EDX,41
2C4E37 83FA02;                         CMP EDX,2
2C4E3A 7507;                           JNZ SHORT mop.00729E43
2C4E3C B840034500;                     MOV EAX,mop.00450340 - полноцветная
2C4E41 EB05;                           JMP SHORT mop.00729E48
2C4E43 B8A0FF4400;                     MOV EAX,mop.0044FFA0 - обычная функция
2C4E48 A339887200;                     MOV DWORD PTR DS:[728839],EAX
2C4E4D 83FA15;                         CMP EDX,15
2C4E50 0F87D50C0000;                   JA mop.0072AB2B

Berserker, просим, просим, просим Yes Yes Yes (Click to View)



RE: ERA III - Archer30 - 27.02.2021 11:55

Bug report:


BH$ at !?BA returns incorrected results if it is the first battle after starting the game client. Loading the save game before battle could correct this.


RE: ERA III - Berserker - 27.02.2021 16:32

Archer30, BH cannot be used until battle begins. In !?BA0 battle still didn't start. BA:H you need.


RE: ERA III - Archer30 - 28.02.2021 06:36

Unsure But...it gets correct result if it's not the first battle...

Thanks, BA:H works pretty good


RE: ERA III - Berserker - 28.02.2021 18:06

BH0/1 are simple global variables. If you don't restart the game they hold previous heroes IDs for both sides. Garbage from the point of sense.


RE: ERA III - Sandris - 01.03.2021 02:08

(26.02.2021 16:41)daemon_n Wrote:  В MoP вроде б было исправлено ещё лет 10 назад (по крайней мере на MoP 24-битные PCX в MoP-диалогах работают без проблем). Просите Берсеркера добавить соответствующий патч для так и не доделанного кода воговских диалогов от WoG TE 15-летней давности (удивительно, что на Эре об этом вспомнили только сейчас, хотя могли бы сделать намного и намного раньше):

Berserker, просим, просим, просим Yes Yes Yes (Click to View)

Я как раз сейчас плотно работаю над модом по изображениям героев, и там как раз 8-битная графика уже не подойдет - будут большие потери в графоне.
Все же это уже позавчерашний день. 22 года игре...

Посему присоединяюсь к просьбе о техническом расширении возможностей ЭРЫ до 16/24-битных изображений.




RE: ERA III - Berserker - 01.03.2021 05:51

Хорошо. Как только — так сразу )


RE: ERA III - daemon_n - 01.03.2021 18:09

Berserker, может, тогда сразу на 3,59 всё перенести?


RE: ERA III - Archer30 - 01.03.2021 18:39

A small imperfection for ERA in the multiplayer game

"Show Advanced Options" from Scenario Screen has to be clicked once before starting the game, otherwise it's a crash.
debug


RE: ERA III - Panda - 02.03.2021 11:26

По какой причине может быть краш?
https://disk.yandex.ru/d/Bz-Y9OepRo1FLw


RE: ERA III - XEPOMAHT - 02.03.2021 13:17

(02.03.2021 11:26)Panda Wrote:  По какой причине может быть краш?
https://disk.yandex.ru/d/Bz-Y9OepRo1FLw

Проверь def монстра, на котором вылет: скорее всего не хватает каких-то кадров. Т.к. ошибка в перерисовке бордюров боевых дефов.


RE: ERA III - Night - 02.03.2021 13:19

Panda, Это в какой ситуации было вызвано? Контекст тоже нужно знать.

Я вот тут с удивлением заметил краши, когда открываешь командира Сопряжения - Астрального духа. У других замков таких проблем нету. Начал проверять по старым сборкам: 3.1.12, 3.0.5, 2.9.14 крашило. В 2.9.12 только нормально оказалось.
Краш лог выдаёт один адрес памяти постоянно:
Code:
Exception
{
   Module:     h3era HD.exe
   Adress:      [ 0x0047B6C5]
   Code:        EXCEPTION_ACCESS_VIOLATION
   Flags:       0x00000000
   Information: read of address: 0x00000008
}


По итогу покопавшись, предположительно понял, что дело чисто в wog native dialogs, либо в чём-то ином, но в связке с WND вызывающее краш, ибо отключая WND, в 3.3.3 сборки панды открывается дух нормально, просто нету значка командира.



P.S. Периодически появляется ошибка в заходе в меню выбора карты:
Это файл в HD-mod в \_HD3_Data\Common\
Не пойму, дело в самом ли HD, либо в Эре что-то, ибо не так чтобы регулярно вылетает ошибка, примерно 1 раз на 25-30 загрузок (хотя учитывая, что иногда приходится пересозданные по сети рандом карты переигрывать, вижу относительно часто)


RE: ERA III - Panda - 02.03.2021 13:25

XEPOMAHT, спасибо.

Night, я не знаю, в ДС в тему моей сборки скинули. Раз уж проблема с дефом, то тогда просто удалю из GEM мода этот деф Астрального духа, это должно вернуть стандартный Эровский деф командира.


RE: ERA III - Night - 02.03.2021 13:29

Panda, проблема не в дефе, скорее всего. Отчего другие дефы меняются и не выкидывает?

P.S. Отставить. Проблема всё-таки в дефе. НО! При этом в дефе ТОЛЬКО сопряжения. У меня почти все остальные командиры с иным дефом и всё нормально. Но меняя деф командира Сопряжения, получаем краш. И это какая-то борода в коде(а может его отсутствие), может в WND, а может и нет.

Но вот я проверил сейчас:
- WND вкл, деф командира Сопряжения новый - игра крашит.
- Убираю деф, WND вкл - не крашит.
- Убираю WND, ставлю новый деф - НЕ КРАШИТ, но при этом иконка командира левая, зеленая.

То есть мой деф не подхватывается, а рисует из базового WoG какой-то стремный деф.



RE: ERA III - Panda - 02.03.2021 13:46

Night, а если подкинуть командиру сопряжения другой деф, например деф командира оплота? Unsure


RE: ERA III - Night - 02.03.2021 14:00

Panda, хм, всё нормально.

С жёлтым из ГЕМа тоже нормально, кстати. Базовый зелёный так-то. У меня раньше стоял из ХОТЫ и было ок, в бою по крайней мере. А при просмотре из меню героя оказывается краш.

Я вообщем-то не играл Сопряжением сам, против компа в основном. Короче нужно возвращать жёлтый, работает нормально и ещё глянуть, что именно не так с дефом командира сопряжения, видимо WND тут не причём совсем.


RE: ERA III - Panda - 02.03.2021 14:03

Night, понятно, спасибо за тесты, значит просто удалю деф. Ab


RE: ERA III - XEPOMAHT - 02.03.2021 14:04

(02.03.2021 14:00)Night Wrote:  Panda, хм, всё нормально.
У меня раньше стоял из ХОТЫ и было ок, в бою по крайней мере. А при просмотре из меню героя оказывается краш.

Этот монстр должен иметь флаг телепорта в игре, тогда вылета не будет. Выкладывал уже исправленный деф из MoP/ERA+ (его можно найти в папках HD-мода).

(02.03.2021 13:29)Night Wrote:  Проблема всё-таки в дефе. НО! При этом в дефе ТОЛЬКО сопряжения. У меня почти все остальные командиры с иным дефом и всё нормально. Но меняя деф командира Сопряжения, получаем краш. И это какая-то борода в коде(а может его отсутствие), может в WND, а может и нет.

В твоём дефе может не быть, например, кадров стрельбы или колдовства. Для командиров они должны быть обязательно, т.к. в окне отображения анимированного дефа "а-ля найма" монстр проверяется на выстрелы, очки колдунства, телепортацию для пропуска соответствующих кадров. Для командиров все эти проверки будут = false, поэтому все кадры обязательны в def-е.


RE: ERA III - igrik - 02.03.2021 14:05

Night, Panda, в новом дефе значит не хватает каких-то кадров, например кадров стрельбы. В окне командира кадры стрельбы используются - вот и крашит.
А в бою не крашит, потому что вы не стреляли этим командиров. Выстрелите в бою - игра вылетит.

Итог: дело в дефе, в котором должны присутствовать все кадры (и стрельба, и кастование магии)


RE: ERA III - Night - 02.03.2021 14:34

XEPOMAHT, igrik, понял, спасибо за разъяснение, посмотрю.


RE: ERA III - SergOz - 02.03.2021 17:39

Если в экране встречи героев кликнуть на портрет любого из встретившихся, откроется окно этого героя, поверх окна встречи. И если там, в открывшемся окне, произвести манипуляциями с артами (снять/установить/заменить), то происходят чудеса с дублированием/заменой/исчезновением артов. Правда, при выходе из экрана встречи всё становиться на свои места.
Не знаю - глюк/не глюк - на игровой процесс не влияет. Scratch_one-s_head


RE: ERA III - daemon_n - 04.03.2021 16:21

SergOz, это так работает hd mod, насколько я знаю


RE: ERA III - igrik - 04.03.2021 18:26

Berserker. Я к тебе опять с тем же вопросом - потому что ну адски неудобно работь с массивами в циклах.
Может всё таки подумаешь как решить этот вопрос?
Прилагаю код для обсуждения вопроса:

Сейчас технология такова (но она на вкус - как крепкий костыль, если честно...)

Может как-то можно расширить парсер ERM, чтобы он читал конструкции типа y10i ?!!
Ведь парсер ERM же читает конструкции yy10, почему нельзя сделать, чтобы читались y10i, y10k, y10l, y10m, y10n и т.д. из быстрых переменных?



RE: ERA III - SergOz - 06.03.2021 00:46

В диалогах с картинками, тег mirror, если его взять в кавычки ("mirror"), не работает.
Без кавычек, или если прописать " mirror " - зеркальное отображение происходит.


RE: ERA III - Berserker - 06.03.2021 18:08

igrik, для этого придётся переписать полдвижка. Там всё фиксировано. Тип, индекс, поля, сравнения. Никак не сделать было по-другому.

С Lua будет проще, если доживём и доберёмся. А пока что да, через указатели, по сути. Но ЕРМ 2 выживаем всё из ЕРМ 1-движка, в который и компилируется.


RE: ERA III - Berserker - 07.03.2021 14:50

Предварительный макет диалога выбора:

Image: image.png

Предполагается постраничная навигация, переход на страницы влево/вправо, если пункты не вместились в одну страницу, опциональный переход наверх (содержание или уровень выше в помощи, например), опциональная кнопка отмены.

Шрифт 15 пикс, поддержка картинок через разметку Эры вида {~>....} до 44 пикс (реально и до 50 пикс).

Один экран — до 8 пунктов. Щелчок по любому пространству между разделителями активирует пункт. Помещаются все слоты героя или 8 уровней жилищ города. Вмещаются дефы артефактов и трёхстрочные тексты пунктов/заголовка.


RE: ERA III - daemon_n - 07.03.2021 20:55

Berserker, выглядит здорово - так понимаю, взяты некоторые фишки из WND.

Однако откуда появилась кнопка "cancel" ? Её размещение опционально?


RE: ERA III - Grossmaster - 07.03.2021 21:09

Berserker, если будет нужна графика для новых кнопок, могу попробовать нарисовать


RE: ERA III - Berserker - 07.03.2021 22:02

Grossmaster, нарисуешь лучше, чем те, что я сделал, заменим.

daemon_n, это новый диалог, кнопка отмены опциональна, как и «наверх».


RE: ERA III - Archer30 - 09.03.2021 19:10

Hi Berserker, I'm looking for help with a super strange issue.

In order to reproduce, you need to have ERA + WoG Scripts + Trainer by Valery
Debug+save+trainer
Load my save and switch to Sandro, try to upgrade Sheild of the Dwarven Lord from the Artificer, and you will get the crash after ticking here
Image: 0r8jeIT.jpg

I believe there is something with ERA, that's why I report here.
Looks like removing trainer.erm from trainer could resolve the issue, but there is nothing from the erm log mention about this script at the point of the crash - is this normal? Also, why does trainer has something to do with artificer script in the first place?


RE: ERA III - Berserker - 09.03.2021 21:22

Crash in on HE:F?/?/?/?/1 command.
Crash is in combo artifact handling, which hero wears. Like some plugin extends wog table incorrectly.

This is the table:
Code:
Byte ArtSlots[]={
// номер,+атака,+защита,+сила,+знания, занятые слоты ...
  0x81,21,21,21,21, 0,2,4,5,7,
  0x82,0,0,0,0,     2,7,
  0x83,0,0,0,0,     6,6,
  0x84,3,3,2,2,     0,3,4,
  0x85,0,0,0,0,     8,8,8,8,
  0x86,16,16,16,16, 0,1,2,3,4,6,6,7,
  0x87,9,9,8,8,     0,4,5,
  0x88,0,0,0,0,     2,
  0x89,0,0,0,0,     8,8,
  0x8A,0,0,0,0,     8,8,
  0x8B,0,0,0,0,     1,2,
  0x8C,0,0,0,0,     1,6,6,
  0x99 // последний
};

Combo Artifact ID, +attack, +defense, +spell power, +knowledge occupied slots
Table position is huge in code. It means either 0x99 value was overwritten by plugin or the whole table is corrupted.

I tried a few times, but no crash. Cannot reproduce.


RE: ERA III - Archer30 - 10.03.2021 14:31

Berserker, The savegame was passed from a player, and I was able to reproduce, strange. :/

Could it be something from HD mod? I heard about HD handles combo artifacts and stuff, that's the main reason Third Upgrade Mod has its own hd_wog.dll.

______

Is it possible for you to raise the limit of HE:V? Currently, the limit is set to 0 - 31, objects with ID larger than 31 will result in ERM error. I believe this should be eliminated.
ERA handles objects like Garden of Revelation with more than 32 in a map quite well, Unleashed Editor by RoseKavalier also allows more than 32 of the objects to be added, the only remaining is the HE:V command.


RE: ERA III - Berserker - 10.03.2021 17:17

I didn't checked it without HD mod. We need the third tester. As far as I can see, crash should not occur unless WoG memory is corrupted. I loaded your savegame and didn't reproduce the crash. More testers, more experiments will be probably necessary.

HE:V limit is not changeable, because it's 4-bytes integer value with 32 bits (1 byte = 8 bits). Extra objects overwrite other objects bits and even memory after that bits.
In Hero structure exactly 10 integers of 32 bits each are allocated for storing visited objects flags (10 object types). This is hardcoded restriction, unless someone patches all places, where these fields are used.


RE: ERA III - Archer30 - 10.03.2021 17:23

So you suggest that if a map is with more than 32 Garden of Revelation, data could be corrupted?

Hmmm...I think I need RoseKavalier to tell why he lifted this limit in his editor 102


RE: ERA III - RoseKavalier - 10.03.2021 17:38

No corruption occurs from this, game code performs (garden_id % 32).


RE: ERA III - Berserker - 10.03.2021 19:18

Archer30, RoseCavalier means, that corruption occurs actually. When you visit one garden, it overwrites "visited" flag of another one. 33-th garden shares "visited" flag with the first one. 34-th shares the "visited" flag with the second garden and so on. It may be suprising for knowledge stones, for instance.


RE: ERA III - RoseKavalier - 10.03.2021 20:55

It's not really corruption in the sense the word is usually used - it just creates 'duplicate' objects. Save game will be safe.

Data corruption would be Artifact Merchant overflowing to read hero's visited towns for example, that can crash the game.


RE: ERA III - Archer30 - 10.03.2021 21:04

RoseKavalier, so basically if a map has 70 Garden of Revelation, when you visit the No.0, No. 32, No. 64 would also be marked as visited, right?

Then I say it could be handy if HE:V could automatically convert ID>31 to the 0-31 range 102


RE: ERA III - Berserker - 10.03.2021 21:17

Archer30, ok, added to TODO. Though it's a crutch, buggy code will work now. Any positive value will succeed for HE:V.


RE: ERA III - Archer30 - 10.03.2021 21:17

Berserker, Thanks!

A report about possible ERM engine issue. I know it's bad practice, but check this:

Image: 7WVksMe.png

Image: ogGeWgW.png

The first attempt does not return 50 but 0. Any idea?


RE: ERA III - Berserker - 10.03.2021 21:44

ERM receiver subcommands are executed one by one. It's not expression, stored in some temporary memory.

!!VRy1:S100 -y1 is the same as
Try



RE: ERA III - Archer30 - 10.03.2021 21:59

Thanks! That explains.


RE: ERA III - daemon_n - 11.03.2021 00:12

I don't see any issues. That's is fully arithmetic correct.


RE: ERA III - Berserker - 11.03.2021 05:03

daemon_n, a = 100 - a in most programming languages is evaluated as t = a. a = 100 - t.


RE: ERA III - daemon_n - 11.03.2021 06:13

Berserker, я не понял твоё предложение, но повторю и своё по-русски.

Считаю, что ерм отработал правильно в примере от Archer30, потому не могу согласиться с тем, что там какая-то ошибка.


RE: ERA III - Berserker - 11.03.2021 14:55

В программировании код x := 100 - x (присвоить переменной X значение выражения 100 - x) чаще всего вычисляется так:
1) Идёт вычисление правой части выражения и сохранение значения во временной переменной
t = 100 - x
2) Идёт присвоение вычисленного выражения переменной x

В ЕРМ нет выражений и приоритетов. Здесь просто линейная последовательность команд/покдоманд.


RE: ERA III - daemon_n - 11.03.2021 17:04

Berserker, понял - спасибо.

Хотя странно, что сделано не "как чаще".

Даже и не знаю теперь, что считать удобнее 102


RE: ERA III - Bes - 11.03.2021 19:00

Berserker, спасибо, что стал описывать историю обновлений на двух языках 132


RE: ERA III - Berserker - 11.03.2021 19:25

Yandex Translate-у спасибо )


RE: ERA III - daemon_n - 11.03.2021 21:45

(04.02.2021 01:11)Berserker Wrote:  Обновление до версии 3.3.4
Скачать

[+] Добавлена поддержка фоновых цветов для текстовых элементов в 32-битных режимах HD-мода.
[-] Исправления найденных артефактов рендеринга текстов и картинок.

Berserker, с hd mod 32-bit теперь меню "создатели" (credits) имеет чёрный фон вместо прозрачного. Начиная с 3.3.4 и до сих пор.


RE: ERA III - Berserker - 11.03.2021 22:05

Понял, спасибо.


RE: ERA III - Archer30 - 16.03.2021 09:06

Looks like SN:F trick no longer works for user32.dll - GetKeyState.

Code:



RE: ERA III - Berserker - 16.03.2021 16:12

Argh, half an hour of debugging...
!!SN:F^GetKeyState^/1/17; is WRONG!!!
SN:F always use CDECL_OR_STDCALL convention. You don't need the first argument.
!!SN:F^GetKeyState^/(KEY_CONTROL);

Try the following code:



RE: ERA III - Archer30 - 16.03.2021 20:18

Hah! You can't blame me! That was exactly the same code from your modification to my henchman mod 96-copy Yay now it works


RE: ERA III - Berserker - 16.03.2021 21:04

Sorry, I didn't check it Sorry
Anyway, with new Era Framework we don't need such hacky things.


RE: ERA III - Archer30 - 17.03.2021 14:15

Hah, no worries.

New question about IF dialogues in PVP:

Do you think it possible in ERA to have IF dialogues pop up for both clients before a PVP combat? Let me explain this scenario.
With the henchman script enabled, you will have this dialogue appeared before battle if you don't have a henchman yet:
Also this if clicked yes
But, these dialogues don't appear for the defending player with the latest script we have. Is enabling both dialogues for both players in PVP possible? Also, does ERA has the mechanism to prevent both players from entering the battlefield if any of the players in on IF dialogues (which would result in de-sync if false)?


RE: ERA III - Berserker - 17.03.2021 15:26

Archer30, no. Just don't allow henchman selection in multiplayer battle.


RE: ERA III - Archer30 - 17.03.2021 17:36

Well, looks like it's ok as long as the dialogue before battle enables only for the attacking player. The defending player will wait until IF dialogue selection is done to initialize battlefield


RE: ERA III - SergOz - 26.03.2021 21:30

Как, всё-таки, было бы классно, если бы и таймера были именованные... 119


RE: ERA III - Berserker - 26.03.2021 21:59

SergOz, это как?


RE: ERA III - SergOz - 26.03.2021 23:08

Berserker, ну, как функции.
При инициализации таймера не писать !!TM#:S$1/$2/$3/$4;
а написать !!TM(Judgment Day):S$1/$2/$3/$4;
А потом:
!?TM(Judgment Day);
!!IF:M^It was decided to send you to Paradise^;


RE: ERA III - helgtla - 28.03.2021 04:03

Здоровствуйте.
Есть проблема с ЭРА версии 3.3.7.
Отыгрываю на сборке от Панды, в режиму Верок 16 бит с разрешением 1280*720.
Суть ОЧЕНЬ часто, при долговременной игре происходят краши ХД мода при попытке загрузить ранее сделанные сохранения. Если после снова запустить клиент и загрузить это же сохранение - всё нормально грузится. Но стоит отыграть мин 15-20 (примерно, точно не засекал, т.к может и не во времени главный фактор) - при загрузке - краш.
   В логе ХД мода всегда что-то схожее :
Exception
{
    Module: ntdll.dll
    Adress: [ ntdll.dll+0x32A13 ]
    Code: EXCEPTION_ACCESS_VIOLATION
    Flags: 0x00000000
    Information: read of address: 0x06784CF2
}

   
Прикладываю архив с папкой дебаг
Debug.rar

   Пробовал сменить ХД мод на более раннюю версию (RC19), - не помогает. На версии Эра 3.3.4 - такого не происходит.


RE: ERA III - V_Maiko - 28.03.2021 04:31

helgtla, As the crashlog diagnoses, the root of the problem is found in ntdll.dll


RE: ERA III - Berserker - 28.03.2021 06:01

Никаких глобальных изменений между версиями не вижу. Нужны отчёты от других игроков. По логу ничего не указывает на код Эры.
Вылет в функции освобождения памяти одной из подфункций функции загрузки игры.

Quote:На версии Эра 3.3.4 - такого не происходит.
Как проверял?


RE: ERA III - Suft - 28.03.2021 11:55

Здравствуйте, можно ли рассчитывать что с введением фишки на 24 бит картинки можно будет сделать некоторые Defs - в виде набора 24 бит png?
Есть 32 бит HD ресурсы и программа Topaz Gigapixel AI для перегона 8 бит в лучшее качество 24 бит
H3bitmap с портретами 24 бит хотелось бы тоже
А то перегонка в 8 бит на 70% качество срубает


RE: ERA III - helgtla - 28.03.2021 12:22

(28.03.2021 06:01)Berserker Wrote:  
Quote:На версии Эра 3.3.4 - такого не происходит.
Как проверял?

   Это проверялось на той же карте, что запускалась и на Эра 3.3.4.
на предыдущей версии подобных крашей нет, на 3.3.7. Это происходит регулярно (при "долгой" игре, можно сказать, что со 100% вероятностью).

(28.03.2021 06:01)Berserker Wrote:  Вылет в функции освобождения памяти одной из подфункций функции загрузки игры.

   А не подскажете в какой именно? Просто на карте задействованы с изменениями скрипты и из других модов (ERA Scripts Rus в частности). И там присутствуют функции, активируемые при загрузке сохранённой игры.
Может часть тех функций(скрипты из ERA Scripts Rus у меня от предыдущих версий) в 3.3.7. изменили названия/функционал и "дублируют" обновлённые, вызывая конфликт? Я про !?FU(OnAfterLoadGame) и !?FU(OnAfterErmInstructions) : может их функционал заменён другими/обновлёнными, наподобие того, как это произошло с функциями для переигровки?


RE: ERA III - daemon_n - 28.03.2021 16:16

Berserker, как именно именованные ф-ции переводятся в номерные? Есть ли конвертер?


RE: ERA III - Bes - 28.03.2021 16:49

в справке я ж описывал, вроде как про это...
Quote:Работает это так: как только встретили не в строке, но в ЕРМ коде скобки с текстом (…) - выделить под это (имя) номер функции или взять уже выделенный ранее, после чего вставить в код. Также, по умолчанию создаётся одноимённая SN:W-переменная со значением номера функции, выделенного для данного имени (т.е. в примере имеем y1=y2). Но при этом, соответствие имён функций и выделенных для них ID хранится вне ассоциативной памяти.
Т.е. как я понимаю, перед тем как ЕРМ передаётся в движок обработки скриптов, сама ERA все имена подменяет на свободные (по порядку) или подставляет уже занятые таким именем номера.
Номер же узнать можно, как и написано, через дублирование в SM:W по этому имени ф-ции


RE: ERA III - Berserker - 28.03.2021 17:58

suftfree, замена кадров def не png с прозрачностью в ближайших планах. Сами изображения можете конвертировать.

helgtla, тестировать нужно так. В сборку с 3.3.7 копируете era.dll и DebugMaps\Era.dbgmap из сборки с 3.3.4. Что-то испортить мог код событий OnSavegameWrite. Возможно, в OnAfterLoadGame. Вылет на геройской функции освобождения памяти, значит что-то было уже ранее испорчено из указателей. Я отыграл 1,5 часа с 3.3.7 с последней сборкой Панды и Advanced Classes. Пока не подтверждаю.

daemon_n, механизм автоматический и не разглашается. Может меняться.
Опиши задачу. Ести тебе нужно хранить в переменной или передать в функцию номер функции, то просто используй имя функции для этого!
Везде, где можно использовать ЕРМ-константу, можно использовать и именованную функцию.
Только не забывайте давать уникальные префиксы функциям, чтобы с другими модами не пересекаться.


RE: ERA III - daemon_n - 28.03.2021 18:18

Berserker, спасибо!

Задача куда интереснее.
Использование SN:F^ExecERMcmd^/^тут номер ф-ции^;
Вот это я и сделал


RE: ERA III - Suft - 28.03.2021 21:11

Спасибо, буду конвертировать. Как понял в 24 бит
А планируется ли плагин - если изображение больше, но таких же пропорций - уменьшение до оригинала?
Можно будет Увеличить изображение Topaz-ом для улучшения качества при сжатии.


RE: ERA III - Berserker - 28.03.2021 21:55

suftfree, нет.


RE: ERA III - Archer30 - 29.03.2021 16:46

Berserker, we had discussions about henchman carry over campaign zones. But there's one thing remaining in mystery - how does ERA manage to carry over stats of commanders?

You can try this, launch any campaign scneario, Long Live the Queen from RoE for example, fight any creature and take power stones to increase the stats of the commander, Tab + wogonering to jump to next zone and you get full commander's stats carried over - how was this done? Can we do the same for henchmen?


RE: ERA III - Berserker - 29.03.2021 23:45

As far as I see in code, it should be reset and after that assigned hero exp with levelup dialogs. Myabe I miss something. And no, these structures are internal, you cannot do the same in ERM.


RE: ERA III - Archer30 - 30.03.2021 07:35

Ah. Too bad. The commander carryover feature is very advanced. It carries stats for heroes that need to be carried (nothing like I'm doing for henchman, just loop through all heroes and copy all)

You should be wrong with this feature. As I mention, you can try to pick up power stones that increase the stats, in another zone, you still keep the stats from stones.


RE: ERA III - Berserker - 30.03.2021 08:21

Ok, found it. All those functions are executed before ERM when new campaign map is chosen (bonus selected and start pressed). And this functionality will not work if you transfer hero from the second to the fourth scenario.


RE: ERA III - Archer30 - 30.03.2021 12:38

Thanks Berserker. Unless I know more about hard code, I can do nothing about it Rolleyes


RE: ERA III - V_Maiko - 01.04.2021 04:28

Berserker, I'm curious about this new version, and I want to ask you questions Ab

(01.04.2021 03:05)Berserker Wrote:  [+] Добавлены новые события ERM:
    "OnWinGame" происходит, когда игрок выигрывает сценарий.
    "OnLoseGame" происходит, когда игрок проигрывает сценарий.
    "OnHeroTransfer" происходит после ERM инструкций, но до PI (OnAfterErmInstructions).
    Единственным аргументом является ИД героя, который переносится из предыдущего сценария, как указано в настройках файла кампании.

1. This new feature looks interesting but I wonder in which cases we could use it?

2. Are these new connectors for creating custom campaigns? are we getting closer to recovering WoG Campaigns without replacing? 102
   
   - function IsCampaign: TDwordBool;
    - procedure GetCampaignFileName (Buf: pchar);
    - procedure GetMapFileName (Buf: pchar);

3. About Era Erm Framework, this uses an algorithm similar to unlimited sounds, only now any files can be specified? is it like making a priority system without having to make empty files? (empty dlls in most cases).

Thanks for this interesting update 96-copy


RE: ERA III - Berserker - 01.04.2021 04:32

1-2 are necessary for Archer30. He wants Henchmen to be transferred with campaign heroes.
You can also implement your custom hero export/import in this events.

3. I don't understand the question.

Welcome )


RE: ERA III - V_Maiko - 01.04.2021 04:35

Berserker, About Era Erm Framework seems to be a system that manages the files without having to manually modify them within the data of the mods, that seems curious to me


RE: ERA III - Berserker - 01.04.2021 05:24

V_Maiko, nope. The library just contains tons of usefull callable functions (pieces of code). There is special Runtime directory, where you can create/delete/update real files and folders.


RE: ERA III - V_Maiko - 01.04.2021 05:48

Berserker, And I can know what is the difference between that and what I said? Ab


RE: ERA III - Berserker - 01.04.2021 06:10

V_Maiko, maybe you say the same in other words Rolleyes


RE: ERA III - Archer30 - 01.04.2021 08:10

Berserker, thank you so much for the 3.3.9 update! Yes, this is everything I asked. That should be enough to create a decent campaign carryover feature.
However, my mind changes quickly, and I immediately come out with 2 more requests Rolleyes
1. Is there a way to check the ID of the scenario (zone) of a campaign?
2. Is there a way to check which bonus was selected from the start of a scenario (zone)?

Reason for asking these are
1. If I can check the ID of the zone and also I get the filename of the campaign, I can get a unique result of the combination and know what I should do to the carryover feature. Otherwise, I have to put a mark for every single campaign map in Maps/Resources directory.
2. In some campaigns, you are asked to select heroes from your previous zones. Like this (RoE - Dungeon and Devils - Zone 3):
Knowing which bonus was selected is essential for loading the corrected copy of hero data.


RE: ERA III - Suft - 01.04.2021 13:03

Berserker, Извиняюсь переспрошу - изображения готовить в Png или Bmp? Просто 24 бит же bmp вы добавили поддержку, а не png. И 24 или 32 бит?


RE: ERA III - Berserker - 01.04.2021 16:37

Archer30,
1 - yes, be needs new release.
2 - I don't know.
Check also if OnWinGame occurs after loading saved campaign game.


RE: ERA III - Archer30 - 01.04.2021 18:20

Well, yes, OnWinGame triggers after loading saved campaign game - not sure if this is good or bad


RE: ERA III - Berserker - 01.04.2021 18:28

It's good. You need only 1 file. Export henchman in OnWinGame and import in OnTransferHero with possible question.


RE: ERA III - Archer30 - 01.04.2021 20:48

Yes, that's quite good. I can even use w51 - w100 without worrying about players closing the game before the variables get transferred.

For the 2# issue, I will just check hero ID to confirm which copy of data to load. Luckily H3 has an internal restriction that Zone 1 and Zone 2 can never have the same hero ID

I will try to make a platform mod that allowing mod makers to import features carrying over easily. Yes


RE: ERA III - daemon_n - 03.04.2021 13:41

С новыми нововведениями для диалогов стало невозможным вызывать один поверх другого. Закрываются все сразу, как я понял.

А повторный вызов замораживает игру


RE: ERA III - Berserker - 03.04.2021 19:46

daemon_n, ты проверял работу на dll предыдущей версии? Видел, чтобы один и тот же диалог можно было вызвать рекурсивно, а потом не закрыть их все?


RE: ERA III - helgtla - 03.04.2021 21:55

Berserker, Я писал несколько дней назад про проблемы с загрузками ранее сохранённых игр. Вроде бы как нашёл источник.
Наиболее вероятно проблема в ресивере !!PA#:A#/$;. Это когда в пандорку устанавливаю артефакт (именно арт).
Если установить ресурсы - проблем не возникает.
Пример: на карту в редакторе установлена чистая пандорка. Далее требуется заполнить её наградой, в зависимости от прогресса игрока.
Если положить только ресурсы, никаких проблем с загрузкой нет. Но если инициировать список артов в пандорке и положить их в неё - при попытке загрузить ранее сохранённые сейвы - будет краш клиента.
   Если потом повторно зайти в игру и загрузить ЭТОТ же сейв - он грузиться нормально.
Сами арты и ресурсы в пандорке появляются, их можно полутать, но грузиться после инициации артов в рамках той же сессии - невозможно (будет гарантированный краш клиента).
с ошибкой которую я приводил ранее.
   ЭТО не зависит от ХД мода. И проявляется и на более ранних версиях ЭРА (тестил и на 3.3.7 и на 3.3.4).
   Возможно такая проблема не только с наполнением пандорок артами, но и с наполнением их заклинаниями (это не проверял). Просто в этих случаях, требуется сначала "Очистить список артефактов" или "Очистить список заклинаний" перед установкой их в пандору (для ресурсов такое действие не надобно, они ставятся сразу)
В качестве наглядного примера - предоставляю тестовую карту с уже установленными пандорками и скриптом на их заполнение.
-----------------------------
Пандора тест


RE: ERA III - daemon_n - 03.04.2021 22:31

Berserker, поясняю. Диалог закрывался и вызывал новый, но сейчас закрытие диалога не вызывает новые. Если убрать !!DL:C1; то игра зависает
   Затем вернул 3.7.7 - там всё нормально рабтает.


RE: ERA III - Berserker - 04.04.2021 02:02

helgtla, ресивер !!PA работает через подключённую библиотеку от gamecreator. Сам автор ушёл из моддинга и просил его не беспокоить. Потому решение только одно: не использовать функционал, ломающий сейвы даже временно.

daemon_n, подготовь, пожалуйста, просто код диалога для тестинга. Постараюсь найти причину и исправить.


RE: ERA III - helgtla - 04.04.2021 02:46

Berserker, тогда может есть смысл переделать функционал ресивера. Работа с пандорами используется и в остальных модах, авторы которых пока ещё в деле. Если всё так и останется, в будущем этот факт сделает их моды не "ремонтопригодными".
    Я сам лишь случаянно обнаружил подобное. И то лишь потому, что одна из механик карты подразумевает частое наполнение пандорок в зависимости от прогресса игрока. И даже при этом раскладе - мне понадобилась неделя на выяснение причины (при том, что только случай заставил меня искать её "корень" в РА ). С игроками сложнее, они врядли поняли бы чем вызвано подобное, просто не стали бы заморачиваться и врядли писать баг репорты. А даже если бы и писали - не факт, что нашлась бы причина (моё сообщение недельной давности тому доказательство, даже вы не смогли сходу установить причину проблемы)
   На всех остальных картах (включая рэндомки с пандорками), этот краш будет иметь место при указанных условиях и в дальнейшем, если ничего не изменится. А если автор уже этим не занимается - единственное решение, как по мне, создать обновлённый метод работы с данным объектом. И кроме как вам - такое врядли кому ещё будет возможно сделать (может ещё кроме Игрика, но он уже как давно - всё "на покой" собирается118)


RE: ERA III - daemon_n - 04.04.2021 05:52

(04.04.2021 02:02)Berserker Wrote:  daemon_n, подготовь, пожалуйста, просто код диалога для тестинга. Постараюсь найти причину и исправить.

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

Вот модик для тестов - на 3.3.7 закрытие всех диалогов последовательное
на 3.3.9 - принудительное для всех

Вот чисто код (Click to View)



RE: ERA III - SergOz - 04.04.2021 11:56

Я уже сталкивался с проблемой описанной helgtla, но подумал, что делаю что-то неправильно и забил.
Поставил объект с дефом и описанием пандорки и ERM'ом, в зависимости от ситуации, без !!PA устанавливал свойства этой "пандорки".
P.S. для этой цели, имхо, лучше всего подходит страж прохода, которому выставлен запрет посещения.


RE: ERA III - Berserker - 04.04.2021 17:34

helgtla, не моя DLL и область. Ни времени, ни исходников, ни желания на неё нет. Такие объекты легко создаются на скриптовом языке.


RE: ERA III - helgtla - 04.04.2021 17:52

Berserker, понимаю. Это было лишь предложение. У себя на карте я это "обошёл". Я лишь имел ввиду, что данный функционал используют другие моды и будут использовать в дальнейшем. И было бы не лишним переработать этот функционал, чтобы он не вызывал подобных проблем.
   Или как минимум, если пока это будет "как есть", указать в справочнике для ресивера РА - данную проблему (тут уже обращение к Besу). Потому что для потенциальных моддеров, это может стать причиной некоторых "непоняток" с присылаемыми им баг-репортами и возможным поиском решения этих багов.
   Как пример, чем больше пандорок на карте (в которые заполняются арты) - тем выше шанс крашей при попытке загрузить сейвы (на всякий случай повторюсь: 100% вероятность краша!). А это означает, что каждая попытка загрузки будет приводить к неминуемуму перезапуску клиента игры (т.е. можно сказать, что опция загрузки становится полностью бесполезной и не рабочей до перезапуска игры, а в некоторых картах (кроме рэндомок) загружаться приходится весьма часто).


RE: ERA III - daemon_n - 04.04.2021 18:44

Berserker, зайди в ВК, пожалуйста.


RE: ERA III - Berserker - 04.04.2021 21:57

helgtla, всё верно, попросим Беса указать на проблему. Только как её точнее сформулировать? Вся команда работает с проблемами или только отдельные подкоманды?

daemon_n, спасибо за тестовую конфигурацию.


RE: ERA III - helgtla - 04.04.2021 22:45

Berserker, Для ресивера РА все команды работают, и устанавливают те параметры, что и описаны в справочнике.
   НО! Для установки артефактов и заклятий, прежде чем установить их, необходимо "Очистить список артефактов/заклинаний".
Пример:
   !!PA#1/#2/#3:A; Очистить список артефактов
   !!PA#1/#2/#3:A#/$; Установить/проверить/получить кол-во артефактов # в $.
Для заклинаний аналогично (хотя проверял только для артов).
   Так вот: установка ресурсов, параметров и т.д. - последующих проблем не привносит. Однако установка артов (и скорее всего заклов), ломает функцию загрузки из существующей сессии игры. Само сохранение при этом возможно загрузить нормально, но только если выйти и перезайти в игру. Загрузка же сохранения без перезагрузки клиента - гарантированно вызывает краш (это не зависит от наличия/отсутствия ХД мода). Сами арты при этом устанавливаются в пандорку и их можно полутать (именно поэтому и трудно было обнаружить баг, так как с виду всё работает как и должно /если игроку не требуется грузить сейв/).
   В качестве примера привожу тестовый вариант карты с уже установленными в редакторе пандорками и скриптом на активацию установки артов и ресов (в одну из пандорок) и только ресов (в другую пандорку).
   Для проверки необходимо ПЕРЕД активацией создать сейв, который в последствии необходимо будет загрузить. После активировать пандорки (подойдя к объекту "ЗНАК"). И далее попытаться загрузить ранее созданный сейв. В зависимости от того какую именно пандорку "наполняем" (с артами или без) - при загрузке получим либо успех, либо краш клиента.
------------------------------
   Пример карты со скриптом на заполнение пандорки: test map PANDORA BOX
------------------------------


RE: ERA III - Bes - 05.04.2021 00:21

Я не против уточняющих ньюансов, одно лишь НО - если такой проблемы на ERA2 не будет, то вносить это уточнение в справку нет никакой нужды (ERM-Help вообще не затрагивает ERA3)


RE: ERA III - Berserker - 05.04.2021 04:26

Bes, библиотеки одни и те же от gamecreator.


RE: ERA III - Berserker - 05.04.2021 05:21

daemon_n, баг исправил. Большое спасибо за помощь 4


RE: ERA III - Archer30 - 05.04.2021 17:24

Hi Berserker, found an issue - OnHeroTransfer doesn't seem to trigger.

Also, is there a way to check whether a zone is the first zone of a campaign? (Alternatively, is there a trigger only for the start of the 2nd+ campaign zone?)

I have trouble with this issue for campaign like RoE - Dungeon and Devils. This is a campaign with 3 zones, you can select your starting zone between zone 1 and zone 2 (by clicking on the map). If you choose 2nd zone as your start, then 1st would be your second zone. Here's the problem -> henchman data should be initialized in the first zone (instead of loading data from w51 - w100 or ini). Any idea?

Note: From my code, w51 - w100 are generated at wining and they are only cleared when the client is terminated. If a player starts a new campaign after winning a zone, w51 - w100 could be wrongly transferred to the new campaign (due to lacking check of the first zone)




RE: ERA III - Berserker - 05.04.2021 22:42

Quote:OnHeroTransfer doesn't seem to trigger.
You need new campaign started from scratch. I checked it. Recheck, please.
I would not use any indexes at all.
The issue with garbage in w50..w101 and first campaign map is unsolvable. Just clear anything except those, protected by OnHeroTransfer trigger.


RE: ERA III - Archer30 - 05.04.2021 23:33

Retested, still, nope.
My best guess is that this event is defined in Era Erm Framework, you somehow forget to update the script there?
How is OnHeroTransfer useful in the first place? Comparing with OnAfterErmInsruction. I need more info to understand:
Quote:Just clear anything except those, protected by OnHeroTransfer trigger.
Also, is ClearIniCache suppose to remove anything from the target? Didn't do anything from my end though.





RE: ERA III - Berserker - 06.04.2021 00:21

Sent all info to discrod.

To fully rewrite the whole ini file:
1) Delete ini file using DeleteFile
2) ClearIniCache to remove ini data from memory
3) WriteIni
4) Save ini


RE: ERA III - Berserker - 06.04.2021 04:46

В Эре 3.4.0 будут анимированные def-ы в DL-диалогах. Вплоть до 10 дефов могут быть анимированными. Достаточно в поле имя дефа, где обычно стоит «Def», дописать "animated" => "Def animated". Ну а группу, группу кадров можно выбрать? Можно )

Image: image.png Image: image.png


RE: ERA III - daemon_n - 06.04.2021 04:55

120АААААААААААААААААААААААААААААААААААААААААААААААААААААААА



RE: ERA III - Berserker - 06.04.2021 05:09

Файл по данной ссылке защищён авторским правом и запрещён к скачиванию.
Ходят слухи, что если нужно указать группу кадров и индекс кадра, то в индекс кадра прописывают Группу * 100000 + Индекс кадра.


RE: ERA III - daemon_n - 06.04.2021 05:40

Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как сменяет кадр за кадром resource.def 166


RE: ERA III - Archer30 - 06.04.2021 10:46

Hi Berserker, the animated def feature is really amazing!

And I'm happy to say that now I have figured out most of the henchman carryover feature.

But there is still an issue with OnTransferHero - it doesn't get called each time needed. The ERA commander carryover feature has the same issue as well. For campaigns like RoE - Dungeon and Devils (Oh, here you are again!). You are able to configure your campaign:

1st zone: Choose from Inferno or Dungeon Faction (by clicking on the map)
2nd zone: Choose from Inferno or Dungeon Faction (can't select, must use the faction that was left)
3rd zone: Choose from Inferno or Dungeon Faction (by selecting from campaign bonus - will use hero from zone 1/2 depending on the selection)

Alright, so the problem is when you are at the 3rd zone and select heros from the first zone, the commanders, the henchman data (with my code) are lost (while hero level still gets carried). But if you select heroes from the 2nd, they got carried over.

Possible to fix? Rolleyes


RE: ERA III - Berserker - 06.04.2021 12:21

Quote:Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как сменяет кадр за кадром resource.def
Или artifact.def )

Archer30, thanks.

Quote:But there is still an issue with OnTransferHero - it doesn't get called each time needed. The ERA commander carryover feature has the same issue as well.
Right, it's because I hook at WoG code for commander transferring. I'll see, what can be done, but do not promise anything )

Nice structured code! Formatted it a bit:




RE: ERA III - Sandris - 06.04.2021 12:54

(06.04.2021 05:40)daemon_n Wrote:  Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как сменяет кадр за кадром resource.def 166
То есть, теперь в окошки мода Расширенных описаний существ вместо изображений можно вставлять анимированные def-ы юнитов, как в Форте города?


RE: ERA III - daemon_n - 06.04.2021 14:48

Sandris, я бы хотел сказать "да", но анимация будет не такой, как в форте. Разве что подготовить свои дефы, где будут расставлены кадры в нужном порядке, поскольку оригинальные - лишь заготовки для полноценных анимаций.


RE: ERA III - Berserker - 06.04.2021 16:47

Sandris, конкретно существа анимируются в форте по спец. алгоритму, прыгая по группам. А у меня/ZVS анимация последовательная по конкретной группе.


RE: ERA III - Sandris - 06.04.2021 17:33

Я имел ввиду пересобрать DEF-ы существ именно под анимацию в окне мода, оставив только один тип действия с последовательными кадрами в цикле (движение, кривляние...).


RE: ERA III - daemon_n - 06.04.2021 17:46

Sandris, в таком случае можно.


RE: ERA III - XEPOMAHT - 06.04.2021 20:22

(06.04.2021 12:54)Sandris Wrote:  
(06.04.2021 05:40)daemon_n Wrote:  Бесконечно можно смотреть на три вещи: как горит огонь, как течет вода и как сменяет кадр за кадром resource.def 166
То есть, теперь в окошки мода Расширенных описаний существ вместо изображений можно вставлять анимированные def-ы юнитов, как в Форте города?

В MoP - да. В ERA - увы пока нет.


RE: ERA III - Berserker - 06.04.2021 20:38

XEPOMAHT, Lua быстр, там можно дать контроль над диалогом в плане события смены анимации каждые 100 мс. Так-то не проблема.


RE: ERA III - daemon_n - 06.04.2021 20:47

Berserker, неужели это намёк, что следующая ERA будет рассчитана на Lua и работу с ним? Готов записаться в ученикиYes


RE: ERA III - Berserker - 07.04.2021 01:18

Хотелось бы сперва одну задачу с архивами, затем с поддержкой png, затем с Lua. Сейчас Lua работает, но обвязку нужно привести в порядок.


RE: ERA III - Sandris - 07.04.2021 02:20

(07.04.2021 01:18)Berserker Wrote:  ....затем с поддержкой png...
109


RE: ERA III - daemon_n - 07.04.2021 02:22

А меня вот насторожили "архивы". Это автосоздание lod файлов, без которых не запускаются некоторые версии героев? Или новый способ запаковки/распаковки?102


RE: ERA III - Berserker - 07.04.2021 02:29

Думаю поддержку zip-архивов как альтернативу lod/pac с поддержкой подпапок и произвольных длин файлов.


RE: ERA III - daemon_n - 07.04.2021 02:33

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

Хотя я в этой теме не понимаю, но вижу, что цель -- сделать моддинг удобнее. Будут ли паковаться скрипты тоже?)


RE: ERA III - Berserker - 07.04.2021 02:43

Как и с лодами. Строится дерево всех файлов, а считывание содержимого по требованию. Из плюсов: популярных формат без необходимости MMArchive, нет ограничения на 16 символов в имени файла и расширении, есть поддержка подпапок.

Только в редактор поддержку не потащу, скорее всего (удвоение работы).


RE: ERA III - daemon_n - 07.04.2021 02:48

Примерно понял)


RE: ERA III - XEPOMAHT - 07.04.2021 03:27

(06.04.2021 20:38)Berserker Wrote:  XEPOMAHT, Lua быстр, там можно дать контроль над диалогом в плане события смены анимации каждые 100 мс. Так-то не проблема.

lua так сильно задержалось, что не знаю, успею ли я им воспользоваться на Эре. По ERM скрипты не трогаю уже года 3 - всё жду нормальный lua. Если не дождусь - придётся возиться со встраиванием скриптов из ERM непосредственно в код игры и забыть про lua окончательно.

(07.04.2021 02:29)Berserker Wrote:  Думаю поддержку zip-архивов как альтернативу lod/pac с поддержкой подпапок и произвольных длин файлов.

Это точно лишнее. Уж лучше грузить из папки без всяких архивов, если PAK не нравится.


RE: ERA III - Berserker - 07.04.2021 05:09

Грузить из папки нельзя, рушится структура модов (файл имеет наибольший приоритет).


RE: ERA III - Archer30 - 08.04.2021 05:48

Hi Berserker, congratulation on fixing the commander carryover feature in campaign! That's a long-wated fix I have been dreaming for years!

I'm getting greedy here hehe. When I tested the campaign these days, I notice that H3 campaign has a very out-dated mechanisom of unlokcing campaign scenario. It requires a single savegame to save all the unlocks (instead of saving in the game files). This is different from all the modern games and is confusing somtimes.

For example, when I beat some scenarios of SoD, I have access to all the scenarios from the campaign page.

However, these unlocks are only avaialbe when I load my savegame. When I start a campaign with "New Game", all the unlocks are gone.

My wish:
Save all the unlocks in ERA game files (wog.ini for example). When you unlock a scenario, you have it permanently unless ERA is uninstalled
Alternatively, if there is a bin patch for unlocking all the scenarios, that would be very handy too.

How do you like the idea? Rolleyes


RE: ERA III - Berserker - 08.04.2021 07:17

Brilliant idea, but I will be working on other tasks if you don't mind 96-copy


RE: ERA III - Archer30 - 08.04.2021 07:37

Ofcoz I don't 148


RE: ERA III - Archer30 - 09.04.2021 14:09

Berserker, looks like crtrait0.txt and crtraits.txt are necessary. In 3.4, these 2 are missing thus the game won't start


RE: ERA III - Bes - 09.04.2021 14:13

Berserker, поздравляю со значительным шагом вперёд в универсальности инструментов ERA3 132
Большая и очень нужная проделана работа, молодец Yes


RE: ERA III - Berserker - 09.04.2021 16:01

Bes, спасибо Rolleyes


RE: ERA III - daemon_n - 11.04.2021 12:38

Berserker, верни, пожалуйста, crtrait0.txt и crtraits.txt в hmm35wog.pac, как сказал Archer30. Без них игра крашится.
Напоминаю о чёрном фоне текста при отображении Credits в главном меню


RE: ERA III - Berserker - 11.04.2021 16:59

daemon_n, понял, спасибо.


RE: ERA III - Archer30 - 11.04.2021 19:19

Berserker, thanks for the 3.4.1 update. Although could you explain what I can do with the radio dialogue feature, please? 102


RE: ERA III - Berserker - 11.04.2021 21:54

It's a useful wrapper over IF:G. You can build your dialog by steps (not in a single call) or using loops. You can check result Value, not item flag. You get item index as result and not bitset. You can select item by its associated value and not by bitmask or position. For instance, for a choice of resources you may set
Item "Gold" = (RES_GOLD), "Ore" = (RES_ORE) and get final result without complex logic. Just try an example from docs.

You can even assign some tag like global variable name to each item and determine the tag of selected item later.

Simple example: select of 4 heroes or Cancel. Assign 4 hero names to items and value will be hero ID. If result value >= 0, then it's hero ID. Fast and simple:




RE: ERA III - daemon_n - 12.04.2021 00:17

Berserker, в установщике старый плагин game bug fixes extended.dll и wog native dialogs.era


RE: ERA III - Berserker - 12.04.2021 03:23

daemon_n, плагины современные. После обновления компа игрик был вынужден сделать перекомпиляцию без нововведений.


RE: ERA III - daemon_n - 12.04.2021 03:28

Berserker, не совсем понял, но на том же гитхабе версии на месяц моложе размещённых в новом установщике ERA


RE: ERA III - Berserker - 12.04.2021 04:22

http://wforum.heroes35.net/showthread.php?tid=5717&pid=122011#pid122011


RE: ERA III - daemon_n - 12.04.2021 07:54

Berserker, отличается и размер105


RE: ERA III - Archer30 - 12.04.2021 12:01

Berserker, can you confirm that the era.dll from 3.4.1 and 3.4 is identical?

Tried with your code, and I got this
Image: AG4kcXS.png

If this is how it should be, then I need to spend time understanding the whole idea.


RE: ERA III - daemon_n - 12.04.2021 13:32

Archer30, redownload 3.4.1 cause link was wrong


RE: ERA III - Archer30 - 12.04.2021 13:41

Thanks daemon_n, now I get it 85

________


Berserker, I wonder if you are interested in fixing (optimizing) an aged issue. - The default option of Warlord's Banner dialogue isn't saved.
For example, you chose attack bonus for your pikeman stack, and then you open its warlord's banner dialogue again, it has the health bonus (first item) selected instead of attack bonus. This is confusing sometimes


RE: ERA III - Berserker - 12.04.2021 23:31

Archer30, I never faced such a bug. Rechecked - everything is saved and restored.


RE: ERA III - Archer30 - 13.04.2021 00:07

112 Strange, for some reasons I received more than one report about this. Just checked and yea it worked quite well


RE: ERA III - Berserker - 13.04.2021 00:39

Let they send you savegames. Only scripts can reset such settings, WoG engine works well.


RE: ERA III - Raistlin - 13.04.2021 04:06

Quote:[-] Исправлен черный фон в меню «Авторы».
Ура, спасибо огромное!!! Бегу обновляться Yes


RE: ERA III - daemon_n - 13.04.2021 04:50

Raistlin, то есть только это послужило причиной обновить ERA 96-copy



RE: ERA III - Algor - 14.04.2021 22:43

(13.04.2021 05:04)Berserker Wrote:  [+] Добавлена новая команда ERM VR:B. Она преобразует любое число в логическое значение (1 или 0). Любое ненулевое значение становится 1.

Пример:


Эм, Берс, а можно какой-нить другой пример, оправдывающий существование VR:B?
А то (hasGold)=(TRUE) вместо (goldAmount)>0 звучит неубедительно. И к тому же еще и возможные отрицательные значения золота не учитывает.


RE: ERA III - Berserker - 15.04.2021 03:01

Скажем так, в коде на разных языках программирования приходится много раз конвертировать числовое значение в булево. Мне на ЕРМ тоже приходилось. Далее это булево значение использовать в проверках. Смысл: есть хоть какие-то флаги установлены или «не пустое», «не 0» или «не ошибка».

На ЕРМ без оператора приведения типов это делается так:


И короче никак. Если разрешены отрицательные значения, то hasSomething писать нельзя, конечно же.


Установка булевой переменной в (TRUE), если флаг присутствует. Сами логические переменные упрощают написание и понимание кода. Без них смысл проверок необходимо комментировать. В хорошем коде не нужно комментировать каждую строку. Логическое значение можно передать функциям, ожидающих только TRUE/FALSE в качестве определённого аргумента.


=>




RE: ERA III - Algor - 15.04.2021 14:05

Berserker, я, наверняка, занудствую, но это все равно попахивает натягиванием известной птицы на глобус.
Имхо,
!!VR(undeadPresent:y):S(monFlags) &(MON_FLAG_UNDEAD) B;
от
!!VR(undeadPresent:y):S(monFlags) &(MON_FLAG_UNDEAD);
ничем принципиально не отличается.
Один хрен, результат складывается в int-переменную, которая и далее обрабатывается также как int. И читабильности кода это ни убавляет, ни добавляет - константы TRUE и FALSE можно интерпретировать и как 1/0 и как !0/0 - без типа BOOLEAN всё это только привычки/установки в голове кодера. А при попытке загнать результат во флаг, понадобится доп. строка кода.

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

!!IF&(undeadPresent):M^Кажется, тут кто-то не совсем живой...^;
вместо
!!IF&(undeadPresent)=(TRUE):M^Кажется, тут кто-то не совсем живой...^;
или
!!IF&(undeadPresent)>0:M^Кажется, тут кто-то не совсем живой...^;

Хотя это всё тоже сахар, количество которого в последнее время в ERM+Framework и так стремится к (JOPA_SLIPNETSA).


RE: ERA III - Berserker - 15.04.2021 17:57

Algor, условия без сравнения уже есть. Трактуются как проверка f-флага. Кривая штука.

Не выведет ничего. Условие в ветке OR вообще не проверяется.
Но за идею ещё раз спасибо, посмотрю.

Не соглашусь. Если не привести значение к boolean, то везде, где ожидается boolean, и проверка не вида <>(FALSE), а =(TRUE), всплывут баги.
Более того, я ещё и boolean как 1 в математических выражениях использую. Зная, что это 0/1. Умножаю или вычитаю. Не должно логическое значение хранить 31733 ни в ЕРМ, ни в любом другом ЯП.

C++, PHP (bool)
Javascript Boolean(value)
Pascal: boolean(value)
ERM 2: VR:B


RE: ERA III - Berserker - 15.04.2021 18:04

ЕРМ 2 нуждается в следующих правках:
Code:
-) Условия вида 500<>(someVar:y) должны вычисляться как результат сравнения, а не просто f[500]
-) Условия вида &(var1:y)/(var2:y) должны вычисляться как (var1)<>0/(var2)<>0
-) Условия вида &(text:z) должны вычислять как (text)<>^^



RE: ERA III - Algor - 15.04.2021 22:53

(15.04.2021 17:57)Berserker Wrote:  Более того, я ещё и boolean как 1 в математических выражениях использую. Зная, что это 0/1. Умножаю или вычитаю.
Грязный извращенец Moral

Впрочем, спишем это на "привычки/установки в голове кодера".
Думаю, можно закрыть этот вопрос. Особенно, если внесёшь обозначенные правки Sm


RE: ERA III - Berserker - 16.04.2021 05:42

Algor, готово. Заодно стало возможным использовать любое число пробельных символов между аргументами и операторами.


RE: ERA III - Archer30 - 16.04.2021 17:24

Hi Berserker, is there an OnAfterBattleReplay event, or is it only from ERA changelog?

Quote:[*] Fixed non-working "OnBeforeBattleReplay" and "OnAfterBattleReplay events". Newest "BattleReplay" plugin by igrik is required.

If it's not valid, then the auto-complete of sublime needs to be updated. 102


RE: ERA III - Berserker - 16.04.2021 17:39

Thank you very much, my friend. I will add a fix soon.
https://dropmefiles.com/3ZB2O


RE: ERA III - Algor - 16.04.2021 22:37

(16.04.2021 05:42)Berserker Wrote:  Algor, готово. Заодно стало возможным использовать любое число пробельных символов между аргументами и операторами.
132
хм, надо бы мне реже появляться и чаще нудеть


RE: ERA III - daemon_n - 18.04.2021 09:36

В DL-диалогах перестал прожиматься "Enter" под флагом 28


RE: ERA III - Berserker - 18.04.2021 17:19

daemon_n, поподробнее, пожалуйста. Сам Enter работает, диалоги по нему закрываются.


RE: ERA III - daemon_n - 18.04.2021 18:07

Berserker, чтобы пользовательские диалоги закрывать клавишами, надо в редакторе -DL выставить элементам (в нашем случае, кнопкам) нужный флаг.
Кнопка Esc - 1, кнопка Enter -28. Так вот, теперь не срабатывает закрытие диалога на Enter.


RE: ERA III - Berserker - 18.04.2021 20:20

Это сканкоды, а не флаги. В редакторе обобщённое название для поля. У меня все диалоги работают, как ранее. Нужен тестовый диалог и проверка, что на прежней версии он работает по-другому.


RE: ERA III - Archer30 - 21.04.2021 11:07

Berserker, I encounter a strange issue with some maps.

For example, in the official scenario Good to Go,
1. Each time you restart this scenario, your starting hero is changed.
2. There is no info about the starting hero from the Scenario Info dialogue.

Map for testing

Also, what do you think about an improvement I suggested a while ago? Rolleyes


RE: ERA III - Berserker - 21.04.2021 16:56

Archer30, maybe random hero is specified for all players.

Ok, found record about HE:V.


RE: ERA III - Archer30 - 21.04.2021 18:03

Well, this is abnormal and it doesn't seem to happen before.

The issue is only observed from specific maps, although right now it's only Good to Go I find. I have no idea when this started.

Even if you start with a random hero in some other maps, for example in Arrogance, you still have the same hero each time you restart the scenario, and the starting hero is viewable from Scenario Info.


RE: ERA III - Berserker - 21.04.2021 22:35

Archer30, maybe it's HD mod feature? Try with HD mod 4.


RE: ERA III - Archer30 - 21.04.2021 22:50

Tried without HD, same story 102


RE: ERA III - igrik - 21.04.2021 22:57

Да блин, ваша так называемая проблема кроется в том, что герой автором изначально установлен на карту и помечен как случайный. А в том же аррогенсе, генерируется случайный (не установленный на карту) герой в городе.
Поэтому в первом случае герои при рестарте выпадают разные, а во втором случае игра запоминает сгенерированного героя для конкретного игрока.
Арчер не впервый раз ищет проблемы на ровном месте. А такая "борода" происходит во всех версиях героев. И нужно всего лишь малость смекалки и меньше десятка тестов, чтобы выяснить причину проблемы.


RE: ERA III - Archer30 - 21.04.2021 23:30

igrik, if I understand your idea correclty, I checked what you mentioned before dropping a report here. Your assumption could be wrong.
Good to Go (starting hero is generated from the town):
Arrogance (starting hero is generated from the town):

Same maps, tested on SoD, different results.

It's not necessarily a big issue, I'm just sharing what I've found with ERA. And it's completely up to Berserker to decide wherther he wants to spend some time on it or not. I'm personally happy with either 105


RE: ERA III - igrik - 22.04.2021 00:11

Archer30, значит вы очень не внимательно смотрите!

Image: 1.png
Image: 2.png

Надеюсь теперь разницу видно?


RE: ERA III - Archer30 - 22.04.2021 00:58

Thanks igrik, it all makes sense now. This is the only setting that affects the random starting hero in ERA.

But still, why ERA has to have different strategy with SoD? Remembering the starting hero is preferable in the "Good to Go" case, isn't it? 102


RE: ERA III - Berserker - 22.04.2021 01:52

Archer30, I never changed anything related to random hero. It's either real SoD mechanics or Heroes 3 Tournament Edition fixes. For me it seems like SoD behavior )


RE: ERA III - Archer30 - 22.04.2021 10:13

Thank you for your patience Berserker. I just tested with different versions of ERA, starting from 2.46 to the latest, all have the same behaviours.
We will leave it as it is. Yes


RE: ERA III - Berserker - 22.04.2021 17:26

Archer30, thanks for testing and cinfirming the results. You are promoted with Bug Hunter badge 177


RE: ERA III - Suft - 25.04.2021 19:42

Здравствуйте я тут скачал последнюю сборку демона и по логам файлы Эра обновлены, но Unlimited Music Themes не работает хотя Era Erm Framework включён
Я боюсь заменять era.dll и Era.dbgmap ведь они старые очень


RE: ERA III - Berserker - 25.04.2021 20:02

suftfree, качайте последнюю сборку от Панды. Там версия точно актуальная.


RE: ERA III - Panda - 25.04.2021 22:21

suftfree, ещё раз обнови сборку Димона через лаунчер, эта ошибка уже давно исправлена (ранее действительно была старая версия Эры), сейчас через лаунчер доступна последняя версия Эры и HD мода.


RE: ERA III - Berserker - 26.04.2021 07:16

H3 Nude Mod
(в архиве спец. версия Эры на основе 3.5.0, не 3.5.1. Мод включать через менеджер)
https://dropmefiles.com/enm3f


RE: ERA III - V_Maiko - 26.04.2021 07:54

I just want to ask... why? H3 is not made for that


RE: ERA III - daemon_n - 26.04.2021 09:52

Berserker, да ладно!!! 32 бит картинки в любом месте!!!

НЕВЕРОЯТНО!!! Даже с прозрачность, даже в этом гадском главном меню!

УРА!!! Прощай, H3Deftool96-copy

Я так понимаю, png грузится вместо кадра из def'a? А в какой момент происходит подмена? А? А? А?148

"Def'ы" монстров будут иметь имена картинок с номером блока, как в сделано в анимированных def'ax для DL -- 10000/20004/40013?


RE: ERA III - XEPOMAHT - 26.04.2021 11:29

(26.04.2021 07:16)Berserker Wrote:  H3 Nude Mod

Круто, надеюсь, что работает быстро, чтобы можно было использовать, скажем, для боевых спрайтов монстров.

(26.04.2021 09:52)daemon_n Wrote:  Я так понимаю, png грузится вместо кадра из def'a?

Наверное так же как и до этого. Т.е. def-болванка всё равно будет нужна. В идеале бы текстовик, в который прописывать кадры для виртуального дефа, но это уже как получится. Ещё идеальнее - читать png например из zip-архива без текстовика и прочих приблуд, чтобы куча png-файлов не затормаживало работу файловой системы.

(26.04.2021 09:52)daemon_n Wrote:  А в какой момент происходит подмена? А? А? А?148

Наверное всё там же - в буфере кадра перед рендерингом. Рисовать png средствами самой ЭРЫ - скорее всего скажется на HD-моде не в лучшую сторону.


RE: ERA III - SergOz - 26.04.2021 16:09

А что, в команде !!MW:Px/y/z/i^number^; именованные глобальные не поддерживаются?
У меня Эра ругается: "out of range" Moral

P.S. Пардон, всё нормально. Сам завтыкал Sorry


RE: ERA III - Berserker - 26.04.2021 16:26

V_Maiko, it's a joke mode with png support demonstration. Sorry if screens hurted you, removed them.

daemon_n, XEPOMAHT,

-) В настоящий момент перехватывается отрисовка только интерфейсных дефов прямо в моменте отрисовки кадра. Боевые под вопросом — там есть разные функции отображения в зеркальном виде, с перекрашенной палитрой (жажда крови, клон, окаменение) или с обводкой, которые нужно реализовывать.

-) Скорость отрисовки одного изображения 1200 x 1000 (= ~ 8 кадров монстров) на моём компьютере:
Без полупрозрачности в режимах 16/32 бит: 10 мс
С полупрозрачностью с режиме 32 бит: 60 мс
С полупрозрачностью в режиме 16 бит: 160 мс

-) Def-болванки для def-ов нужны, но кадра в них достаточно одного. Более того, размер png может отличаться от размера def-фрейма, но выводится будет в той же начальной координате. Возможно, стоит добавить центрирование. Предлагайте.

-) Автоматическое сканирование + пересканирование (F12) def-папок позволяет не искать впустую несуществующие кадры на диске при отрисовке, а пользоваться быстрым поиском (в alphaSE схоже).

-) Менеджер ресурсов с реализацией вытесняющего кэша (последнее использование перемещает картинку в конец очереди на удаление, удаление с начала очереди лишь при недостатке места) на указанное в конфиге количество МБ (по умолчанию до 200 МБ).

-) Поддержка всех режимов HD мода и игры без HD мода.

-) Безопасная и быстрая библиотека libspng, собранная под windows из исходников. SSE 2 оптимизации.

Quote:"Def'ы" монстров будут иметь имена картинок с номером блока
Обычные порядковые номера: 0.png, 1.png, 50.ong. Можно заменять любой кадр или часть кадров. Свободу портретам монстров и интерфейсным модам!


RE: ERA III - daemon_n - 26.04.2021 22:28

Berserker, я за то, что при разных размерах def и png центровка не менялась и осталась по левому верхнему пикселю, иначе начнутся проблемы с положением дэфов.


RE: ERA III - Berserker - 26.04.2021 22:43

daemon_n, представь себе def монстра 400х400 и кадр 230x260 для него. Не лучше ли центрировать? Или элемент диалога 64х64 и png кадр 70x70, выпирающий вправо вниз. Но это только картинка, реагирует деф только на область своих размеров.


RE: ERA III - daemon_n - 26.04.2021 22:58

Berserker, ты ведь сказал, что боевой def монстра будет делаться иным образом, так что в этом вопросе всё равно возникнут сложности, и центровку надо подгонять под текущую игровую (скажем, как сделано в HD Edition).

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

Или ты предполагаешь обрезку всех областей прозрачности для уменьшения размера файлов? В таком случае это будет аргументом, который "перевешивает" 96-copy


RE: ERA III - Archer30 - 26.04.2021 23:15

Berserker, I'm looking for help with a very strange issue here.

For some reasons, I'm making some edits to GEM :P
GEM Archer + debug
I found that despite !?GM0 or !?FU(OnAfterLoadGame) only triggers from game loading, this trigger does get me crash from the game start in Multi-player game.

To reproduce the issue, you need to
1. Load GEM Archer
2. Start a game with two ERA client in MP, join in the same game
3. Should have the crash at the second player loading the map

The crash can be resolved immediately from removing !?GM0 from gem_settigns.erm

code related:

From the log, the crash is at executing this part of code (notice line 29)

I understand that menory edit easily results in terrible crashes, but the true casue of it was ERA executing contents under GM0 when it's not a loading event.
What's your idea? 102
Could !?FU(OnGameEnter)&i^timerDay^>1 be cnosidered as an imperfect duplicate to GM0?


RE: ERA III - Berserker - 27.04.2021 00:27

daemon_n, обрезка могла бы быть своего рода кадрированием, как в дефе, но не принципиально. Ладно, пока оставляю как есть.

Archer30,
Quote:3. Should have the crash at the second player loading the map
This is the answer. Game is saved and transferred to the second player. It's LOADED for the second player. Buttons enabling/disabling can be done in OnGameEnter, for instance.


RE: ERA III - Archer30 - 27.04.2021 00:44

Wow thanks, Berserker! That is new to me.
Guess GM0 has to be carefully used with the compatibility broken in MP in mind.

Is there any parameter to OnGameEnter for blocking the trigger event on game start (leave the loading)? My code executed the button hack at OnEveryDay already...


RE: ERA III - Berserker - 27.04.2021 01:03

I didn't understand the last question. Anyway, OnGameStart occurs when user gains control over mouse and the event has no parameters.


RE: ERA III - Archer30 - 27.04.2021 01:08

Ah thanks. As I understand OnGameEnter can be divided into 2 parts, one for entering the game (similar to OnAfterErmInstructions) and the other for loading a save (similar to OnAfterLoadGame).

I wanted to block the "OnAfterErmInstruction" part from OnGameEnter so the initialization of buttons doesn't execute twice (as I have already initialized buttons at OnEveryDay).

But leaving it as it is should be fine anyway )

Edit: I realize putting button hack at OnEveryDay is a stupid idea now. It's only OnGameEnter I need. Thought putting at OnEveryDay would be necessary for MP


RE: ERA III - Berserker - 27.04.2021 04:17

Кто-нибудь знает, по какому алгоритму отрисовываются тени в игре из дефов? Малиновые тени монстров и объектов на карте. Насколько я вижу, они вполне заменяются изначально отрисованной тенью с полупрозрачностью, главное знать этот цвет с альфа-каналом, например rgba(0, 0, 0, 0.35).


RE: ERA III - daemon_n - 27.04.2021 05:38

Berserker, как я понял, тень - отдельная картинка, расположенная рядом с объектом. Именно, как ты и сказал, указывается ключевой цвет в def tool, который будет отвечать за тень/полутень (2 цвета).


RE: ERA III - Berserker - 27.04.2021 06:23

msg/msk? Я заметил, что цвета тени отличаются. Вероятно несколько цветов в палитре резервируется для разного степени непрозрачности пикселей тени. Так, сделал пока поддержку интерфейсных дефов с группами и поддержку отрисовки с фильтром замены одного цвета или горизонтального отражения картинки.

https://mods.hmm35.ru/Era%20Update.exe
Предрелиз.

Имена кадров теперь вида 0_2.png, где 0 — группа, 2 — кадр.


RE: ERA III - XEPOMAHT - 27.04.2021 11:28

(27.04.2021 06:23)Berserker Wrote:  Вероятно несколько цветов в палитре резервируется для разного степени непрозрачности пикселей тени.

В def-е (как и в pcx-е тоже, из-за чего происходят глюки при использовании MMArhive, т.к. сама программа об этом ничего не знает и конвертирует из bmp как есть) первые 8 цветов палитры являются специальными. То же самое для палитры тени.

0 Прозрачный
1 Слабая тень
2 Небольшая тень
3 Средняя тень
4 Сильная тень
5 Выделение|Цвет флага
6 Выделение + Сильная тень
7 Выделение + Слабая тень

Спеццвета можно занимать пользовательской графикой, а можно и не занимать в зависимости от версии def-файла (движок поддерживает версии 1.0-1.9).

Как это сделать в виде обычных 32-битных png без спеццветов - даже не знаю.


RE: ERA III - feanor - 27.04.2021 12:43

(27.04.2021 04:17)Berserker Wrote:  Кто-нибудь знает, по какому алгоритму отрисовываются тени в игре из дефов? Малиновые тени монстров и объектов на карте. Насколько я вижу, они вполне заменяются изначально отрисованной тенью с полупрозрачностью, главное знать этот цвет с альфа-каналом, например rgba(0, 0, 0, 0.35).
Там сраные битхаки. Кажется, даже не сдвиги, а что-то типа битовой маски на rgb565 c гашением верхних битов. Нету честной альфы, конечно, в 1999 году компы её бы не потянули.

Можно в декомпилированном посмотреть по 0111101111101111, как будет время, попробую посмотреть, чо там происходит (я делал цветные тени для tsw, но у нас сильно падала производительность).


RE: ERA III - Archer30 - 27.04.2021 16:03

(27.04.2021 06:23)Berserker Wrote:  https://mods.hmm35.ru/Era%20Update.exe
Предрелиз.

Haven't done closed tests to the png feature but two things got my attention:
1. The font colour of all the UI is weird
2. ERA tweaks, like CpuTargetLevel, UseOnlyOneCpuCore, FixGetHostByName are not auto created in heroes3.ini

Edit:
Looks like the png support is working well! Amazing work!


RE: ERA III - Berserker - 27.04.2021 17:09

XEPOMAHT, спасибо большое. Я так и думал, что несколько цветов градации.
А примеры 6 и 7 есть? Как это выделение + тень? Цвет флага ещё понятно )

feanor, лучше и не скажешь. А как вы тогда alphaSE для объектов на карте используете? Не ресуете теней вообще для png кадров?

Archer30, thanks. 1) fixed. 2) known, will be fixed.


RE: ERA III - XEPOMAHT - 27.04.2021 17:47

(27.04.2021 17:09)Berserker Wrote:  А примеры 6 и 7 есть? Как это выделение + тень? Цвет флага ещё понятно )

Наверное тень от ореола, которым выделен объект. По крайней мере GrayFace назвал это так. Применяется для боевых дефов, но физически в самой игре возможно что и не используется. Стандартные цвета для них - 180/0/255 и 0/255/0.


RE: ERA III - feanor - 27.04.2021 18:39

Quote:0 Прозрачный
1 Слабая тень
2 Небольшая тень
3 Средняя тень
4 Сильная тень
5 Выделение|Цвет флага
6 Выделение + Сильная тень
7 Выделение + Слабая тень
Не надо забывать, что некоторые цвета могут иметь _разное_значение.
Например, у почв (используется в затемнении) четыре градации прозрачности, а у существ вот эти вот обводки с тенями. А индекс один.

Quote:feanor, лучше и не скажешь. А как вы тогда alphaSE для объектов на карте используете? Не ресуете теней вообще для png кадров?
А мы не используем.


RE: ERA III - Berserker - 28.04.2021 03:59

XEPOMAHT, feanor, понял, спасибо.

Поддержка png-кадров теперь и в текстах ЭРЫ. наконец-то girl.def отображается со всеми красками без артефактов:


Image: image.png Image: image.png


RE: ERA III - Grossmaster - 28.04.2021 06:19

Прогрессируем всё более широким шагом.


RE: ERA III - Berserker - 28.04.2021 06:40

Это верно )


RE: ERA III - feanor - 28.04.2021 10:56

А, в дефах почв используются еще 8 и 9, для цветов на миникарте.


RE: ERA III - Berserker - 28.04.2021 16:43

feanor, такие маленькие картинки можно и дефами выводить со всеми палитрами, битовыми масками и родными функциями отрисовки. Либо кардинально перерабатывать всю кухню. Остановлюсь пока на текущей поддержке интерфейсных картинок.


RE: ERA III - XEPOMAHT - 28.04.2021 18:55

(28.04.2021 10:56)feanor Wrote:  А, в дефах почв используются еще 8 и 9, для цветов на миникарте.

Повезло, а я всё думал, откуда геройский движок эти цвета берёт, когда новые почвы добавлял в редактор и в саму игру. Хорошо, что в хотовских pcx-ах эти цвета сохранились, ибо я из них def собирал вообще наугад. 96


RE: ERA III - feanor - 28.04.2021 19:03

(28.04.2021 16:43)Berserker Wrote:  feanor, такие маленькие картинки можно и дефами выводить со всеми палитрами, битовыми масками и родными функциями отрисовки. Либо кардинально перерабатывать всю кухню. Остановлюсь пока на текущей поддержке интерфейсных картинок.

А что как существа/объекты?
(и перекраска интерфейса под цвет игрока)


RE: ERA III - Berserker - 28.04.2021 20:12

feanor, эти в перспективе при наличии соответствующего спроса и обкатке текущей реализации для начала. Скорость отрисовки у меня была 4.5 мс для полупрозрачной картинки 1200*1055. Без прозрачности — 1 мс. С горизонтальным отражением 6-7 мс. Для спрайтов 400x400 — это порядка 1 существо/1мс. Но при этом реализовано автокадрирование при загрузке, так что затраты будут ниже, если у кадра большая прозрачная рамка.


RE: ERA III - V_Maiko - 30.04.2021 07:00

Will this new update affect ACM at all? Is it advisable to rewrite it?


RE: ERA III - Berserker - 30.04.2021 07:37

V_Maiko, it's advisable to use SN:H over SS, but not a must. Backwards compatibility is preserved.


RE: ERA III - Panda - 30.04.2021 09:06

Berserker, спасибо за обновление! Ab

Вопрос: а теперь библиотека "libspng.dll" не должна входить в Эру? Просто в 3.7.0 её нету, а в 3.6.0 она есть. Sorry


RE: ERA III - Archer30 - 30.04.2021 09:46

Hah, nice update Berserker!

Although I'm having the same question with Panda, and also wondering why missing default era settings.ini 102


RE: ERA III - Panda - 30.04.2021 09:59

Archer30,
Если я все правильно понял из изменений в версии 3.6.0, то "default era settings.ini" больше не нужен, т.к. теперь есть "default heroes3.ini", и все конфигурации которые были в "default era settings.ini", теперь так же входят в состав "default heroes3.ini".
If I understood everything correctly from the changes in version 3.6.0, then "default era settings.ini" is no longer needed, because now there is "default heroes3.ini", and all configurations that were in "default era settings.ini" are now also included in "default heroes3.ini". Ab
Berserker, поправь меня, если я не прав. Sorry


RE: ERA III - Archer30 - 30.04.2021 11:14

Panda, you're right. I wish to delete my comment now 96-copy


RE: ERA III - Berserker - 30.04.2021 17:09

Panda, перезалил, спасибо. Включил библиотеку и исходники.
Archer30, Panda is right. Test also HE:V, please.


RE: ERA III - Panda - 30.04.2021 21:11

Berserker, спасибо за исправление! Ab Потестил пару часов, вроде всё хорошо, сборка готова. Rolleyes


RE: ERA III - Archer30 - 30.04.2021 22:08

Berserker, HE:V now works very well with excessive objects. Thank you so much! 132


RE: ERA III - Suft - 01.05.2021 23:46

Berserker, Вы делали патч на санта гремлинов - предлагаю снизить им урон по 5 или 6 на штуку в угоду баланса они же 1 уровня всё таки, ещё и охрана


RE: ERA III - Berserker - 02.05.2021 04:21

Panda, Archer30, great! Thank you both!

suftfree, в патче их урон соответствует прописанной боевой ценности и стоимости в золоте. Высокий магический урон компенсируется малой живучестью и дороговизной, а 10 — это механика ледяной молнии. Меньше нанести можно только написав скрипт из более чем нескольких строчек.


RE: ERA III - Panda - 02.05.2021 11:20

Согласен с Berserker-ом, не нужно ничего больше им патчить, Башня - это очень дорогой город, так что сейчас всё соответствует норме.


RE: ERA III - Panda - 04.05.2021 22:06

Berserker,
"Давно не нанимал драколичей, сегодня попробовал, и к своему удивлению обнаружил, что при срабатываении их блока больше не воспроизводится анимация обороны, а просто обычное получение удара. Раньше я 100% помню что они закрывались крыльями при блоке. Давно это так? может что-то в эре сломалось? отключение всех модов не помогло."

На версии 2.7.3 анимация блока есть, на 3.1.2-3.7.0 её уже нет, промежуточные версии между 2.7.3 -3.1.2 пока не проверял, нету сил больше. Хоть и Димон сказал потом глянет, но у него и без того вагонов с телегами хватает, а это всего-лишь небольшая мелочь. Rolleyes


RE: ERA III - V_Maiko - 04.05.2021 23:04

Berserker, How do I do with battlefield background to have HD images in png like MOP/ERA Plus tries to achieve?


RE: ERA III - Berserker - 04.05.2021 23:33

V_Maiko, currently pcx replacement support is not implemented. I'll try to implement it.

Panda, специально не менял. Возможно, случайно выкинул из hmm35wog.pac один из полезных файлов анимации блока.


RE: ERA III - Berserker - 05.05.2021 05:33

https://dropmefiles.com/lElkh
Пока что без поддержки интерфейсных цветов. pcx8/pcx16 => png

Сканируются все файлы в Data\Pcx\...папки любой вложенности или нулевой вложенности...\имя pcx файла.png

Пример:
Heroes 3\Mods\Mixed Neutrals\Data\Pcx\Test\zpic1005.png


RE: ERA III - DarkyAndSparky - 05.05.2021 10:31

Каждый раз заходя на форум, удивляюсь мощности изменений в движке и осовременнивании кода. Живёт маленькая надежда что когда нибудь выйдет действительно HD мод/ремастер с таким же чудесным графеном как и в оригинале, но с полноценным форматом изображений и лучшим качеством.


RE: ERA III - Suft - 05.05.2021 11:40

Berserker, Отлично сделаю боевые поля и мод на них повышенной битности, спасибо!!!
Сегодня выйдет крупное обновление с портретами и боевыми полями с препятствиями и стенами замков благодаря поддержке pcx8/pcx16 => png


RE: ERA III - Berserker - 05.05.2021 16:36

DarkyAndSparky, спасибо! Будем надеяться )
suftfree, я не проверил боевые поля, но тоже должны заменяться. Будем ждать )


RE: ERA III - Sandris - 05.05.2021 21:42

(05.05.2021 05:33)Berserker Wrote:  https://dropmefiles.com/lElkh
Пока что без поддержки интерфейсных цветов. pcx8/pcx16 => png

Сканируются все файлы в Data\Pcx\...папки любой вложенности или нулевой вложенности...\имя pcx файла.png

Пример:
Heroes 3\Mods\Mixed Neutrals\Data\Pcx\Test\zpic1005.png

Не хочет работать по примеру Heroes 3\Mods\Mixed Neutrals\Data\Pcx\Test\zpic1005.png

Если убираем из папки Test в Heroes 3\Mods\Mixed Neutrals\Data\Pcx\zpic1005.png - тогда срабатывает.


RE: ERA III - Berserker - 05.05.2021 23:54

Sandris, исправил:
https://dropmefiles.com/g4jnJ


RE: ERA III - Sandris - 06.05.2021 00:29

(05.05.2021 23:54)Berserker Wrote:  Sandris, исправил:
https://dropmefiles.com/g4jnJ
То же самое. Может не тот файл был залит?


RE: ERA III - Berserker - 06.05.2021 03:39

Файл тот. Скачал по ссылке, заменил. Всё из Data\Pcx\Test подхватилось
Проверь ещё раз, пожалуйста или пришли папку с модом.


RE: ERA III - Suft - 08.05.2021 21:35

Berserker, Извиняюсь с обновлением DLL портреты подхватились


RE: ERA III - Suft - 14.05.2021 17:45

Berserker, Можете уменьшить охрану санта гремлинов от 30% их количества?
Для 1 уровня имба - 95 драконов вражеского героя не смогли охрану 1000 санта-гремлинов пробить
По валю - они сильнее чем их валю - норм будет - очень мощные


RE: ERA III - Suft - 14.05.2021 18:03

А можно им заклинание - ледяную стрелу убрать (анимацию снаряда ледяную стрелу сделать) и фиксированный урон оставить
А валю им можно в текстовике убавить


RE: ERA III - Elmore - 14.05.2021 18:36

Perry в прошлом году делал скрипт для управления кол-вом охраны и уроном санта-гремлинов. Смотри здесь и настраивай под себя.


RE: ERA III - Berserker - 14.05.2021 18:53

suftfree, можно что угодно, но я эти заниматься не буду ). Это к скриптописцам и иже с ними.


RE: ERA III - Panda - 21.05.2021 10:06

Berserker, у меня есть небольшой вопрос: где искать настройки основных (постоянных) абилок ВОГ-существ (конкретно интересует Тёмный дракон)? Sorry


RE: ERA III - igrik - 21.05.2021 10:51

Panda, эти абилки зашиты в исполняемый файл игры (т.е. в h3era.exe)


RE: ERA III - Panda - 21.05.2021 11:06

igrik, спасибо! (было подозрение, что это так 148)

Berserker, тогда отсюда уже возникает вопрос: каким образом у тёмных драконов можно убрать абилку "Тьма" (наподобие Вуаля тьмы Некрополиса, только передвижная, как когда-то была у героя Нагаша в Эра 2)? Как сделать это ERM-ом я способа не нашёл (точнее не совсем понимаю, есть пример кода, но я не могу найти флаг этой абилки). Sorry В идеале бы конечно в самой h3era.exe это неплохо было бы убрать, но тут уж я бессилен 148

Code:
!#MA&v7183=1:X155/?i X155/?j;
!#VRj&v7183=1:&65536;     Check if has No Retaliation
!#VRi&v7183=1/j=65536:-65536;    remove No Retaliation
!#MA&v7183=1:X155/i;



RE: ERA III - XEPOMAHT - 21.05.2021 12:06

(21.05.2021 11:06)Panda Wrote:  Как сделать это ERM-ом я способа не нашёл (точнее не совсем понимаю, есть пример кода, но я не могу найти флаг этой абилки). Sorry В идеале бы конечно в самой h3era.exe это неплохо было бы убрать, но тут уж я бессилен 148

UN:C7685703/4/666; заменить id чернухи на несуществующего монстра.


RE: ERA III - Panda - 21.05.2021 14:42

XEPOMAHT, спасибо! 177 Если другого более безопасного способа нет, оставлю эту задачу более опытным, лишние краши в сборке не нужны 148


RE: ERA III - Berserker - 21.05.2021 16:20

Неприятная способность. Нужно будет опциональный отключающий bin-патч.


RE: ERA III - Elmore - 21.05.2021 16:45

Сделать изменение абилки на передвижную вуаль тьмы, как у города, только меньше раза в 2-3 было бы идеальным решением.
Ну или просто отключить / сделать не меняя размер вуали. В любом случае будет хорошо.

Если кто-то сделает, будет здорово119
Неприязнь к этой абилке появляется при каждой игре на xxl карте против большого кол-ва ИИ.

p.s. Эту абилку еще вполне кто-то может добавить новым существам/героям, но не добавляют из-за её "неприятной" реализации. И даже убрали у Нагаша.


RE: ERA III - Panda - 21.05.2021 17:27

Согласен, нужно полностью убрать это "Коптёрство" (кто часто играет в русскую версию за темницу, поймет) 148
Херомант уже подсказал решение на уровне ERM-a, но моего опыта не достаточно, чтобы грамотно сделать эту правку, а лишние краши в сборку вносить не хочу Dash1
Может кто поопытнее когда-нибудь сделает бинарник или хотя бы скрипт Sorry


RE: ERA III - igrik - 21.05.2021 18:53

(21.05.2021 17:27)Panda Wrote:  Согласен, нужно полностью убрать это "Коптёрство" (кто часто играет в русскую версию за темницу, поймет)
Херомант уже подсказал решение на уровне ERM-a, но моего опыта не достаточно, чтобы грамотно сделать эту правку, а лишние краши в сборку вносить не хочу
Может кто поопытнее когда-нибудь сделает бинарник или хотя бы скрипт
Panda, всё проще чем ты думаешь...




RE: ERA III - Panda - 21.05.2021 19:52

igrik, Большое спасибо! 177 Значит я всё сделал правильно, и с крашем я уже тоже разобрался! 132

PS: Так что скоро будет в обновление с кодовым названием "Антикопоть", ждите 148


RE: ERA III - SergOz - 21.05.2021 21:07

(21.05.2021 17:27)Panda Wrote:  Согласен, нужно полностью убрать это "Коптёрство"
Вуаль Тьмы это функционал. Если кому-то не нравиться этот функционал, он должен иметь возможность его отключить. Но, есть карты, например моя, где отключение Вуали в Некрополисах, у Драконов Тьмы и у Героев со специальностью Вуали, приведёт к потере смысла всей карты. И игрового и сюжетного.
Гениальная кампания "Варкрафт. Глава1: Падение Лордерона" на последней локации потеряет половину сложности, если убрать Вуали. (это SoD, но я привожу пример того, что Вуали используются и имеют право на существование).

Всё это к тому, что не нужно рубить с плеча: если и вносить подобные изменения, то они должны быть опциональны.


RE: ERA III - Panda - 21.05.2021 22:16

SergOz, Вуаль тьмы в Некрополисе никто не трогает. Вуаль тьмы у Нагаша уже давно удалена в ЭРА 3. Теперь и Вуаль тьмы у Драконов Тьмы я удалю посредством ERM. Если кто сделает патч - против не будем. Если Берс решит удалить эту способность на уровне ядра, я и многие другие будут только "за", но это уже не нам решать. Сборка - это конструктор, в ней все можно включить/отключить. А для специфических модов/карт/кампаний и была сделана чистая сборка, куда можно их подключить. Всем и вся не угодить. 103


RE: ERA III - Berserker - 22.05.2021 01:46

Quote:Вуаль тьмы у Нагаша уже давно удалена в ЭРА 3.
Это как раз одной строкой скрипта чинится. Любому герою можно дать эту специализацию. Убрано именно изменение оригинальной специализации.


RE: ERA III - SergOz - 22.05.2021 03:01

Berserker, это понятно - я так и сделал. Я просто хочу чтобы эту возможность не убирали.
Меня напрягло категоричное: нужно полностью убрать это "Коптёрство"


RE: ERA III - Berserker - 22.05.2021 03:05

SergOz, лучше всего «убирать бинарным опциональным патчем». Для сборки это резонно.


RE: ERA III - SergOz - 22.05.2021 03:21

Тогда как-то надо бы и перекрестить дракона... 88
Обидится конечно


RE: ERA III - Berserker - 22.05.2021 03:25

Православный Дракон. Тёмные века в массы!


RE: ERA III - Elmore - 22.05.2021 03:33

А изменить работу умения на уменьшенную версию статичного круга, вместо полного отключения, не вариант?


RE: ERA III - Berserker - 22.05.2021 04:12

Elmore, это уже вкусовщина, требующая скриптовой реализации. Собственно, на ЕРМ сделать тоже можно (кому охота этим заниматься).
Перехват шага героя, просмотр армии, затемнение клетки.


RE: ERA III - Panda - 22.05.2021 07:35

Ну, если кто сделает бинарный патч - добавим, а пока - только такая реализация.


RE: ERA III - Berserker - 22.05.2021 15:49

Panda, сделаю.


RE: ERA III - Panda - 22.05.2021 16:36

Berserker, 132


RE: ERA III - Berserker - 22.05.2021 17:40

Panda, так, ты не прибедняйся. У тебя не только свой антивирус есть, но и собственный UN:C => bin конвертер.
Доказательство


RE: ERA III - Panda - 22.05.2021 18:14

Berserker, 36
Уж не знаю, что не так, но теперь игра сломана полностью 148
Image: Error-bin.jpg


RE: ERA III - Berserker - 22.05.2021 18:20

Panda, исправляю )


RE: ERA III - Berserker - 22.05.2021 18:27

Panda, исправлено. Обнови страницу и сгенерируй снова, пожалуйста.


RE: ERA III - Panda - 22.05.2021 18:46

Berserker, да, теперь все хорошо, спасибо! 177

Думаю, теперь пойдут вопросы: а что это за "чёрные дыры" на карте 148
Image: Dark-bin.jpg


RE: ERA III - Berserker - 22.05.2021 18:50

А что это за "чёрные дыры" на карте? ))


RE: ERA III - Panda - 22.05.2021 18:51

Berserker, это место, где стоял герой, у которого в армии есть Драконы Тьмы. 96-copy


RE: ERA III - SergOz - 23.05.2021 02:52

Из Хелпа:
Если в окне героя навести курсор на отряд, в котором один юнит - отображается правильное имя.
Если на этом же отряде кликнуть ПКМ - открывается окошко с именем нескольких юнитов, с числовым обозначением одного юнита в ортяде. В бою оба имени корректны. Это длится ещё с WoG'а. Это возможно исправить?
Мелочь - а неприятно...



RE: ERA III - Berserker - 23.05.2021 03:01

Уверен, что не с Сода?


RE: ERA III - SergOz - 23.05.2021 03:11

Berserker, может и так: не обращал внимания.
В Соде карт не делал, а когда просто играешь, над такими мелочами не запариваешься.


RE: ERA III - Berserker - 23.05.2021 03:12

Просто диалог такой, выводятся существа во множественном числе. Это в предложения к game bug fixes писать можно.


RE: ERA III - Panda - 23.05.2021 03:14

Berserker, у меня так же возникла проблема с SN:H в моем скрипте, хотя раньше всё работало как надо. Ты говорил, что специализацию герою можно сменить одной строкой, возможно, что мой код уже устарел (или я чего изначально неправильно сделал), каким образом сейчас это можно сделать? Допустим я хочу Оррину специализацию "Меткости" поменять на "Защиту" Sorry


RE: ERA III - Berserker - 23.05.2021 03:22

SN:H меняет описание или название специализации, а не устанавливает её герою. Я правильно понял вопрос?


RE: ERA III - Panda - 23.05.2021 03:30

Berserker, да, специализацию поменял через HE:X, но вот описание специализации через SN:H почему-то уже не меняется.
PS: на чистой версии всё меняется, что же, буду искать "Поганца". Просто я думал, может есть другой способ сменить специализацию Tease


RE: ERA III - Berserker - 23.05.2021 03:51

Panda, приведи весь код, пожалуйста, проверю. И SN:H и HE:X


RE: ERA III - Panda - 23.05.2021 04:10

Berserker, отбой тревоги, на чистой Эра всё работает. Виновник найден и будет наказан 148


RE: ERA III - daemon_n - 24.05.2021 13:00

Bersrker, в hd mod обновился patcher_x86.dll ещё в январе.

Будешь менять в ERA?


RE: ERA III - Berserker - 24.05.2021 15:07

daemon_n, да, он заменяется в корневой папке автоматом?


RE: ERA III - Panda - 24.05.2021 15:11

Berserker, в том то и дело, что нет: при обновлении HD-мода, если patcher_x86.dll уже есть, то он не будет обновляться, а вот если его нет (допустим его удалили), то он создаётся при обновлении.
Учитывая, что у нас теперь еще проблемы со скачкой и обновлением HD-мода, если нужен новый patcher_x86.dll, могу скинуть.


RE: ERA III - Raistlin - 26.05.2021 18:12

Berserker, не могли бы Вы пожалуйста помочь мне кое с чем? У меня впервые в жизни случился конфликт с хуками Эры... Я занялся реализацией отдельного класса командира для магических героев Бастиона, но обнаружилось, что при замене графики командира в бою происходит вылет. Применяя аналогичный код к любому другому стеку на поле боя, я получаю именно то, что хочу, и ресурсы заменяются. Насколько я помню, в Эре как для командира-защитника так и для командира-нападающего используется один и тот же def, не может быть так, что это как-то конфликтует с моим кодом?


RE: ERA III - Berserker - 26.05.2021 19:05

Raistlin, приведи, пожалуйста, список адресов со своими хуками для командиров, без которых вылета нет. Пересечение с Эрой можно смотреть в файле Debug\Era\x86 patches.txt


RE: ERA III - Raistlin - 27.05.2021 00:36

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

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


RE: ERA III - Berserker - 27.05.2021 01:39

При вылете нужна папка Debug, если это вылет на ЕРМ коде.


RE: ERA III - Raistlin - 27.05.2021 16:46

Berserker, я знаю. Код у меня рабочий и на всех стеках кроме командирского я проблемы не имею...

В смысле, не имел... Sorry Прошу прощения, оказалось, что я не тот стек смотрел...


RE: ERA III - Berserker - 27.05.2021 17:01

Raistlin, бывает )


RE: ERA III - Panda - 28.05.2021 00:21

Berserker, хотел бы немного помощи:
- В Эра 3 была вырезана анимация Wog-объектов, затем были "созданы" отдельные паки (мод), однако, как оказалось, они могут вызывать в игре некие проблемы, пока что я сам не смог воспроизвести их и лично они меня не беспокоили, но жалоб уже было несколько, и после отключения мода с анимацией Wog-объектов, некоторые эти проблемы исчезали.
- Я просмотрел файлы в данных модах, так же при отключении данного мода, не все анимации объектов исчезают, те возможно в моде есть то, чего быть не должно, ну или возможно я чего не понял... в общем тесты я увы не смог продолжить из-за обстоятельств, не зависящих от меня. Возможно если кто в курсе, может прояснит ситуацию или взглянет на эти анимации.

* Понимаю, что это не совсем та тема, можно создать для неё отдельную, но тем не менее хотелось бы прояснить данную ситуацию. Sorry


RE: ERA III - Berserker - 28.05.2021 01:29

Здесь ничем не подскажу. Я только перепаковывал архивы. Там лишь геройские def/msg/msk файлы. По сути спрайты и маски. Нужны тестирования, исключения пофайловые из архивов при вылетах и т.д. Оставим на откуп энтузиастам.


RE: ERA III - Panda - 28.05.2021 18:47

Berserker, понял, спасибо. Sorry


RE: ERA III - Berserker - 28.05.2021 20:29

Panda, хотелось бы жалобы более детально в будущем. Там вылеты или тормоза. Возможно, конфликт мода animated trees и wog graphics fix, например.


RE: ERA III - Panda - 28.05.2021 20:42

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

PS: мода WoG Fix если мне не изменяет память, вроде не было в этих отчетах... 105


RE: ERA III - Grossmaster - 28.05.2021 20:44

(28.05.2021 20:29)Berserker Wrote:  Panda, хотелось бы жалобы более детально в будущем. Там вылеты или тормоза. Возможно, конфликт мода animated trees и wog graphics fix, например.


Не думаю, что Wog animated trees и WoG Fix будут конфликтовать до такой степени, что игра будет лететь.


RE: ERA III - V_Maiko - 28.05.2021 20:45

Berserker, WoG Fix is to a certain degree independent of itself and because of the mod's form of being, it rejects any other graphic mod, even to avoid that, I had to use several empty .pac of Wog Fix in my mod so that it would not fall into conflicts.


RE: ERA III - Panda - 28.05.2021 20:46

Grossmaster, да, я уже обновил свое предыдущее сообщение, совсем башка не соображает уже, но 100% точно не помню Unsure


RE: ERA III - Berserker - 28.05.2021 21:15

С ИИ больше похоже на случайность, а графические артефакты со скринами можно попробовать соотнести с def-ами и найти неидеальный анимированный деф.
Я думал если вылеты, то по причине разных msg/msg файлов для одного и того же объекта.


RE: ERA III - Panda - 28.05.2021 23:10

Berserker, ну вот нашел пример:
https://media.discordapp.net/attachments/665748568002527242/847445182521933824/unknown.png?width=1126&height=588
Список модов:
https://media.discordapp.net/attachments/665748568002527242/847448405626191892/unknown.png?width=374&height=588


RE: ERA III - Berserker - 28.05.2021 23:33

Такую ошибку мог вызвать ЕРМ код, порча данных, XXL мод. С вог-анимациями люди годами играли.


RE: ERA III - V_Maiko - 28.05.2021 23:43

Berserker, Could you release a mini ERA update or at least give me the updated Sublime Text application? It is annoying me that every time I open it asks me to update it, the worst of all is that it cannot be updated because it fails when trying Unsure


RE: ERA III - Panda - 28.05.2021 23:45

Berserker, ну, после отключения данного мода, проблема у чела исчезла. Лично я так же как и ты считаю, что мод вог-анимации не может вызывать такие глюки, но это уже не мне судить, Димон к примеру не согласен с нами Rolleyes.


RE: ERA III - igrik - 29.05.2021 00:13

Более чем сомневаюсь, что XXL мод мог вызвать такую проблему. Карта там генерируется стандартными средствами игры и только.
Хук XXL мода стоит в диалоге создания карты, и даже не лезет в код генерации карты, и тем более никак не лезет в код отрисовки уже созданной.


RE: ERA III - Valerymyself - 29.05.2021 01:10

I finally got Windows 10 as 7-8 were no longer available, and surprise ! Game doesn't run.
Heroes complete does run. HD/Heroes ok too. Era alone doesn't start, then HD/Era crashes.
I use Era 2.47F from Bersy's sig, where are the error reports, I can't find.
Also any idea how to deal with?

Era log

https://ufile.io/i8gw24j7


RE: ERA III - Berserker - 29.05.2021 02:20

Seems like Windows 10 is not compatible with old Era virtual file system implementation. I don't see the exact reason from the log. I've rewritten VFS on a much lower system level and added Windows 10 special support starting from Era 2.8.3. It was a long road. Try running in Windows 7 or XP compatibility mode for h3era HD.exe.


RE: ERA III - Valery - 29.05.2021 02:30

Tried both XP and 7, still crash

I will install 2.8.3 and see, thanks.

I found only 2.8.4, is ok?


RE: ERA III - Valery - 29.05.2021 02:43

I got the usual Delphi message, then failed to load angel.dll
And installation couldn't create mod list, so mod manager is empty


   Core: CheckVersion
    Result: 2.8.4
>> Core: ReportModList
>> Core: AssertHandler
    Assert violation in file "D:\Soft\Programming\Delphi\source\SRC\Era\GameExt.pas" on line 499.
    Error at address: $570B8F5.
    Message: "Failed to load angel.dll"


RE: ERA III - Berserker - 29.05.2021 02:49

Try running tools Tools\VfsTest\VfsTest.exe and paste results here please.

You can also try this assembly: https://drive.google.com/file/d/1fILhiGMiI_mB9PSCpd--_TRoQ3FaiLs6/view?usp=sharing


RE: ERA III - Valery - 29.05.2021 02:58

I ran the test (must click on "run", right?) but I see no debug file created in FS folder.

I am downloading the assembly


RE: ERA III - Berserker - 29.05.2021 03:05

Whn you run the tests, all items should be marked green on success.

Image: image.png


RE: ERA III - Valery - 29.05.2021 03:18

All tests in green Bad

But for now:

Image: 41Yj7sGEUaL._SX331_BO1,204,203,200_.jpg



RE: ERA III - Berserker - 29.05.2021 03:58

Yeah, igrik/daemon_n and Panda did a great job, creating/maintaining/testing up-to-date assemblies.


RE: ERA III - Panda - 29.05.2021 07:42

Valery, if you can't run the game on Windows 10, then execute the following instruction:

1. Enabling DirectPlay on Windows 10:

For the game to work correctly on Windows 8, 8.1, 10, you need to enable the DirectPlay programming interface.
To do this, open Control Panel> Uninstall Programs> Turn Windows Features On or Off> and in the new Windows Components window, find the Legacy Components or Legacy Components folder in the list.
Expanding it you will find DirectPlay. Check the DirectPlay checkbox and click OK to activate and begin installing the legacy library components.
After finishing the installation, Reboot your PC.

2. Disable Windows Defender:
Also, during installation, turn off Windows Defender, and after installation, add the folder with the installed game to the exceptions in the settings.

3. Disable UAC and run the installer and the game itself as administrator.


RE: ERA III - Valery - 29.05.2021 07:58

That's very difficult for me, as I have Win 10 only since yesterday and all I was so comfortable in win 7 is now gone. I can't find the control panel, I did a search and all links say I should see when I click on start "configuration panel" in the list. But there isn't.

I will look more on it tomorrow, thanks


RE: ERA III - Panda - 29.05.2021 08:07

Valery,

Open the "Run" utility - for this you can use the [Win] + [R] key combination on the desktop or enter the name of the program in the search bar.
In the "Open" field, enter the command "control" (without quotes) and press [Enter].

Also try to download, install and run the finished assembly, which gave a link to Berserker.


RE: ERA III - Elmore - 29.05.2021 12:49

Valery, Access the control panel:
1) Right-click on the start menu icon
2) Press the start menu -> gear button above the shutdown button

Search works very well in Windows 10. Use the one that is displayed specifically on the bottom panel of the desktop.


RE: ERA III - Valery - 29.05.2021 15:58

(29.05.2021 08:07)Panda Wrote:  Also try to download, install and run the finished assembly, which gave a link to Berserker.

That was the point of the "panda" pic, the assembly works perfectly.

I got to direct play and it was already activated (I remember when installing H3, it activated itself) so that wasn't the problem.

Now I look into windows defender but I see no way to deactivate it, it says it is configured by Kaspersky, and all options are not clickable




RE: ERA III - Berserker - 29.05.2021 16:25

Valery, Windows Defender is one of numerous built-in spyware by Microsoft. It's ok, that it cannot be deactivated fully. Win 10 is combined legal Trojan/Spyware with tons of telemetry and forced updates.

.


RE: ERA III - Elmore - 29.05.2021 16:47

(29.05.2021 15:58)Valery Wrote:  it says it is configured by Kaspersky

Antivirus software with active protection intercepts windows defender in Win10.
This means that windows defender does not need to be touched at all. It is NOT active. Only Kaspersky settings in your case.

Berserker, не пугай людейStop Не все понимают работу win10 и поверят в "легальные вирусы от MS" и т.п.
p.s. Берс, ты же обладаешь информацией 5-летней давности. Win10 обновляется абсолютно не так же, как все предыдущие windows. Через 2-5 крупных обновлений уже можно считать win11, win12 в соответствии со старыми win. И вся та чепуха, которая творилась вокруг ново-выпущенной винды уже давно не актуальна по большей части. А всякие заморочки, которые еще остались - любой может настроить/отключить/удалить, только вот это уже никому не нужно (ну кроме приверженцев теорий заговоров).


RE: ERA III - Berserker - 29.05.2021 18:21

Elmore, по самой актуальной информации телеметрию удаётся отключить, заблокировав 30+ адресов (пример) на внешнем маршрутизаторе в дополнение к сотням правкам в реестре. На что Microsoft легко отвечает, блокируя такие файлы как опасные. И все попытки сопротивления работают временно. И по не менее актуальной информации обновления таки неотключаемые и HDD всё так же тормозит. Приходится ставить SSD. Я что-то упустил?

Какие ещё теории заговоров, если колоссальный рост собираемых и отправляемых данных на большинстве ОС — реальность? Заговоры в одной стороне, современное развитие ИТ и обществ в другой. В одном только браузере (беру Firefox, с Chrome бесполезно) чтобы отключить телеметрию не достаточно излазить все GUI настройки и кучу about:config настроек. Там ещё встроенные виджеты а-ля самые популярные сайты, встроенный функционал и встроенные расширения. Буквально на днях читал о новом расширении для машинного перевода. Тоже с официальной телеметрией. И проверяется это по списку адресов, с которым браузер устанавливает соединения, даже если Вы не открывали ещё вкладок или открыли только конкретный сайт. То же самое с ОС. То же самое с Андроидом, Гугл-сервисами и почти каждым «бесплатным» приложениям. Да даже HD-мод стучится в интернет, не смотря на отключённую галку «проверять обновления».

Списки файлов, конфигурация железа, точки wifi, географическое расположение, внутренние адреса, посещаемые ресурсы, даже рукописный ввод и ввод с клавиатуры. Не хватает умных колонок, которые аудио снимают и отправляют на сервер с целью улучшения распознавания речи, но для этого нужно доп. станцию приобрести.


RE: ERA III - Elmore - 29.05.2021 19:51

(29.05.2021 18:21)Berserker Wrote:  Elmore, по самой актуальной информации телеметрию удаётся отключить, заблокировав 30+ адресов (пример) на внешнем маршрутизаторе в дополнение к сотням правкам в реестре. На что Microsoft легко отвечает, блокируя такие файлы как опасные. И все попытки сопротивления работают временно. И по не менее актуальной информации обновления таки неотключаемые и HDD всё так же тормозит. Приходится ставить SSD. Я что-то упустил?

УпустилAb
1) В том списке адресов просто перечень всех приложений винды, включая программы nvidia, игры, Facebook, Twitter... для блока.
И да, как минимум чтобы знать статистику активных пользователей практически каждая программа будет стучаться в инет. Нет логики в том, чтобы быть против этого.
Так же многие открыто просят согласие на сбор данных (помнится это из skype) и заявляют, что данные будут получены в обезличенном виде для анализа и передачи третьим лицам. Но в чем проблема, если данные обезличены? Это лишь дает возможность их обрабатывать и создавать куда более качественные продукты.
Тот же google не был бы настолько офигенным поисковиком, а их переводчик на столько качественным, если бы не собирались данные пользователей.
Конечно, кто-то собирает куда больше данных, чем нужно/можно, но это уже индивидуально у каждого отдельно взятого случая.
2) В конце прошлого года вышла крупная обнова, которая изменила работу индексации (по памяти пишу) и нагрузка на hdd заметно снизилась.
   В добавок у меня ноут был 10 лет и только пол года я пересел на ПК. Так там win10 через год после релиза поставил и больше на win7 не возвращался.
Переустанавливал все время каждые 1.5-2 года. И уже пару лет как все очень шустро работает. Не думаю, что это совпадение, но пока я пользовался "вырезалками" и LTS-версиями - работало хуже и тормозило. Как стал пользоваться чистой win10pro - ей достаточно обновить в первые пару часов все компоненты и потом работает на ура на любом старом железе.

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


RE: ERA III - Valery - 29.05.2021 19:51

Any of players here happen to have somewhere my MENTORING mod I wrote years ago?

That would be a miracle if I can get it back, I lost my password to google drive where all mods are stored, and I need to do some modifications to TEW4 using the mentor mod Sorry


RE: ERA III - Panda - 29.05.2021 20:21

Berserker, вставлю свои 5 копеек: 148
- К сожалению, Win 7 выживают специально, не делая под неё железо, драйвера и софт (по сути как ты и говорил, изменений в 10-ке там кот наплакал, и все эти изменения можно было вместить и выпустить в Win 7 SP-3). К сожалению мир пришел к тому, что у нас общество потребления, и вместо инженеров и программистов - теперь маркетологи, вместо тестеров - теперь обычные люди, как минимум большая часть которых на это не подписывалось и уж точно не согласна выступать "подопытным кроликом" Stop
- Ну по поводу телеметрии тут тоже полностью согласен, но увы, от этого уже никуда не деться. Мне к примеру, скрывать нечего, однако в некотором "секторе" - такое шпионство недопустимо. Moral
- Стоит понимать, что первая 10-ка это не та десятка, которая сейчас, это по сути уже новая ОС, по сути каждые 2 года они делают почти новую ОС (просто тупо не изменяют ей название). Unsure
- Но самое страшное в десятке - это её ненадежность: что случится после очередного обновления - не знает никто, но ничего хорошего, живешь как на пороховой бочке. Потребление ресурсов у нее тоже гораздо выше, чем у той же 7, к тому же для неё нужно новое железо. Moral
- Советую попробовать и изучить браузер Vivaldi, может понравится, или чего нового для себя откроешь. 148
- Вот с HDD полностью не согласен: HDD это уже давно музей и прошлый век, ни одна ОС в нынешних реалиях уже никогда не будет на нём нормально работать, хоть 7, хоть 10, я к примеру ставлю SSD с 2016 года, а с 2018 я полностью отказался от сборки и обслуживания ПК без SSD, тем самым сберегая себе нервы и время, ну а клиент пусть и мучается дальше, это его выбор, финансовую составляющую опустим, тк 80% обращавшихся клиентов далеко не "Бомжи", и вполне могли оплатить самый простой "банкет", тем более 60% из этих 80 жаловались на очень медленную работу ПК (даже я Бомж, и то имею 2 SSD на ПК). 103


RE: ERA III - Elmore - 29.05.2021 20:31

(29.05.2021 20:21)Panda Wrote:  - К сожалению, Win 7 выживают специально, не делая под неё железо, драйвера и софт

Поддержка дополнительной OS в средне-крупном проекте, это грубо говоря удвоение работы = удвоение человекочасов = удвоение затрат на разработку и поддержку. Это никому не нужно, из разработчиков.


RE: ERA III - Valery - 30.05.2021 00:35

Does Panda's assembly contain the Clone bug fixed by Igrik?


RE: ERA III - Berserker - 30.05.2021 00:43

It contains the latest game bug fixes.dll by RoseCavalier & igrik.


RE: ERA III - Berserker - 30.05.2021 01:00

Valery, you're lucky, I was able to download all you google drive mods )
https://dropmefiles.com/nHAYr

Where should I upload the full mods backup? Atlantis is not there, but I have earlier backup + modified script to run on Era 2.9+.


RE: ERA III - V_Maiko - 30.05.2021 01:55

This topic gives me the feeling that a 2.46f assembly is required, especially speaking for Salamandre.


RE: ERA III - Berserker - 30.05.2021 01:58

V_Maiko, and 1.9 assembly for fred.


RE: ERA III - Valery - 30.05.2021 02:04

Oh, thanks a lot.

Don't upload them for now, I will probably recover my passwords in 2-3 weeks


RE: ERA III - Valery - 30.05.2021 02:26

Is Panda's assembly based on Era III? I need to update Tew4 with scripts so I will start testing it with. Should I look for specific incompatibilities or is fine? So far my mods only worked on Era II but I see scripts at start seem to work fine.


RE: ERA III - V_Maiko - 30.05.2021 02:36

Valery, I have tested TEW 2, 3 and 4 in ERA 3 and the maps play correctly without scripting errors and something else, the only thing I have to comment on is that the gameplay has possibly been altered so it is required to play the entire maps to see if it's playable from start to finish as it should be. You yourself know how to play your own maps and if you know how the differences are playing with ERA 2.46 and ERA 3.x.x.


RE: ERA III - Panda - 30.05.2021 04:40

Valery,
- My build is based on the latest version of ERA 3.8.
- Contains all the latest plugins from Igrik, with the exception of the wog native dialogs.era plugin, after the release of the assembly it has already been updated several times, so that in Era, which I have in the assembly, there is already a slightly outdated plugin. As soon as possible - I will update.
- To search for incompatibilities and changes, you first need to familiarize yourself with the list of changes, starting with the first version of Era 3. They are there, maybe. many scripts had to be optimized for the new Era 3.
- Unfortunately, not all scripts work correctly: some need to be optimized for the new era (and some are even better to rewrite from scratch), but unfortunately there is no one to do all this now.


RE: ERA III - Valery - 30.05.2021 05:06

I am not really looking for changes in WoG scripts, as most of my maps are stand alone, no need wog. I will check later for TEW2/3 which need a setup.dat, we will see. I am looking for older syntax no longer working, so far negative y vars work, I was gladly surprised, ouf!.

I noticed we can't dissemble combos when equipped - need to place in backpack for that, was this intended?


RE: ERA III - Panda - 30.05.2021 05:14

Valery, I didn't quite understand the last question, do you mean prefab combo artifacts? I recently checked their work - everything is fine, but the weirdness of combo artifacts with a backpack is already more in the HD mod, or in the Era binary patch. I do not advise using the script 730, there may be crashes.


RE: ERA III - Berserker - 30.05.2021 05:31

Valery, old scripts should work. The syntax is 99.9% the same. Negative y-variables became global, but in compatibility mode (ErmLegacySupport=1 in heroes3.ini) they work exactly as they did in WoG 3.58: preserved between WoG 3.58 triggers except functions.

Quick f..t variables became fully local. It means each trigger have its own f..t and it's easy to write safe loops now:

":;" is not a must anymore. !!if/el/en and !!re/br/co may be terminated by single ";". But old syntax is supported too.

I tried TEW a bit and Atlantis after running through converter. Both worked. When you press F11 or when ERM error occurs, look at Debug\Era\erm tracking.erm. You'll find all executed ERM commands with files and line numbers their. Much easier to track issues if any.

Era definitely does not change how combo arts are dissembled: probably it's HD mod bug fix.


RE: ERA III - Valery - 30.05.2021 05:51

Yeah, I mean when a combo like admiral hat for example is equipped, right-clicking on it doesn't offer dissemble action. When in backpack it does.

HD maybe? I will look into setup


RE: ERA III - Berserker - 30.05.2021 05:58

Panda, Валера говорит, что сборные артефакты не разбираются, если надеты на героя, а не лежат в рюкзаке. Странно это.


RE: ERA III - Panda - 30.05.2021 06:12

Berserker, я проверил сборные комбо-артефакты после 2 жалоб, что они не работают, всё работает, но заметил эту странность. Проверял только бинарник. Думаю, что это как то связано с изменением/исправлением HD-мода, по логу:
5.2 RC14 -> 5.2 RC15 (11.12.2020)
[-] Баг с фейковым переполнением рюкзака и связанный краш.
[-] WoG/ERA: поправлен функционал сборки и разборки сборных артефактов прямо в рюкзаке.

У меня конечно есть версия RC14, но проверить пока что нет возможности, может когда-нибудь потом. 105


RE: ERA III - V_Maiko - 30.05.2021 06:51

Berserker, Panda, Talking about something similar, 'One slot combo artifact' plugin is enabled by default and is quite annoying, recomending to disable it natively.


RE: ERA III - Panda - 30.05.2021 10:32

V_Maiko,
I have already said many times that if something annoys or dislikes someone, no one forces anyone to use my assembly, and he can:
1. Use the assembly of Dimon.
2. Use a clean assembly (this is what it was created for).
3. Make your own assembly.

* And yes, I included this patch for a reason, there was a good reason for it.


RE: ERA III - Berserker - 30.05.2021 16:19

Серьёзно? Однослотовые сборные арты по умолчанию? Это ведь коренное изменение геймплея и баланса. У меня отключён был:
D:\Heroes 3 Play\Mods\WoG\EraPlugins\AfterWoG\one slot combo arts.bin.off


RE: ERA III - Panda - 30.05.2021 16:22

Berserker, да, всё верно, по умолчанию в Эра он отключен. Ab


RE: ERA III - Valery - 30.05.2021 16:23

I disabled it too, otherwise I may have a problem late game




RE: ERA III - Berserker - 30.05.2021 16:27

Ultimate combo artifact? ) You played it so far?


RE: ERA III - Valery - 30.05.2021 16:32

No, old screen, starting right now after writing new scripts.

Panda, is the combo plugin which prohibited combo dissemble, as soon as I put it off, I can now 147


RE: ERA III - Berserker - 30.05.2021 16:43

Panda, так у меня твоя сборка. Видимо, я застал тот момент, когда он был отключён по умолчанию в сборке. Голосую за отключение Yes
Серьёзно, сборка-разборка и многослотовость — нормальная часть игра. Опция экстремальна для массового включения.


RE: ERA III - Valery - 30.05.2021 17:04

Where we report HD bugs? Single unit split loses all experience in this version. I noticed it too when Glenn streamed the map.


RE: ERA III - Berserker - 30.05.2021 17:07

Here: http://wforum.heroes35.net/showthread.php?tid=5912


RE: ERA III - Valery - 30.05.2021 17:31

Thanks. I have scrolling mod enabled, plugin learn all skills enabled, yet I can't neither scroll nor see my hidden skills. Hero got basic Intelligence (it shows in spell points) but doesn't appear in skills. On level up, it should have proposed me 1 new skill and one upgrade, but it offered 2 new skills...




RE: ERA III - Berserker - 30.05.2021 18:14

Secondary Skills Scrolling mod was rewritten by Algor (version 2). It supports 10 Skills mod. Check if you have 10 Skills mod enabled. I never tested how game proposes skills after the first eight skills are learned.

The variants:
-) Disable 10 Skills mod, restart game process.
-) Or try my old Secondary Skills Scrolling v1 mod: https://dropmefiles.com/cQrMH


RE: ERA III - Panda - 30.05.2021 18:41

Valery, Berserker, только что проверил (да и периодически в тестах приходится пользоваться этим патчем), у меня все работает как надо, и прокрутка, и навыки свыше 8, и 10 вторичных, в общем у меня все хорошо. Думаю причина в каком-то скрипте или моде 105

Berserker, значит сборка очень старая, т.к. этот патч включен уже очень давно, и включал я его не спроста. Там целые дискуссии были и много недовольных, да и краши были тоже. И чтобы опять не тушить 5-ые точки игроков, я это дело трогать вообще не буду и оставлю всё как есть. Unsure


RE: ERA III - Berserker - 30.05.2021 20:16

Panda, вылеты явно с плагинами на увеличение количества артефактов, но ок.


RE: ERA III - Valery - 30.05.2021 21:46

(30.05.2021 18:14)Berserker Wrote:  The variants:
-) Disable 10 Skills mod, restart game process.
-) Or try my old Secondary Skills Scrolling v1 mod: https://dropmefiles.com/cQrMH

I didn't have 10 skills activated since I play with unlimited skills plugin. The only thing who helped was the old version of SSS (v1) , now I can scroll and continue playing, all other combinations and variants didn't make it..

Looks like the assembly has some serious problems to check before it goes operational. That was what, game stop at 5th day ..


RE: ERA III - Panda - 30.05.2021 22:09

Valery,
- As I said, I tested all the scenaries, I'm fine. In addition, if this problem had occurred, I would have discovered it long ago, testing related to this mod and patch I have to do very often. Whatever the problem is, it is not related to the assembly, perhaps there is a gap in some of the WoG/Era scripts, or in a third-party mod.
- I didn't quite understand about "stopping" the game on day 5...


RE: ERA III - Valery - 30.05.2021 22:12

With so many scripts and mods, there are thousands of things to look about, let me help. The combo thing for example

So far, and I see no reason that could be only on my side, secondary skills mod written by algor doesn't work with unlimited skills plugin activated, only one arrow shows graphically then the game reacts strange, as I said, it offered me two new skills but should have offered left - upgrade/right - new skills. Thats game break. When replaced by old version of SS, all fine.


RE: ERA III - Panda - 30.05.2021 22:30

Valery, whatever the problem is, it is on the side, after the fix, the players never complained that something was not working. And this arrow button in the original fashion is not at all, there is a small triangle at the bottom.


RE: ERA III - Berserker - 30.05.2021 22:33

Valery, yeah. Algor fixed some rare bug in SSS and provided support for 10-th skills plugin, but he never played with 28 skills enabled. Ahah, my version rules )

There is a clear assembly by Panda here: http://wforum.heroes35.net/showthread.php?tid=5995
with HD mod + Era only. Just pick up a few working mods you like like SSS v1.

With "clear" version we are responsible for finding and installing mods ourselves, because Panda & Co do not write scripts/mods at all. Maybe you'll combine the mods you need and upload them as Valery package.

Many players play with new artifacts, new creature mods, Advanced Classes Mod and Era Scripts mod. Afair, new combo artifacts use majaczek plugin, which may have issues with dissembling. Thus Panda receives crash reports and decides to enable the patch for one slot combo arts.

Baratorch reacts on bugs, but almost never answers and not on all.

Panda, Валера играет с патчем на 28 навыков.


RE: ERA III - Panda - 30.05.2021 22:52

Berserker, да, я понял, но как я уже говорил, я использую этот патч очень часто, а в Эра плюс он так вообще включен по умолчанию. Поэтому и говорю, что протестировал его вчера и проблем никаких не выявил, даже если бы они были, я бы давно знал об этом, тк очень часто использовал данный патч. Да и сами игроки не сообщали и проблемах с данным патчем. В чём бы ни была проблема, она либо в стороннем моде, либо в каком-то из скриптов вога/эры. 105


RE: ERA III - Berserker - 30.05.2021 23:13

Panda, там следующая проблема. Изучено 8 навыков, далее предлагается два новых при повышении. Оригинальная игра предлагает в левом слоте улучшение имеющегося навыка.
Можно запросить сейв, в принципе. Это твоя сборка + одна карта-мод.


RE: ERA III - Panda - 30.05.2021 23:18

Berserker, да, всё так и есть: лево предлагает улучшить имеющиеся навыки, право - изучить новый навык. Я все тестирую на рандомных картах. Значит данная карта-мод имеет какие-то проблемы или несовместимости. 103


RE: ERA III - Valery - 30.05.2021 23:24

(30.05.2021 22:33)Berserker Wrote:  Valery, yeah. Algor fixed some rare bug in SSS and provided support for 10-th skills plugin, but he never played with 28 skills enabled.

With all respect, that makes ZERO sense. 148

SSS is for 28 skills, why would someone use it with 10 skills mod, since they are already visible.


RE: ERA III - Panda - 30.05.2021 23:31

Berserker, эта карта-мод есть в сборке? Если нет, скиньте мне её, я возможно проверю, однако обещать ничего не буду.


RE: ERA III - Berserker - 31.05.2021 00:43

Valery, upload please TEW mod + savegame with SSS bug.


RE: ERA III - Valery - 31.05.2021 01:06

SAVED game

Next battle on derelict ship (can be done auto battle) offers 2 basic skills. No visibility of hidden skills at all.

Map : https://drive.google.com/file/d/1nd6wU2ECdygzMGoPuIr9r03uWVdnHYGt/view


RE: ERA III - Panda - 31.05.2021 02:08

- Ну что сказать, загрузил, проверил, получил очень странные результаты:
Навыки даются 50/50, иногда как положено, слева улучшить имеющийся, справа - новый, иногда и слева и справа - новые. Так же после n-ого получения навыков выскакивает окно с предложением изучить секретный навык.
- Моей вины тут нет, как я и говорил, это не проблема сборки, а подключенного мода.
- Как я уже не раз говорил, раз уж моды такие капризные, то авторы этих модов сами должны делать сборки под них, а в данном случае не поможет даже чистая сборка, тк и новый HD-мод не устраивает. Ну либо 2 вариант - оптимизировать и обновить свой мод.


RE: ERA III - Berserker - 31.05.2021 02:15

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


RE: ERA III - Valery - 31.05.2021 02:31

I wouldn't call mods which were 150% tested and worked 100% correct until Era 3 "capricious". The problem is Era 3 lack of testing/testers (which is normal as is still young) then the fact that Assembly is now a mod itself, with serious game changes enabled.
   
Now my question would be, what Panda's assembly has that can be played on Win10 that Era 2.46F doesn't have?


RE: ERA III - Berserker - 31.05.2021 03:25

Quote:Now my question would be, what Panda's assembly has that can be played on Win10 that Era 2.46F doesn't have?
Could you explain the question? Assembly is pack of mods by its name.

This assembly is without any third-party mods (no Yona, SSS, 10 Skils, graphics fix, extra plugins, etc):
http://wforum.heroes35.net/showthread.php?tid=5995


RE: ERA III - Valery - 31.05.2021 13:25

I mean, is there any hope that this assembly setup parameters could help you understand why 2.46F (or anything up to Era 3) doesn't start on win 10.


RE: ERA III - Berserker - 31.05.2021 15:45

Valery, I have one idea. It's not related to assemblies, but to Era VFS only. Win 10 functions are bridges to another functions. I intercept bridge, but not the functions themselves.
Unfortunately, I don't have Era sources prior to 2.6 in repository to fix those VFS issues, thus I just cannot recompile it. But even then I won't be able to maintain fixes for further updates.

Please, try at least clean ERA 3.8 assembly without external mods and with old SSS mod. If it works, then ok. If not, I'll see what can be done with old code but give no promises.
http://wforum.heroes35.net/showthread.php?tid=5995


RE: ERA III - daemon_n - 31.05.2021 16:02

Valery, check options "one slot combo arts" in ERA scripts page OR "one slot combo arts.bin" patch in wog menu
These both restrict disassemble them, BUT hd mod allows do that in backpack.

at your service, daemon_nAb


RE: ERA III - Valery - 01.06.2021 02:49

(31.05.2021 15:45)Berserker Wrote:  Please, try at least clean ERA 3.8 assembly without external mods and with old SSS mod. If it works, then ok. If not, I'll see what can be done with old code but give no promises.
http://wforum.heroes35.net/showthread.php?tid=5995

Downloading, thanks.


RE: ERA III - Valery - 01.06.2021 03:09

(30.05.2021 01:00)Berserker Wrote:  Valery, you're lucky, I was able to download all you google drive mods )

Do you happen to have in that folder My Quicksave mod? I would be grateful for ever if can get it for this game, I need multiple quicksaves each day and each week because I forgot how to play well


RE: ERA III - daemon_n - 01.06.2021 03:45

Valery, hd mod tweaks for making all the games daily saves with unique folder names
<Misc.RenameRandMap> = 1
<Misc.TournamentSaver> = 1
<UI.Ext.ScenarioMgr.Folders> = 1


RE: ERA III - Berserker - 01.06.2021 03:53

https://dropmefiles.com/LXgBX
[Gameplay] Daily quick save.exe


RE: ERA III - Valery - 01.06.2021 04:10

Thanks both Sm

Btw, I can't make Yona run on this package. I took it from Panda's assembly but now all attacks show 0-1


RE: ERA III - Berserker - 01.06.2021 04:53

Valery, yep, Yona is outdated and was never released for Era 3. I recompiled it for myself a few months ago, sec.
https://dropmefiles.com/qYqOU


RE: ERA III - Valery - 01.06.2021 05:27

Thanks for Yona.

Dailyquick savings doesn't work in Era3, doesn't like the old angel.dll



RE: ERA III - Berserker - 01.06.2021 06:01

https://dropmefiles.com/igSZm
Quick Savings mod for Era 3
Mods\Quick Savings\Lang\quick savings.json
here you can edit savegame templates
using Tools\Era_Editor_Sublime\sublime_text.exe

I can rewrite the mod in ERM 2, will be much clearer and simplier. What do you usually used? "S" + F5 + Autosave per day?


RE: ERA III - Valery - 01.06.2021 06:22

I needed multiple quicksaves for each day, which are not replaced by those next day, so F5 gave save (day of the game) then +1 for every save that day I think. I will look into template and try to redo

But also we didn't have at that time battle.save plugin so I had to create a quick-save before each battle


RE: ERA III - Berserker - 01.06.2021 06:25

Modified script from the mod, so @day@ in templates will be replaced by absolute day number from 1..to 365+
https://dropmefiles.com/Rm3tb


RE: ERA III - Valery - 01.06.2021 06:27

Oh thanks, you didn't let me work a little. You are just perfect


RE: ERA III - Valery - 01.06.2021 06:36

Looks like I have to work, F5 gives me same save then each day of the game isn't saved after end turn


RE: ERA III - Berserker - 01.06.2021 15:11

Mods\Quick Savings\Lang\quick savings.json
here you can edit savegame templates
using Tools\Era_Editor_Sublime\sublime_text.exe

Code:
{
  "eqs": {
    "this_day_savegame_name": "@day@_@player@",
    "end_turn_autosave_name": "@day@_@player@_End",
    "quicksave_name":         "@day@_@player@_Quick",
    "saved_msg":              "Saved!",
    "quicksaved_msg":         "Quicksaved!"
  }
}

Strange, will check it.


RE: ERA III - Valery - 01.06.2021 16:32

Maybe just point me to what was incompatible in my script, its a few lines I think.

If I remember well (I have no era2 version to check...) it let me add a map suffix in save description (tew...) so I could store saves by map/mod, then autosave had day of the game and F5 created a quick save [number] so could have unlimited quicksaves for each day. That way I could get back to any previous action if things went wrong.


RE: ERA III - Berserker - 01.06.2021 18:24

https://dropmefiles.com/PIcJT
Fixed script from your mod, I think. Replaced angel.dll call with

!!FU(SaveGame):Pz2;

The function is from Era Erm Framework. Many usefull functions there.


RE: ERA III - Sandris - 01.06.2021 19:21

Хотел узнать, можно ли этот крошечный мод/плагин на свободное изменение имен классов героев в зависимости от пола адаптировать под текущую версию Эры?

https://disk.yandex.ru/d/N36mr1HZPcWncg

Сейчас он, похоже, не работает.


RE: ERA III - Berserker - 01.06.2021 19:44

Нет, нужны исходные коды. Или со временем сделаем новый.


RE: ERA III - V_Maiko - 01.06.2021 20:04

(01.06.2021 19:21)Sandris Wrote:  Хотел узнать, можно ли этот крошечный мод/плагин на свободное изменение имен классов героев в зависимости от пола адаптировать под текущую версию Эры?

https://disk.yandex.ru/d/N36mr1HZPcWncg

Сейчас он, похоже, не работает.

Turquoise is one of the many interesting mods forgotten by feanor, as well as sapphire was to increase the class of heroes, I doubt that the source code of those is still preserved. Probably not even Majaczek inherited these sources.


RE: ERA III - igrik - 01.06.2021 20:12

Не знаю, последние или нет. Но вот исходники Феанора:
Code:
// dllmain.cpp: определяет точку входа для приложения DLL.
#include "turquoise.h"

Patcher * globalPatcher;
PatcherInstance *patcher;
/*GAMEDATA save;


void __stdcall InitData (PEvent e)
{
    memset((void*)(save.class_names), 256*32, 0);
}


void __stdcall StoreData (PEvent e)
{
    WriteSavegameSection(sizeof(save), (void*)&save, PINSTANCE_MAIN);
}


void __stdcall RestoreData (PEvent e)
{
    ReadSavegameSection(sizeof(save), (void*)&save, PINSTANCE_MAIN);
}


void __stdcall SetNameWrapper (PEvent e)
{
    SetHeroClassName(ErmX[1], (char*)ErmX[2]);
}

void __stdcall GetNameWrapper (PEvent e)
{
    GetHeroClassName(ErmX[1], (char*)ErmX[2]);
}
*/

_ptr_ GetClassNameDefault;

char* GetClassName(HERO* hero)
{
    char tmp[64];
    sprintf(tmp,"SN:W^hero_class_name_%i^/?z1;", hero->Number);
    ExecErmCmd(tmp);
    
    if(ErmZ[1][0]!=0)
    {
        return ErmZ[1];
    }
    return CALL_1(char*, __thiscall, GetClassNameDefault, hero);
}

void __stdcall InitNames(PEvent e)
{
    char tmp[1024];
    char tmp_erm[1024];
    for(int i=0; i!=256;i++)
    {
        sprintf(tmp,"Hero%i",i);
        ReadStrFromIni(tmp, "Classnames", "turquoise.ini", (char*)tmp);
        if (*tmp)
        {
            sprintf(tmp_erm,"SN:W^hero_class_name_%i^/^%s^;", i, tmp);
            ExecErmCmd(tmp_erm);
        }
    }
}


char* __stdcall GetClassName_hook(HiHook* h, HERO* hero)
{
    return GetClassName(hero);

    /*char tmp[64];
    sprintf(tmp,"SN:W^hero_class_name_%i^/?z1;", hero->Number);
    ExecErmCmd(tmp);

    if(ErmZ[1][0]!=0)
        return ErmZ[1];
    else
        return CALL_1(char*, __thiscall, h->GetDefaultFunc(), hero);*/
}

int __stdcall hook_4E1(LoHook* h, HookContext* c)
{
    c->ecx = (int)GetClassName((HERO*)(c->eax));
    return EXEC_DEFAULT;
}

int __stdcall hook_4DB(LoHook* h, HookContext* c)
{
    c->eax = (int)GetClassName((HERO*)(c->ecx));
    return EXEC_DEFAULT;
}

BOOL APIENTRY DllMain( HMODULE hModule,
                       DWORD  ul_reason_for_call,
                       LPVOID lpReserved
                     )
{
    if (ul_reason_for_call == DLL_PROCESS_ATTACH)
    {
        //инит Эры, инит патчера
        globalPatcher = GetPatcher();
        patcher =  globalPatcher->CreateInstance(PINSTANCE_MAIN);
        ConnectEra();

        
        RegisterHandler(InitNames, "OnBeforeErmInstructions");
        RegisterHandler(InitNames, "OnAfterCreateWindow");

        //Storing data
        /*RegisterHandler(InitData, "OnBeforeErmInstructions");
        RegisterHandler(StoreData, "OnSavegameWrite");
        RegisterHandler(RestoreData, "OnSavegameRead");

/*
        RegisterHandler(SetNameWrapper, "OnErmFunction4074666");
        RegisterHandler(GetNameWrapper, "OnErmFunction4074667");*/

        

        HiHook *h = patcher->WriteHiHook(0x4D91E0,SPLICE_,EXTENDED_,THISCALL_,(void*)GetClassName_hook);
        GetClassNameDefault = h->GetDefaultFunc();
        
        patcher->WriteLoHook(0x4E1DE6, (void*)hook_4E1);
        patcher->WriteLoHook(0x4DB980, (void*)hook_4DB);
        patcher->WriteLoHook(0x4DBDF7, (void*)hook_4DB);
    }
    return TRUE;
}



RE: ERA III - Valery - 01.06.2021 20:19

(01.06.2021 18:24)Berserker Wrote:  !!FU(SaveGame):Pz2;The function is from Era Erm Framework. Many usefull functions there.

Thanks, autosave works now, quicksave says "quicksave + number" in IF:L box but no additional quick saves are created, nor a simple quick save. It creates no save at all. I compared with the autosave section, which works, and was not able to find the error.

One question: where is stored map name, z2? Because I use the abbreviate in the script, as now the title is too long so can't see game day for reload.


RE: ERA III - Berserker - 01.06.2021 21:02

Val, that not true, Tried right now the script and quick saving occurs normally.
Right, z2 is file name and you form it in the script.

Image: image.png


RE: ERA III - Valery - 01.06.2021 21:21

I use the 3.8 clean package uploaded by Panda. I get no quick saves and when I reload the only quick save I see, it isn't recent. No idea then...
I see no instructions so no need to start game for script to work, just F12 after replacing

How to read the debug file?

I get erm errors on this script, yet the effects coded at the end (+20 movement) work well


I get also errors when I click on the entrance of a converted dwelling(ie was a portail and then converted to devils). Yet the dwelling is functional and is counted in towns growth.


RE: ERA III - daemon_n - 01.06.2021 21:37

Valery, !!IF&53:Q1/8/98/1:M extra ":M"
should be



RE: ERA III - Valery - 01.06.2021 21:41

In fact, it should be no M at all.

!!IF&53:Q1/8/98/1^text^; This is correct. Strange than I never got error before.

I solved the converted dwelling error too, it was a typo

!!IF:Q1/21/y9/4:^%Z1^; -> !!IF:Q1/21/y9/4^%Z1^;

In Era 2 it never gave warning 105


RE: ERA III - Berserker - 01.06.2021 21:51

Valery, not strange. Old ERM engine was lack of dozens of checks, so buggy code could be everywhere.
Example for old ERM: !!VRy1&v9876543=13:S5; no indexes were checked in conditions

> ERM context in commodus.erm:3877:71

When you see ERM error dialog, you see the exact script file : line number in file : line offset
Debug\Era\erm tracking.erm will contain all executed commands with file names, lines and offsets
erm memory.txt contains all ERM variables values

Quote:I see no instructions
It's your script, so yep, timer and options instructions. Maybe debug code. I started new game.


RE: ERA III - Valery - 01.06.2021 22:08

Ah, I kept reading the new version you send me before, with no timer and instruction. My bad


RE: ERA III - Valery - 02.06.2021 06:54

The clone ability changed in Era 3. The clones are supposed to appear on second round, which meant when your hero had tactics and the other not (or vs neutrals), you get clones as soon as tactics phase is completed. Now they appear 1 turn later.


RE: ERA III - Berserker - 02.06.2021 18:26

Clones and summonings should appear on the second non-tactics round. I fixed the bug. Original summoning description and comments in code meant: "on the second round", but due to complex/invalid round counting in the code clones used to appear sometimes on the first round. Do I understand you correctly?

Code:
[*] Fixed WoG bug with tactics detection on the very first round. Do not use BU:R in !?BR or !?FU(OnCombatRound) for zero round,
    because a few structures are not initialized at this moment and random crash may occur. First round code was moved after
    combat theme initialization and tactics popup message appearance.

[+] Added 4 new battle events as solution to !?BR and v997 mess with full backward compatibility:
    Event: 'OnBeforeBattlefieldVisible'.
    Occurs when battlefield and stacks are ready, but not visible. Right before !?BR&v997=-1.
    WoG applies spells to stacks in this phase and inits shoot/melee/attack-n-return settings.

    Event: 'OnAfterTacticsPhase'.
    Occurs right after tactics phase or after 'OnBeforeBattlefieldVisible' event if no tactics phase takes place.
    WoG summons Santa's guardians in this phase (because now stacks are in their final positions).

    Event: 'OnBattlefieldVisible'.
    Occurs when battlefield becomes visible. Game changes theme to combat and display tactics popup message (if case of active tactics skill)
    right before this phase.
    
    Event: 'OnCombatRound'. A drop-in replacement for !?BR aka 'OnBattleRound'. Occurs only for visible real rounds.
    v997 is round number. For tactics phase it starts from -1000000000. For normal phase, counting starts from 0.
    Each round v997 is increased by one, thus it can serve as always increasing unique round ID.
    Note: v997 value in other triggers may be different!

    Example:
    !?FU(OnCombatRound)&v997=0; on first non-tactics visible real round
    ; apply spells, play music, change creature attributes, etc.



RE: ERA III - Valery - 02.06.2021 20:18

It wasn't "sometimes", clones appeared on second round if no tactics on your side - tactics on both sides, then right after tactics phase if you had tactics and enemy didn't. Which lead me to a tons of battles setup in that direction, one map, Time of Prophecy being based on the clones wall tactics, without it will not work.

This is a difficult situation, as long as Era 2 was still playable, the solution was easy, keep the same configuration as the last 15 years or so. But now, with the lethal hit of Microsoft to Win 7, which, based on my experience, puts out of game Era2, I am forced to look for Era 3 compatibility. So far, so good, except this clones aspect which I heavily used, as it diversifies battles.

Is there a chance that a plugin restoring the clone WoG/Era2 behavior could be done then shipped only with my maps? Sorry to bother you, if you have in mind another solution, tell it to me.


RE: ERA III - XEPOMAHT - 02.06.2021 21:15

(28.04.2021 06:34)Berserker Wrote:  Реальный кадр def может отсутствовать, но сам файл def должен существовать.

Тестирование на портретах монстров показало, что там все кадры в деф-е обязательно должны быть, иначе игра показывает совершенно другой реальный кадр вместо того, что надо. Поэтому для ERA+ придётся добавлять TwCrPort.def с 1000 пустых спрайтов. 148


RE: ERA III - Berserker - 02.06.2021 23:17

XEPOMAHT, разве это не HD-мода фишка для предотвращения вылетов? Проверка наличия реального кадра в дефе? Проверь без HD-мода тоже.

Valery, this is exactly the case when bug becomes a feature )
Didn't tested, by try:




RE: ERA III - Valery - 02.06.2021 23:33

It didn't work, still on second round with hero having tactics 105


RE: ERA III - XEPOMAHT - 02.06.2021 23:56

(02.06.2021 23:17)Berserker Wrote:  разве это не HD-мода фишка для предотвращения вылетов? Проверка наличия реального кадра в дефе? Проверь без HD-мода тоже.

Без HD-мода тоже самое. Скорее всего это функционал самого спрайтового движка игры. При чём кадры "пляшут" именно у стартовых армиях. Почему-то именно им нужны все кадры из дефа, иначе они начинают "отсчёт" нужного кадра с 0 после последнего физического 105


RE: ERA III - Berserker - 03.06.2021 00:03

XEPOMAHT, возможно, это функционал элементов формы, всяких DlgDefItem. Элемент формы грузит def, проверяет номер кадра с максимальным числом кадров и меняет номер кадра. Вспомнил, там операция остатка от деления на число кадров в дефе. Так что да, придётся болванку сделать. Продублировать один прозрачный кадр, например.

Valery, either change ZVSE to ZVSE2 to enable ERM 2.0 features like constants (UNC_INT) is constant, not a function name or try:




RE: ERA III - Valery - 03.06.2021 00:14

Hmm, here is the issue:

First script you gave, I add ZVSE2 in header, right?
I load game, press F12, bunch of errors (unknown constant global

Second script

If I load save game before the battle I did before testing, then F12, no clone
If I load previous Battle save (igrik plugin) then F12, clone come first round ( so ok).
If I attack a creature bank with Kyrie (has tactics) after F12, battle ok
If I attack same creature bank with another hero (no tactics) after F12, crash every time

It worked only when I loaded Battle.gm1, 105


RE: ERA III - Berserker - 03.06.2021 00:25

Tested script v2 without issues on new game several times. Checked in debugger: the code is really changed/restored.

Try load single game, F12, save, restart game process.


RE: ERA III - Valery - 03.06.2021 00:26

Ok, I added more infos in previous post, tested more on why one hero crashed and not the other. Will do now.

Edit: saving the restarting the game did it, vodooo Ab

Thanks a lot


RE: ERA III - Berserker - 03.06.2021 00:27

This is alternative bin patch: https://dropmefiles.com/ZZByr
Misspelled in file name.


RE: ERA III - Valery - 03.06.2021 00:32

Hey, I don't agree it was buggy. It did exactly what it said, clones second round. When you have tactics and the other hero not, you get 1 extra round where you can move your units (limited range but still). For me it made sense.

So will change plugin name to some decent one 103


RE: ERA III - Valery - 03.06.2021 00:37

Plugin didn't work. Placed it in my mod global plugin, should it go in afterwog maybe?
Changing the plugin name has some negative effect?


RE: ERA III - Berserker - 03.06.2021 00:45

Argh, sorry, patch will not, it's executed before Era's patch.

Quote:Edit: saving the restarting the game did it, vodooo
Better use ERM code in this case.

Quote:Hey, I don't agree it was buggy. It did exactly what it said, clones second round. When you have tactics and the other hero not, you get 1 extra round where you can move your units (limited range but still). For me it made sense.
It's a technical bug, because for gamer round 1 and round 2 have definite meaning in all TBS battles. Duplicating round 0 is a bug of messy internal implementation, nobody should be aware of. Imagine game combo arts applying spells would depend on tactics phase. Like Armory of the Damned.

Quote:you get 1 extra round where yo
Nope, tactics rounds are limitless and have negative values. The bug was with duplicating round 0 in a dark phase before tactics phase due to a code mess, when even no battlefield was drawn.


RE: ERA III - Valery - 03.06.2021 00:50

Ok, keep that last script then. ThanksSm


RE: ERA III - Berserker - 03.06.2021 01:00

Welcome aboard 4


RE: ERA III - V_Maiko - 03.06.2021 01:07

Berserker, good job Lord! We recover one of our main heroes 174



RE: ERA III - Berserker - 03.06.2021 01:25

Valery never died. He was always in our hearts Wub



RE: ERA III - Valery - 03.06.2021 02:03

Well, I started working on in 2009 then non stop. 11 years later I need some rest, I just want playing. And here comes win 10.


RE: ERA III - Valery - 03.06.2021 15:37

After using Trainer mod, I get clipping graphics then all game is infected with parts of graphics appearing here and then. Restarting game doesn't help, I have to disable Trainer then F12 to get rid of. Any idea of what could cause such things?

I didn't even use its features, just opened the main dialog, then after closing all started. Conflict with native dialogs or something else?


RE: ERA III - igrik - 03.06.2021 15:58

Valery, and what does wog native dialogs (WND) have to do with it?
In addition, it is easy to check-disable WND and if the problem remains, then it is not in WND.


RE: ERA III - Valery - 03.06.2021 16:20

Clipping seems to occur only if game ran for hours, when I test freshly start + trainer use is ok. So some memory leak probably? I thought first to native dialogs because as far as I knew, it was the only graphical change then in Era 2 it gave me such memory leaks


RE: ERA III - Berserker - 03.06.2021 16:43

Valery, it seems like some function is executed, redrawing Adventure Map right in battle. Just after you see clipping first time, press F11 and upload Debug\Era\erm tracing.erm.


RE: ERA III - Valery - 03.06.2021 16:57

I will, thanks


RE: ERA III - Valery - 04.06.2021 19:05

(03.06.2021 16:43)Berserker Wrote:  Valery, it seems like some function is executed, redrawing Adventure Map right in battle. Just after you see clipping first time, press F11 and upload Debug\Era\erm tracing.erm.


HERE

Maybe has something to do with old Jim codes TL triggers, anyway all debug files are here, thanks


RE: ERA III - Berserker - 04.06.2021 22:56

Valery, try to open erm tracking.erm and read it from the end:


If you open Trainer.erm, you will see in !?TL1 trigger calls UN:R1 R2, causing visual adventure map redrawing.

!!UN:R1 R2; in Trainer.erm on line 193 at pos 3

So you go to line 193 (ctrl+g in Erm_Sublime_Editor) and fix the script or remove !?TL functionality at all.


RE: ERA III - Valery - 05.06.2021 00:31

The thing is, I don't remember why exactly TL was used, but I remember it was the only solution to redraw resources bar and else in time, and it was the only contribution of Jim to the mod. It posed no problem in the version of Era we used at that time, so I am not sure how to "fix" it. I will try to remove it, but then there will be other problems I guess. Thanks.


RE: ERA III - Berserker - 05.06.2021 00:37

I unpacked the latest version of Trainer from your site backup and found this:


Seems like you successfully commented this trigger quite a long ago. So just remove it.


RE: ERA III - Archer30 - 05.06.2021 00:40

Valery, there is an unofficial development of Trainer, adapted some details to be compatible with the latest ERA and suit my needs...I named it TrainerX, give it a try? 96-copy
TrainerX


RE: ERA III - Berserker - 05.06.2021 00:41

You also connected the following lines above:


The reason is ok, because Era does not disable real time triggers anymore. Anyway, Jim's solution was a crutch, to say the truth. Relying on real timers is really fragile. Because hundreds of events may occur between the first event and the next real time trigger call. Also patching the code on the fly enabling/disabling TL's is messy.

Here is Trainer mod, that I have: https://dropmefiles.com/xR3Vl

Archer30, I also have unofficial TrainerXXX, but it's too private 96-copy


RE: ERA III - Valery - 05.06.2021 00:45

archer, it crashed my game after about 15787 display errors. 36


RE: ERA III - Berserker - 05.06.2021 00:57

Valery, click on the nickname above user avatar to insert his nickname into editor.



RE: ERA III - Valery - 05.06.2021 01:07

I have no idea what you talk about... what editor, what user, what avatar, which nickname


RE: ERA III - Archer30 - 05.06.2021 01:46

Valery, the majority of the code is yours, I don't believe you're capable of producing this much error. Spiteful

The mod is for ERA 3.4+, requires Era Erm Framework mod to work, did you have these in your game?
Test it on a random map, please. Send me your savegame and debug folder (will be auto-created after each crash) if it doesn't work. I'm very happy to deal with it.

Berserker, that's too private. We discuss that only in Video Topic.


RE: ERA III - Berserker - 05.06.2021 02:11

Image: image.png

Image: image.png


RE: ERA III - Archer30 - 05.06.2021 04:21

Is it possible to leave some of the items of zsetup00 unmodified when modifying it with json?

I tried removing stuff from wog options.json.example after renaming it. No luck. Looks like I have to keep everything otherwise there is error in the text.



RE: ERA III - Berserker - 05.06.2021 13:25

As I see, it's possible if there is base json, which defines them all. So we need to get rid of zsetup usage in base mods in flavor of json first.
We even need zsetup00.txt to json converter for mods like WoG Revised.


RE: ERA III - Valery - 05.06.2021 22:26

Ah, in the forum. I was focused on mod errors so was like "what he talks about"

Good to know, thanks


RE: ERA III - ZVS - 06.06.2021 17:26

Привет, это ZVS.

Сыну 14. Поиграли в H3 по сети. Просит в WoG в MP поиграть. Знаю, что проблемы с этим и были и, думаю, есть. Почитал посты, есть мысли, которые в соответствующей теме напишу попозже.
Заодно поставил ERA попробовать. Последнюю версию почему-то не удалось скачать, у меня 3.0.4. Не думаю, что мои соображения, представленные ниже, как то решены в последней версии, хотя возможно.
Естественно попытался поиграть в WoG под ERA. В принципе нормально, но не все. Играл в сингл с WoG опциями, которые раньше (3.58f) использовал. Плюс опробовал (повключал в опциях) некоторые ERA скрипты. Понимаю, что направление развития ERA скорее ОТ WoG, чем К нему. Но обратной совместимости хотелось бы. Тем более что, мне кажется, ее не сложно добиться. Пока вот первые впечатления.

1. Русские Шрифты. Те, что сейчас просто содержат русские буковки. А там есть спец. символы – это меч и 4 «шапочки», которые используются на иконках стеков для показа их опыта. Я сам шрифты правил когда-то и правильные шрифты в русификации от Sir Four для 3.58f.

2. Настройки (опции) ВоГификации. Там сейчас явно меньше их стало. Пример. Поиграл несколько случайных карт – иногда стартовый герой сразу 5-го уровня, иногда 1-го. [Не уверен, но подозреваю, что при включении опции запрета фортов в городах на старте уровень героя будет 1, иначе - 5]. В ВоГ раньше был скрипт и соответственно опция его включения, как раз отвечающая за авто-прокачку стартовых героев до 5-го уровня. Сейчас этой настройки нет.

3. Скрипты ЭРЫ часто конфликтуют со скриптами ВоГ. В частности при использовании 10-ти вторичных навыков героев. Если надо, напишу детально что и как на мой взгляд конфликтует. И проблема в скриптах ЭРЫ (объясню почему, если надо).

4. Мне очень понравился скрипт «Геройских достижений». В нем все здорово. Есть нюанс небольшой – переключение типа подсказки в диалоге работает однократно, обратно не переключить, надо закрывать диалог и снова открывать.

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


RE: ERA III - igrik - 06.06.2021 17:48

Привет, ZVS.
Ты сборку качал из этой ветки тем? Или чистую ЭРУ от Берса накатывал на SOD?

1. В сборке русские шрифты зачем-то были заменены. Лично я использую ВОГовские: и лычки, и мечи и круглешок Знамя Полководца у меня отображаются правильно. Ссылка

2. Не должно было внастроек вогификации становиться меньше. Берсеркер убрал мод Wog Scripts из стандартного установщика ЭРЫ. Видимо поэтому у тебя нет настроек Вогификации, потому что отключен мод Wog Scripts. ВОзможно я ошибаюсь, но тут нужен твой скрин диалога WOG Опций.

3. Тут проблема в тюрьмах. В СОДе всегда был баг: если при генерации случайной карты тобой выбранный герой мог с определённым шансом попасть в тюрьму, а потом игра этого героя отдавала тебе, то да - твой герой может стать 5, 10, 20 уровней. При посещении этой тюрьмы - в ней не будет героя. Но есть патч файл (*.bin), патчащий секцию СОДа и тем самым отключающий генерацию тюрем на случайных картах.
Ты же этот баг немного путаешь со скриптом, который да - позволял стартовать всем героям на карте с 5-го уровня, и люди могли выбирать вторичные навыки на старте игры сами

4. Скрипты ЭРЫ - это мод, который делал один человек. И назван этот мод условно (ЭРА скриптс). К сожалению сейчас автор мода на форуме бывает карйне редко, и пока что не поддерживает его.

5. Гигантские карты, по хорошему, только недавно появились в игре. Жаль, что пока что нет авторских гигантских карт на ВОГ/ЭРА

Также дополню, что в настоящее время ЭРА позиционирует себя как платформа для модов, с возможностью лёгкой установки и отключения последних. ВОГ же (если ты ещё это помнишь Sm ) является полноценной монолитной игрой. В этом их кардинальные отличия.
Ты можешь обратить внимание: в корневом каталоге игры есть папка Mods. В ней каждая вложенная папка и есть отдельный мод. Активированные моды указаны в файле list.txt. Названия папок, которые в этом файле непрописаны - неактивны, и их ресурсы (графика, скрипты, плагины) не используются.


RE: ERA III - igrik - 06.06.2021 18:01

Дьякон, всегда были танцы с бубном при установке. Тут не описать все нюансы в одном сообщении.

Для этого и были созданы так называемые сборки, чтобы работоспособную ЭРУ поставить можно было в один клик
Чистые (без лишних модов) сборки тут
По ссылке есть и русские версии, и английские, установленные на GOG версию игры (но я не помню это СОД или Комплит)


RE: ERA III - Panda - 06.06.2021 18:01

(06.06.2021 17:48)igrik Wrote:  1. В сборке русские шрифты зачем-то были заменены. Лично я использую ВОГовские, и лычки и шапочки у меня отображаются правильно.

Да, я в курсе, Димон видимо исправлял это, я добавлю его шрифты в русификатор в след выпуске, правда не знаю когда это будет Sorry


RE: ERA III - Дьякон - 06.06.2021 18:05

igrik, Спасибо, уже понял ошибку свою, удалил сообщение, но ты ответил быстрее. )


RE: ERA III - Berserker - 06.06.2021 18:11

Слава, привет! ))) Как же я стал стар, что сыну твоему уже 14 ) 96-copy

Актуальная сборка: http://wforum.heroes35.net/showthread.php?tid=5817

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

1. Шрифты могли быть взяты из Хоты в сборках. Действительно, символы опыта придётся переносить.
2. Мод WoG Scripts — это правленные и адаптированные скрипты из 3.58. Вырезаны только те, что гарантированны приводили к порче памяти или вылетам, например проходимые объекты или раздваивание отрядов в бою. В разделе «Опции карты» так и осталась опция начала героев с 5-го уровня.

Множество модов от Валерия и ко: http://wforum.heroes35.net/showthread.php?tid=3824
Многие под Эру 2, не все перетестированы, но большинство должно работать из коробки.

Я крайне рекоменду попробовать последнюю сборку от Панды или daemon_n (вторую не проверял) + мод Advanced Classes Mod. До 5-и уровней навыков вместо 3, продвинутые классы, артефакты, улучшаемые боевые машины и много чего ещё. Скоро выйдет и версия 1.07, к которой я тоже чуток приложил руку.

http://wforum.heroes35.net/showthread.php?tid=5337


RE: ERA III - ZVS - 06.06.2021 19:12

Привет, igrik.

(06.06.2021 17:48)igrik Wrote:  Ты сборку качал из этой ветки тем? Или чистую ЭРУ от Берса накатывал на SOD?
Я качал отсюда:
http://wforum.heroes35.net/showthread.php?tid=5235
Правда первая ссылка "в новом Лаунчере для героев" не работает (у меня), поэтому качал по ссылке ниже - одну из "Старые версии доступны здесь". Соответственно ставил в пустую папку без пред. версий SoD или WoG.

Quote:1. В сборке русские шрифты зачем-то были заменены. Лично я использую ВОГовские: и лычки, и мечи и круглешок Знамя Полководца у меня отображаются правильно. Ссылка
Было бы не плохо проверить, что во всех сборках скрипты корректные. Я просто вытащил скрипты из руссификации WoG 3.58f и кинул в папку Data.

Quote:2. Не должно было внастроек вогификации становиться меньше. Берсеркер убрал мод Wog Scripts из стандартного установщика ЭРЫ. Видимо поэтому у тебя нет настроек Вогификации, потому что отключен мод Wog Scripts. ВОзможно я ошибаюсь, но тут нужен твой скрин диалога WOG Опций.
Почему это их не должно быть, если я в модах включил WoG?
Там нет каких-то отдельных настроек. Скрин в ответе Берсу вставлю.

Quote:3. Тут проблема в тюрьмах. В СОДе всегда был баг: если при генерации случайной карты тобой выбранный герой мог с определённым шансом попасть в тюрьму, а потом игра этого героя отдавала тебе, то да - твой герой может стать 5, 10, 20 уровней. При посещении этой тюрьмы - в ней не будет героя. Но есть патч файл (*.bin), патчащий секцию СОДа и тем самым отключающий генерацию тюрем на случайных картах.
Ты же этот баг немного путаешь со скриптом, который да - позволял стартовать всем героям на карте с 5-го уровня, и люди могли выбирать вторичные навыки на старте игры сами
Про тюрьмы не знаю, может быть. Баг я не путаю, я просто не вижу этого скрипта прокачки стартовых героев до 5-го уровня в опциях.

Quote:4. Скрипты ЭРЫ - это мод, который делал один человек. И назван этот мод условно (ЭРА скриптс). К сожалению сейчас автор мода на форуме бывает карйне редко, и пока что не поддерживает его.
Ну что ж поделать. Может у кого руки дойдут поправить.

Quote:5. Гигантские карты, по хорошему, только недавно появились в игре. Жаль, что пока что нет авторских гигантских карт на ВОГ/ЭРА
Но хорошо уже, что они работают в принципе без вылетов.

Quote:Также дополню, что в настоящее время ЭРА позиционирует себя как платформа для модов, с возможностью лёгкой установки и отключения последних. ВОГ же (если ты ещё это помнишь Sm ) является полноценной монолитной игрой. В этом их кардинальные отличия.
Ты можешь обратить внимание: в корневом каталоге игры есть папка Mods. В ней каждая вложенная папка и есть отдельный мод. Активированные моды указаны в файле list.txt. Названия папок, которые в этом файле непрописаны - неактивны, и их ресурсы (графика, скрипты, плагины) не используются.
Ну я как бы сам это понял. Не думаю, что стоит мне как нубу это объяснять - я вначале почитал тут бОльшую часть тем. 118
А пассаж про "если ты ещё это помнишь Sm " прям обидный. Bad ...[шютка]


RE: ERA III - igrik - 06.06.2021 19:18

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

2. Моды WoG и Wog Scripts в настоящее время - это разные моды.


RE: ERA III - ZVS - 06.06.2021 19:35

(06.06.2021 18:11)Berserker Wrote:  Слава, привет! ))) Как же я стал стар, что сыну твоему уже 14 ) 96-copy
Это я без комментариев оставлю, а том мы все тут в "грузть-пичаль" впадем. Ab
   
Quote:Актуальная сборка: http://wforum.heroes35.net/showthread.php?tid=5817
Посмотрю -> скачаю -> попробую -> напишу.
   
Quote:С сетевой игрой играть можно, но пока вылеты из-за системы опыта (зависящие от ГСЧ способности) и скриптов, что мультиплеер не поддерживают. Если с опытом без способностей монстров и безопасным набором скриптов, то играется.
Ну я как-то так и думал, исходя из прочитанного. Как ранее сказал, потом свои мысли напишу в какой-нибудь ветке, посвященной MP. Думаю, это будет главным образом для Сергея и тебя, т.к. "хард-кодед".

Quote:1. Шрифты могли быть взяты из Хоты в сборках. Действительно, символы опыта придётся переносить.
Ну я думаю проблема уже понятна и как-то ее решить надо.

Quote:2. Мод WoG Scripts — это правленные и адаптированные скрипты из 3.58. Вырезаны только те, что гарантированны приводили к порче памяти или вылетам, например проходимые объекты или раздваивание отрядов в бою. В разделе «Опции карты» так и осталась опция начала героев с 5-го уровня.
Ну я все это понимаю и не ждал 100% наследования. Я лишь обратил внимание на один скрипт.
Говоришь, он есть? Вот мой скрин... эээ, тут не вставить - место бережете? Ab Тогда потом выложу.

Quote:Множество модов от Валерия и ко: http://wforum.heroes35.net/showthread.php?tid=3824
Многие под Эру 2, не все перетестированы, но большинство должно работать из коробки.
   
Я крайне рекоменду попробовать последнюю сборку от Панды или daemon_n (вторую не проверял) + мод Advanced Classes Mod. До 5-и уровней навыков вместо 3, продвинутые классы, артефакты, улучшаемые боевые машины и много чего ещё. Скоро выйдет и версия 1.07, к которой я тоже чуток приложил руку.

http://wforum.heroes35.net/showthread.php?tid=5337
Я потом как-нибудь внимательнее посмотрю. Хотя как-то сейчас меня немного смущает множество версий и путей установки. И так понимаю, что версии ЭРЫ тоже не совсем совместимы.

Вот еще что хотел сказать. Не думаю, что мне стоит возвращаться в модостроение непосредственно, но по-маленьку, я могу поучаствовать в дискуссии. Может и какие-то старые вопросы по исходникам еще остались.
И, есть у меня одно желание. Я когда-то к Г4 утилиту делал. Думаю все тут про нее тоже хоть что-то слышали. Там у меня есть транслятор "скрипты редактора -> Си" и обратно (у меня там свой Си компилятор). И вот не стоит ли сделать транслятор "Си -> ERM" и обратно? Это как раз к тебе вопрос, т.к. ты развиваешь (пока еще) синтаксис ERM и будет у тебя и Сергея LUA (не знаю точное состояние дел). Надо ли еще выдумывать транслятор с Си, я вот не уверен.

(06.06.2021 19:18)igrik Wrote:  Я ж не хотел обидеть или зацепить. Я хотел сходу рассказать о главных отличиях, я ж не знал, что ты до этого уже много чего проштудировал.
Да я ж пошутил. Ab

Quote:2. Моды WoG и Wog Scripts в настоящее время - это разные моды.
Ну я вроде все настроил и поизучал. Пол часа разбирался в настройках ERA. Пытался воссоздать наиболее близкий к WoG вариант и, в принципе, нормально получилось.


RE: ERA III - Berserker - 06.06.2021 19:51

Картинки на https://imgbb.com грузи )

Quote:Хотя как-то сейчас меня немного смущает множество версий и путей установки.
Все моды ставится в корень игры. Чаще всего это самораспаковывающиеся архивы 7z/rar архивы. Порядок модов меняется через Tools\Mod Manager или Стартовое меню Эры — Менеджер модов.

Quote:И, есть у меня одно желание. Я когда-то к Г4 утилиту делал. Думаю все тут про нее тоже хоть что-то слышали. Там у меня есть транслятор "скрипты редактора -> Си" и обратно (у меня там свой Си компилятор). И вот не стоит ли сделать транслятор "Си -> ERM" и обратно? Это как раз к тебе вопрос, т.к. ты развиваешь (пока еще) синтаксис ERM и будет у тебя и Сергея LUA (не знаю точное состояние дел). Надо ли еще выдумывать транслятор с Си, я вот не уверен.
С ЕРМ я уже закончил работу. Базовая поддержка Lua давно есть, а вот библиотеку обёрток Lua - ERM хочу в ближайших планах писать + API для наиболее распространённых задач. Всё-таки у Lua в разы выше скорость и одни плюсы. Три диалекта сообщество не осилит. Те, кто могут писать на Си, могут и на Lua.


RE: ERA III - ZVS - 06.06.2021 20:27

Покажи, где тут опция поднятия опыта до 5-го уровня? Может я реально слепой?
https://ibb.co/QmJx9h0


RE: ERA III - igrik - 06.06.2021 20:29

Image: image.png


RE: ERA III - Berserker - 06.06.2021 20:30

Image: image.png

Rolleyes


RE: ERA III - ZVS - 06.06.2021 20:48

Ну значит и правда я слепой.
Хотя тогда второй вопрос. Если у меня он выключен, почему стартовые герои были 5-го уровня? Причем вопросов о повышении я не увидел. Что могло пойти не так?

P.S. Впрочем глупый вопрос. Сам посмотрю.


RE: ERA III - igrik - 06.06.2021 20:57

ZVS, я же ответил уже: тебе попался герой из тюрьмы. Это баг SOD'a
Чем больше карта размером, тем больше шансов, что попадётся герой не 1-го уровня.


RE: ERA III - ZVS - 06.06.2021 21:22

Это так работает, даже если я не случайного, а конкретного героя выбираю на старте?


RE: ERA III - igrik - 06.06.2021 21:26

Именно))
Ты можешь это проверить: открыть сгенерированную карту (в папке random_maps) в редакторе карт и просмотреть тюрьмы. В одной из них ты найдешь своего выбранного героя.
Вот заплатка/патч, которая вырезает тюрьмы со случайных карт ссылка


RE: ERA III - Berserker - 06.06.2021 21:29

ZVS, заплатку класть в "Mods\имя мода\EraPlugins\AfterWoG".


RE: ERA III - ZVS - 06.06.2021 21:35

Так может заплатка должна быть по умолчанию в сборках и ставиться в обязательном порядке? Есть какие-то причины ее не ставить?


RE: ERA III - igrik - 06.06.2021 21:38

А я предлагал Берсу...

ZVS, можно вопрос.

Почему все воговские нестандартные диалоги (диалог командира, опыт армий и т.п.) были сделаны не через стандартные СОДовские функции, а с помощью zvslib.dll? На тот момент не были раскопаны функции создания и отрисовки диалогов?


RE: ERA III - ZVS - 06.06.2021 21:56

Да. Я эти функции начал разбирать уже после выхода 3.58f.
Честно сказать жалею, что не раньше, но уж теперь ничего не поменять.
Поэтому и нужна была внешняя dll, которую написал Александр Трифонов.


RE: ERA III - Panda - 06.06.2021 22:04

Berserker, igrik, ZVS, заплатка уже давно есть в самой Эра. Что касается включения по умолчанию, то в своей сборке я её уже включал, но видимо при очередном обновлении Эры забыл включить. Что касается чистой сборки, то это уже не усмотрения Берса, в чистой версии я ничего не трогаю.

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


RE: ERA III - igrik - 06.06.2021 22:10

Panda, это самая первоначальная заплатка (оставляла в тюрьмах героев 1-го уровня)
У тебя в сборке, если не ошибаюсь - вырезает все тюрьмы.

(06.06.2021 21:56)ZVS Wrote:  Да. Я эти функции начал разбирать уже после выхода 3.58f.
Честно сказать жалею, что не раньше, но уж теперь ничего не поменять.
Поэтому и нужна была внешняя dll, которую написал Александр Трифонов.
Понятно. Но уже всё хорошо Ab


RE: ERA III - Panda - 06.06.2021 22:14

igrik, Спасибо за разъяснения! 177 Теперь все ясно: в Эра есть две заплатки:
1. Самая первоначальная заплатка, которая оставляет в тюрьмах героев 1-го уровня.
2. И вторая, которая вырезает все тюрьмы.


RE: ERA III - Berserker - 06.06.2021 22:18

Если я верно помню, с этой заплаткой генерируются иногда пустые тюрьмы, если герой тюрьмы совпал с героем одного из игроков. То есть решение было не идеальным.


RE: ERA III - igrik - 06.06.2021 22:20

Berserker, ты ошибаешься. Это без заплатки так происходит, когда герой передаётся герою и его телепортирует в начальный город. Поэтому тюрьма остаётся пустой, и при посещении в ней нет героя.

А заплатка полностью вырезает код генерации тюрьм, поэтому генератор не знает об объекте 62 (тюрьма) вообще ничего, и поэтому тупо не генерирует их.


RE: ERA III - Berserker - 06.06.2021 22:24

igrik, всё верно. Спасибо, что напомнил. В общем корректным бы был плагин, который исключает стартовых героев из генерации, а заплатки все несовершенны, потому не включал по умолчанию.


RE: ERA III - ZVS - 06.06.2021 22:35

Ну какую-то одну можно было бы и включить. Мне вот субъективно кажется, что на рандомной карте вообще тюрьмы не нужны. Это скорее элемент авторских карт.

И вопрос может не по теме, но все-таки. Есть ли какая-то сборка ERA с наиболее полной по-возможности функциональностью и работоспособная в мальтиплейере?


RE: ERA III - daemon_n - 06.06.2021 22:37

(06.06.2021 17:26)ZVS Wrote:  Привет, это ZVS.

Сыну 14. Поиграли в H3 по сети. Просит в WoG в MP поиграть. Знаю, что проблемы с этим и были и, думаю, есть. Почитал посты, есть мысли, которые в соответствующей теме напишу попозже.

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

Решение некоторых из них как раз хотел спросить у тебя118

(06.06.2021 22:35)ZVS Wrote:  И вопрос может не по теме, но все-таки. Есть ли какая-то сборка ERA с наиболее полной по-возможности функциональностью и работоспособная в мальтиплейере?

Что данная выше, что сборка от меня имеют примерно одинаковую работоспособность в мультике.
Из простого - отключить всё то, что может вызвать проблемы. Тему дал на ознакомление - там немного.
Также есть онлайн-лобби для удобства игры по сети. Если будут замечания по работе, постараюсь исправить поскорее. За мультиплеер пока отвечаю я.
Приятно познакомиться, кстати)


RE: ERA III - Berserker - 06.06.2021 23:12

ZVS, идея мульт-сборки интересная, таковой нет готовой.


RE: ERA III - SergOz - 07.06.2021 04:09

Berserker, а можно ли ввести функцию колдовства героем заклинания? Jedi3
Типа !?FU(HeroCastingSpell); где x1 - номер заклинания. Я не нашёл подобного 105


RE: ERA III - Berserker - 07.06.2021 16:01

SergOz, можно, давай назовём команду BH:C.


RE: ERA III - Algor - 07.06.2021 18:02

(06.06.2021 17:26)ZVS Wrote:  Привет, это ZVS.

Фигассе, насколько природа очистилась!
Легендарные герои попёрли Sm

(06.06.2021 17:26)ZVS Wrote:  4. Мне очень понравился скрипт «Геройских достижений». В нем все здорово. Есть нюанс небольшой – переключение типа подсказки в диалоге работает однократно, обратно не переключить, надо закрывать диалог и снова открывать.

Повторный клик на любой иконке достижения обратно переключает ранг/подсказку.
Во всяком случае, на 2.9.13 Эре так было и есть. На 3.х не подскажу, сборки под рукой нет. Возможно, я хранил статус в какой-нить быстрой переменной, которые в 3й ЭРЕ стали локальными.

UPD: угу, так и есть - g и h переменные. Надо переписывать под 3ю Эру...




RE: ERA III - ZVS - 07.06.2021 18:46

(06.06.2021 22:37)daemon_n Wrote:  Вот есть тема, касающаяся МР и известных возможных проблемах.
Сейчас напишу свои мысли.
Quote:За мультиплеер пока отвечаю я.
Вот мне кажется было бы не плохо, чтобы все, кто делает сборки ERA, делали бы одну настройку "multiplayer compatible". Выключить все, что ТОЧНО не совместимо с MP. Остальное игрок мог бы отключать сам. Т.е. не совместимые опции в принципе нельзя было бы включить. Остальные - можно.
Quote:Приятно познакомиться, кстати)
Аналогично. Ab

(07.06.2021 18:02)Algor Wrote:  Повторный клик на любой иконке достижения обратно переключает ранг/подсказку.
Во всяком случае, на 2.9.13 Эре так было и есть. На 3.х не подскажу, сборки под рукой нет. Возможно, я хранил статус в какой-нить быстрой переменной, которые в 3й ЭРЕ стали локальными.
UPD: угу, так и есть - g и h переменные. Надо переписывать под 3ю Эру...
Ну это не критично.


RE: ERA III - daemon_n - 07.06.2021 20:42

(07.06.2021 18:46)ZVS Wrote:  Вот мне кажется было бы не плохо, чтобы все, кто делает сборки ERA, делали бы одну настройку "multiplayer compatible". Выключить все, что ТОЧНО не совместимо с MP. Остальное игрок мог бы отключать сам. Т.е. не совместимые опции в принципе нельзя было бы включить. Остальные - можно.

В голове моей оно давно крутится в нескольких вариантах:
1 Подрезатьвсе скрипты/отключать из в момент инициализации количества людей- игроков на карте
2 создать мод, который выпиливает/замещает большинство вог-скриптов из меню вог-опций
3 добавить отдельную сборку для мультиплеера в лаунчер, который у меня в подписи

Проблема пока по времени и здоровье, тем не менее текущий ажиотаж меня чуть ли не на ноги ставитAb


RE: ERA III - Panda - 07.06.2021 20:50

Лучше сделать отдельную сборку, ну ок, скрипты можно выпилить/заместить, моды считать из файла, а что делать с плагинами, патчами, версиями Эры и HD-мода? У меня есть конечно кое-какая софтина, которая решит эту проблему махом, но игра на ведрах будет запускаться по 2-3 минуты... 148


RE: ERA III - daemon_n - 07.06.2021 20:59

Panda, вот не соглашусь. С таким количеством сборок теряется основной смысл ERA.

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


RE: ERA III - Panda - 07.06.2021 21:05

daemon_n, окей Капрал, ты у нас Капитан, веди нас сквозь шторм к победе! 148


RE: ERA III - daemon_n - 07.06.2021 21:27

Panda, это лишь моё мнение. Уверен, что здесь оно не будет популярным, тем не менее высказал свою позицию. Жду дискуссий и немного "срачей".

Истина рождается в споре Yes


RE: ERA III - Panda - 07.06.2021 21:31

daemon_n, ну, можешь раскрыть карты, тогда очень даже будет 96-copy
Ну, посмотрим, что остальные скажут, я поддержу твое любое решение Ab


RE: ERA III - ZVS - 07.06.2021 21:43

(07.06.2021 20:42)daemon_n Wrote:  2 создать мод, который выпиливает/замещает большинство вог-скриптов из меню вог-опций
Если мне память не изменяет, в текстовом файле с настройкой опций ВоГификации есть зависимость. Можно добавит первую опцию "Multiplayer" и сделать от нее зависимой все ненадежные опции - они автоматически все станут недоступными. Мод вроде и не нужен.

Quote:3 добавить отдельную сборку для мультиплеера в лаунчер, который у меня в подписи
Да, это было бы правильно, т.к. не знакомые с деталями пользователи смогут быстрее вникнуть в то, как быть с малтиплэйером.

Quote:Проблема пока по времени и здоровье, тем не менее текущий ажиотаж меня чуть ли не на ноги ставитAb
Этож хорошо. Ab


RE: ERA III - daemon_n - 07.06.2021 23:30

ZVS, если ты про файл .dat с набором опций, то я его никогда не открывал текстовиком. И всегда думал, что зависимости опций настраиваются в exe-файле.
Если я ошибаюсь и всё так, как ты говоришь, то это сильно должно упростить задачу, однако надо будет как-то обратить внимание игроков на данную опцию.

Очень важный здесь момент, что проблемы мультиплеера возникают только в том случае, когда используется более 1 игрового клиента. В том же хот-сите, хоть он и мультиплеер, проблем, о которых мы сейчас говорим, нет и в помине, хотя многие скрипты были написаны изначально так, словно хот-сит и tcp/ip разницы почти не имеют.
Самое интересное, что для всех подобных проверок есть erm команды в разделе !!UN, но их использования лично я так нигде и не обнаружил (зато сам эксплуатирую их за милую душу96-copy ).

Проще говоря, я больше склоняюсь к максимальной адаптации самих скриптов для всех типов мультиплеера, ведь для этого есть все необходимые инструментыYes Нужны только руки легиона.


RE: ERA III - Berserker - 08.06.2021 00:56

Ещё как в ехе. Всё это меню опций устарело, но до нового пока у нас с игриком руки не дошли:
Code:
// !!!!!!!!! Зависимость кнопок
void CheckDepend(int Flag)
{
  #include "templ.h"
// 3.58 Dependance
  if(PStates[0][2][2]==0) PStates[0][2][3]=2; else PStates[0][2][3]&=1;
//  if(PStates[0][3][2]==0) PStates[0][3][3]=2; else PStates[0][3][3]&=1;
  if(PStates[0][2][4]==0){
    PStates[0][2][5]=2;
    PStates[2][0][3]=2;
    PStates[2][0][4]=2;
    PStates[3][2][0]=2;
    PStates[3][2][1]=2;
    PStates[3][3][9]=2;
  }else{
    PStates[0][2][5]&=1;
    PStates[2][0][3]&=1;
    PStates[2][0][4]&=1;
    PStates[3][2][0]&=1;
    PStates[3][2][1]&=1;
    PStates[3][3][9]&=1;
  }
//  if(PStates[0][3][4]==0) PStates[0][3][5]=2; else PStates[0][3][5]&=1;
  if(PStates[0][2][10]==0){
    PStates[0][3][0]=3; // set as default
    PStates[0][3][1]=2;
    PStates[0][3][2]=2;
    PStates[0][3][3]=2;
    PStates[0][3][4]=2;
    PStates[0][3][5]=2;
    PStates[0][3][6]=2;
    PStates[0][3][7]=2;
  }else{
    PStates[0][3][0]&=1;
    PStates[0][3][1]&=1;
    PStates[0][3][2]&=1;
    PStates[0][3][3]&=1;
    PStates[0][3][4]&=1;
    PStates[0][3][5]&=1;
    PStates[0][3][6]&=1;
    PStates[0][3][7]&=1;
  }
  if(PStates[1][0][0]==0) PStates[1][0][1]=2; else PStates[1][0][1]&=1;
  if(PStates[1][1][0]==0){
    PStates[1][1][1]=2;
    PStates[1][1][2]=2;
    PStates[1][1][3]=2;
    PStates[1][1][4]=2;
  }else{
    PStates[1][1][1]&=1;
    PStates[1][1][2]&=1;



RE: ERA III - ZVS - 08.06.2021 01:41

Ну значит я забыл уже. Видимо не пришло в голову как в текстовике это настроить. Хотя странно.


RE: ERA III - daemon_n - 10.06.2021 12:02

Berserker, в последней версии ERA 3 Update лежит довольно старый 9999 era - consts.erm, который не подходит даже для 3.3.7


RE: ERA III - Panda - 10.06.2021 12:54

daemon_n, кхм, он уже в курсе, я думал это уже давно исправлено, можешь из моей сборки дернуть, или могу тебе отдельным архивом запаковать и скинуть, надо? Rolleyes


RE: ERA III - Panda - 10.06.2021 18:50

Berserker, вспоминая про не рабочий патч в Эре "inferno gates teleports to any town.bin", в ДС один из моддеров нашёл решение, возможно это поможет исправить и наш патч:

   -----------
    CASTLE GATE
    -----------

    The Inferno Castle Gate is problematic since it requires you to possess at least two
    Inferno towns in order to be of any use whatsoever. However, we can allow it to warp us
    to any other town we own (a one-way trip, mind, unless it's to another Inferno with a
    Castle Gate) with a short edit to HD_SOD.dll: go to 03AD36 and change 75 5D to EB 34.

    (Again, we are editing HD_SOD.dll here, NOT the regular executable!)

Rolleyes


RE: ERA III - V_Maiko - 10.06.2021 22:18

And then people judge me for having an edited HD_wog.dll for the sake of my mod.
Rolleyes


RE: ERA III - Panda - 10.06.2021 23:56

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


RE: ERA III - Valery - 11.06.2021 21:20

I have a problem in Era 3 with randomizer. There is a script removing objects then replacing them randomly. But now they are placed same way, no matter how many times we reload autosave to get a better result.
In Era 2 I got different results every time on reload, what can I do now to have same?


This is the concerned area :
Same in battles where you get resources reward:
!!VRy1:S0 T5;
gives me same value if I do same action. However it will suddenly change if some additional event, as hero level up occurs.


RE: ERA III - Berserker - 12.06.2021 00:32

Valery, as far as I remember, you should get random results each time, because I don't save PRNG state in a saved game. But I'll recheck it.
Could you try also the following Era 2.46 dll on Windows 10?
https://dropmefiles.com/gGanP


RE: ERA III - Berserker - 12.06.2021 00:50

Ok, looked throught the code and tested. Generator state is not saved. The result is random, unless you initialize random generator seed manually via VR:R#/newSeed. Use F11 to detect the issue.




RE: ERA III - Valery - 12.06.2021 00:51

I get a dos box saying 2.46, cannot open mod/list/txt

But no longer the crash message


RE: ERA III - helgtla - 12.06.2021 00:53

Valery,
    Это должно сработать:
!!VRy1:S1 T20; => !!VRy1:R1/1/20;
!!VRy1:S0 T5; => !!VRy1:R0/1/5;


RE: ERA III - Berserker - 12.06.2021 00:56

helgtla, должно работать и без VR:T.

Valery, seems like really bad installer, I was able to install only by manual unpacking. Looks if Mods\list.txt exists and not empty and try reinstalling first. If you fail, I'll upload the whole game directory

Full game directory with 2.46:
https://dropmefiles.com/YYi2F


RE: ERA III - Valery - 12.06.2021 01:03

Ok, I tried


!?CM0;
!!VRy1:S0T5;

And I get correct random results.

But in long scripts the randomizer doesn't work, I get same result again and again


I cannot figure whats wrong, replaced y1 by any v var, same

Downloading the package. However so far Era 3 works great, I only have two issues, the randomizer and the size of message boxes, in 800x600 rez they need scrolling in Era3, while in Era 2 it fit in the box.


RE: ERA III - Valery - 12.06.2021 01:16

Package doesn't work, same crash message, tried both dll 105


RE: ERA III - Berserker - 12.06.2021 01:19

Ok, then no more life for 2.46 and Windows 10. I restored the code and ported some VFS features, but seems like everything fails. So new Era VFS was written just in time.
Send me TEW mod and savegame please. I'll test this part too.


RE: ERA III - Valery - 12.06.2021 01:40

TEW4: https://dropmefiles.com/IdwlR
Save: https://dropmefiles.com/vLiKA

Spacebar, autobattle. You will get same artifact. The randomizer for artifact is at line 3838:


If you do battle manual, you will get another y91 value,but same for each manual battle too.


RE: ERA III - Berserker - 12.06.2021 02:07

Ok, if I make any action in battle manually, I get random artifact (any action + pressed Q), otherwise I get the same #2 artifact. Will try to debug tomorrow.


RE: ERA III - Valery - 12.06.2021 02:12

Thanks a lot. I tested both HD and no HD and same.


RE: ERA III - Panda - 12.06.2021 11:55

Кстати, давно уже хотел спросить, да всё забывал об этом:
Иногда при старте рандомной карты, игрок стартует с 2 городами, это баг какой, скрипт какой глючит, или просто такой шаблон сгенерировался? 105


RE: ERA III - daemon_n - 12.06.2021 19:53

Panda, такой шаблон


RE: ERA III - Valery - 12.06.2021 22:52

It's very strange. I tested further the randomizer

gives random values




RE: ERA III - Berserker - 12.06.2021 23:27

Valery, investigating.

Try:

gives random values



Found how to fix it, now searching for the reason.

https://dropmefiles.com/v2XPN


RE: ERA III - Berserker - 12.06.2021 23:38

Ok, the reason is that game calls Set Random Generator Seed/State with fixed value before battle and I rewrote VR:T command in such a way, that I also update Era generator state, making it deterministic. That's not ideal solution, so I removing this functionality, fixing VR:T. Thank you!


RE: ERA III - Valery - 12.06.2021 23:45

Thanks to you!

So what I do now, just replace the dll? Will it be available to all Era 3 releases or better I wait you to find further solutions?


RE: ERA III - Berserker - 12.06.2021 23:46

Welcome! It will be included in the next 3.8.1 release. And yes, just replace dll )


RE: ERA III - Valery - 12.06.2021 23:57

Works!


RE: ERA III - Berserker - 12.06.2021 23:59

That's great. Thanks again for reporting.


RE: ERA III - Archer30 - 13.06.2021 12:38

Hi Berserker, looks like we are missing constants for the type of hero and auto-completion for keys like (KEY_F1)?


RE: ERA III - Berserker - 13.06.2021 20:32

I'll try to add them soon.


RE: ERA III - Archer30 - 14.06.2021 15:30

Thanks! Another request - Is it possible to implement MM:M support for custom buttons?

Code:
!?FU(OnTownMouseClick)&i^mouse_action^=(MOUSE_RMB_PRESSED);
!!FU(tum_InfoOf8thCreaturesBtn):P;

!?FU(tum_InfoOf8thCreaturesBtn);
!!CM:I?(location:y);
!!SN:F^GetButtonID^/^8thCreatures^;
!!FU&(location)<>v1:E;
!!CM:R0;
!!SN:T^Third_Upgrade_Mod.8thCreatures^/?(eighthCreatures:z);
!!IF:M0/4/^%(eighthCreatures)^; works
!!MM:M(eighthCreatures); doesn't work
!!MM:M^%(eighthCreatures)^; doesn't work

I know it can be changed via .btn, but I'm seeking various hint options (depending on types of town)


RE: ERA III - daemon_n - 14.06.2021 15:35

Better not MM:M, but opportunity for changing description of the all custom buttons! (Hero/advmap/town/batlle etc)


RE: ERA III - Berserker - 14.06.2021 18:01

Archer30, probably possible, but not in TODO currently.


RE: ERA III - Archer30 - 14.06.2021 18:45

No problem 132


RE: ERA III - daemon_n - 14.06.2021 22:13

Как-то поднимался вопрос о возможности проигрывания .def-анимаций в диалогах.
Ныне мы имеем такую возможность в кастомных.

Тем не менее я вспомнил, что сама игра уже делает подобное, когда пересылаются данные на старте сетевой игры. В общем, будет ли полезна та функция, чтобы использовать её для анимации def в обычных такого же формата в любой нужный момент?


RE: ERA III - Berserker - 14.06.2021 22:35

Эм, нет. У каждого диалога есть функция, которая обрабатывает все события. Анимацию каждый диалог реализует сам, запоминая прошедшее время и вызывая функции смены кадров дефов.


RE: ERA III - daemon_n - 14.06.2021 22:52

Berserker, а если вызвать тот самый диалог, чтобы показать лишь анимацию, то сработает?


RE: ERA III - Berserker - 14.06.2021 22:58

Не знаю, что сработает и как должно сработать, но не запрещаю вызывать )


RE: ERA III - Panda - 17.06.2021 09:46

Berserker, вот список недочетов Эра 3.8.1 (хотя может на это была причина 105):

1. Старый плагин "game bug fixes extended.dll".
2. Старый плагин "wog native dialogs.era".
3. Старый HD-мод патчер "patcher_x86.dll".
4. Утилита для скриптов "Erm_Editor_Sublime" всё ещё продолжает просить обновления.
5. В дистрибутиве всё ещё есть "игра-укладчик" - патч "campaign heroes as start heroes.bin.


RE: ERA III - Berserker - 17.06.2021 12:48

Panda, понял, спасибо. Всё исправлю.


RE: ERA III - Archer30 - 17.06.2021 15:31

Berserker, I'd like to point out a few things that could be improved:

1. To completely disable the darkness ability of Darkness Dragon, it's required to add one more patch
Testing savegame + fixed bin
End the turn and compare the result of the two bins. The original bin leaves a 1x1 area of darkness at the beginning of each turn.


2. Update the constant name of Hell Baron
I understand this creature was called Antrichrist before (or just internal name?), but it would be better if we update to the current name, Hell Baron.

Corrected:


3. Update the address of getting the last creature id to be compatible with Amethyst
The function of getting the last creature id in stdlib.erm is incompatible with Amethyst (Majaczek's version). According to him, there is another address to be a replacement.

Script for testing:
Note 1: This new address is not compatible with the standard ERA. Do you think it's possible to make the function compatible with and without Amethyst (majaczek)? SN:L^amethyst2_4.dll^?(amethystEnabled:y); maybe?
Note 2: Either address is incompatible with Amethyst (Feanor) or TyphonZ, sigh


Btw, is it necessary to have the debug info of duplicate constant definition?
I mean, it sounds normal to be for constant like (MON_LAST_WOG) to be re-defined in another mod like TUM. Now I have to use MON_LAST_TUM instead. This is inconvenient as out of auto-completion. (Perhaps it makes sense still. TUM is not WoG and should not use MON_LAST_WOG for its last creature)


Another one. Weeks ago we talked about whether msvcr90.dll from VC++ Redistributable 2009 package fixes the compatibility of badluck.era + Win XP. The result is negative 102 Just tested on my virtual machine, same error.



RE: ERA III - Panda - 17.06.2021 18:42

Archer30,

1. Thanks a lot for the fix! Take away 132

3.
- Maybe there is no need for changes, due to which later the game will stop working for ordinary players, and also other modes on Typhon, for example, Era Plus and WoG Ultra? 36 Fie 116 Stop
- Does TUM use the constants declared by Berserker in Era ERM Famework? Seriously? First a patched HD mod, then constants, what's next? 36 Fie 116 Stop

4. I'm afraid we are approaching the time when Era and its components slowly cease to function normally on Win XP... probably there is nothing to be done about it... 102


RE: ERA III - XEPOMAHT - 17.06.2021 19:06

(17.06.2021 15:31)Archer30 Wrote:  3. Update the address of getting the last creature id to be compatible with Amethyst
The function of getting the last creature id in stdlib.erm is incompatible with Amethyst (Majaczek's version).

Выбирайте любой содовский адрес из патча на максимальный номер монстра и проверяйте его в ERM-скриптах, воговский адрес лучше не использовать, т.к. воговский код чаще всего и подменяется. Должно быть совместимо с подавляющим большинством плагинов на новых монстров:

Code:
    {0x4A1655+2,DS0(MONNUM),4},{0x4A189B+1,(long)MONNUM,4},  

    {0x47ADEC+1,(long)MONNUM,4},{0x47AE7C+1,(long)MONNUM,4},{0x47B04D+1,(long)M​ONNUM,4},
    {0x47B0E5+1,(long)MONNUM,4},{0x47B105+1,(long)MONNUM,4},{0x47B125+1,(long)M​ONNUM,4},

    {0x40AC91+1,(long)MONNUM,4},{0x40ACF1+2,(long)MONNUM,4},{0x40C2B0+1,(long)M​ONNUM,4},
    {0x416948+1,(long)MONNUM,4},{0x43F9B2+1,(long)MONNUM,4},{0x43FA88+1,(long)M​ONNUM,4},
    {0x43FDA8+1,(long)MONNUM,4},{0x43FE24+2,(long)MONNUM,4},
    {0x4401B5+1,(long)MONNUM,4},{0x4409D7+1,(long)MONNUM,4},{0x440A21+1,(long)M​ONNUM,4},
    {0x440A85+1,(long)MONNUM,4},{0x440C9A+1,(long)MONNUM,4},{0x440CD5+1,(long)M​ONNUM,4},
    {0x440D49+1,(long)MONNUM,4},{0x440D86+1,(long)MONNUM,4},{0x440F5B+1,(long)M​ONNUM,4},
    {0x4418D0+1,(long)MONNUM,4},{0x44192E+1,(long)MONNUM,4},{0x443265+1,(long)M​ONNUM,4},
    {0x44329A+1,(long)MONNUM,4},{0x443307+1,(long)MONNUM,4},{0x44333C+1,(long)M​ONNUM,4},
    {0x44372A+2,(long)MONNUM,4},{0x443796+2,(long)MONNUM,4},{0x446C86+1,(long)M​ONNUM,4},
    {0x446CF4+1,(long)MONNUM,4},{0x44730E+1,(long)MONNUM,4},{0x44BB13+2,(long)M​ONNUM,4},
    {0x44BC64+1,(long)MONNUM,4},{0x44C060+2,(long)MONNUM,4},{0x464670+1,(long)M​ONNUM,4},
    {0x46487A+1,(long)MONNUM,4},{0x464A91+1,(long)MONNUM,4},{0x465242+1,(long)M​ONNUM,4},
    {0x4652E4+1,(long)MONNUM,4},{0x478593+1,(long)MONNUM,4},{0x4785CB+1,(long)M​ONNUM,4},
    {0x4790D7+1,(long)MONNUM,4},{0x479142+1,(long)MONNUM,4},{0x47927F+1,(long)M​ONNUM,4},
    {0x47931B+1,(long)MONNUM,4},{0x4840B2+1,(long)MONNUM,4},
    {0x4863FC+2,(long)MONNUM,4},{0x491F65+1,(long)MONNUM,4},
    {0x491FB5+1,(long)MONNUM,4},{0x4920A9+2,(long)MONNUM,4},{0x4921A1+2,(long)M​ONNUM,4},
    {0x4921EC+2,(long)MONNUM,4},{0x4922B6+1,(long)MONNUM,4},{0x4922ED+1,(long)M​ONNUM,4},
    {0x49233E+1,(long)MONNUM,4},{0x492375+1,(long)MONNUM,4},{0x492521+1,(long)M​ONNUM,4},
    {0x4925BE+1,(long)MONNUM,4},{0x49262F+1,(long)MONNUM,4},{0x4926C9+1,(long)M​ONNUM,4},
    {0x49275D+1,(long)MONNUM,4},{0x4927E8+1,(long)MONNUM,4},{0x492959+1,(long)M​ONNUM,4},
    {0x492D0A+2,(long)MONNUM,4},{0x492DAD+1,(long)MONNUM,4},
    // 497903
    {0x49E705+2,(long)MONNUM,4},
    {0x49E728+2,(long)MONNUM,4},{0x49EE73+1,(long)MONNUM,4},{0x49EFC0+1,(long)M​ONNUM,4},
    {0x4A0435+2,(long)MONNUM,4},{0x4A04D7+2,(long)MONNUM,4},
    // 4A1655
    {0x4A17D9+1,(long)MONNUM,4},{0x4A1803+1,(long)MONNUM,4},{0x4A1828+1,(long)M​ONNUM,4},
    {0x4A184D+1,(long)MONNUM,4},
    // 4A189B
    {0x4A19FA+2,(long)MONNUM,4},
    {0x4A1A9F+2,(long)MONNUM,4},{0x4A42F1+1,(long)MONNUM,4},{0x4A6A7E+1,(long)M​ONNUM,4},
    {0x4A6C96+2,(long)MONNUM,4},{0x4A6F57+2,(long)MONNUM,4},{0x4A6FC6+1,(long)M​ONNUM,4},
    {0x4AB893+2,(long)MONNUM,4},{0x4ABC6C+1,(long)MONNUM,4},{0x4ABF68+1,(long)M​ONNUM,4},
    {0x4AE27F+1,(long)MONNUM,4},{0x4AE2CC+2,(long)MONNUM,4},{0x4CC86D+1,(long)M​ONNUM,4},
    {0x4CC8C9+1,(long)MONNUM,4},{0x4CC988+1,(long)MONNUM,4},{0x4DBA61+1,(long)M​ONNUM,4},
    {0x4DBA9D+2,(long)MONNUM,4},{0x4DBAE0+2,(long)MONNUM,4},{0x4DBB2D+1,(long)M​ONNUM,4},
    {0x4DBB74+1,(long)MONNUM,4},{0x4DBB96+2,(long)MONNUM,4},{0x4F1F88+1,(long)M​ONNUM,4},
    {0x4F2010+1,(long)MONNUM,4},{0x4F20D6+1,(long)MONNUM,4},{0x4F2138+1,(long)M​ONNUM,4},
    {0x4F479B+1,(long)MONNUM,4},{0x4F5BD0+2,(long)MONNUM,4},{0x4F5C4A+2,(long)M​ONNUM,4},
    {0x51402E+1,(long)MONNUM,4},{0x514078+1,(long)MONNUM,4},{0x5213E4+2,(long)M​ONNUM,4},
    {0x52141C+2,(long)MONNUM,4},{0x5217C7+1,(long)MONNUM,4},{0x521812+1,(long)M​ONNUM,4},
    {0x521835+2,(long)MONNUM,4},{0x52191C+1,(long)MONNUM,4},{0x52195C+1,(long)M​ONNUM,4},
    {0x5219BD+1,(long)MONNUM,4},{0x5219CD+2,(long)MONNUM,4},{0x5219F7+2,(long)M​ONNUM,4},
    {0x52FEF7+2,(long)MONNUM,4},{0x52FF5B+2,(long)MONNUM,4},{0x52FFB9+2,(long)M​ONNUM,4},
    {0x55036E+1,(long)MONNUM,4},{0x550825+1,(long)MONNUM,4},{0x55113E+1,(long)M​ONNUM,4},
    {0x551D8E+2,(long)MONNUM,4},{0x5632DA+2,(long)MONNUM,4},{0x565365+1,(long)M​ONNUM,4},
    {0x56637B+1,(long)MONNUM,4},{0x5664C8+1,(long)MONNUM,4},{0x56EBD3+1,(long)M​ONNUM,4},
    {0x56ECD4+1,(long)MONNUM,4},{0x56F115+1,(long)MONNUM,4},{0x5706A5+1,(long)M​ONNUM,4},
    {0x570A6E+1,(long)MONNUM,4},{0x570D4D+1,(long)MONNUM,4},{0x59F90A+2,(long)M​ONNUM,4},
    {0x5A21ED+1,(long)MONNUM,4},{0x5A22E6+1,(long)MONNUM,4},{0x5A2CC3+1,(long)M​ONNUM,4},
    {0x5A2DCD+2,(long)MONNUM,4},{0x5A2E27+2,(long)MONNUM,4},{0x5A753A+1,(long)M​ONNUM,4},
    {0x5A77C0+2,(long)MONNUM,4},{0x5A77FB+2,(long)MONNUM,4},{0x5A79B2+1,(long)M​ONNUM,4},
    {0x5A79ED+1,(long)MONNUM,4},{0x5A7D4B+2,(long)MONNUM,4},{0x5A7DBB+2,(long)M​ONNUM,4},
    {0x5A8A08+2,(long)MONNUM,4},{0x5A8A69+2,(long)MONNUM,4},{0x5A8B52+2,(long)M​ONNUM,4},
    {0x5A9378+1,(long)MONNUM,4},{0x5B0E09+2,(long)MONNUM,4},{0x5C08EA+2,(long)M​ONNUM,4},
    {0x5C605C+1,(long)MONNUM,4},{0x5C656A+1,(long)MONNUM,4},{0x5C789A+1,(long)M​ONNUM,4},
    {0x5C7946+1,(long)MONNUM,4},{0x5C79BC+1,(long)MONNUM,4},{0x5C7A1D+1,(long)M​ONNUM,4},
    {0x5C7AB0+1,(long)MONNUM,4},{0x5C7B25+2,(long)MONNUM,4},{0x5C7B48+1,(long)M​ONNUM,4},
    {0x5C7FD4+1,(long)MONNUM,4},{0x5C8046+1,(long)MONNUM,4},{0x5C84B0+1,(long)M​ONNUM,4},
    {0x5C9C3A+1,(long)MONNUM,4},
    {0x5D0C56+1,(long)MONNUM,4},{0x5D1059+2,(long)MONNUM,4},
    {0x5DD0A4+1,(long)MONNUM,4},{0x5DD976+1,(long)MONNUM,4},{0x5DDA4A+1,(long)M​ONNUM,4},
    {0x5EF08C+1,(long)MONNUM,4},{0x5F3939+1,(long)MONNUM,4},{0x5F40CC+1,(long)M​ONNUM,4},
/* это все элементы диалогов, а не монстры
    {0x5121EA+1,(long)MONNUM,4},{0x53A51F+1,(long)MONNUM,4},{0x53B1ED+1,(long)M​ONNUM,4},
    {0x5601C4+2,(long)MONNUM,4},{0x5758AC+1,(long)MONNUM,4},{0x575B6C+1,(long)M​ONNUM,4},
//  {0x5AC62E+1,(long)MONNUM,4}, // вызывает рисование книги закл. на голове
    {0x5C2565+1,(long)MONNUM,4},{0x5C3DFD+1,(long)MONNUM,4},
    {0x5CA9B3+1,(long)MONNUM,4},{0x5CAA24+1,(long)MONNUM,4},{0x5CAA94+1,(long)M​ONNUM,4},
    {0x5CABF9+1,(long)MONNUM,4},{0x5CAC6A+1,(long)MONNUM,4},{0x5CACDB+1,(long)M​ONNUM,4},
    {0x5CAE41+1,(long)MONNUM,4},{0x5CAEB2+1,(long)MONNUM,4},{0x5CAF23+1,(long)M​ONNUM,4},

(17.06.2021 15:31)Archer30 Wrote:  Another one. Weeks ago we talked about whether msvcr90.dll from VC++ Redistributable 2009 package fixes the compatibility of badluck.era + Win XP. The result is negative 102 Just tested on my virtual machine, same error.

Один весёлый умник пересобрал феаноровские исходники данного плагина под новые виндовозы. Естественно, для обладателей Windows XP рекомендуется всё-таки использовать оригинальную версию от 2014 года, работающую даже на Windows 2003.


RE: ERA III - Berserker - 18.06.2021 02:52

XEPOMAHT, так поделись старыми плагинами, все будут счастливы 120

Спасибо за адреса, взял содовский.


RE: ERA III - XEPOMAHT - 18.06.2021 11:18

(18.06.2021 02:52)Berserker Wrote:     так поделись старыми плагинами, все будут счастливы

Они в составе ERA+ есть.


RE: ERA III - Panda - 18.06.2021 11:28

Berserker, так этот плагин в составе любой сборки есть (кроме чистой) Ab


RE: ERA III - Berserker - 18.06.2021 13:32

Panda, в сборках плагин требует msvcrt90.dll, а у Хероманта без привязки должны быть.
В твоей сборке в моде GEM badluck.era именно с зависимостью от VC++ Redistributable 2009.


RE: ERA III - Panda - 18.06.2021 13:45

Berserker, проверял по контрольным суммам, тот что лежит в моей сборке и в Эра Плюс - совпадают. 105
Я не припомню версии VC++ Redistributable 2009, с 2008 была сразу 2010. Unsure


RE: ERA III - Berserker - 18.06.2021 14:16

Значит 2010.


RE: ERA III - XEPOMAHT - 18.06.2021 14:51

(18.06.2021 13:32)Berserker Wrote:  в сборках плагин требует msvcrt90.dll, а у Хероманта без привязки должны быть.

Большинство плагинов Феанора требуют библиотеки С++ 2010. Такова уж прихоть Феанора. С исходниками можно пересобрать без лишних приблуд, но надо просить людей, обладающих майкрософтским платным компилятором, например Игрика.


RE: ERA III - Archer30 - 18.06.2021 17:30

Berserker, great update, but I've got questions:

1. Are animated objects suppose to be in part of ERA now?
2. Looks like the new address of counting max creature ID is not compatible with any plugin with extended creature support, including Amethyst (Feanor and Majaczek), TyphonZ. Same result as the last one 102


RE: ERA III - Berserker - 18.06.2021 17:43

Archer30, I reuploaded package. But even old 1024 value was valid. It's the size of monsters table.

1) Could you write more details?

2)
Compare your function with the following:




RE: ERA III - Archer30 - 18.06.2021 18:07

Hi,

I saw you put wog - animated objects.pac, wog - animated trees.pac and wog - battle decorations.pac in Mods\WoG, wondering if they are left unexpectedly.

The function is the same, but the results returned were wrong.Try TyphonZ or TUM and you will see

For TUM it's only !!UN:C5509220/(UNC_INT)/?(result:y); available for now


RE: ERA III - Berserker - 18.06.2021 20:11

Checked TyphonZ. Everything is right. And the previous address was right too. Typhon increases size of monsters table to 1000. The index of last creature is 999. Yes, they have dummy parameters and pikeman graphics, but it does not matter.

When some mod introduces fixed logical number of monsters (number of monsters with unique graphics and parameters), mod maker should override function result.


RE: ERA III - Archer30 - 18.06.2021 20:17

I see, that says those dummies in Typhon have to be removed in order to use the function correctly?

Perhaps in TUM, we add:
-1000 TUM.erm

Alternatively, just use constants like MON_LAST_TUM 102 That's the matter of the mod maker's preference anyway


RE: ERA III - daemon_n - 18.06.2021 20:23

Archer30, and where declare its?


RE: ERA III - Berserker - 18.06.2021 20:30

Archer30, nope, constant will be a wrong way, binded to exactly one mod. Function is universal way.

999 TUM.erm:


some universal script from other mod.erm



RE: ERA III - Raistlin - 19.06.2021 01:08

Berserker, я заметил странность: у меня в экране города есть анимированное здание с кадрами в формате png и полупрозрачностью. Когда анимация возвращается на первый кадр, места с полупрозрачностью становятся более светлыми, однако уже на следующем кадре это не так. То есть, происходит короткое подмигивание. Можно с этим что-то сделать?

P.S. Пример есть в опубликованном мной видео с экраном Бастиона - это труба рядом с Водяным колесом.


RE: ERA III - Berserker - 19.06.2021 01:32

Нужно проверять кадры png.


RE: ERA III - Raistlin - 19.06.2021 01:51

Berserker, тысячу раз перепроверил, пробовал даже удалять кадры... В конце концов для контроля взял один из середины и раскопировал его - "подмигивание" осталось. Прислать Вам материалы?


RE: ERA III - XEPOMAHT - 19.06.2021 02:21

(19.06.2021 01:51)Raistlin Wrote:  В конце концов для контроля взял один из середины и раскопировал его - "подмигивание" осталось. Прислать Вам материалы?

Попробуй без HD-мода. В новой версии прорисовка медленно работает, на моём старье тоже проскакивают то белые, то чёрные квадраты за секунду перед рендером курсоров и некоторых элементов диалогов. Старая версия HD-мода кажись и работала быстрее (в новой открытие экрана города уже визуально чувствительно, особенно когда все портреты монстров грузятся из png - полсекунды приходится наблюдать непрогруженный гарнизон города 148 ).


RE: ERA III - Berserker - 19.06.2021 03:20

Raistlin, да, пожалуйста.


RE: ERA III - Panda - 19.06.2021 08:04

Berserker,
1. Так в Эре же есть эти самые библиотеки С++, включая 2010... 105 Если в плагине есть привязка с С++ 2010, то он и не будет работать и на новых виндовсах, если нет этой библиотеки, а если там привязка идет ещё и именно к конкретной версии С++ 2010, то это вообще труба (повидал довольно не мало такого софта и даже драйверов). Сейчас уже практически каждая швабра требует наличия в системе двух компонентов: Microsoft NET Framework и Microsoft Visual C++ Redistributable, я вообще не представляю ОС без них. Другое дело, если требуется какая-то конкретная версия С++... Однако в плагинах такую привязку действительно лучше не делать, если это конечно возможно. Для Win XP последняя рабочая версия С++ вроде как 2013. Unsure

2. В дистрибутив Эры теперь официально входит Анимация WoG-объектов? Rolleyes


RE: ERA III - Berserker - 19.06.2021 13:56

Panda, плагины можно скомпилировать без привязки к msvcrtXX.dll библиотекам, оставив только универсальную msvcr.dll. Игрик так и делает.

2. Я долго не понимал вопроса. Аргх, исправлю Dash1


RE: ERA III - Panda - 19.06.2021 14:16

Berserker,
Вот именно! Игрика на всех их не хватает, чтобы каждому велосипед/ндель раздать 148

2. Ну, я думал может решил вернуть эти объекты, поэтому и спросил Ab


RE: ERA III - Panda - 20.06.2021 19:13

Berserker,
Нашёл еще один стабильный краш (без HD-мода и плагинов Игрика проверял, краш сохраняется): он возникает при включенном русификаторе при просмотре "Авторы", в самом конце просмотра, когда строчки уже заканчиваются. Без русификатора в это время примерно внизу в центре на экране появляется зеленая надпись "wog/", но краша при этом уже нет.
Вот дебаг:
https://disk.yandex.ru/d/aoiiWlPnajVy4g

А так, неплохо бы было сделать нам вот что-то типа такого, ведь со времен Вога уже много воды утекло:
Image: image.jpg

Сразу потушу пятаки недовольных: 96-copy
1. Авторские права игры соблюдены (они идут до этой надписи).
2. Я нисколько не преуменьшаю заслуг команды Вога (все они в полном составе идут после этой надписи).


RE: ERA III - XEPOMAHT - 20.06.2021 19:24

(20.06.2021 19:13)Panda Wrote:  возникает при включенном русификаторе при просмотре "Авторы", в самом конце просмотра, когда строчки уже заканчиваются. Без русификатора в это время примерно внизу в центре на экране появляется зеленая надпись "wog/", но краша при этом уже нет.

Там из-за изменённого русификатором видео "вращающегося креста" падает. В MoP такой же баг, т.к. bink так же заменён. Нет ошибок только если использовать оригинальное содовское меню и оригинальный содовский bink в нём. Т.к. анимация текста "авторов" воспроизводится параллельно с bink и потом хардкорно выгружается. Было починено только в HoA путём... полного удаления видео из главного меню.


RE: ERA III - Elmore - 20.06.2021 19:25

Сомневаюсь, что хоть 1 человек в год открывает этот список и не закрывает после первой строчки.


RE: ERA III - Berserker - 21.06.2021 05:13

Да, баг старый.


RE: ERA III - Panda - 21.06.2021 07:06

XEPOMAHT, Berserker,принято, спасибо! Unsure

Berserker, Где можно взять иконку от дистрибутива Эры? Rolleyes


RE: ERA III - XEPOMAHT - 21.06.2021 11:00

(21.06.2021 07:06)Panda Wrote:  Где можно взять иконку от дистрибутива Эры? Rolleyes

ResHacker-ом вытащи. Там 2 иконки на 16х16 и 32х32.


RE: ERA III - Panda - 21.06.2021 13:39

XEPOMAHT, да вроде вытащил 96-copy148RolleyesDance3 просто я думал может у Берса нормальный исходник есть Ab


RE: ERA III - Berserker - 21.06.2021 14:10

У Elmore был, если не ошибаюсь, обработанный гигапикселем.


RE: ERA III - Elmore - 21.06.2021 14:32

Речь о глазе, как иконка сервера дискорд?
p.s. https://mods.hmm35.ru помечен url blacklist в avast, так что я оригинал уже давно не скачиваю105


RE: ERA III - Elmore - 21.06.2021 14:45

Вспомнил слова ZVS про фотошоп и загуглил ради интереса.

Image: Photoshop-Logo-history.jpg


RE: ERA III - Valery - 22.06.2021 07:35

I have a redraw map/show new hero problem.


Is there any redraw map new command?


RE: ERA III - Panda - 22.06.2021 09:06

Нет, не о глазе. Да я уже вытащил, для мод-менеджера сойдет:
Image: ERA-3-Mod-Manager.jpg

PS: самые нормальные иконки у фотошопа были в 2003-2007, не то, что сейчас, 10-ое убожество Gigi Ну а так да, схожесть старых иконок фотошопа и иконки Вога поразительная 96-copy


RE: ERA III - Berserker - 22.06.2021 17:30

Valery, try



RE: ERA III - Valery - 23.06.2021 00:06

It does not change. When the hero is placed and set as active, his sprite is not updated, I see empty land. Then when I scroll heroes I find him finally. This is only Era 3 issue.

I had same issue with obstacles placed during battle preparation, now it needs !!BU:R to show. But that I was able to solve.


RE: ERA III - daemon_n - 23.06.2021 00:31

Не могу скачать последнюю ERA отсюда: https://mods.hmm35.ru/Era%20Update.exe


RE: ERA III - Elmore - 23.06.2021 01:22

Да и в сообщениях с новыми версиями отсутствуют какие либо ссылки на скачивание.


RE: ERA III - Berserker - 23.06.2021 04:52

daemon_n, https://mods.hmm35.ru/Era%203.X.exe

Valery, I don't know the exact reason of screen not being redrawn. Testing is required. It's something with internal Heroes 3 mechanics. I remember I was able to teleport neutral hero to map with visual update.


RE: ERA III - daemon_n - 23.06.2021 05:37

Berserker, спасибо. Тем не менее та ссылка не работает -- планируется ли её дальнейшая поддержка?


RE: ERA III - Berserker - 23.06.2021 15:35

daemon_n, для обновлений поверх базового установщика.


RE: ERA III - Elmore - 23.06.2021 15:49

Berserker, https://mods.hmm35.ru/Era%20Update.exe
Not Found
The requested URL /Era Update.exe was not found on this server.

Файла так и нет. Если это обновление так же будет использоваться, то хотелось бы видеть по 2 ссылки на скачивание к сообщениям о новых версия ERA. (И какое-то пояснение, на что можно устанавливать обновление):
Полная версия: https://mods.hmm35.ru/Era%203.X.exe
Обновление: https://mods.hmm35.ru/Era%20Update.exe


RE: ERA III - Berserker - 23.06.2021 19:11

Elmore, согласен.


RE: ERA III - Archer30 - 25.06.2021 15:33

Berserker, I encounter the same issue with Valery. UN:R1 doesn't work for hero list. Try with moving a hero from the town to outside (HE:P) and you will see.

Another thing is, SN:H^art^ (name) and UN:N0 seems to have character limit? They very frequently don't work on Enhanced Commander Artifacts. Those arts are with long names like +"5 Axe of Eagle Eyes" and I only get empty sting returned from these commands.

And another...wish. Is is possible to have a get syntax for LE:D? Needed that for some special purpose )


RE: ERA III - Berserker - 25.06.2021 16:14

Archer30, I need test maps/scripts to check those two cases. Could you make them?


RE: ERA III - Valery - 25.06.2021 16:55

https://dropmefiles.com/FmWi1

Script inside map events. Try it also in Era 2 please, I am 100% sure I didn't have this issue. Thanks


RE: ERA III - Elmore - 25.06.2021 20:21

https://mods.hmm35.ru/Era%203.X.exe
https://mods.hmm35.ru/Era%20Update.exe

Обе ссылки очистил в Avast. А какие еще AV ругаются?


RE: ERA III - Berserker - 25.06.2021 22:17

Seems like map file is broken. 761 byte?

Elmore, Microsoft Defender.

<aybe yo guys create maps in Unleashed Editor, but I cannot open them.


RE: ERA III - Panda - 25.06.2021 22:32

Berserker, скачал карту Valery (redraw map.h3m), в редакторе карт открылась без проблем, в игру запустил тоже без проблем... 105


RE: ERA III - Archer30 - 25.06.2021 22:40

Hi. I couldn't reproduce the issue with SN:H/UN:N0, so we leave it for now )

Let's just use TrainerX for testing hero list.
- Open any map
- Make sure you have a hero in a town and no hero on the adv map, your list of heroes should be empty now.
- Press F7 on the adv map - Right-click on any tile - choose "move hero" - Enter.
- Voila. Your hero in town has been moved to the target tile while the hero list is not updated.

Check the related script by searching "UN:R1 doesn't refresh" from trainthe er.erm


RE: ERA III - Valery - 26.06.2021 00:05

(25.06.2021 22:17)Berserker Wrote:  Seems like map file is broken. 761 byte?

Yes, its a small testing map with only what is needed to see the redraw problem.


RE: ERA III - daemon_n - 26.06.2021 00:59

Berserker, Valery,

Don't forget enable "Unleashed Map Editor" mod.

WO mod that map isn't openable
With mod enabled i can easily open and edit it.


RE: ERA III - Valery - 26.06.2021 01:07

I don't think you need it. I made this 36x36 map but with XXL mod enabled (I forgot to disable it as I was testing tew4) so in worst case you only need XXL mod to open it. But to play, I think you need nothing.


RE: ERA III - daemon_n - 26.06.2021 01:33

Valery, map is 18x18 btw, mb i used wrong map?


RE: ERA III - Valery - 26.06.2021 01:57

Then it means XXL mod creates 18x18 when selecting 36x36. I didn't use other editor.


RE: ERA III - Berserker - 26.06.2021 02:14

Valery, Archer, thanks. Bug in HE:P implementation is being fixed.


RE: ERA III - Berserker - 26.06.2021 02:23

https://dropmefiles.com/U5lvB

In Era 3.8.2- HE:P checked if new coordinates differ from hero x/y/z and apply teleport/hide/show only if they differed. I thought it's no sense in updating hero with the same coordinates. But it makes sense if hero was hidden previously or was always hidden like hero in prison.


RE: ERA III - Valery - 26.06.2021 02:39

Works 20

Thanks


RE: ERA III - Archer30 - 26.06.2021 07:31

Berserker, but the latest update still doesn't work for my case 112

And the worst part is, now I get two heroes at the same time if I teleport the hero from the town to the map


RE: ERA III - daemon_n - 26.06.2021 09:15

Archer30, !!SN:D; doesn't work as well for refresh?


RE: ERA III - Archer30 - 26.06.2021 09:58

daemon_n, nope


RE: ERA III - Algor - 26.06.2021 10:33

Берс, а это нормально, что Эра 3.8.3 с пустым list.txt крашится при запуске? (Click to View)
Установлено на чистый комлит, 3.8.2 + update до 3.8.3.
На 3,7 такой же результат.

Со включенным WoG всё стартует нормально, но ведь ты ж его не для того выносил отдельно, чтоб без него не работало, верно?


RE: ERA III - daemon_n - 26.06.2021 10:44

Algor, list.txt обязателен. И там обязан быть мод WOG.

Так было всегда. Отделением было лишь wog scripts в отдельный мод


RE: ERA III - Algor - 26.06.2021 10:58

daemon_n, ай блин, попутал Wog и Wog scripts...
Все позабыл за тысячу лет (с)
Спасибо Sm


RE: ERA III - Berserker - 26.06.2021 18:43

Archer30, check you test in Era 2 or WoG 3.58. I'm pretty sure you'll get the same behavior.

When you teleport hero, no external data structures are changed. If a hero was in prison, it will still be marked as staying in prison. If hero was in a town (CA:H), it will be there. Thus you need advanced code to handle all those edge cases.

For instance CA:H0/-1, HE(hero):O-1, HE(hero):P..., HE(hero):O(restoreOwner).


RE: ERA III - Archer30 - 26.06.2021 19:57

Rolleyes Alright thanks. At this point I will just remove the feature from the mod


RE: ERA III - Archer30 - 28.06.2021 07:22

Berserker, hi!

Not a bug, but we still hope it could be improved! 96-copy
Looks like the CO:X command worked as it should, it sets commander lv/exp correctly and everything, but it doesn't get commander to the level up screen even if the new level/exp is greater than current. So...you got only the change in number but nothing else. This is a completely different behaviour comparing with HE:E.

Script for testing:



RE: ERA III - helgtla - 28.06.2021 13:45

   Есть некая проблема, связанная с функционалом ХД мода и ЭРА триггерами "после битвы"!
   Это по моим выводам связано именно с ХД модом, но думаю, что лучше будет, если Берсеркер об этом Бараторчу объяснить попытается. Мои объяснения в ветке ХД мода, скорее не смогут донести до него суть проблемы.
    ------------------------------------------------
Суть:
    На версии ХД мода 5.0 RC 89 - условия скриптов идущих в теле триггера
   !?BA1 или !?FU(OnAfterBattleUniversal) выполнялись лишь именно при завершении боя. Но никогда не стартовали, если игрок выбирал опцию "Загрузка из боя" (функционал ХД мода).
   На более поздних версиях (имеется 5.2 RC 39 и 5.2 RC 44) - условия в теле триггера стартуют даже если бой не окончен, а выбрана опция загрузки непосредственно из боя.
    От версий ЭРА это не зависит (проверял на 3.3.5 и 3.8), именно версия ХД мода влияет.
-----------------------------------------------------------
    Прилагаю тестовый мод с готовой модуляцией ситуации.
Test mod (HD+ERA after_battle trigger)
   К сожалению я не знаю где достать предыдущие версии ХД мода, потому могу лишь сослаться на карту-мод от SergOz. У него стоит именно старая и "рабочая" версия ХД мода (5.0 RC 89)
Карта SergOz
   Для наглядности привожу также видео демонстрацию всего того, о чём выше написал:



RE: ERA III - daemon_n - 28.06.2021 14:03

helgtla, это не проблема, а результат её решения.

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

А вот, кажется, тот самый пост. Проблему и описание можно найти выше


RE: ERA III - helgtla - 28.06.2021 14:23

(28.06.2021 14:03)daemon_n Wrote:  helgtla, это не проблема, а результат её решения.

   Я бы сказал, что для большинства авторских карт ЭТО именно проблема. И достаточно весомая!
   Во многих авторских ЭРА картах по завершению боя происходят некие действия: либо диалоги, либо ещё что (вплоть до того, что действия могут быть продолжительными по реальному времени (показ участка карты, телепортация героев и т.д.)).
   Бои на авторских картах, как правило создаются с учётом некоей сложности, что подразумевает, что их прохождение может потребовать перезагрузку битвы (не переигровку, а именно перезагрузку) для изменения сетапа героя/артов/войска. И часто подобные загрузки приходится проводить отнюдь не единожды. А это приводит (при данной реализации) к постоянному "просмотру постсодержимого битвы" при каждой попытке грузиться из боя (в таком случае сама опция "быстрой боевой загрузки" теряет смысл, так как это практически идентично тому, как если бы игрок сначала завершил бой на "Q", а после попытался загрузиться в стандартном режиме).
   И мне кажется (хотя я и не играю особо), что подобные "постбоевые триггеры" достаточно часто используются и других модах, применяемых именно что для игры на случайных картах (я про ТУМ и АКМ).


RE: ERA III - daemon_n - 28.06.2021 14:31

helgtla, ранее, если грузиться из боя, игра ломалась. Этим всё сказано.


RE: ERA III - helgtla - 28.06.2021 14:46

(28.06.2021 14:31)daemon_n Wrote:  helgtla, ранее, если грузиться из боя, игра ломалась. Этим всё сказано.

   А можно поподробней, что именно "ломалось"? Не возможно было загрузить/инициировать загружаемую сессию, крашилась сама игра , может "запарывалось" физически сам сейв файл. Что именно?
   А то сейчас, я пока не замечал проблем по сравнении с предыдущей реализацией загрузки из боя. Но вот обновлённый вариант гарантированно вызывает "раздражение" (я не только про себя говорю, но и по отзывам некоторых тестеров-игроков).
   Может есть тогда какая-либо возможность при сохранении версии ХД мода (обновлённых версий) вернуть старый функционал боевой загрузки (если это возможно как-то твиками сделать)?
    Повторюсь: то что есть на данный момент - крайне неудобно в плане игрового взаимодействия с игроком.


RE: ERA III - daemon_n - 28.06.2021 14:57

helgtla, ломались скрипты. И немало. Погибал командир. Портилось немного сохранение.

Berserker, заметил, что в чате не отображаются символы "{~>", когда печатаешь. Зато они точно подхватываются, и можно в чат отправить картинки)

Без HD: не выходит , так как он преобразует "{" в "[", а не отображается только "~"
C HD: не отображаются именно "{~>"

Не думаю, что это вообще есть смысл как-то править, но всё равно случай забавны -- отправил картинку с деревом в чат онлайн-лобби))


RE: ERA III - igrik - 28.06.2021 15:01

helgtla, в HD моде решение сделано верное.
Конкретно в твоём случае нужно придумать правильный способ определения, что из боя вышли перезагрузкой, а не победой/поражением.

Upd: самый простой способ (на вскидку...), это после битвы проверить параметр
o_BattleMgr->Finished != 1
Но это не точно, нужно проверять. Но на работе я этого сделать не могу.


RE: ERA III - Berserker - 28.06.2021 15:49

Как раз старый способ выхода из боя ломал всю цепочку триггеров, включая OnGameLeave, поскольку был реализован хакерским способом. Реально бой должен закончится, затем эмулируется выход в меню загрузки.

Хорошо, если Игрик найдёт решение. Возможно, было бы неплохо, если бы HD-мод генерировал событие вроде OnLoadGameFromBattle. Бой заканчивается победой или поражением?


RE: ERA III - daemon_n - 30.06.2021 12:07

Berserker, что-то очень плохое случилось в 3.8.3 на 3.8.2 тоже, и на 3.8.1

SRand даёт разные результаты - вновь в игре рассинхрон.
Не только в бою, но ещё и на старте карты


Версии 3.8.0 чистой не нашёл.


В общем, отвлекусь пока на сингл



RE: ERA III - igrik - 30.06.2021 13:04

(28.06.2021 15:49)Berserker Wrote:  Хорошо, если Игрик найдёт решение. Возможно, было бы неплохо, если бы HD-мод генерировал событие вроде OnLoadGameFromBattle. Бой заканчивается победой или поражением?
Не нашёл я простого решения, как не бился. Либо нужно хук создавать (но его там тупо некуда впихнуть) либо самое правильное решение - получать событие от HD. Нужно репортить Бараторчу.

Кстати, при этих тестах обнаружил, что UN:C (расширенное, которе со смещением) как то не всегда верно отрабатывает.
Например, в ряде случаев:

1) Старый синтаксис всегда работает правильно:
UN:C(адрес)/4/?(param:y);
VR(адрес2:y):S(param) +(offset);
UN:C(адрес2)/4/?(value:y);

2) Новый синтаксис НЕ всегда работает правильно, и очень часто мне возвращал value=ноль:
UN:C(адрес)/(offset)/4/?(value:y); (upd: не правильно)
UN:C(адрес)/4/?(адрес2:y);
UN:C(адрес2)/(offset)/4/?(value:y); (upd: правильно)

Т.е. я запускал оба кода одновременно и в одном триггере, первый мне возвращал value=данные, второй value=ноль.

Настоящий пример приведу вечером.


RE: ERA III - Panda - 30.06.2021 13:19

daemon_n, так у меня же 3.8.0 148
Скинуть микро-версией?


RE: ERA III - daemon_n - 30.06.2021 13:29

Panda, там не было того фикса.

То есть ещё с релизной версии что-то не так пошло, когда как в тестовой проблем нет.

Разве что у меня проблемы с ноутом, и на 3.81/3.82/3.83 всё работает не так, как надо.

Прошу протестировать других

heroes3.ini
Code:
Debug.Rng=1



RE: ERA III - Panda - 30.06.2021 17:16

daemon_n, ну, тогда это к Берсу уже, мое дело предложить Ab


RE: ERA III - Berserker - 30.06.2021 17:49

Проблему со сбитыми номерами раундов при наличии тактики у одного из героев в сетевом бою подтверждаю.

igrik, мне бы хоть один адресок с неверной работой.


RE: ERA III - igrik - 30.06.2021 20:31

Berserker, по поводу UN:C я ошибся. Давно не писал на UN:C и забыл как это делается 96-copy
Ложная тревога!


RE: ERA III - daemon_n - 02.07.2021 20:24

Berserker, между 3.8.0 и 3.8.3 что-то случилось с ГСЧ:

После загрузки игры отличаются данные, которые генерируются скриптами

Сейв

При повышении уровня генерируются 3 навыка: ( ES mod- обязателен для подключения).

На 3.8 - каждая загрузка игры повторяет генерацию
на 3.8.3 - результат всегда разный


RE: ERA III - V_Maiko - 04.07.2021 03:41

One question, is it possible to install Virtual File System? I have a virtual machine that runs an OS with basic functions, it runs Heroes 3 complete but not ERA, don't even open it Rolleyes


RE: ERA III - Berserker - 04.07.2021 04:13

No. vfs.dll cannot be installed, but can be loaded/injected into some process memory. You want Mods directory for ordinary Heroes 3? Without pad/snd/vid autoloading the only benefit will be multiple Data/Mp3 directories.


RE: ERA III - Archer30 - 04.07.2021 04:13

Berserker, can I assume that all known desync issues of PVP battles are now resolved? Rolleyes

V_Maiko, perhaps you have to merge all contents from \Mods to their real locations at the root folder?


RE: ERA III - V_Maiko - 04.07.2021 04:28

(04.07.2021 04:13)Berserker Wrote:  No. vfs.dll cannot be installed, but can be loaded/injected into some process memory. You want Mods directory for ordinary Heroes 3? Without pad/snd/vid autoloading the only benefit will be multiple Data/Mp3 directories.

I try to run ERA on a light OS, it's not for modding, it's just to play and test its performance.

Archer30, And how do I do that only with ERA core?


RE: ERA III - Berserker - 04.07.2021 04:53

Archer30, nope. There is desync when gremlins auto-cast mine fields and daemon_n also reports some armageddon issues, I could not repeat. But 99% issues are solved, right.

V_Maiko, what is light OS?


RE: ERA III - V_Maiko - 04.07.2021 06:33

Berserker, It's called "Wine", in itself it's not an OS, but a UI for win16 and win32 apps for Unix operating systems, everything is almost perfect, I can open almost all executable like map editor or even the Mod Manager in Wine. I'm emulating everything on android with an application called "Exagear Windows Emulator 3.01". In simple words, Heroes 3 Complete + HD mod is a reality on mobile devices!



RE: ERA III - daemon_n - 04.07.2021 11:40

(04.07.2021 04:53)Berserker Wrote:  Archer30, nope. There is desync when gremlins auto-cast mine fields and daemon_n also reports some armageddon issues, I could not repeat.

Как я и говорил раньше, дело не в заклинании, а в навыке резиста.
Просто я назвал это "ошибкой Армагеддона". Повторяю суть:

Если у героя сработал резист на площадное заклинание, все его существа, попавшие в область урона сопротивляются (проще говоря, каждому существу выпало одно и то же число в ГСЧ). То же касается и получения урона - если хоть одно не зарезистило, то все получают урон. На всякий случай я даже проверил с другим dpwsockx.dll, хотя смысла в этом не былоYes


RE: ERA III - Berserker - 04.07.2021 17:50

V_Maiko, ah, ok. So newest Era cannot be run on Exagear emulator. I saw such reports many times. Unfortunately it's hardly possible to debug such emulator. Era 2.46 with old vfs will work.

daemon_n, а рассинхронизация при этом происходит? На стороне одного армаггеддон сработал на всех, а у другого — ни на кого?
И да, для площадных заклинаний и им подобных вызовов rand() в цикле значение будет возвращаться одного и то же.


RE: ERA III - daemon_n - 04.07.2021 18:40

Berserker, уже нет.

Quote:И да, для площадных заклинаний и им подобных вызовов rand() в цикле значение будет возвращаться одного и то же.

Это надо исправить, если есть резист. Иначе либо он 100%, либо 0%


RE: ERA III - Archer30 - 04.07.2021 18:49

(04.07.2021 11:40)daemon_n Wrote:  
(04.07.2021 04:53)Berserker Wrote:  Archer30, nope. There is desync when gremlins auto-cast mine fields and daemon_n also reports some armageddon issues, I could not repeat.

Как я и говорил раньше, дело не в заклинании, а в навыке резиста.

Interference from hota seems to be a decent solution? Gigi

VMaiko, just copy everything from wog mod to the root folder, but be aware about the priority of .pac. You might have to rename some (.pac is loaded with alphabetic order)


RE: ERA III - Berserker - 04.07.2021 18:50

daemon_n, это как раз и не реализуемо универсально.


RE: ERA III - Archer30 - 08.07.2021 07:43

Berserker, hi!

I have to ask about patcher_x86.dll. I know it was made by Baratorch, but ERA uses part of the features too. So in the latest HD, the plugin was reverted to the version back in 2018. However, in the latest ERA installer, it's the latest one made by 2021 inside. I wonder which plugin would you suggest for ERA + HD latest (5.2 RC44)

The two plugins

Another question is about load only these scripts.txt
Looks like it has poor compatibility with Era Erm Fmodsework. I understand this only after reading the comment from Valery. With this text persented, any script relies on constants would mess up, even if 9999 era - consts.erm was added to the list


RE: ERA III - Berserker - 08.07.2021 14:41

Archer30, try to add 9999 era - consts.erm as the first line to "load only these scripts.txt"


RE: ERA III - Elmore - 08.07.2021 15:53

Berserker, Можно заменить вуаль тьмы на png? Пробовали заменить кадры из Tshrc.def, поместив их в папку defs\Tshrc.def, но результата 0.


RE: ERA III - Berserker - 08.07.2021 16:15

Elmore, попробуйте без HD-мода. Что припоминаю о защите от подмены данного def.


RE: ERA III - Elmore - 08.07.2021 16:21

Проверено, без HD-мода тоже не работает.


RE: ERA III - Archer30 - 08.07.2021 22:18

(08.07.2021 14:41)Berserker Wrote:  Archer30, try to add 9999 era - consts.erm as the first line to "load only these scripts.txt"

Berserker, apologize. Guess I didn't put the constant definition of my own to the list. That's why I still got debug info from game start.

But here comes new questions. With the latest assembly (and other mods too, just saying it's not purely ERA), A few players reported about the game freezing randomly, especially in auto-combat. One even said it froze at the ACM class granted dialogue.
List of mods (chaos...I know)
This rarely happened before. Those players played with the same mods on Era 3.7 assembly and it was fine. I have no clue here. My questions are,

1. Could it be something related to the new RNG from the recent update of ERA?
2. Does anyone still have the era.dll from 3.8.0 where the new RNG was not introduced? I would make a few tests around that. Got it from Elmore, thank you!

____


Valery, in order to use TrainerX (recently updated) in your maps, you have to get
1. the latest ERA 3 and Era Erm Framework loaded.
2. all the scripts from TrainerX and Era Erm Framework to load only these scripts.txt.
Be aware of the order in the text. Here is an example of the text made for TEW IV.


RE: ERA III - Panda - 08.07.2021 22:30

Archer30, Hi!
- Regarding the HD-mod patcher, I have already unsubscribed in the topic, this question is likely to be answered only by Baratorch, but there is no answer yet, and I do not think it will be. Perhaps Igrik can also add a couple of comments here, but this is not certain. 105
- In my main build Era 3.8.0. The archive also contains a clean build on Era 3.8.0 + HD-mod 5.2 RC40. Ab

PS: Alas, I can’t download 3.8.0 separately, sorry, bald man again suits the northern country, he barely entered the forum, everything lags


RE: ERA III - Berserker - 09.07.2021 00:49

Archer30, new PRNG is used in PvP online battles only. More tests are necessary.


RE: ERA III - Panda - 09.07.2021 10:11

Berserker, иногда этот краш случается при старте рандомной карты, есть идеи, почему?
https://dropmefiles.com/xlW1U


RE: ERA III - Berserker - 09.07.2021 15:09

Нет, проблема с одним из объектов. Запись данных по несуществующему адресу. Вероятно, что-то указано не верно: тип, подтип, проходимость.


RE: ERA III - Panda - 09.07.2021 15:43

Понял, спасибо. Значит дело в каком-то скрипте вога или шаблоне. Unsure


RE: ERA III - Berserker - 09.07.2021 17:33

Это генерация карты, вряд ли скрипт. Скорее шаблон или мод на объекты.


RE: ERA III - Archer30 - 10.07.2021 23:09

Panda, thanks.

Berserker, yes more tests are required.

Here may comes a report of HT:P. It sets only the right click msg, instead of the right-click + hint text

To test, please check the Emerald Tower script, liine 57

Case 1: Visit a emerald tower and modify a creature. Check the right-click info of the visited ET after. It should be changed from "not visited" to "visited".
Case 2: Disable the two lines of ERM above, do the same. The right-click info won't be changed this time.

Conclusion: HT:P works only for right-click and not hint.

I understand HT:P is replaced by MM:M now. But to fix those WoG scripts old assets...ERA 2 freindly syntax is still desirable.
____

Edit: Dang, with MM:M...still didn't work? Hovering over Emerald Tower I have IF:L msg display correctly but not hint.



RE: ERA III - Berserker - 11.07.2021 02:00

I think the report is wrong. To check it I wrote the following code:


Emerald towers now have "Bers" hint, both on hover and RMB.


RE: ERA III - Archer30 - 11.07.2021 18:53

Berserker, hi! After several attempts, I finally got the reason the hint text didn't display in my game.

In short, hint/right-click info of WoG objects is a mess.

The hint for the Emerald Tower script was 3 lines. Thus the third line with "visited" "not visited" is hidden. Rolleyes Many WoG objects have the same issue. They show only full info with right-click


RE: ERA III - Valery - 11.07.2021 21:26

Bersy, do you still have Tew4 installed?

If so, can you be so kind and run this save when have 1 minute free, and tell me if the hero can cast twice in battle vs Drakon.

https://www.mediafire.com/file/fdkzexiyo20c9q8/Day+231,+7_Purple_End.GM1/file

This user has Era 3.8.2 and reports he can't cast twice. I tested his save on my Era 3.8.0 (but with 383 dll?) and I can without problems. So I don't know what to advice him. Thanks!


RE: ERA III - Berserker - 11.07.2021 22:19

Archer30, nice.

Valery, Era 3.8.4. Casted twice meteor shower successfully.


RE: ERA III - daemon_n - 11.07.2021 22:38

Valery, advice him to left-click on hero's def


RE: ERA III - Valery - 11.07.2021 22:58

Thanks !


RE: ERA III - Archer30 - 12.07.2021 17:24

Berserker, hello again!

I wish to have some advice about inserting def frames in WoG Options.
Code:
{~>z358o7.def:0:0 block}
My question is, is it possible to have the def to be in the center properly?
Tried with space bars on the right, align="center", both didn't work
From what I see, ERA treated map objects as a whole, the transparent pixels are not taken out as in other defs. Is this true?

Second questoin, is it possible to have the shadow displyed here without remaking the def?


RE: ERA III - daemon_n - 13.07.2021 03:51

Berserker, на финальной стадии мода по исследованию заклинаний
Решил заняться отображением анимации исследуемого заклинания и выяснил, что:
Не работает подмена кадров для кастомных def файлов, которые я сделал сам - так и было задумано?102


RE: ERA III - Berserker - 13.07.2021 05:24

Archer30, shadow cannot be displayed here. Try centering without Chinese plugin. If it does not work, I'll try to figure out the reason.

daemon_n, должна работать для любых, мод-пример, пожалуйста.


RE: ERA III - daemon_n - 13.07.2021 05:33

Berserker, днём)Yes


RE: ERA III - Archer30 - 13.07.2021 06:01

(13.07.2021 05:24)Berserker Wrote:  Archer30, shadow cannot be displayed here. Try centering without Chinese plugin. If it does not work, I'll try to figure out the reason.

I'm aware of the issue of wogcn :P My screenshots were taken without it


RE: ERA III - Berserker - 13.07.2021 16:17

Archer30, Ok, shadow exists and is not cropped. It simply cannot be drawn. Thus a bit not centered.


RE: ERA III - daemon_n - 13.07.2021 17:34

(13.07.2021 05:24)Berserker Wrote:  daemon_n, должна работать для любых, мод-пример, пожалуйста.

Заодно проверь, пожалуйста, в этом моде такую вещь:
если поверх одного элемента поместить другой и отключить его через !!DL(dlId):E(elmeentId)/0; то нажатие ЛКМ (Pressed/Released) на нём вернёт ID нижнего элемента (что верно), но нажатие ПКМ (Pressed) на нём вернёт ID якобы отключенного элемента, что не позволяет взаимодействовать с нужным элементом на ПКМBad

Ну и внутри всё подписано)

Вот ссылка на мод - требует EEF !


RE: ERA III - Berserker - 13.07.2021 18:03

daemon_n, функционал диалога трогать не буду, хотя баг неприятный. Возможно, неплохо бы ещё менять координаты элемента на -1000, -1000.


RE: ERA III - daemon_n - 13.07.2021 18:49

Berserker, да я уже выкрутился интересным способом, и элемент отключать более не требуется, так что для меня некритично.

К тому же элемент диалога должен быть именно там, куда я его и установил, а вот прятать надо всегда под текущие элементы, потому что hd mod позволяет ставить разрешения до 4000 * 4000, и потом на экране остаются артефакты "спрятанных" таким образом элементов - проверено мною ранее Yes


RE: ERA III - daemon_n - 14.07.2021 05:53

Berserker, вновь обращаю внимание, что начиная с версии ERA, где изменили портрет Нагаша, в редакторе карт открытия любых окон с портретом героев стали жутко тормозить и замораживать приложение на несколько секунд - не зависит от мощности железа. Прошу разобраться, пожалуйстаRolleyes


RE: ERA III - Berserker - 14.07.2021 15:24

daemon_n, не могу подтвердить.


RE: ERA III - Panda - 14.07.2021 18:20

Тоже проверил, у меня открывается без проблем... 105
Хотя может мне нужно ТЗ для проверки... 148


RE: Скрипты. Стол заказов - Algor - 18.07.2021 02:47

(18.07.2021 01:23)Berserker Wrote:  Так как порядок действий !?BG0 => !?BR => !?BG1, то последний отряд не получает второй ход. Тут нужно новое событие с перехватом функции BattleMgr_FindNextStackTurn (464C60).

Я так понимаю, под 3.0.5 Эру такого события можно не ждать Sm

Но, на самом деле, и текущих средств достаточно для реализации.
Немного через зад, да... но можно.


RE: Скрипты. Стол заказов - daemon_n - 18.07.2021 03:16

А create_ErmHook тут не поможет разве?


RE: Скрипты. Стол заказов - Berserker - 18.07.2021 03:18

Записал себе добавить событие OnRightAfterBattleAction, так как текущее !?BG1 уже после выбора нового отряда и старта нового раунда происходит, что мягко скажем, неудобно. Но falsewhorse придётся писать костыли.


RE: Скрипты. Стол заказов - Algor - 18.07.2021 12:31

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


RE: Скрипты. Стол заказов - Berserker - 18.07.2021 15:54

RightAfter — прямо после действия в бою.
OnFinish — по окончании действия в бою.
Тут как бы надо намекнуть, что событие будет до OnAfterBattleAction. Что думаешь?


RE: ERA III - Algor - 18.07.2021 17:27

Ну дык,
On Finish - "при окончании" (действия),
On After - "после" (не понятно на сколько после),
On Right After - "сразу после". Это уже понятнее, но On Finish "при окончании" - более точно и короче. На что я сразу и указал.
+ меньше тавтологии. А то ведь так можно дойти и до "OnArterRithfAfterButBeforeArterBattleAction".
Надеюсь, мне удалось полностью раскрыть мысль.


RE: ERA III - daemon_n - 18.07.2021 19:01

Berserker, складывается ощущение, что !!FU(Array_Pop) всегда удаляет лишь 0-ой элемент массива

проверяю ещё раз - была допущена грубая логическая ошибка в моём коде.

UPD: всё работает корректно


RE: ERA III - Berserker - 19.07.2021 17:34

Algor, finish — глагол «заканчивать». Окончание — «end». OnBattleActionEnd как тебе?


RE: ERA III - XEPOMAHT - 23.07.2021 01:37

(23.07.2021 01:04)Berserker Wrote:  Порядок событий следующий:
    "OnBeforeBattleAction"
    >>> "OnBattleActionEnd" <<<
    "OnBattleRound"
    "OnBeforeBattleStackTurn"
    "OnBattleStackObtainsTurn"
    "OnAfterBattleAction"

Можно расшифровать, в какие моменты игры эти триггеры срабатывают в битве? Мне с английскими названиями они не понятны.


RE: ERA III - Berserker - 23.07.2021 01:54

Начало совершения действия (атака, колдовство, ожидание, побег…) !?BG0
Окончание совершения действия
[если все походили] Начало нового раунда
До хода отряда (до фазы регенерации)
При получении хода отрядом
После действия (!?BG1)


RE: ERA III - Panda - 23.07.2021 09:52

Berserker, супер, спасибо за обновку, как раз последюю чистую версию успеваю сделать Ab


RE: ERA III - Archer30 - 23.07.2021 14:22

Berserker, great update! Now I can write better scripts with new triggers 96-copy

A suggestion aprart from the update: Please remove heroscr3.pcx and heroscr4.pcx from wog mod. These graphics are incorrected and not needed.

heroscr3.pcx - used only when playing with RoE/AB campaigns (by checking the type of map). In these campaigns, there are only 4 misc slots available.
Issue: 5 slots from the graphics while only 4 available
Image: 6UA5C4a.png

heroscr4.pcx - used when playing any other maps.
Issue: The commander icon from the hero screen is not needed with WoG Native Dialogue. The icon from pcx force you to cover it before putting your own button. Making transparent button becomes more difficult
Image: nWMIy90.png

Just remove them and let the game use those from H3. Everything is good again 4


RE: ERA III - Artyr1995ua - 23.07.2021 14:54

При пропуске хода постоянно выскакивавает сообщение которое нужно пропускать https://dropmefiles.com/CqNoH


RE: ERA III - Berserker - 23.07.2021 15:49

Panda, спасибо огромное за сборки все эти месяцы, было очень удобно, да и Дима как раз занимался автоматизацией 132
Archer30, ok, thanks for explanation!

Artyr1995ua, в скрипте ошибка, загрузи на dropmefiles.com указанный скрипт.


RE: ERA III - Artyr1995ua - 23.07.2021 16:54

(23.07.2021 15:49)Berserker Wrote:  Panda, спасибо огромное за сборки все эти месяцы, было очень удобно, да и Дима как раз занимался автоматизацией 132
Archer30, ok, thanks for explanation!

Artyr1995ua, в скрипте ошибка, загрузи на dropmefiles.com указанный скрипт.

где его взять?


RE: ERA III - daemon_n - 23.07.2021 17:29

Artyr1995ua, mods\era scripts rus\data\s. Имя файла в ошибке.
Скидывать можешь прямо в Дискорд вместе с сейвом и списком модов.


RE: ERA III - Artyr1995ua - 23.07.2021 17:40

(23.07.2021 16:54)Artyr1995ua Wrote:  
(23.07.2021 15:49)Berserker Wrote:  Panda, спасибо огромное за сборки все эти месяцы, было очень удобно, да и Дима как раз занимался автоматизацией 132
Archer30, ok, thanks for explanation!

Artyr1995ua, в скрипте ошибка, загрузи на dropmefiles.com указанный скрипт.

где его взять?
вот все скрипты в папке которые были https://dropmefiles.com/CqNoH


RE: ERA III - Berserker - 23.07.2021 19:05

Правленный скрипт:
https://dropmefiles.com/owkG4


RE: ERA III - Artyr1995ua - 23.07.2021 19:09

(23.07.2021 19:05)Berserker Wrote:  Правленный скрипт:
https://dropmefiles.com/owkG4
Он будет работать только с новой игры или если я заменю все будет ок


RE: ERA III - Berserker - 23.07.2021 19:39

А какая у тебя версия?


RE: ERA III - Artyr1995ua - 23.07.2021 19:44

(23.07.2021 19:39)Berserker Wrote:  А какая у тебя версия?
3.8.4


RE: ERA III - Berserker - 23.07.2021 19:52

Подойдёт. Смело заменяй.


RE: ERA III - Algor - 23.07.2021 22:01

(19.07.2021 17:34)Berserker Wrote:  Algor, finish — глагол «заканчивать». Окончание — «end». OnBattleActionEnd как тебе?
Гугл переводчик не согласен с тем, что finish - исключительно глагол. Но это, по сути, не важно. Спасибо, что не RightAfter Sm. Да и просто спасибо, действительно очень полезный триггер. Как вспомню некоторые реализации без него (те же ассасины) - жуть как приходилось извращаться.

Не хватает описания последовательности триггеров для каста героя. И пока не очень понятно, как это будет работать с !!BG:A0; Ну и всякие нюансы, типа "до или после отлета гарпий/воскрешения фениксов" и т.п. тоже останутся на самопроработку.


RE: ERA III - daemon_n - 23.07.2021 22:21

Algor, ждём результатов исследований Spiteful


RE: ERA III - Berserker - 24.07.2021 00:01

(23.07.2021 22:01)Algor Wrote:  Не хватает описания последовательности триггеров для каста героя. И пока не очень понятно, как это будет работать с !!BG:A0; Ну и всякие нюансы, типа "до или после отлета гарпий/воскрешения фениксов" и т.п. тоже останутся на самопроработку.
При касте отряд хода не теряет. OnBattleActionEnd срабатывает, дальше сразу OnAfterBattleAction.
Гарпия уже ударила и вернулась. Фениксы воскрешаются ещё в функции каста заклинания. Так что действие заканчивается как раз перед проверкой на конец боя и определением, кто будет ходить следующим и нужно ли завершать раунд.

!!BG:A0 завершится OnBattleActionEnd, после чего снова !?BG0 с новым действием.


RE: ERA III - Artyr1995ua - 24.07.2021 13:21

(23.07.2021 17:40)Artyr1995ua Wrote:  
(23.07.2021 16:54)Artyr1995ua Wrote:  
(23.07.2021 15:49)Berserker Wrote:  Panda, спасибо огромное за сборки все эти месяцы, было очень удобно, да и Дима как раз занимался автоматизацией 132
Archer30, ok, thanks for explanation!

Artyr1995ua, в скрипте ошибка, загрузи на dropmefiles.com указанный скрипт.

где его взять?
вот все скрипты в папке которые были https://dropmefiles.com/CqNoH
перед боем тоже выскакует иконка кторую надо пропускать
https://dropmefiles.com/yGUuK


RE: ERA III - Berserker - 24.07.2021 14:48

Artyr1995ua, эти ошибки давным давно правились в скриптах сборок. daemon_n, загрузи, пожалуйста, актуальные на текущий день моды WoG Scripts и Era Scripts Rus.


RE: ERA III - Artyr1995ua - 24.07.2021 16:51

Обновил нд мод выдает такую ошибку https://dropmefiles.com


RE: ERA III - Panda - 24.07.2021 16:51

Berserker, если я правильно понял, daemon_n использовал моды WoG/Era Scripts не из моей сборки, а которые были на момент последнего обновления. Соответственно некоторые правки, которые делались в моих сборках в течении почти всего года, могли быть утеряны. Но это не точно. Но при проверке некоторых скриптов моей сборки, и первых Лаунчер версий, они не совпали.


RE: ERA III - Artyr1995ua - 24.07.2021 17:34

переустановил выдает ошибку
https://dropmefiles.com/iGOpb


RE: ERA III - Panda - 24.07.2021 17:54

Artyr1995ua, сборки ставить нужно в пустую папку. Вы же, судя по скринам, ставите поверх чего-то.


RE: ERA III - Artyr1995ua - 24.07.2021 17:55

(24.07.2021 17:54)Panda Wrote:  Artyr1995ua, сборки ставить нужно в пустую папку. Вы же, судя по скринам, ставите поверх чего-то.
да не я в пустую все установил


RE: ERA III - Artyr1995ua - 24.07.2021 18:04

(24.07.2021 17:54)Panda Wrote:  Artyr1995ua, сборки ставить нужно в пустую папку. Вы же, судя по скринам, ставите поверх чего-то.

Попытаюсь щас переустановить еще раз


RE: ERA III - Panda - 24.07.2021 18:07

Artyr1995ua, у Вас даже по скриншоту видны оригинальные exe файлы игры (Сода/Комплете или других), ни в одной сборке их нет. HD-мод версии RC-45 есть только в чистой сборке. В остальных сборках они версии 40 (если мои) и 44 (если Лаунчер версия). Ну и так же, судя по скрину, у Вас Win XP и ПК из 90-ых, так что вполне вероятно, что последние версии HD-мода и Эры не будут работать нормально. А Лаунчер версия вообще Win 10 требует (на Win 7 вроде тоже работает, но увы не на всех). Но это уже вопросы не ко мне.


RE: ERA III - Artyr1995ua - 24.07.2021 18:13

Ниче не помогает просто не запускаеться

Да проблема в нд моде была


RE: ERA III - Panda - 24.07.2021 19:09

Artyr1995ua, ну, в любом случае, тут уж помочь ничем не могу, и если у Вас действительно Win XP - то ответ тут очевиден - Лаунчер версией сборки Вы пользоваться не сможете. С HD-модом дело ещё сложнее. Только если качать чистую версию и собирать моды по крупицам, но дело в том, что авторы большинства популярных модов уже их не поддерживают, они устарели и содержат баги и ошибки, да и сама чистая сборка так же скоро устареет, а я больше сборками не занимаюсь. Так что даже не знаю, чем еще можно Вам помочь 105


RE: ERA III - Artyr1995ua - 25.07.2021 14:10

(24.07.2021 13:21)Artyr1995ua Wrote:  
(23.07.2021 17:40)Artyr1995ua Wrote:  
(23.07.2021 16:54)Artyr1995ua Wrote:  
(23.07.2021 15:49)Berserker Wrote:  Panda, спасибо огромное за сборки все эти месяцы, было очень удобно, да и Дима как раз занимался автоматизацией 132
Archer30, ok, thanks for explanation!

Artyr1995ua, в скрипте ошибка, загрузи на dropmefiles.com указанный скрипт.

где его взять?
вот все скрипты в папке которые были https://dropmefiles.com/CqNoH
перед боем тоже выскакует иконка кторую надо пропускать
https://dropmefiles.com/yGUuK

даемон кинеш сборку


RE: ERA III - Bes - 25.07.2021 15:07

Artyr1995ua, вот сборка daemon_n'а
http://wforum.heroes35.net/showthread.php?tid=5235


RE: ERA III - Berserker - 25.07.2021 16:43

Я Артуру кидал заглушку для lua.dll, если верно помню. У него Windows XP и процессор без поддержки SSE2. Новые версии тянуть не будет.


RE: ERA III - Artyr1995ua - 25.07.2021 17:43

(25.07.2021 16:43)Berserker Wrote:  Я Артуру кидал заглушку для lua.dll, если верно помню. У него Windows XP и процессор без поддержки SSE2. Новые версии тянуть не будет.
Да, правда, посл версии лаунчера не тянут


RE: ERA III - daemon_n - 25.07.2021 17:46

заглушку обновляешь?


RE: ERA III - Artyr1995ua - 25.07.2021 18:01

(25.07.2021 17:46)daemon_n Wrote:  заглушку обновляешь?
нет


RE: ERA III - daemon_n - 25.07.2021 18:13

Artyr1995ua, а ты помещай тогда после каждого обновления, так как лаунчер затирает её своим файлом.

У тебя вин 7 ведь?


RE: ERA III - Artyr1995ua - 25.07.2021 18:43

(25.07.2021 18:13)daemon_n Wrote:  Artyr1995ua, а ты помещай тогда после каждого обновления, так как лаунчер затирает её своим файлом.

У тебя вин 7 ведь?
хр


RE: ERA III - daemon_n - 25.07.2021 18:51

Artyr1995ua, каким образом тогда у тебя заработал лаунчер?


RE: ERA III - Artyr1995ua - 25.07.2021 19:52

не работает кольцо дипломата при новой неделе обменять на удвоение монстров первого уровня

(25.07.2021 18:51)daemon_n Wrote:  Artyr1995ua, каким образом тогда у тебя заработал лаунчер?

не работает япросто его не устанвливал


RE: ERA III - daemon_n - 25.07.2021 20:14

Artyr1995ua, давно исправлено


RE: ERA III - Artyr1995ua - 25.07.2021 20:55

(25.07.2021 20:14)daemon_n Wrote:  Artyr1995ua, давно исправлено

незнаю у меня не работает


RE: ERA III - Artyr1995ua - 25.07.2021 22:49

МОЖЕТЕ ПОМОЧЬ УСТАНОВИТЬ МОД Third Upgrades mod ВЫДАЕТ ОШИБКУ
ФОТО https://dropmefiles.com/eDLWU

(25.07.2021 22:49)Artyr1995ua Wrote:  МОЖЕТЕ ПОМОЧЬ УСТАНОВИТЬ МОД Third Upgrades mod ВЫДАЕТ ОШИБКУ
ФОТОhttps://dropmefiles.com/eDLWU
оЧЕНЬ ХОЧЕТЬСЯ ЕГО УСТАНОВИТЬ КЛАСНО ВСЕ ПЕРЕДЕЛЫВАЕТ


RE: ERA III - Artyr1995ua - 25.07.2021 23:13

(25.07.2021 20:14)daemon_n Wrote:  Artyr1995ua, давно исправлено

   ГДЕ СКАЧАТЬ


RE: ERA III - Panda - 25.07.2021 23:17

Artyr1995ua, Вам уже неоднократно намекали: Ваш ПК слишком сильно устарел, как аппаратно, так и программно. Для того, чтобы без проблем установить последние версии сборок, Эры, HD, и тем более таких модов, в которые входит плагин Емеральда, Вам необходимо заменить свое железо и ОС на более современные.


RE: ERA III - Artyr1995ua - 25.07.2021 23:18

(25.07.2021 23:17)Panda Wrote:  Artyr1995ua, Вам уже неоднократно намекали: Ваш ПК слишком сильно устарел, как аппаратно, так и программно. Для того, чтобы без проблем установить последние версии сборок, Эры, HD, и тем более таких модов, в которые входит плагин Емеральда, Вам необходимо заменить свое железо и ОС на более современные.

ЯСНО ПОНЯЛ


RE: ERA III - Bes - 26.07.2021 00:12

Read // Artyr1995ua, КЭПС уберите из своего стиля написания сообщений Moral


RE: ERA III - Artyr1995ua - 26.07.2021 00:21

ок


RE: ERA III - daemon_n - 27.07.2021 00:08

Berserker, OnAfterLoadGame должна работать после каждой передачи хода в Мультиплеере?


OnGameEnter так себя не ведёт, а вот !?FU(OnStartOrLoad); так же - в общем, уточняю Yes


RE: ERA III - Berserker - 27.07.2021 01:40

daemon_n, после передачи хода сохранёнка грузится на втором компьютере. Да.


RE: ERA III - daemon_n - 28.07.2021 06:24

В общем, старый добрый баг со строкой состояния в экране города и hd mod получает кое-какой костыль:
Данный код помещает в статусную строку HD mod ваш текст, но он не центрирован, а расположен по левому краю:

Лечим через
   

Аве, Император!


RE: ERA III - Artyr1995ua - 28.07.2021 15:55

(28.07.2021 06:24)daemon_n Wrote:  В общем, старый добрый баг со строкой состояния в экране города и hd mod получает кое-какой костыль:
Данный код помещает в статусную строку HD mod ваш текст, но он не центрирован, а расположен по левому краю:

Лечим через
   

Аве, Император!
че делать с этим


RE: ERA III - daemon_n - 28.07.2021 16:09

Artyr1995ua, это для мододелов информация. Игроки же могут указывать на опции, которые конфликтуют с этой полоской.


RE: ERA III - Berserker - 28.07.2021 16:13

daemon_n, в тему готовых рецептов, однозначно!


RE: ERA III - Artyr1995ua - 28.07.2021 16:13

daemon_n, я думал это ответ на мой вопрос


RE: ERA III - Valery - 31.07.2021 01:04

Hi, I had this mod - resurrect without limits which worked in Era2 but now the command doesn't detect if stack is blinded or hypnotized:


y2/y3 returns always 0. Can you please do a short test when time? Thanks


RE: ERA III - Berserker - 31.07.2021 01:26

Checked. Cannot confirm. Recheck your loop or add IF:L for x16.




RE: ERA III - Artyr1995ua - 31.07.2021 20:37

подскажите где убрать при улучшении некромантии, восстают улучшенные скелеты после битвы resound есть папка data, в ней лежит necromancy.cfg в нем такие цифры 56 57 220 141 261 222 подскажите как поменять а тоя не разбираюсь в этом всем


RE: ERA III - PerryR - 31.07.2021 20:43

These are creature IDs for
Basic Necromancy 56
Advanced 57
Experrt 220

and when the Hero wields Cloak of the Undead King


RE: ERA III - Berserker - 31.07.2021 20:43

Это мод Third Upgrades Mod. В файле идентификаторы существ, скорее всего. Замени 57 на 56, если хочешь обычных скелетов и 220 на 57 тоже.


RE: ERA III - Artyr1995ua - 31.07.2021 21:01

теперь вообще не воосстают


RE: ERA III - Artyr1995ua - 02.08.2021 00:02

вылет в сетевой игре https://dropmefiles.com/KQIa5


RE: ERA III - Valery - 02.08.2021 17:02

When I use "show events" mod then I walk into an event, the game hangs on then I get this message out of game
Image: wkUyoZ.jpg

What can I do?


RE: ERA III - Archer30 - 02.08.2021 21:09

Valery, try removing EraPlugins folder from the mod


RE: ERA III - Berserker - 02.08.2021 21:27

I don't have such a mod.


RE: ERA III - SergOz - 02.08.2021 21:48

ERA 3.8.7. Установлена v3.8.5 Clear и сверху файл от Берсеркера.

При отделении единичек от стека с опытом, у этих единичек куда-то 73 пропадает опыт. (Cntrl+ЛКМ)
При делении стека поровну опыт сохраняется.


RE: ERA III - Berserker - 02.08.2021 22:13

SergOz, проверяй сразу без HD мода. В Эре никаких изменений нет в этой области.


RE: ERA III - daemon_n - 03.08.2021 00:09

SergOz, это точно hd mod.
Так было всегда - эти клики для сод сделаны.
Эти твики бы надо отключить и заменить вог опцией, или можно дождаться ответа от Бары, что за функции он делает, чтобы на них поставить свои хуки


RE: ERA III - SergOz - 03.08.2021 00:42

Вот здесь helgtla поднимал вопрос появления в игре сообщений, должных идти только после окончания боя, но появляющихся, если игрок делает загрузку/переигровку из боя.
Проверка происходила в функции
где после проверялось жив ли герой игрока и т. д. и после этого шли команды с сообщениями.
Оказалось, что это "лечится" дополнительной поверкой !!BU:C?y1; и последующим !!if&y1=1;
В связи с этим вопрос (уж простите, если дурацкий 147 ):
можно ли в событии !?FU(OnAfterBattleUniversal); "вшить" проверку на точное определение, закончился бой или нет? Ведь в этом событии и подразумевается окончательное завершение боя...


RE: ERA III - Berserker - 03.08.2021 00:54

Задал вопрос игрику. Не совсем корректно, что событие вообще срабатывает. Посмотрим, какое может быть решение. Возможно, что твоё )


RE: ERA III - SergOz - 03.08.2021 00:57

Berserker, а в чём некорректность срабатывания события?


RE: ERA III - Berserker - 03.08.2021 01:06

При переигровке не должно срабатывать же.


RE: ERA III - Valery - 03.08.2021 01:09

(02.08.2021 21:27)Berserker Wrote:  I don't have such a mod.

here is the script, made by gamecreator




RE: ERA III - Berserker - 03.08.2021 01:14

Valery, seems like you have duplicating old erm_hooker.era plugin in some of your mods.


RE: ERA III - Valery - 03.08.2021 02:10

Right, I delete it, as it is now part of Wog mod, right?

Thanks !


RE: ERA III - Berserker - 03.08.2021 03:13

Valery, right, welcome )


RE: ERA III - Berserker - 03.08.2021 05:15

SergOz, ответ игрика здесь: http://wforum.heroes35.net/showthread.php?tid=5624&pid=126282#pid126282
Наверняка такой триггер не один, который сработает при ускоренном завершении боя.

Костыль на ЕРМ:




RE: ERA III - SergOz - 03.08.2021 07:23

Berserker, спасибо.
Я такой костыль и написал лишь с разницей !!BU:C?(endOfFight:y); (так мне переводчик выдал)
Несколько тестов такой код прошёл ещё недельку назад, и пока нареканий не было, но хотел узнать мнение свыше Rolleyes


RE: ERA III - Berserker - 03.08.2021 14:51

SergOz, мне видится, что один триггер так не исправить. Тут мог и посттриггер объекта сработать и сетевые триггеры окончания боя. Скорее нужно документировать данный факт и просить проверять BU:C. Пока идеального в голове решения нет.


RE: ERA III - SergOz - 03.08.2021 20:54

Berserker, объясню подробнее как я писал коды.
При посещении героя/монстра/объекта, активирующих битву, после которой должны быть сообщения, инициализирую переменную !!VRi^endOfFight^:S#, чтобы выделить этот бой. Потом пишу так:
На ERA3.3.5, на которой сидел долго, этого было достаточно, чтобы при переигровке/загрузке из боя сообщения не появлялись.
Играя в STALKER, просто замучился скипать сообщения, должные идти по окончании боя, но "нагло вылазящие" при переигровках. Сложные бои можно переигрывать десятки раз и, сами понимаете, как достаёт такая игра. Спросил у Helgtla, почему он не ставит условия, а он ответил, что всё стоит (ну, в смысле условия установлены 96 ) и такая ситуация появилась на ERA3.8.0, на которую он перешёл.
Сперва написал костыль на !?CM4; где отслеживал нажатие клавиши L и клик на иконке "настройки боя". Костыль работал, но как-то не внушал доверия. Потом выяснилось, что достаточно дополнительной проверки через !!BU:C после чего и родился код
а после "лекции" daemon_n'а этот код трансформировался в то, что Вы мне привели в пример, как костыль. За неимением свободного времени пробежался по некоторым боям и результат меня удовлетворил, но об тщательном тестировании пока речь не идёт. По сети вообще никогда не играю, потому здесь я... мои полномочия как бы всё...


RE: ERA III - Berserker - 03.08.2021 21:40

Да, неплохое решение на текущий день.


RE: ERA III - Valery - 04.08.2021 15:54

In WoG scripts, I see Emerald Tower (34) has new Era 3 syntax but not ZVSE2 header, so unknown commands error popup when game starts.


RE: ERA III - Valery - 12.08.2021 23:18

How we do for maps requiring a dat file, now I get errors on start when tries to load mithril enhancements script, which is already in mod data/s folder...


RE: ERA III - Berserker - 12.08.2021 23:21

Val, more explanations is necessary or at least test mod. Dat-files only hold 1000 option values in memory, they do not load any script.


RE: ERA III - Valery - 12.08.2021 23:44

No, I mean for Era 3, it worked 100% in, Era 2. Sorry

Here is the mod which I can't start, have to load the dat file

https://drive.google.com/file/d/1C_XMfKrVr6zY3uc_fBdxOFd6Rs5vNRyI/view?usp=sharing


RE: ERA III - Valery - 12.08.2021 23:51

Found, it needs wog scripts, sorry


RE: ERA III - Berserker - 12.08.2021 23:59

OK, not a problem )


RE: ERA III - Archer30 - 14.08.2021 14:24

Hi Berserker, it looks like the new trigger OnTownFortMouseClick doesn support &i^mouse_item^=xx in the title of the trigger




RE: ERA III - daemon_n - 14.08.2021 19:10

Archer30,
1. probably wasn't added into EEF' stdlib.erm
2. !!CM:I?(item:y); should be


RE: ERA III - Valery - 15.08.2021 08:24

Berserker, in Era 3 some txt format which worked in Era 2 doesn't display now, what can I do about?
I play in 800x600




RE: ERA III - daemon_n - 15.08.2021 10:55

Valery, i suppose that is only because of different fonts. Try to change fonts;


RE: ERA III - Berserker - 15.08.2021 18:13

Valery, right, it's native h3 dialog now with native fonts.

Mods\WoG\Lang\wnd.json

Look for font names there.


RE: ERA III - Valery - 15.08.2021 20:39

Thanks, it says :

Code:
"fonts": {
      "big_font": "bigfont2.fnt",
      "med_font": "medfont2.fnt",
      "small_font": "smalfont.fnt"
    },
    
    "dlg_wog_options": {
      "intro_font": "bigfont2.fnt",
      "bttn_name": "{WoG Options}"
    },

What should I replace with, to have previous display?


RE: ERA III - Archer30 - 15.08.2021 20:46

Berserker, hi! I believe it would be good to add classes of artifacts to constants. How do you like the idea? 4

Also, how about making constants rewritable (later executed script orverrides the ealier), just like normal global vars? I feel it would be convenient sometimes, for example, when you migrate artefact from an Id to another


RE: ERA III - Berserker - 16.08.2021 04:13

Archer30, agree. Minor, major, relic?

Valery, there is no silver bullet. Previous dialog was rendered with Windows font by C++ library. Just experiment with native heroes 3 font names.


RE: ERA III - daemon_n - 16.08.2021 10:41

Berserker,
no class - 0;
treasure - 1;
minor - 2;
major - 3;
relic - 4;


RE: ERA III - Archer30 - 16.08.2021 11:58

Berserker, daemon_n, from ERM help - UN:J6

random - -1
no class - 1
treasure - 2
minor - 4
major - 8
relic - 16


RE: ERA III - daemon_n - 16.08.2021 12:03

Archer30, i see, so that is supposed to be used that for its being random generated?


RE: ERA III - Archer30 - 16.08.2021 13:05

daemon_n, any.


RE: ERA III - Archer30 - 16.08.2021 18:17

Berserker, is there a trigger for OnAfterOpenTownScreen - trigger after finishing showing the townscreen (including both enter from adv map and swithcing town screens)?

Tried both OnPreTownScreen and OnOpenTownScreen, they are both too early than my need. Tried to manage the coordinate of a custom button, crashed before seeing the town screen 105




RE: ERA III - Berserker - 16.08.2021 18:54

No, there is no such trigger currently.


RE: ERA III - Archer30 - 16.08.2021 19:46

Hmm, looks like there is a ready made one. Allow me to share some classic Hawaiing hooks here.



RE: ERA III - Valery - 16.08.2021 22:38

I don't know anything about fonts, then how to change them, playing with switching them in the json file gives no result at all.

I also noticed IF:G messages don't display entirely even in highest resolution (1920x1080) - they broke exactly same, so I have no idea why such important modification was necessary, this basically screws up every txt, because such txt were already reduced to minimum words. And now they don't make any sense.

Second thing: WHO modified avlpntr6.def/avlpntr7.def (big pine trees) for Era3? That was not tested, both defs are broken.


RE: ERA III - Berserker - 17.08.2021 00:19

Valery, I sent your complaints to igrik. He'll try to do something with it.

Quote:Second thing: WHO modified avlpntr6.def/avlpntr7.def (big pine trees) for Era3? That was not tested, both defs are broken.
What is broken? I don't remember, from which fix I took them )

Archer30, thanks.


RE: ERA III - Berserker - 17.08.2021 00:25

Valery, please. show the json file with other font names, that you tried to use. Igrik will improve the dialog in the future.


RE: ERA III - igrik - 17.08.2021 00:31

Valery, change the font name (HoMM3 ERA III\Mods\WoG\Lang\wnd.json)

Image: image.png


RE: ERA III - Valery - 17.08.2021 01:13

Thanks, I tested all fonts and none matches what we had in Era 2, is this possible or I am blind?

Finally tiny.fnt is the one displaying all text, but is damnt tiny as well, I think there was something intermediate before.
I will distribute my maps with the Lang folder (and only the wnd.json inside) then.


RE: ERA III - Valery - 17.08.2021 01:20

(17.08.2021 00:19)Berserker Wrote:  What is broken? I don't remember, from which fix I took them )


Image: 3tqDuK.jpg

The last two pines, try them. And as they are massively used in mapmaking, imagine the loneliness


RE: ERA III - daemon_n - 17.08.2021 02:54

Valery, a lot of mods change fonts. like:
WoG Graphic fix, Era Scripts, Advanced Classed Mod, Game Enhancement Mod. Even Wog mod could add new fonts since transfer to ERA 3 Yes


RE: ERA III - daemon_n - 17.08.2021 03:48

Итак: Установка размеров кнопок и их положение

ERM Help Wrote:61 – установить ширину (без перерисовки) (число/числовая переменная)

(14.01.2017 00:22)igrik Wrote:  
; параметры любого элемента диалога
; текст, картинки, кнопки и т.д. (Click to View)

Что я выяснил -
!!FU(H3Dlg_GetCurrentDlg):P?(currentDlgId:y);
    !!SN:E6288816/2/(currentDlgId)/(buttonId); !!VR(btnStructure:y):Sv1;
    !!VR(btnAction:y):S(btnStructure) +30;
    !!UN:C(btnAction)/4/24; set 24 px height - работает

    !!VR(btnAction:y):S(btnStructure) +28;
    !!UN:C(btnAction)/4/332; set 332 px width - НЕ работает

    ; Но работает
    !!FU(H3Dlg_SendCmdToItem):P(currentDlg)/(buttonId)/61/332/(DLG_CMD_TYPE_DEFAULT); set 332 px width - работает


UPD: я указал не то число байтов (везде поставил "4") - сейчас всё править буду)

Я просто обязан попросить объединить это в одно, чтобы у нас была возможность любую кнопку двигать через EEF )


А ещё и с этим бы объединить - но только не на уровне EEF, а чтобы сама игра давала возможность получить/установить эти значения Yes (Click to View)



RE: ERA III - Berserker - 17.08.2021 04:43

Valery, igrik will try to autosize the dialog, so that any text with any font could fit the line.

I'm just tired to think of those two pines. Should I simply remove those defs?

daemon_n, какая-то каша в посте, конкретизируй, пожалуйста )


RE: ERA III - daemon_n - 17.08.2021 04:56

Berserker, да, пока разбираюсь с тем, что есть - видимо, что всё работает.

И всё же:

Я предлагал сделать функцию, что позволяет на лету менять кадры, размер и позицию кнопок.
Взял за основу DL(dlID):A(elID)/61 - установить ширину/int/0;
но высоту нельзя установить подобным образом, потому нашёл подобное из поста UN:C от igrik'a.

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

И хотел узнать, есть ли возможность добавить такое в EEF или прямо в era.dll Rolleyes


RE: ERA III - Valery - 17.08.2021 06:25

(17.08.2021 04:43)Berserker Wrote:  I'm just tired to think of those two pines. Should I simply remove those defs?

Thats the trick, I can't find any of those 2 defs in wog.pac. Without wog, they are fine, when wog is enabled they are broken. I compared Zeobjts/Zobjts with the vanilla Objects.txt and the codes are identical so I am puzzled why it happens. I have no graphical mods installed.


RE: ERA III - Berserker - 17.08.2021 17:51

daemon_n, если кнопка поддерживают сообщение изменения ширины, то дело решается, как ты указал, отсылкой сообщения #61. Если встроенной поддержки для высоты нет, то нужно найти элемент по ИД и изменить напрямую в его структуре поле ширины/высоты, при чём нужно проверить, что это def.


RE: ERA III - daemon_n - 17.08.2021 19:45

Berserker, изменение ширины работает, да.
Высоты - нет, не нашёл ничего похожего. Но через un:c получилось изменить, получив структуру элемента.

Проверять, что это def, не нужно, так как работает на любой item: картинка, def, текстовое поле и тд. Для def проверять надо лишь : кадр, кадр при нажатии, кадр при отключении, закрывает ли диалог при нажатии.

И как проверить, def ли это?


RE: ERA III - Berserker - 18.08.2021 00:25

Получать адрес конструктора в виртуальной таблице (смещение +0 для адреса таблицы и +0 в самой таблице), Но ты прав, для любых элементов подойдёт, не нужно проверять.


RE: ERA III - Archer30 - 21.08.2021 03:43

Hi, Berserker, is it true that there is no side effect if we remove wogification options from the menu, as they do nothing anyway?
_____

A bug report here, looks like HE:F 1 is broken with Dragon Eye Ring. Values get from HE:F are incorrect

Is it true that...HE:F 1 is just using a table of arts to emulate the process of getting orignal primary skill values?


RE: ERA III - Berserker - 21.08.2021 16:01

Archer30, true.

True.

Code:
char ArtSkill[0x2D][4]={
  {3,3,3,6},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{0,0,0,0},{2,0,​0,0},
  {3,0,0,0},{4,0,0,0},{5,0,0,0},{6,0,0,0},{12,-3,0,0},{0,2,0,0},{0,3,0,0},{0,4,0,0},
  {0,5,0,0},{0,6,0,0},{-3,12,0,0},{0,0,0,1},{0,0,0,2},{0,0,0,3},{0,0,0,4},{0,0,0,5},
  {0,0,-2,10},{0,0,1,0},{0,0,2,0},{0,0,3,0},{0,0,4,0},{0,0,5,0},{0,0,10,-2},{1,1,1,1},
  {2,2,2,2},{3,3,3,3},{4,4,4,4},{5,5,5,5},{6,6,6,6},{1,1,0,0},{2,2,0,0},{3,3,​0,0},
  {4,4,0,0},{0,0,1,1},{0,0,2,2},{0,0,3,3},{0,0,4,4}
};



RE: ERA III - Archer30 - 21.08.2021 19:56

Berserker, thanks, then HE:F 1 looks super useless with mods that alters art stats Fie

Is there anywhere I can find the source of placing troop on tactics round with mouse clicks?


RE: ERA III - Berserker - 21.08.2021 20:37

Right, useless. There is no universal way to get stats without arts (

Fast troops placement script was ported by me from Phoenix into WoG Revised mod and later Algor took it to Era Scripts mod. So check either WoG Revised or Era Scripts mod. Though the mod isreally outdated.


RE: ERA III - Archer30 - 21.08.2021 20:50

Berserker, thanks. The issue I reported about Dragon Eye Ring exisits in pure ERA. You might wanna take a look 4


RE: ERA III - Berserker - 21.08.2021 21:02

I need art ID, it's components ID, each component bonus, total artifact bonus, how much the result differs from what HE:F1 returns.


RE: ERA III - Berserker - 21.08.2021 21:17




RE: ERA III - Archer30 - 21.08.2021 21:19

Aha, my mistake. Dragon Eye Ring is as a hero's equipment only when the WoG Script option Commander Artifact Boost is enabled.

With my code, I actually cannot get any result, the game crashes when I do the HE:F 1 check. For this I can't tell the difference now...

Debug

Not sure if anything can be done with the WoG script, as for all the commander artifact, it's only Dragon Eye Ring having the issue.


RE: ERA III - Berserker - 21.08.2021 21:24

With your code I get: 0 0 10 20, 0 0 10 20. Check plugins, altering artifacts like the one from feanor or majaczek.


RE: ERA III - Archer30 - 21.08.2021 21:27

Hmm, did you enable the option Enhanced Commander Artifact? Was the Dragon Eye Ring equipped?


Sadly, none of the art plugin was involved.


RE: ERA III - Berserker - 21.08.2021 22:02

I executed the code from your post. The command have nothing to do with the option.


RE: ERA III - Archer30 - 21.08.2021 22:44

Berserker, well, let me rephrase. The command HE:F 1 results in error when all of these conditios are met:
1. Option Enhanced Commander is on (it's only when the option is on, Dragon Eye Ring can be equipped in the ring slot)
2. Dragon Eye Ring is equipped with the hero
3. HE:F 1 checks the equipped hero

If you have both the code and the option on, and you still don't get a crash or weird IF:M results, then we clearly have some difference of our ERA Unsure


RE: ERA III - Berserker - 21.08.2021 23:44

Maybe script makes this art a combo art, which is not supported by WoG, I don't know. I already remember similar crash due to one of majaczek plugin. Anyway, drop the script from options and the task is done.


RE: ERA III - Berserker - 23.08.2021 03:20

Реализована пробная версия поддержки zip-архивов.
Если в Data игры или модов имеются zip-файлы, их содержимое проецируется на папку с игрой при поиске png-картинок.

Например, внутри zip-архива может быть свой Data\Defs\sp11_.def\0_0.png
Файлы в реальных папках имеют приоритет над zip-архивами для удобства тестирования. Рекомендуется использовать 0-е сжатие, то есть zip-архив служит контейнером. PNG-файлы и так сжаты.

https://dropmefiles.com/zjrFs


RE: ERA III - daemon_n - 23.08.2021 09:25

Berserker, Как же здорово! Невероятное событие)

Berserker, что-то не работает.
Более того даже обычная поддержка png пропала


Использовал обычное создание zip-архива через 7zip, так что сжатие есть

1. Оказывает, redirections срабатывают раньше, что требует использовать содовские имена файлов: "mmenuhs.def" вместо "zmenuhs.def" и тп.
2. После долгого тупняка немного разобрался - папка Data\ внутри оказалась обязательной
3. Сработала лишь замена Def - для остальных форматов нет ( не реализовано ещё?)

Всё - проблем больше я и не обнаружил) Разве что игра просто не запустилась без новой dll

P.S.: для Elmore (Click to View)



RE: ERA III - XEPOMAHT - 23.08.2021 10:29

(23.08.2021 09:25)daemon_n Wrote:  Использовал обычное создание zip-архива через 7zip, так что сжатие есть

На максимальном сжатии тоже работает (с png в zip показало 96% 148 ).

На Windows 2003 так же работает. Но до нуля слетели координаты bik-а в главном меню (обновлял с ERA 3.8), придётся подпереть бинарным патчем 113


RE: ERA III - daemon_n - 23.08.2021 10:37

(23.08.2021 10:29)XEPOMAHT Wrote:  На максимальном сжатии тоже работает (с png в zip показало 96% 148 ).

От это ты любишь ужать) Хотя и я скрывать не буду, что теперь, когда любые моральные рамки на количество графики сняты, пора бы напичкать сборку всем, чем только позволяет фантазия Spiteful

Помнится, ты как сказал, что ждёшь поддержку zip для какого-то важного проекта или импорта его на ERA - ждём-с Yes


RE: ERA III - XEPOMAHT - 23.08.2021 10:52

(23.08.2021 10:37)daemon_n Wrote:  Помнится, ты как сказал, что ждёшь поддержку zip для какого-то важного проекта или импорта его на ERA - ждём-с Yes

Не помню такого. Мною говорилось только об использовании png из архива, любого архива, например в проекте типа Бастион это сильно снизило бы количество файлов в папке с модом. В ERA+ png используется только на портретах монстров (в переспективе - экраны Форджа и Бастиона, т.к. и там и там готовый png с альфа-каналом, ну ещё никак не дошло дело до конвертирования легендарных хотовских кактусов в png - в прогах это пара кликов, но мне просто жалко своих мучений с конвертированием их в pcx: увы, поддержки png тогда ещё не было 112 )


RE: ERA III - Elmore - 23.08.2021 12:45

(23.08.2021 03:20)Berserker Wrote:  Реализована пробная версия поддержки zip-архивов.

120

(23.08.2021 09:25)daemon_n Wrote:  Анимированные def тоже работают отличноSpiteful

Ты же помнишь, что у меня проблема была в медленной стандартной скорости смены png кадров. Это нужно в 130 кадрах править ручками все "битые", которые в обычной gif из-за высокой скорости были не заметны105


RE: ERA III - daemon_n - 23.08.2021 13:24

Elmore, анимация в хоте тоже с такой же скоростью проигрывается, если не ошибаюсь


RE: ERA III - Sandris - 23.08.2021 14:06

А почему в сборках нет мода Morn Battlefields? Там же столько красивых полей битв.

И мод Random Backgrounds очень полезен для оформления меню, так как дает возможность использовать неограниченное количество обоев и тем игры.


RE: ERA III - daemon_n - 23.08.2021 14:36

Sandris, Morn Battlefields графика вся входит в опцию "использование новых боевых полей"


RE: ERA III - Elmore - 23.08.2021 14:44

(23.08.2021 13:24)daemon_n Wrote:  Elmore, анимация в хоте тоже с такой же скоростью проигрывается, если не ошибаюсь

Пфф, хота, старьё 96 Там та же анимация в 30 кадров сделана
Чтобы использовать png по полной для анимаций, скорость смены кадров очень нужнаSorry


RE: ERA III - Archer30 - 28.08.2021 17:15

Berserker, hi! Question from Hawaiing - is there a way to disable fast troop replacement from ERA? He wants to configure this feature but failed to find from era source


RE: ERA III - daemon_n - 28.08.2021 18:13

Archer30, that is not from ERA - that is igrik.erm + hd_wog.dll


RE: ERA III - Archer30 - 28.08.2021 18:43

daemon_n, thanks. Didn't realise it was from HD Unsure


RE: ERA III - Valery - 31.08.2021 22:19

Hi,

I saw there are new opportunities to display pics while creating dialogs with choices, like IF:G, can you point me please to some manual about?


RE: ERA III - daemon_n - 31.08.2021 22:57

Valery, that is just intext game resources' displaying support

IF:M^{~>myDef.def:0:5}^; 0 is cadre group, 5 - is cadre number (starts from 0)
IF:M^{~>myPcx.pcx}^; just pcxAb not sure, it was made for pcx 102

Quote:[+] Added support for displaying inline def-images right in texts as a part of Era Markup Language (EML).

    To embed image in text use the following tags:
    {~>def_name.def} Will display the first frame from the first group of def_name.def image in place of text cursor.
    {~>def_name.def:frame_index} Will display specified frame from the first group of def_name.def image or nothing if index is invalid.
    {~>def_name.def:group_index:frame_index} Will display specified frame from specified group of def_name.def image or nothing if index is invalid.

    Frames and frame groups are counted from 0. Frames are automatically trimmed.
    By default images are rendered "inline". It means, that they are treated as non-wrapping sequence of white space characters. Images do not allocate
    vertical space except the height of current font. But they automatically allocate necessary width.

    Images can be aligned vertically using the following attribute: valign=top|middle|bottom.
    Examples:
    {~>ava0037.def valign=bottom}
    {~>smalres.def:5}

    Vertical alignment modes:
    - 'top'. Image is drawn from the top left pixel of current character box.
    - 'middle'. Image is vertically centered relative to current text line height. This is the default mode for inline images.
    - 'bottom'. Image is drawn so, that it's bottom edge matches current text line bottom edge.

about RADIO settings: (Click to View)



RE: ERA III - Berserker - 31.08.2021 23:45

Additional interesting parts from manual:
Code:
[+] Added possibility to use animated defs in DL-dialogs. Just append " animated" to dialog item name to make it animated. Example: "Def" => "Def animated".
    Up to 10 animated defs are supported for each dialog. Animation speed is 10 frames per second. One single DEF group of frames is used.

[+] Added possibility to specify frames group index for defs in DL-dialogs. Write frame index as GROUP_INDEX * 100000 + FRAME_INDEX. Group indexes are counted from 0.

[+] Implemented horizontal text alignment support in Era Markup Language (EML).

  To specify alignment use either regular color tags with new align=xxx attribute or new tag "text".
  Possible alignment values: "left", "center", "right".

  Examples:

  {~RosyBrown align=right}Some text with(out) images{~}
  {~text align=center}Some text with(out) images{~}
  {~RosyBrown align="left"}Some text with(out) images{~}
  {~text color="RosyBrown" align="left"}Some text with(out) images{~}

  Attribute values without spaces and special chars may be written without double quotes.

[+] Implemented block-style images support for Era Markup Language (EML).

  Use "block" attribute to mark image in text as block-style. New line before and after image will be forced automatically.
  Vertical space in text is also automatically reserved for block images. Moreover, they can be partially scrolled without vanishing effect, occuring for inline images.

  Examples:

  !!IF:M^{~text align=center}{~Orange}Fire camping{~}

  ----
  {~>CDEVIL.def:0:0 valign="middle" block}
  ----

  {~>cndrgn.def:12:2 block}{~}^;

[+] Added support for 65536-color pcx images (pcx16) in DL-dialogs. Default loading mode is 256 colors (pcx8). To load image as pcx16 change its name in dialogs editor to '****.pcx.pcx16'. Real file name in lod/pac archive should be left as is. The engine will recognise new extension, transform it into '.pcx' and load image as pcx16.



RE: ERA III - Valery - 01.09.2021 00:08

wow 36

Thanks, now I am lost with the ton of information. Can you give me a short example, following a script I used in Era 2, please? So I can see the new pattern without converting to bits


How would look adding any pcx or def to a single of those options? 119


RE: ERA III - Berserker - 01.09.2021 00:51


=>



Image: image.png


RE: ERA III - Valery - 01.09.2021 01:23

Thanks, but how do I place a big def as header and below the option?

As this, empty z var?

!!VRz3&v9222<99:S^{~>smalres.def:%(RES_ORE)}^;

or simply like in your first example?

IF:M^{~>myDef.def:0:5}^;

Because I want the def to display in a IF:G dialog. Also animated defs display only in DL dialog?


RE: ERA III - Berserker - 01.09.2021 01:54

Animated defs are supported in DL-dialogs, right, though simple animated def-dialog is on approach.

You can use {~>} tags anywhere in text, though there is not so much space for images in IF:G boxes.


RE: ERA III - Archer30 - 04.09.2021 09:51

An idea of ERA + BattleReplay improvement.

How about storing every single global vars at OnBeforeBattle and restore all of them at OnBattleReplay? With this mod makers don't have to do it manually. Scripting is much easier Unsure


RE: ERA III - Berserker - 04.09.2021 16:11

Archer30, this feature may double memory requirements (let say, +200-400 MB), may create battle start delays and will not be universal anyway, because it will not touch the memory of Lua/C++/Delphi plugins. Moreover, there maybe trigger-local arrays and temporary ERT-variables, which are harder to save restore.

How many scripts do you have to adapt and how many variables to save/restore?


RE: ERA III - Archer30 - 04.09.2021 17:08

Hmm. I have to save and restore a lot. Haven't count yet

Recently, I become a co-author of the Chinese mod "Fengmo", implementating modern support to the ancient project. The amout of features of the mod is about 2 times TUM + ACM. I have to dig deep to figure out many variables. That's inefficient.

But I understand your concern. Not all players have modern PCs. That makes sense to keep it the current way


RE: ERA III - Berserker - 04.09.2021 17:30

Archer30, if we save all the memory just before OnBeforeBattleUniversal event, we will lose all changes in memory, made by scripts in this event. OnBattleReplay will restore variables to the state even before attempt to initiate battle. To my mind the whole replay feature can never support arbitrary scripts and mods even in theory. Full save and load is the most stable way.


RE: ERA III - Archer30 - 04.09.2021 18:58

Berserker, Right, I get the idea.

Looks like the issue with HE:F 1 is non-stopped...I suppose the receiver should be banned or improved.

Crashes happened with 39 hero spec boost script on leveling up.
Two reports

The most tricky part is, I couldn't reproduce the problem a few hours ago. Until now it's 100% reproduciable. Sent the save to daemon, he can't reproduce no matter what.

Any idea? 112

I start to figure out an alternative way here.


RE: ERA III - V_Maiko - 04.09.2021 19:01

Berserker, Do you think that virtual technology will ever exist that is capable of reversing in time the events caused? Sort of like a save/load state in emulators, but full scale in OS. Sorry, I was curious as for now it is impossible to make a completely faithful rollback of heavily scripted battles.
96-copy


RE: ERA III - Berserker - 04.09.2021 23:10

Archer30, your solution is ok, fixed it a bit (don't forget to add prefixes to functions).
From my researches all crashes with HE:F were produced either by artifacts plugins or by attempt to make some artifacts combo-arts or non-commander arts.

V_Maiko, that's not possible ) Not all computations can be reversed. Take integer division operation as an example.

21 : 5 = 4.
When we have 4 as result, we cannot reverse operation by 4 * 5 = 20.


RE: ERA III - Archer30 - 05.09.2021 10:06

Berserker, those are common modding attempts and should be made compatible. Perhaps replace the current HE:F 1 with the new solution? The current is poorly implemented anyway


RE: ERA III - Berserker - 05.09.2021 15:24

Archer30, the solution triggers equip/unquip events. Image if HE:F is called inside such event. We'll get untrackable crash, because of recursion.


RE: ERA III - Archer30 - 05.09.2021 15:38

Berserker, uhh, I don't get the idea. From my limited knowledge, I don't recall events that occur on equip/unequip 102 Could you explain with more detials?

Another fixing idea is to copy all aritfacts into an array and equip on a dummy hero - comparing the primary skill difference. What do think about this?

Also, we've got igrk's memory hacks. I can create arrays (quantity = max art id) with 4 elements each. But that will be a little bit too much of calculation...


RE: ERA III - Berserker - 05.09.2021 17:23

!?FU(OnEquipArt);
!?FU(OnUnequipArt);
!?AE0;
!?AE1;


RE: ERA III - Archer30 - 05.09.2021 19:50

I searched for every mod I could find in the history of ERA, listed mods used equip/unequip triggers:

Chaser (map by woodmelon)
sagamosa
The Dragon Slayer (map by woodmelon)
WoG Ultra Edition

Perhaps it's possible to make a variable for these triggers to avoid executing with certain conditions.

If that's not acceptable for implementating in ERA. I will just make it in mods 4

Edit: I was wrong Dash1 There were many mods using AE triggers. And in order to use the new method of getting basic prim skills, I have to be sure every mod is compatible with the new one, not just particular scripts.


RE: ERA III - Berserker - 05.09.2021 20:54

Anyway, the command will be able to trigger up to 18 root triggers and maybe more heavy functions instead. If it's called in a loop, it can become the source of game slowing down. I could also try to track those two events and record all changes to primary skills, but there are commands to equip artifact without event generation. Thus there is no silver bullet here. I'll add a function to Era Erm Framework, based on your code and maybe leave current HE:F implementation for compatibility reasons.


RE: ERA III - Archer30 - 05.09.2021 21:12

Thanks 96-copy Adding in Era Erm Framework is the second best I could think of

Edit: Well, just by re-considering this issue, can't you make two separated equip/unequip triggers? One for HE:F 1, the other for AE0/AE1. The equip/unequip trigger embed in HE:F 1 does not trigger AE0/AE1 - sounds good?


RE: ERA III - Bes - 09.09.2021 15:43

а где теперь мод WoG обсуждать/скачивать? 102
есть тема по WoG Scripts, есть по ERA

В самом ERA-инсталляторе теперь только последние изменения поставляются, а в папке релизов ERA последняя полная версия лишь 3.8.2 Dry
всех подсаживаете на оф.сборку, и никакой свободы скачивания частей ERA Beee

скачал чистую сборку от Панды, и там нет больше файла WoG features.htm Unsure


RE: ERA III - Berserker - 09.09.2021 23:19

Archer30, nope, I cannot.

Мод WoG и есть Эра. Здесь.
В папке релизов да, слишком муторно хранить на каждую мини-версию полную сборку. 3.9.0 будет полной.


RE: ERA III - seregazad - 10.09.2021 00:08

Друзья, не знаю в какой теме спросить. Подскажите, у друга версия героев, где абсолютно все стартуют с книгой заклинаний, то есть ее не нужно покупать(и войны и маги). Как включить эту опцию? В вог настройках такого не нашел.


RE: ERA III - Berserker - 10.09.2021 03:00

Вам сюда, скорее всего: http://wforum.heroes35.net/showthread.php?tid=5235&page=89
Очень похоже на простой скрипт.


RE: ERA III - daemon_n - 10.09.2021 03:52

Berserker, в сборке моей (Мод GEM) такого точно нет, тем не менее это может быть что-то из ERA Scripts.
Есть вариант, что у Панды было что-то подобное

seregazad, Но скрипт действительно очень простой, так что сделать несложно.


RE: ERA III - Berserker - 10.09.2021 18:09

daemon_n, не у Алгора ли в Эра скриптах что-то вроде «Все герои начинают с книгой заклинаний»?


RE: ERA III - daemon_n - 10.09.2021 18:40

Berserker, разве что с опцией "третий класс" - надо проверить.
Но отдельной опции на это точно нет


RE: ERA III - Berserker - 10.09.2021 19:06

Проще скрипт написать в пару строк. Тоже не нашёл.


RE: ERA III - Valery - 13.09.2021 13:16

Hi,

is it possible to dig into the hardcoded brute (dungeon commander) so it has a cap when giving gold after battle? I had a few times negative gold value, after really big battles.


RE: ERA III - Berserker - 13.09.2021 15:07

It will require Erm Hooker hook + fixing negative value, probably.


RE: ERA III - Archer30 - 16.09.2021 16:15

Berserker, is PM:P broken?

Looks like all the pyramid have the second parameters (checking whether a pyramid has been visited by the first parameter player) of PM:P receiver started as 1 and cannot be changed.

The returned value of (value) is 1.

Could you check that please?


RE: ERA III - Berserker - 16.09.2021 18:27

I checked the source code and run test map. The bug is not confirmed. Value is displayed as 0.


RE: ERA III - Archer30 - 16.09.2021 21:19

Sorry, false alarm...It turns out to be a "Majaczek problem" Unsure I was so deseperated when my code retuned a weird result to me.


RE: ERA III - Berserker - 16.09.2021 22:12

Not a problem )


RE: ERA III - Archer30 - 17.09.2021 03:06

Berserker, hi, looks like png support doesn't work with BattleQueue (crpsmall.def).

Mod for testing

The testing mod alters small portraits of mon id from 156 to 160. You should see different small portraints of these creatures on adv map and battle queue.

Thoughts? Unsure


RE: ERA III - Archer30 - 17.09.2021 23:27

(17.08.2021 01:20)Valery Wrote:  
(17.08.2021 00:19)Berserker Wrote:  What is broken? I don't remember, from which fix I took them )


Image: 3tqDuK.jpg

The last two pines, try them. And as they are massively used in mapmaking, imagine the loneliness

Hi Valery, it looks like they work correctly in my game. Do you have a save game or something to show the abnomiles? Thank you


RE: ERA III - Berserker - 18.09.2021 00:07

Archer30, better ask Rose Kavalier. Some sort of original def frames cloning + resizing, probably.


RE: ERA III - Archer30 - 18.09.2021 19:14

Berserker, I can ask, but I think I need to bring something for him to understand what's going on...

Do you have details about the png replacement technique for explaining the problem more precisely? Rolleyes


RE: ERA III - Berserker - 18.09.2021 20:20

We need to find out when and how RK creates creature thumbnails. Probably, RK accesses DEF pixels directly to create scaled thumbnails instead of using DrawFrame functions and scaling the result later.


RE: ERA III - XEPOMAHT - 18.09.2021 21:55

(18.09.2021 21:17)Berserker Wrote:  Кроме того, большинство всплывающих диалоговых окон с текстом и 1..3 картинками будут появляться в месте щелчка мыши, но только на экране карты приключений, экране города, экране героя, экране встречи героя и экране битвы.

Эмм... в экране города просмотр монстров теперь накрывает прирост, что выглядит неккоректно, т.к. эта часть интерфейса закрываться не должна. Ограничители в экране города рекомендуется оставить стандартными, а не 800х600.

Image: 5b31a769144d.jpg


RE: ERA III - Berserker - 18.09.2021 22:51

Всё верно. Подсказка открывается не для того, чтобы читать про анубиса выше и затем смотреть на остальных ниже с зажатой ПКМ. ПКМ для концентрации внимании на чём-то под курсором.


RE: ERA III - XEPOMAHT - 18.09.2021 23:26

(18.09.2021 22:51)Berserker Wrote:  Подсказка открывается не для того, чтобы читать про анубиса выше и затем смотреть на остальных ниже с зажатой ПКМ.

Мне казалось, как раз именно для этого. Игрок должен видеть то, что он кликает в интерфейсе игры и что расположено аналогичное по типу клика по-соседству (задумка разработчиков была именно такой). Для визуализированной части интерфейса - да, наоборот. Тогда уж делай во всех интерфейсах игры, чтобы не было двойных стандартов. 148


RE: ERA III - V_Maiko - 18.09.2021 23:43

In ERA, is it possible to integrate support for quicksave, daily saves and beforebattle saves in HD mod save folders with "Save all days" option enabled, so that each map automatically save in said folder?
(I don't know how many times I said "save" 96-copy )

It's that for me, it's not enough to use Autosave, and I always save the games in real time.


RE: ERA III - Berserker - 20.09.2021 00:03

XEPOMAHT, для универсального подхода мне нужен перехват на любой щелчок с получением верных координат в рамках центрированной зоны 800х600 или всего экрана в случае карты приключений.

V_Maiko, I don't see the task for Era engine. It's fully scripts task, if I understood you correctly. There is ERM function SaveGame, allowing to specify save name/path. There is also CreateDirectory function to create directory.


RE: ERA III - igrik - 20.09.2021 06:16

(18.09.2021 21:55)XEPOMAHT Wrote:  Эмм... в экране города просмотр монстров теперь накрывает прирост, что выглядит неккоректно, т.к. эта часть интерфейса закрываться не должна. Ограничители в экране города рекомендуется оставить стандартными, а не 800х600.
Имейте ввиду, что в game bug fixes extended.dll есть код
Code:
// центрирование изображения по ПКМ в городе на иконке найма войск (ранее уходило сильно влево, особенно заметно при игре с HD)
    _PI->WriteHexPatch(0x5D47B3, "0F BF 57 18  8B 4F 24 B8  FF FF FF FF  90");

UPD: ага, увидел, что этот патч больше не действует. Как я понял это в ЭРЕ 3.9.0 сделано? Тогда я в следующем релизе "bug fixes extended" (если он когда то будет) выпилю этот патч.
В дополнение скажу, что в нынешнем показе сообщения по ПКМ я поддержу Берса:
(18.09.2021 22:51)Berserker Wrote:  Всё верно. Подсказка открывается не для того, чтобы читать про анубиса выше и затем смотреть на остальных ниже с зажатой ПКМ. ПКМ для концентрации внимании на чём-то под курсором.
... и нынешние координаты показа сообщения именно те, что нужны. Лично я против задирания сообщения выше, как предлагает ХЕРОМАНТ


RE: ERA III - Berserker - 20.09.2021 09:44

igrik, да, в Эре 3.9.0. Если знаешь, куда безопаснее всего установить перехват на любой щелчок мыши с тем, чтобы получить вменяемые координаты в диалоге — напиши, пожалуйста. А то в героях такой дикий разброс мест появления этих ПКМ диалогов, что просто диву даёшься.

Патч можно убирать.


RE: ERA III - igrik - 20.09.2021 09:51

Сходу не отвечу. Но боюсь, что такого универсального места попросту нет. Единственное что мне приходит в голову - это конструктор диалога (0x5FEFB0). Тут можно получить и координаты, и размеры будущего диалога, что смещение правильно регулировать. Но однозначно будут трудности с получением "от куда вызван диалог".


RE: ERA III - Berserker - 20.09.2021 13:19

Где-то должно быть место, где менеджер окна отсылает сообщение активному диалогу. Но ок, пока не критично.


RE: ERA III - igrik - 20.09.2021 14:15

Вот щас я тебя не понял. Посылает сообщение какого вида?


RE: ERA III - Berserker - 20.09.2021 14:27

Сообщение — вызов виртуальной функции вида [edx+8], по сути вызов обработчика события щелчка в диалоге.


RE: ERA III - Raistlin - 20.09.2021 14:33

Berserker, можете пожалуйста подсказать, как использовать функционал, аналогичный SN:R в плагине на С++?


RE: ERA III - Berserker - 20.09.2021 15:04

Две функции экспортируются Эрой и доступны в С++ era.h файле:
GlobalRedirectFile — глобальное перенаправление (работает во всей игре, не сохраняется в сохраняемые файлы)
RedirectFile — локальное перенаправление в рамках текущей запущенной карты, сохраняется и загружается после автоматически. Собственное, его SN:R использует.


RE: ERA III - Raistlin - 20.09.2021 15:08

Спасибо, их я видел, но мне не совсем понятно, как именно передать им аргументы. В era.h это не указано, а если впрямую давать две строки, результат получается какой-то странный...


RE: ERA III - Berserker - 20.09.2021 16:40

procedure RedirectFile (OldFileName, NewFileName: pchar); stdcall;
procedure GlobalRedirectFile (OldFileName, NewFileName: pchar); stdcall;


RE: ERA III - daemon_n - 20.09.2021 17:35

Как передавать значения ассоциативных переменных через ресивер !!IP: ?
раз уж планируется отказываться от HE:W, то им должна быть альтернатива.


RE: ERA III - igrik - 20.09.2021 17:38

@Raistlin
Чё то мне подсказывает, что в era.h дополнительно нужно расширить описание функций:
PHP Code:
typedef void  (__stdcall *TRedirectFile) (const charOldFileName, const charNewFileName); 

@Berserker
Берс, ты не сможешьш поставить универсально один хук на все возможные события обработчика. Так не получится.
Есть базовый Dlg_Proc (0x5FFDE0 или 0x405610) (в виртуальной таблице это [vTable+0xC] или [vTable+0x24] не помню точно), но мне кажется в этом случае это не то.

Просто у каждого более-менее важного диалога - своя виртуальная таблица, в которой смещение до обработчика - у всех разное.
Например:
1) SwapDlg: proc = [vTable+0x2C]
2) BattleDlg: proc = [vTable+0x8]
3) TownDlg: proc = [vTable+0x8]
4) HeroDlg: proc = [vTable+0x24]
и т.д.

Я перестал понимать что именно ты хочешь сделать:
-если ты хочешь менять координаты диалога, то это нужно делать перед показом, например в конструкторе.
-а обрабатывать события кликов мыши (это в процесс диалог - 0x5FFDE0 или 0x405610).


PS: чё со временем то случилось у форума? У меня щас показывает 15:41, хотя по настоящему сейчас 19:41



RE: ERA III - Raistlin - 20.09.2021 18:13

igrik, Berserker, большое спасибо!


RE: ERA III - Valery - 26.09.2021 09:56

This is not Era 3, right? I see a bunch of preinstalled mods

Image: 1632643630.jpg


RE: ERA III - Berserker - 26.09.2021 11:14

It's assembly with Era 3 and autoupdate feature. The most used variant for now. Btw, for map-mod you could provide but file, which could run "h3era HD.exe" modlist=your_mod_list.txt


RE: ERA III - Valery - 26.09.2021 11:26

The initial idea, as Era being offered without any noise mods around was great.

Now I have to handle with all people who (try to) run my maps with "pandaidontknowwhatupgradeandgameenhancement" then complain everything is wrong. I just can't, I spent 2 months to test compatibility then this.


RE: ERA III - Elmore - 26.09.2021 11:44

This is a Panda assembly with some old version of ERA, definitely not Launcher.

Valery, In addition to clear ERA, maps compatibility, as for me, is only needed with assembly from Launcher

Just install Launcher and open full changelog in the news to see if it's "worth it." Ab

p.s. today daemon_n will most likely update ERA version in assembly


RE: ERA III - Panda - 26.09.2021 14:20

Я уже много раз говорил, что для специфичных модов/карт нужно использовать чистую сборку, либо делать её самим. Даже ведь сделал отдельную чистую сборку, а так же закрыл и удалил ссылки на свою сборку, тк больше нет возможности делать что-либо. Но раз видимо чистая сборка так же никому не нужна, то и её больше обновлять не вижу смысла.
Ну а Лаунчер версия содержит почти тоже самое, что и содержала моя сборка, отличий и изменений там кот наплакал. Хотя может за пару месяцев чего и изменилось, но это уже вопросы не ко мне, я уже ушел из команды.


RE: ERA III - daemon_n - 26.09.2021 14:43

Valery, what exactly map do you mean? I would try to test


RE: ERA III - Archer30 - 26.09.2021 18:55

Berserker, hi,

I don't understand a thing. Why does PM:P value of non-visitable tile of Pyramids started with 1 for every players' colour? (ignore the sprite. I checked without mods)
Shouldn't it be the same as the entrance?
Image: eqiI3CG.png


My script relies on this value to check whether a player has visited a pyramid object once, is brokenUnsure


RE: ERA III - Bes - 26.09.2021 19:04

а не надо ли добавить поиск входа для твоего кода?



RE: ERA III - Archer30 - 26.09.2021 19:10

Thanks!
I thought CM:P is enough to handle. It's good to learn SN:O which is nowhere to find from the English help 96-copy
x1 - x3 also work for !?CM


RE: ERA III - Berserker - 26.09.2021 23:10

ON:C can be unique for each map tile, thus you have to get objects entrance using SN:O, right.

Code:
Version 2.6
------------------------
[+] Added !!SN:O command. Get object entrance. SN:O?$/?$/?$
Initialize any three variables with object square coordinates. Pass them to command to update coordinates with right object entrance square. Thanks to gamecreator.

!?CM0;
!!CM:R0 P?y1/?y2/?y3;
!!VRv2:Cy1/y2/y3;
!!SN:O?y1/?y2/?y3;
!!IF:M^%V2 %V3 %V4 => %Y1 %Y2 %Y3^;



RE: ERA III - Archer30 - 27.09.2021 00:02

ERA 2.6 was too early before I'm into modding 96-copy

A reuquest: Could you please implement an ERM way of renaming Commander's class (from znpc00.txt) and even the biography (znpc01.txt) if it's not taking too long to do?

My plan is to add in alternative commander sprites. However, the concern of editing znpc00 stopped me completely Unsure


RE: ERA III - MaGoth - 27.09.2021 01:07

(26.09.2021 09:56)Valery Wrote:  This is not Era 3, right? I see a bunch of preinstalled mods
Image: 1632643630.jpg
возможно, хз..
я глянул там их описание только у 1 мода/плагина был скрин нововведений в соотвествующей панели, в итоге больше эту ересь никогда не открывал..
ибо читать левые тексты мне влом, всегда проще все видеть наглядно, а этого там нет.. Ab


RE: ERA III - daemon_n - 27.09.2021 06:12

    !!SN:Ex1/1/5942672/(gem_OnBeforeHeroSwap); 5AAD90 - сработает перед окном встречи и на карте, и в окне города


    !!SN:Ex1/1/5968384/(gem_OnUpdateHeroInteractionScreen); 5B1200 - работает в окне встречи постоянно

    !!SN:Ex1/1/4893738/(gem_OnAfterHeroSwap); 4AAC2A - сработает после окна встречи и на карте, и в окне города


RE: ERA III - Archer30 - 01.10.2021 11:18

I propose some more fixing ideas to be added to the skeleton transformer fix.bin.

Bone Dragons -> Bone Dragons
Ghost Dragons -> Bone Dragons
Diamond Dragons -> Bone Dragons

Blood Dragons, Darkness Dragons to Bone Dragons are already included in the current ERA.

and maybe, prevent golems, elementals and gods to be transformed. A list from GoW:



RE: ERA III - Berserker - 01.10.2021 12:56

Seems like user mod. There may be dozens of opinions on how transformator should work.
Btw, why already ghost dragon should be converted to bone dragon?


RE: ERA III - Bes - 01.10.2021 14:04

agree, undead dragon, like ghost dragon, should not be transformate to bone, imo


RE: ERA III - Archer30 - 01.10.2021 15:08

Quote:why already ghost dragon should be converted to bone dragon

Well, I'm pointing out the inconsistency of ERA.
Right now we have Green Dragons, Gold Dragons to Bone Dragons. However, Diamond Dragons to Skeletons.
Also, Blood Dragons to Bone Dragons, however, Ghost Dragons and Bone Dragons to Skeletons.
We aslo have Red Dragons, Black Dragons and Darkness Dragons all to Bone Dragons

It doesn't make sense to me why these dragons are treated differently.


RE: ERA III - V_Maiko - 01.10.2021 15:55

Archer30, So logically speaking, Skeleton Transformer returns calcium to dragons soul that themselves are no longer made of bones and have a plasma texture? It destroys an entire special body to form it from ordinary bones. That is what I understood


RE: ERA III - Archer30 - 02.10.2021 17:31

There is a WoG bug that I wish to be fixed in ERA (if it's rejected then I will do it with erm Spiteful)

The description of necro command ability - Cast Animate Dead on Level 1-5 Creatures is incorrect. The real effect is "Cast Animate Dead on a creature with no more than 50 hp".
I can't be sure whether it is the description or the effect that needs to be revised. But it doesn't make sense that from the start you are able to revive Vampires with this ability, and then later after the Vampires gained some ranks, it's no longer possible to do so. From this, I can tell fixing the ability itself to match the description is more reasonable.


RE: ERA III - Berserker - 02.10.2021 17:43

Necro commander has max monster HP set to 50, ok. The description should be fixed in txt files, probably.


RE: ERA III - Archer30 - 02.10.2021 18:18

I respect the decision Rolleyes

Another wish is to remove the dependency of z var with DL hints (DL:H).

So daemon_n wanted me to reallocate all my hints from DL text to z vars/json. I understand that is good for translation. However, having to occupy z var semi-globally is not convenient. In the interface of Trainer mod, about 50 z var have to be used in this way. Is there a plan to lift this restriction in the future? Dry


RE: ERA III - Berserker - 02.10.2021 20:40

Maybe 50 HP cap is not ideal solution. In fact, it's really not ideal solution, but it's hard to do something suitable for all mods. It seems like "no limit" was treated as imbalance by WoG Team. Maybe just remove the limit at all?

Ok, DL:H needs to be fixed. Agree, will do.


RE: ERA III - Archer30 - 02.10.2021 21:45

Remove the 50 hp cap, plus adding in creature level check? Then it would be exactly the same as the description.
I'm fine with just removing the cap too. The limit of this spell is from the power of the commander so only limited hp would be recovered in this way.


RE: ERA III - Berserker - 02.10.2021 22:51

Archer30, ok, thanks for report.


RE: ERA III - Archer30 - 05.10.2021 07:14

And thanks for accepting the idea.

I wonder your comments about here 102 Is it good or nah?

And I'd like to report a problem. It looks like the new function for getting a hero's basic primary skills is not optimised to its best and may result in crashes. Here's a player report

Getting crash on turn end with a chance

My revision, skipping WM slots and spell book, works well so far:



RE: ERA III - Archer30 - 11.10.2021 07:32

Hi! What do you think about adding FU(GetMaxArtifactId) to EEF?


So basically it will only work for ERA without extra artifact plugins only (same as GetMaxMonsterId). But it is still useful for better organsied script writing I think.

In TUM, I wrote a small fucntion for getting the last ID with emerlad 3 loaded, which suppose to be overriding this proposed function.

______

Also a reminder, it is necessary to add in wog options.json in the current ERA. ERA no longer reads zsetup00.txt for some reasons.


RE: ERA III - XEPOMAHT - 11.10.2021 07:55

(11.10.2021 07:32)Archer30 Wrote:  Hi! What do you think about adding FU(GetMaxArtifactId) to EEF?


So basically it will only work for ERA without extra artifact plugins only (same as GetMaxMonsterId). But it is still useful for better organsied script writing I think.

In TUM, I wrote a small fucntion for getting the last ID with emerlad 3 loaded, which suppose to be overriding this proposed function.


Проверять на решётку в первом символе имени артефакта - плохие костыли, а с копированием имени артефакта в z1 - оочень плохие костыли (имя можно проверить из самой структуры артефакта без подобной тормозной воговщины). Так делать не нужно. 108 Любой не знающий об этих костылях моддер может убрать решётку из имени артефакта и ваш костыльный ERM-код выдаст неправильный результат. 148

1. Для поиска последнего артефакта стоит всё же пользоваться лимитом на артефакты - для разных версий Эмералдов он разный (т.к. Феанор поленился сразу выделить память под 1000 артов).
2. Последний используемый артефакт стоит искать с конца структуры артефактов, чтобы не напороться на "дырки".
3. Артефакт можно проверять на ценность "s" - такой арт считается игрой пустым, а значит он не участвует в генерации, по факту, всегда являясь бланковым. Для особых случаев можно проверять и цену артефакта: если 0, значит бланковый.


RE: ERA III - Berserker - 11.10.2021 13:19

Нельзя по какому-то фиксированному адресу считать лимит артефактов? Явно ведь в игре много проходов по всему массиву.


RE: ERA III - Archer30 - 11.10.2021 19:18

XEPOMAHT, good advice, thanks!

As I know there is no better way to get the last art id in emerald Rolleyes Many methods would count the dummy artifacts in.


RE: ERA III - Berserker - 11.10.2021 20:18

What the point of dummy artifacts or monsters at all? Why not add artifacts linearly without gaps?


RE: ERA III - Archer30 - 18.10.2021 09:34

Good question. Rolleyes Was it started from Feanor?

I want to report another problem of the fucntion of getting the hero's basic primary skills. Spell Scrolls must be set as exceptions, otherwise we'd get bugs.

Fixed fucntion:
____

Also an optional request. Maybe setting "WoG" and "Era Erm Framework" mod forcibly loaded? I don't see how these mods would be disabled in any case. And I'm getting reports from players due to wrongly disabling these mods Fie
An option can be set in ini (whether forcbly enabling compulsory mods) if that makes you feel more ethical.


RE: ERA III - XEPOMAHT - 18.10.2021 10:56

(18.10.2021 09:34)Archer30 Wrote:  I want to report another problem of the fucntion of getting the hero's basic primary skills. Spell Scrolls must be set as exceptions, otherwise we'd get bugs.

1. Снимать арты с героя для получения первичных навыков, а потом снова одевать арты - мегакостыли. Научитесь уже читать таблицу с бонусами первичных навыков от артефактов и перестаньте страдать воговщиной. 108
2. Скриптовые функции "!!FU(UnequipArtFromSlot):P(hero)/(slot);" и "!!FU(EquipArtToSlot)&(art)<>(NO_ART):P(hero)/(art)/(slot);" скорее всего не умеют снимать и одевать на героя свитки с заклинаниями (код данных функций не известен, что и как они делают автор проблемы увы не написал, рекомендуется для этого дела всё же использовать родные содовские функции).


RE: ERA III - daemon_n - 18.10.2021 11:45

XEPOMAHT, 1. Многие арты могут быть уже заскриптованы как раз на снятие, что никак в таблице не будет отражено.


RE: ERA III - Berserker - 18.10.2021 13:17

XEPOMAHT, ага. И 2) Собственно, это переходники к содовским функциям.
Есть адрес и структура таблицы с бонусами первичных навыков и понимание, почему в воге она свая? Потому что в оригинальной нет новых артефактов?

Archer30, which bugs did you mean with spell scrols?


RE: ERA III - XEPOMAHT - 18.10.2021 14:04

(18.10.2021 13:17)Berserker Wrote:  2) Собственно, это переходники к содовским функциям.

И где посмотреть-то что там понакручено???

Дать артефакт в слот герою - вызов 4E2C70h
Забрать артефакт из слота героя - вызов 4E2E40h

В обоих функциях арт проверяется на свиток и работает обновление заклинаний, даваемых артефактами.

(18.10.2021 13:17)Berserker Wrote:  Есть адрес и структура таблицы с бонусами первичных навыков и понимание, почему в воге она свая? Потому что в оригинальной нет новых артефактов?

Эмм... тогда это что такое в воговских сорцах:

1. Базовый адрес таблицы, которую можно читать с помощью UN:C

Code:
// бонусы артифактов
    {0x4E2D26,DP(ArtBonus),4}, //

2. Собственно, перенесённая вогом таблица (Эмереал переносит её точно так же, поэтому разницы не будет, если конечно... Берсеркер опять против базовой адресации):

Code:
// Artifact
_ArtSetUp_ ArtTable[ARTNUM];
char       ArtBonus[ARTNUM][4];
char       ArtBonusAdd[ARTNUM-ARTNUM_0][4]={// новые артифакты
    {0,0,0,0},
    {0,0,0,0},
};



RE: ERA III - Archer30 - 18.10.2021 14:04

Berserker, there was no "/(art)>=(ART_CENTAUR_AXE)/(art)<1000" from the original function. The function will try to unequip scroll and equip back - thus results in problems.


RE: ERA III - Berserker - 18.10.2021 22:23

XEPOMAHT,


Из кода сразу видны два адреса: 4E2C70, 4E2E40. Собственно, ты критикуешь то, что предлагаешь.

Quote:2. Собственно, перенесённая вогом таблица
HE:F../../../../1 с этой таблицей работает, но весьма сбойно, если командирский артефакт назначить слоту, например. Что с таблицей делают плагины артефактов не проверял. Просто люди жалуются на вылеты. Ещё любой код в событии Одеть/снять артефакт может реализовать собственные бонусы. Такие бонусы отловить только способом одел/снял всё можно.

Подозреваю, что проблема свитков в другом. Номер заклинаний хранится ведь в отдельном поле. Нужно тестировать, да времени пока нет.


RE: ERA III - XEPOMAHT - 19.10.2021 07:26

(18.10.2021 22:23)Berserker Wrote:  Из кода сразу видны два адреса: 4E2C70, 4E2E40. Собственно, ты критикуешь то, что предлагаешь.

Как раз наоборот: я попросил твой код, который вызывает функцию одевания артефакта. Сейчас смотрю его и вижу, что вызов у тебя организован неправильно, от чего и портятся свитки. Spiteful

А именно, на функцию должен подаваться адрес 8-байтного куска памяти, в котором должны быть записаны идентификаторы артефакта и свитка. Ты же подаёшь 4-байтный номер артефакта, что естественно будет приводить к записи мусора в структуру героя, где хранится свиток, одетый на героя. А ERM-то с такими весёлыми штуками работать не умеет, поэтому для вызова 4E2C70 потребуется отдельная ERM-команда с соответствующим переходником (на худой конец можно использовать переменные v1 и v2, сохраняя их значения в переменные y, посылая адрес v1 на функцию, а затем восстанавливая v1 и v2 после вызова, но это уже как-то смотрится кастыльновато...). Spiteful Твоя текущая реализация в виде "!!SN:E5123184/(CALLCONV_THISCALL)/(heroStruct)/?(art)/(slot);" всегда будет приводить к ошибкам в структуре героя.


RE: ERA III - Bes - 19.10.2021 08:32

XEPOMAHT, 132 красавчик,этих молодых надо иногда осаживать,чтоб не зазнавались



RE: ERA III - Berserker - 19.10.2021 15:42

XEPOMAHT, точно, забыл что там указатель на структуру ArtType/ArtSubType, исправлю, спасибо!


RE: ERA III - Archer30 - 22.10.2021 08:46

A suggestion of UN:I placing object command:
An additional parameter can be added to switch between "using the coordinates as the bottom right of the object" and "using the coordinates as the entrance of the object".
It is a little bit tricky to explain, but I will try.

Currently, the main purpose of this command is for object replacement. For example, in the Object Replacement Template, it's used for placing a replacement object after removing the original with UN:O. However, when I use it in the template, it isn't convenient enough. In the template, an X coordinate offset and Y coordinate offset have to be set since the UN:I command generates the new object using the the given coordinates as the bottom right of the object, instead of using as the entrance.

Take Library of Legends (dwelling of Emissary of Lore) for example. By searching this object with the object replacement template, we get the coordinate of the yellow tile. By placing an obejct with exactly the same passability, we've got to set X coordinate offset and Y coorindate offset to 1.

Image: irjt10F.png
Yellow: Coordinate of the original obejct (get from function)
Red: New object would be placed with Red in the given coordinate

These offsets vary among objects. A script writter has to check the object manually from the map editor to make sure the object is placed correctly. Back to my suggestion, if there is a way to place an object using the given coordinate as the entrace, such trouble can be avoided.

What do you think about the idea Rolleyes


RE: ERA III - Berserker - 22.10.2021 12:08

Archer30, what if object has two yellow squares?


RE: ERA III - Archer30 - 22.10.2021 12:25

Berserker, what's the algorithm for SN:O in this case? I suppose only the same needs to be used


RE: ERA III - XEPOMAHT - 22.10.2021 14:02

(22.10.2021 12:25)Archer30 Wrote:  what's the algorithm for SN:O in this case? I suppose only the same needs to be used

На стандартном ERM рассчитать разницу координат разве проблема? В ERA+ данный двеллинг уничтожается и перестраивается без проблем.


RE: ERA III - Berserker - 22.10.2021 16:59

Archer30, SN:O probably returns the first found yellow square.


RE: ERA III - Archer30 - 22.10.2021 17:30

Yup. In most situations, a script writer would prefer UN:I placing an object from the first yellow square, instead of the square at bottom right. That's my conclusion.


RE: ERA III - Archer30 - 24.10.2021 19:00

A possible bug with DW:G setting guards on Elemental Conflux (external dwelling that allows you to recruit all 4 elementals). Looks like DW:G is correclty used, but the dwelling is still not guarded.
Note that by using only the get syntax of DW:G, you can see that elemental conflux is guarded by default, just the battle doesn't get initilaised for some reasons.

Code:

Also a question:
Is there a way to check whether a png exists in data\*.zip?
Needed this to make sure the script runs without an error.


RE: ERA III - XEPOMAHT - 24.10.2021 20:12

(24.10.2021 19:00)Archer30 Wrote:  A possible bug with DW:G setting guards on Elemental Conflux (external dwelling that allows you to recruit all 4 elementals). Looks like DW:G is correclty used, but the dwelling is still not guarded.

Клетку входа в генератор монстров кто будет получать? Пушкин?


RE: ERA III - Berserker - 24.10.2021 22:53

Archer30, use SN:O first.


RE: ERA III - Archer30 - 25.10.2021 09:26

Berserker, that ain't work out Unsure


RE: ERA III - Bes - 27.10.2021 15:33

Berserker, DEE уже не будешь адаптировать под переделанную структуру скриптов ?
я тут хотел по-старинке с ней подгружать/обновлять на лету имеющиеся в памяти скрипты, но увы, не получается...
(подгрузить из памти, добавить кусочек и вновь вбросить, без правки исходного файла скрипта в папке)


RE: ERA III - Berserker - 27.10.2021 18:13

Bes, нет, DEE уже бессильна.


RE: ERA III - Valery - 28.10.2021 10:39

Hi guys, is there anything can be done about resizing the dialogs as they were in Era2 ? Because I am stuck with dozens of such failures:

I replaced fonts and they work for IF:G dialogs but not for the others




RE: ERA III - Berserker - 28.10.2021 16:52

Try with wog_native_dialogs.era disabled. If dialog width is ok in this case, it's Era core changing.


RE: ERA III - Valery - 28.10.2021 17:52

Yes! that fixed it, thanks Sm


RE: ERA III - igrik - 03.11.2021 16:51

(28.10.2021 10:39)Valery Wrote:  Hi guys, is there anything can be done about resizing the dialogs as they were in Era2 ? Because I am stuck with dozens of such failures:

Image: Untitled-2.jpg

Fixed!
Wog Native Dialogs is updated on GitHub.


RE: ERA III - Valery - 04.11.2021 13:15

igrik, thanks 118


RE: ERA III - daemon_n - 05.11.2021 15:51

Если вызвать popup диалог на ЛКМ, то он отобразится в том месте, где был последний раз вызван popup на ПКМ


RE: ERA III - Berserker - 05.11.2021 18:21

Пример кода, пожалуйста.
Popup-диалог виден только при зажатой правой кнопке мыши, он и должен быть в той же позиции.


RE: ERA III - daemon_n - 05.11.2021 18:24

Berserker,


кликать на слоты боевых машин
скинул видос в дискорд


RE: ERA III - Bes - 08.11.2021 01:07

(15.08.2013 21:09)feanor Wrote:исправление анимации 72 (DeathCloud) для ERM.
Теперь при вызове её с помощью BM:V она появляется на стеке, а не где-то cнизу поля

Berserker, проверил на ERA, баг так и живёт Dry видимо ты упустил этот фикс в своё время.
будет время, исправь Kap
(в добавок, анимация станет нормальной, а не с полупрозрачностью)


RE: ERA III - Valery - 08.11.2021 10:23

The last Era installation comes without WoG scripts mod....


RE: ERA III - Berserker - 08.11.2021 11:50

Valery, starting from Era 3.0.0 WoG Scripts/Yona/Secondary Skills Scrollings and Fast Battle Animation mods are not part of Era installer.


RE: ERA III - Valery - 08.11.2021 12:12

Well, this puts an end to any mods written before. People download the Era gaming build, of course my mods don't work with because the "load only these scripts" is obsolete now. Then I redirect these people to download Era 3 alone, they report mods not working. Then they have to search wog scripts online, which isn't easy, and when they finally find it, they install then report again errors because they didn't know (how should they) that WoG scripts has to be under other mods, for priority.

In all, this became a chaotic state of Era, and I really don't understand such radical decisions who harm everything coded for previous versions.
I came to regret the time I spent on, which now looks like a terrible waste.


RE: ERA III - Bes - 08.11.2021 13:19

решение Berserker'а понятное и логичное, дабы избавить себя, как разработчика ERA, от лишних морок с прочими модами...
Но дабы не возникали вот такие накладки, как описал Валерий, можно же рядом с ссылкой на скачивание ERA размещать и ссылку на глобальный WoG Scripts мод...
Приоритеты расстановки базовых модов уже надо расписывать авторам тех карт/модов, которые и используют WoG Scripts как основу.


RE: ERA III - Berserker - 09.11.2021 16:38

Valery, upload your own self-extracting exe-archive with any Era version, packed with arbitrary mods, Mods\list.txt, HD mod and what so ever, and redirect everyone to the link.
Just let me know if you need any help with package making.

You may go further and upload the whole own working assembly. Why should I maintain forever the same old ERM 1 mods set, same engine, same scripts, etc? When I want to play any game, I have to download dozens of actual mod versions manually or use ready-to-use package, but I never write to scripts engine author, that he/she must keep everything the same for years in a single package. Besides, Era 3 is major change from Era 2, I didn't touch any Era 2 package contents.

Just think about it. I do not fix bugs in WoG Scripts and do not maintain old mods at all. It's reasonable, that it's not my task and my sphere of interest. It's a global tendency to extract code/data into reusable blocks to be able to update blocks by different people. Now many other people participated in modding by writing their own fixes, updates. Nobody expect me to review and include their patches in the main package.

Whenever you want fixed set of mods (not more, not less), make your own assembly/package and do not blame the others. I don't make such packages anymore and use the one from Panda or daemon_n.

If you want to freeze something (core engine version, mods lists), the only way without distributed package manager is to host your own version of the game.


RE: ERA III - daemon_n - 14.11.2021 08:45

Предлагаю для ExecErmCommand добавить поддержку констант и вставку из буфера обмена, если возможноRolleyes

Всё чаще игроки жалуются на зависание игры, связанное с переполнением и уходом в минус AI_Value. Есть возможность повысить лимит или что-то иное придумать с этим?


RE: ERA III - Berserker - 14.11.2021 11:27

Константы существуют лишь на этапе прекомпиляции, ExecErmCmd очень прост в реализации.
AI_Value можно рискнуть поделить все на определённое число.


RE: ERA III - Archer30 - 16.11.2021 07:17

Berserker, I wonder if the variable synchronization mechanism (to a remote PC) can be improved.

From my tests, there is no decent way to keep the variables synchronized. The timing of using IP/FU:D command for passing variables are strict and inconvenient.

Code for Testing:
By pressing 4, variables are sent to the other PC
By pressing 5, examine the variables that passed
Ideally, when I press 4, the variables are defined and passed to another PC, and I should be able to examine these vars by pressing 5 on another PC. However, it looks like this code doesn't work outside of battle, which makes it inconvenient and not being able to use in some cases.

What's the ideal timing for passing and receiving variables as for now? I've done some tests with the list of triggers by Algor, please find the result here:

Начало боя (с тактической фазой)
Conclusion:
Earliest timing for sending variables to another PC: OnBeforeBattlefieldVisible
Earliest timing for receiving variabels: OnBattleRound & v997=0


From my tests, there is a gap between sending and receiving variables, for example, you can't send at OnBeforeBattlefieldVisible and check at the same trigger on another PC, the variables are not passed yet. The main problem I need help is:
Is there any chance to have variable received on another PC earlier than OnBattleRound & v997=0 ?

Receiving at BR is very late, which is later than Tactic Phase. The variable I wanted to pass is the stats of henchmen. With timing later than Tactic Phase, it just doesn't make sense - the henchman stack has to be generated at BR since the variables are only synced at this phase, and obviously, players won't accept popping up a new stack after they managed every stack on the battlefield.


RE: ERA III - Berserker - 16.11.2021 17:21

Archer30, sorry, seems like there is no easy solution currently. The best solution would be probably automatical saving and full save game transfer before battle, but I cannot implement it currently.


RE: ERA III - daemon_n - 16.11.2021 17:45

Berserker, так а дать возможность работать ресеиверу !!IP начиная с триггера !?IP можно?


RE: ERA III - Berserker - 16.11.2021 18:23

Он работает в любое время. Данные отправляешь. Но их никто не принимает или не принимает не в том время. Нет точки синхронизации.


RE: ERA III - Archer30 - 17.11.2021 04:54

Berserker, thanks, I understand. I will try to arrange the timing of henchman in PVP with existing tools.


RE: ERA III - Berserker - 17.11.2021 12:23

Archer30, thanks for you for detailed report. In fact it's a great problem, I made notes about it.


RE: ERA III - Archer30 - 28.11.2021 22:11

Berserker, I wonder if setting -1 in json for disabling main menu video can be improved

Code:
{
  "era": {
    "acredit_pos": {
      "x": "-1",//main menu position
      "y": "-1"
    }
  }
}

It works well for disabling the video. However, a side effect is that it also blocks the interaction with "Credit" button from the main menu.


RE: ERA III - Berserker - 28.11.2021 23:07

Yep, already saw the effect. Thanks.


RE: ERA III - Archer30 - 04.12.2021 16:57

Berserker, hi, I propose an improved version of tutorial to be included in ERA.

What's been changed?
- Fixed the invalid TM1 triggers (now replaced with OnEveryDay)
- Added a new obstacle on the path to the shrine. It will be removed after triggering the event in the shipyard. This is for helping new players finding the location of the event (minimise the area they should look for).
- Added missing hint text of the Forgotten Shine.
- Corrected the description of putting creature on the map (now use Ctrl + Right-clicking)

Download:
Google Drive

____


Also I would like to report a small bug of the description from changelog

Quote: !?FU(...); some event
    !!FU(BH_GetHeroSecSkill)/(HERO_XERON)/(SKILL_FIRST_AID)/?(xeronFirstAidLevel:y); so what's the level of First Aid skill Xeron has? )

The
Quote:!!FU(BH_GetHeroSecSkill)/(HERO_XERON)/(SKILL_FIRST_AID)/?(xeronFirstAidLevel:y);
should be
Quote:!!FU(BH_GetHeroSecSkill):P(HERO_XERON)/(SKILL_FIRST_AID)/?(xeronFirstAidLevel:y);



RE: ERA III - Berserker - 05.12.2021 03:47

Included updated tutorial and fixed changelog description. Thank you very much.


RE: ERA III - daemon_n - 13.12.2021 14:14

Данный синтаксис не определяет текст нормально из ert файлов - вместо текста отрицательные цифры:

С этим всё нормально:

   Это ожидаемое поведение, или задумано распознавание ert строк?

UPD: Думаю, ожидаемое


RE: ERA III - Berserker - 15.12.2021 00:40

Интерполяция (подстановка значений переменных внутри строк) производится только при синтаксисе вида ^%z...^. В остальных случаях будет выведен текст переменной «как есть».


RE: ERA III - daemon_n - 15.12.2021 11:18

Berserker, агась - осознал это буквально на следующем рассмотренном примере) Ничего - повторенье - мать ученья


RE: ERA III - daemon_n - 15.12.2021 16:39

!?FU(OnBeforeHeroInteraction); не работает, когда оба героя ИИ

UPD: Ощущение, что !?HE$$; вообще не работает, если оба героя ИИ
Поправка - если нападение, то работает - а вот обмен - нет


RE: ERA III - Berserker - 15.12.2021 22:25

Очень интересно, спасибо.


RE: ERA III - daemon_n - 18.12.2021 00:59

Berserker, теперь ясно, что за проблемы с получением объекта на карте.

в последней версии ERA сломалась функция получения подтипа объекта


При наведении на героя возвращает x5 = -1
!!OB:U?; и прочее тоже поломаны

я понял - игра получает тип и подтип объекта под героем. Даже если навести на героя, подтипом будет подтип объекта под ним.
проверял на wog+eef


RE: ERA III - XEPOMAHT - 18.12.2021 15:08

(18.12.2021 00:59)daemon_n Wrote:  я понял - игра получает тип и подтип объекта под героем. Даже если навести на героя, подтипом будет подтип объекта под ним.
проверял на wog+eef

Всегда так было ещё со времён SoD. При посещении героем объекта в структуре клетки карты подменяется тип объекта на тип героя, сам тип объекта пишется в структуру героя. Подтип не изменяется. Давно стоило бы привыкнуть к этому.


RE: ERA III - daemon_n - 18.12.2021 15:10

XEPOMAHT, не могу согласиться.

Ещё в недавних версиях, когда наводил мышкой на героя, подтип при типе "герой" (34) возвращал номер этого героя.

Так что явно что-то сломалось


RE: ERA III - XEPOMAHT - 18.12.2021 15:15

(18.12.2021 15:10)daemon_n Wrote:  Ещё в недавних версиях, когда наводил мышкой на героя, подтип при типе "герой" (34) возвращал номер этого героя.

Так что явно что-то сломалось

Через подтип всегда было недостоверно, от чего скрипты и глючили. Номер героя в координатах всегда можно узнать с помощью !!HE:N, которая читает его напрямую из структуры героя, игнорируя подтип.


RE: ERA III - daemon_n - 18.12.2021 15:55

XEPOMAHT, так а смысл мне лезть в HE:N, если я не могу быть уверен, что направляю на героя?))

В общем, для себя нашёл такое решение:




RE: ERA III - XEPOMAHT - 18.12.2021 16:07

(18.12.2021 15:55)daemon_n Wrote:  так а смысл мне лезть в HE:N, если я не могу быть уверен, что направляю на героя?))

Проверяешь на тип герой или лодка, затем получаешь структуру кликнутого героя. Ну или поставь перехват на хинт по герою на карте и добавь новый ERM-триггер, где ничего проверять уже не надо - игра сама всё делает. Понадобиться только знание Ассемблера (ну или Дельфи/Си, кому что ближе). В в самом новом тригере делай что хочешь уже на ERM.


RE: ERA III - daemon_n - 18.12.2021 16:30

XEPOMAHT, там может быть - нет объекта или 0


RE: ERA III - Archer30 - 22.12.2021 18:07

Berserker, I didn't test myself, but there is veteran PVP player reported that Death Stare is much less triggering in MP (or local MP, eg TCP/IP with 2 instances).

For example, 10 Archangel vs 100 Mighty Gorgon. It triggers about 1 out of 5 attacks. In single player, it triggers at about 90% of the time instead.

I suspect that has to do with the new random number algorithm. Do you come up with anything that could be related to? Thanks


RE: ERA III - daemon_n - 22.12.2021 18:33

i ve tested. Confirmed.


RE: ERA III - Archer30 - 25.12.2021 07:33

My guess is, in the original H3, with each single Mighty Gorgon, the chance of triggering Death Stare is calculated for each one of them (with 1/10 chance each). If one of the 1/10 is triggered, then Death Stare would be cast in this attack.

In Era 3, the new random number algorithm allows generating the same random number at a time, which results in the random number of each Gorgon being the same as the first one. So the chance of triggering Death Stare becomes 1/10 instead of 1/10 for each.

____


And I have a request. Can we have a value for "not displaying a picture" in IF:N dialogue? Needed that since my amount of picture was dynamic. As for now, looks like I have to write 8 different IF:N lines for picture amounts from 1 to 8.


RE: ERA III - Berserker - 25.12.2021 11:51

Quote:the new random number algorithm allows generating the same random number at a time
Only for multiplayer PvP battle.

We can. Set all 8 items to NO_PIC_TYPE/0 or something like that. I got your point?


RE: ERA III - Bes - 27.12.2021 02:17

Berserker, ты бы это... обозвал уже пошедший по рукам последний мини-релиз ERA3, а то эти фразы в истории обновлений "ERA обновлена до последней версии" ну совсем несерьёзно, только суматоху вызывает Unsure ща будут как по-старинке, по crc сравнивать у кого она таки самая "последняя"


RE: ERA III - daemon_n - 27.12.2021 04:51

Bes, на данный момент можно сравнивать по моду на случайные обои116


RE: ERA III - Berserker - 27.12.2021 13:07

Bes, да 3.9.2 это ещё недовыпущенная. Обзову скоро.


RE: ERA III - Berserker - 27.12.2021 23:15

Короткое обновление, пока без оформления:

https://dropmefiles.com/HkyPw

Code:
Version 3.9.2 (12/2021)
------------------------
[+] Implemented palette colorization support for def png frames.
    The rules are the same, as for pcx png replacements. Png file should either use special 32 reserved colors or there should exist alternative png file named "groupInd_frameInd_p[player index].png". Example: "dialgbox.def/0_0_p3.png". Alternative files are not used if single png frame redirection is used.

[+] Added new "OnAfterBuildTownBuilding" event, occuring right after town building was built.
    x-parameters: Town ID, Building ID.

[+] Added new "OnKeyReleased" event, occuring on keyboard key release.
    Parameters: keyCode, preventDefault.

    Example:

    !?FU(OnKeyReleased);
    !#VA(key:x) (preventDefault:x);
    !!IF:M^Released key %(key)^;

[+] Added new events to Era Erm Framework: "OnKeyReleased_AdvMap", "OnKeyReleased_Battle", "OnKeyReleased_HeroScreen",
    "OnKeyReleased_HeroMeetingScreen", "OnKeyReleased_Town", occuring right after "OnKeyReleased" events and taking two arguments:
    x1 - key code
    x2 - prevent default reaction (0 - no, 1 - yes).

    Example:

    !?FU(OnKeyReleased_Battle)&x1=(KEY_F1):;
    !#VA(key:x) (preventDefault:x);

    !!VR(preventDefault):S(TRUE);
    !!IF:M^Released F1 in battle!^;

[+] Added the following functions to Era Erm Framework:

  !?FU(H3Dlg_GetCurrentDlgId);
  ; Returns topmost dialog unique ID (DLG_XXX constant). It may be message box, custom dialog or any in-game dialog.
  !#VA(result:x);

  !?FU(AddArtToHero);
  ; Adds artifact to hero, trying to equip it first and fallbacking to putting in backpack. Returns success flag.
  ; Automatically builds combo arts and checks scenario win conditions.
  !#VA(hero:x);   ID of hero to equip artifact to.
  !#VA(art:x);    ID of artifact to equip.
  !#VA(artMod:x); Artifact modifier or (NO_ART_MOD). For spell scrolls its spell ID. For other artifacts the value is usually ignored.
                ; Custom artifact modifiers may be implemented. Artifact modifier is always carried with artifact by game functions.
  !#VA(result:x); Boolean. Success flag.

  !?FU(GetArtAtSlot);
  ; Returns hero artifact and artifact modifier at given slot.
  !#VA(hero:x);   Hero ID or (CURRENT_HERO)
  !#VA(slot:x);   Slot ID (backpack is supported).
  !#VA(artId:x);  OUT. Artifact ID.
  !#VA(artMod:x); OUT. Artifact modifier.

  !?FU(ChangeArtModAtSlot);
  ; Changes artifact modifier in specified hero slot. Usually modifier is spell ID for spell scrolls or (NO_ART_MOD).
  !#VA(hero:x);   Hero ID or (CURRENT_HERO)
  !#VA(slot:x);   Slot ID (backpack is supported).
  !#VA(artMod:x); Artifact modifier.

[+] The following functions were changed in Era Erm Framework:

  !?FU(EquipArtToSlot);
  ; Tries to put artifact to specified hero doll slot, triggering OnEquipArt event. Returns success flag.
  !#VA(hero:x);   ID of hero to equip artifact to.
  !#VA(art:x);    ID of artifact to equipt.
  !#VA(artMod:x); Artifact modifier or (NO_ART_MOD). For spell scrolls it's spell ID. For other artifacts the value is usually ignored.
                ; Custom artifact modifiers may be implemented. Artifact modifier is always carried with artifact by game functions.
  !#VA(slot:x);   ID of hero doll slot to put artifact in or (NO_ART_SLOT) for autodetection.
  !#VA(result:x); Boolean. Success flag.

  !?FU(GetHeroPrimarySkillsWithoutArts);
  ; ...
  The function correctly handles artifact modifiers now, including spell IDs of magic scrolls.

[+] Added KEY_ENTER constant to Era Erm Framework, as alias to KEY_RETURN.

[+] Added new exported functions to era.dll:
  - PcxPngExists (const PcxName: pchar): integer; stdcall;
    Tries to load PNG replacement for pcx file name and returns success flag (0 or 1).

[+] Added support for LMB popup dialogs positioning at click coordinates.
[+] Included updated zutorial.tut file by Archer.
[-] Fixed crash in OnAICalcStackAttackEffect event, occuring on attempt to get tower stack ID by invalid position (251, 254, 255). Credits: daemon_n.
[-] Fixed bug: composite images with pcx16 background didn't use to respect pcx redirections.



RE: ERA III - daemon_n - 28.12.2021 05:35

Спааааасибо! Пойду всех просвещать о новых возможностях для артефактов! Уж я-то такого себе навообразил 148


RE: ERA III - PerryR - 28.12.2021 09:14

The functions for artifacts are great! Oh if these had only been available earlier, well its not to late Sm
Thanks for the release


RE: ERA III - Berserker - 28.12.2021 12:22

daemon_n, PerryR, спасибо )


RE: ERA III - wessonsm - 03.01.2022 19:14

Без msg-файлов не работает стандартный воговский редактор h3wmaped.exe - все карты отображаются без большинства объектов.
Но хорошо работает редактор от RoseKavalier.
Это так задумано?


RE: ERA III - XEPOMAHT - 03.01.2022 21:03

(03.01.2022 19:14)wessonsm Wrote:  Без msg-файлов не работает стандартный воговский редактор h3wmaped.exe - все карты отображаются без большинства объектов.
Но хорошо работает редактор от RoseKavalier.
Это так задумано?

Да, патч от RoseKavalier-а работает без msg, что сделано очень правильно. Стандартный воговский редактор карт потребует msg - древние и ненужные воговские костыли. В ERA+ патч для редактора карт - h3wmapedpatch.dll, использует msk, но в самом h3wmaped.exe msg всё ещё остаётся, т.к. модами нельзя менять exe, это может сделать только Берсеркер в базовой комплектации ERA.


RE: ERA III - Berserker - 03.01.2022 23:01

wessonsm, а я думаю, ну что за фигня у меня? В сборке Димы объекты видны, в моей — нет. Так, мне говорили, что файлы уже не используются. Спрошу RoseKavalier, что нужно пропатчить.


RE: ERA III - Berserker - 04.01.2022 00:34

Спасибо RK, пробуем исправление: https://dropmefiles.com/l149Y


RE: ERA III - XEPOMAHT - 04.01.2022 01:04

(04.01.2022 00:34)Berserker Wrote:  Спасибо RK, пробуем исправление: https://dropmefiles.com/l149Y

Работает! Огромное спасибо. 119


RE: ERA III - gamemaster - 18.01.2022 21:58

@Berserker

Can you provide source code of FastRand.pas so i can port latest version to Delphi 11.


RE: ERA III - Berserker - 18.01.2022 23:18

gamemaster, glad to see you.

Done.


RE: ERA III - Archer30 - 24.01.2022 06:32

Berserker, hi! Reporting a bug with mouse trigger - creature info dialogue.


In order to reproduce this bug, you'd like to do the following:
1. Open any town screen
2. Open any creature dialogue from the town screen
3. Close the creature dialogue
4. Right-click on any item and release it.

Here you go, on the right mouse releasing, there should not be anything triggered at all. However, here we got the left-release info on the screen.

Screenshot:



RE: ERA III - Berserker - 24.01.2022 18:05

Tested, confirmed. Though, not planning to fix in the near future, due to time lack. Maybe Heromant or igrik could find the reason.


RE: ERA III - Archer30 - 06.02.2022 06:14

Berserker, I understand, thanks!

Looks like HE:X2 mithril spec does not have a definition in the game. It does not give extra mithril, but set the spec icon to mithril however. Perhaps that can be improved?
At the moment I use a function for fixing the effect of giving daily mithril. FU:A is awesome 96-copy


RE: ERA III - daemon_n - 06.02.2022 13:21

Archer30, that's because mithril isn't resource in the game. It is just int array, which initialized at the map start. It even hasn't mines or other objects. So any mithril operations should be made by manually. I mean, that's how it's going now.


RE: ERA III. Новые версии - AntonyK - 08.02.2022 21:51

Berserker, Привет, раскажи пожалуйста мне, как правильно разрушать города и строить на его месте другой, который нужен, а то я не нашел нигде информации, а все строения разрушил, и вроде как подождал одну игровую неделю, но ничего не происходило, просто появилось строение в виде кузницы, и там привидения, а как дальше я не знаю. Очень надеюсь на твой ответ.


RE: ERA III. Новые версии - Berserker - 08.02.2022 22:11

Привет. Это тебе в Discord-сервере у ребят лучше спросить. Я уже давно не играл с разрушением городов.
https://discord.com/invite/bvfJGZe


RE: ERA III - daemon_n - 09.02.2022 08:36

AntonyK, всё правильно. В кузнице надо нанять привидений. Затем выбрать тип города


RE: ERA III - Bes - 09.02.2022 09:43

AntonyK, Berserker, пройдите обучение в игре, оно как раз про разрушение и внимание к тексту,который при этом выводится на экран116


RE: ERA III - daemon_n - 10.02.2022 19:40

есть проблема с !!RD:Cd/d/(тут);
если установить число слотов более 2, то переключение между всеми слотами выставляет число доступных для найма существ от последнего кликнутого слота;

при этом проверка на количество возвращает иное (нормальное) значение.

код для проверки:




RE: ERA III - Berserker - 11.02.2022 00:40

daemon_n, помимо num тебя должно интересовать ещё и sourceId — источник монстров для слота. Если поставить всем 4-м слотам пользовательский уникальный sourceID, то будут 4 разных счётчика. Если нужно 4 альтернативы с одного счётчика, то всем один sourceId.

Если есть два слота с одним источником количества — строением из города, то хоть 50 раз меняй значение на случайное, будет в итоге одно значение для обоих слотов.


RE: ERA III - daemon_n - 11.02.2022 00:46

Berserker, понял. В справке этот момент я упустил либо опустил102


RE: ERA III - Berserker - 11.02.2022 04:50

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


RE: ERA III - wessonsm - 14.02.2022 20:31

Эра обрезает справа текст описания сценария в окне выбора сценария.
Я сначала думал, это у меня с русификатором что-то, но потом чистую Эру запустил, нет, там то же самое:



RE: ERA III - Bes - 14.02.2022 22:35

хм, на ERA3.8 та же фигня - обрезает
на 2.9.14 всё норм

запустил без плагинов вообще (кроме buttons.era), только чисто WoG
проблема осталась
выводы делайте сами


RE: ERA III - daemon_n - 15.02.2022 01:49

Дело в том числе и в шрифтах.


RE: ERA III - wessonsm - 15.02.2022 15:37

И описание сценария в окне новой кампании тоже:

А с полосой прокрутки нормально:

Мне кажется, я догадываюсь, дело в этой полосе прокрутки. Она невидимая, но место под нее все равно выделяется!


RE: ERA III - Berserker - 16.02.2022 11:19

Quote:Мне кажется, я догадываюсь, дело в этой полосе прокрутки. Она невидимая, но место под нее все равно выделяется!
Очень может быть, пометил себе, спасибо.


RE: ERA III - Archer30 - 21.02.2022 07:52

Suggesting a new hook for ERA/Era Erm Framework

OnLeaveTroopsOnAdvMap
Author: Hawaiing

This trigger is at the timing after leaving a stack on the map by Ctrl + Right-clicking (with the hard-coded wog option). The purpose is to get the coordinates of the left stack by a hero.

This is essential for many events. For example. in Mixed Neutral Mod, we have an option to prevent neutrals from escaping.

As we see from the code, the absence of checking whether a stack was left by a hero makes it possible to fight a left stack to achieve unfair advantages (farming exp/commander arts, etc.). Another example is stack growth. Leaving a stack on the map on Sunday will grant you more troops on Monday, which is not what we wish to see. As I can tell, checking whether a stack was left by a hero is so important whenever manipulating a stack, thus my proposal is to add the function/hook in Era instead of another mod.


RE: ERA III - Berserker - 21.02.2022 08:37

Archer30, thanks for suggestion and code.


RE: ERA III - Berserker - 23.02.2022 21:11

Quote:Is it possible to improve the algorithm of auto ending to supoort Asian characters somehow? I appreciate for your help
Write me if it's crucial for your script.


RE: ERA III - Archer30 - 23.02.2022 21:13

Berserker, thanks! The issue was resolved. The function works perfectly only I used the wrong value.


RE: ERA III - Archer30 - 28.02.2022 07:32

Berserker, hi! I wonder if it is possible to raise the limit of items in a single section of wog options menu. It can have a max of 20 items at the moment.
As you see from the picture. If I add in more options to the red area, the new options won't appear. Instead the options from the blue box would be placed.


RE: ERA III - Berserker - 28.02.2022 08:01

As far as I remember, there is no way to raise the limit. We wanted to make custom options dialog, but there is none currently.


RE: ERA III - Archer30 - 28.02.2022 08:37

I see, thanks!

Is there a quick way to change the selection type of each section?

For example, for the picture above, the right bottom section is a single selection field while the others allow several options to be selected at once.

At the moment we only need the top left section of the 1st page to become a multi-selection type.


RE: ERA III - wessonsm - 28.02.2022 10:43

Archer30, можно бинарным патчем заменить радиобуттоны обычным включением/отключением опций:
Code:
007786C0 01
007786CA 01
007786D4 01
Какой-то из этих трех отвечает за левую верхнюю секцию на первой странице, скорее всего первый.


RE: ERA III - Archer30 - 28.02.2022 11:21

wessonsm, thanks for helping!
Code:
007786C0 01
Works perfectly for changing the type of upper left section


RE: ERA III - Archer30 - 03.03.2022 13:58

I find it a little bit weird to have these two:

i^key_ctrl^: variable to check whether Ctrl is pressed
(KEY_CONTROL): The key code of ctrl

They are having different spellings for some reason 102
I suggest just use (KEY_CTRL) instead to avoid confusion. I did qucik search in my mods folder. There is currently no mod using (KEY_CONTROL) in the scripts.


RE: ERA III - Berserker - 03.03.2022 17:50

https://docs.microsoft.com/en-us/windows/win32/inputdev/virtual-key-codes

VK_CONTROL 0x11 CTRL key

Variables have abbreviations sometimes, constants tend to be longer and more descriptive. I transformed constants from original documentation.


RE: ERA III - Archer30 - 03.03.2022 18:00

Ah, I see, thanks for the info!


RE: ERA III - V_Maiko - 04.03.2022 14:04

I know it's a lot to ask, but in order to give more visibility to the user, I wish there was an in-game UI about disabling plugins in the plugin manager. I can't help but think of a day when I want to do something completely different with my mod, but people won't like it or will make irreversible ACM compatibility, so I'd give them the option to easily disable the plugins they want in an interface. visible and noticeable even to the most distracted.

Let's be honest, most casual gamers don't know about the existence of plugin managers nor do they bother to disable plugins that could benefit them to remove features they don't need in some mods like mine. There are people who don't like new artifacts? So they have to disable emerald.dll, but no one bothers to go to mod manager and then plugins, or worse, go to wog's plugins manager separately.


RE: ERA III - daemon_n - 04.03.2022 16:24

V_Maiko, much simpler make plugin working depending on option is enabled


RE: ERA III - V_Maiko - 04.03.2022 18:28

(04.03.2022 16:24)daemon_n Wrote:  V_Maiko, much simpler make plugin working depending on option is enabled

However, the goal is to give priority to mod plugins, just as we did with scripts. Plugins are essentially more important in large mods like mine to disable non-scripting features.


RE: ERA III - Berserker - 04.03.2022 22:30

If you place empty file (size 0) with the same name and extension as plugin in your mod and your mod has higher priority, the plugin will be disabled.


RE: ERA III - V_Maiko - 05.03.2022 01:01

(04.03.2022 22:30)Berserker Wrote:  If you place empty file (size 0) with the same name and extension as plugin in your mod and your mod has higher priority, the plugin will be disabled.

That's not what I mean at all, I mean implement manager plugins or something similar within the game as a switch to disable options, and I'm not referring to third-party mods, I mean my own plugins so that users have the visibility that they can disable them if they wish. I can't expand my mods, if there are users with various complaints/feedback about possible implementations that they don't want, either because the future plugins won't work with ACM or because they previously preferred not to have them. It already happened to me when adding artifacts with emerald, but I let it slide as it didn't affect compatibility. But there are new things I want to try to keep expanding my mod, for example new secondary skills or new spells, something that would be completely rejected in ACM.
Optionally ACM support will still be present in future updates, but I want some way for new users, mere mortals regarding mods, to understand in a straightforward way that they can disable unwanted plugins within the game.

It's kind of hard for you to understand, because older generations of the H3 community have never had high caliber mods like mine, but this could be highly beneficial in the long run.

I can tell you a simple way to implement something like that, in Master of Puppets the system is similar. It is only to create a button in the main menu or in any new game menu and that button can redirect you to disable/enable the plugins of the mod that you want by opening the plugins window of the respective mod that is in mod manager for example. Yes


RE: ERA III - Darhalas - 09.03.2022 01:59

Товарищ @Berserker, два года на форум не забегал, новых версий не качал-и на тебе. Не открываются ссылки https://mods.hmm35.ru/Era%20Update.exe
ВПН включал-выключал, где мог быть залогинен-залогинен. Ничего не понимаю. Ответ на форуме сам поискать попробовал, но мог провтыкать. Бажожда, поясните непутёвому(


RE: ERA III - Berserker - 09.03.2022 12:04

Darhalas, приветствую. Запрос в техподдержку отправил. А пока рекомендую воспользоваться готовой сборкой:
http://wforum.heroes35.net/showthread.php?tid=5235


RE: ERA III - Raistlin - 10.03.2022 10:13

V_Maiko, it is very hard because when the game is opened all patches are already done, and I am not sure that there is a way to find and disable all of them. In my opinion it will be easier to make a switch in the plugin and connect it with a WoG-option. I did the same thing with new heroes in my mod. I also have an option to disable all new content (new monsters and artifacts), and something like that can be used in the future plugins.


RE: ERA III - V_Maiko - 11.03.2022 16:51

Raistlin, So is it possible to disable the plugins function by scripting like switch? I want something like that, for example; I'll make a wog option called "TUM: New Secondary Skills", this script will allow the plugin to be enabled/disabled to allow TUM to be used seamlessly with ACM when this option is disabled.


RE: ERA III - Raistlin - 11.03.2022 17:17

V_Maiko, it is hard to enable or disable a plugin, so my solution was to add functions that undo changes of my mod when a player enables the option.


RE: Ошибки, баги и недочёты ERA - Suft - 26.03.2022 07:35

Berserker, Предлагаю кровавым драконам сделать не шанс вампиризма 50% а 15-20% вампиризма действующего всегда

Насчёт сантагремлинов - они стали самыми сильными нейтралами и если они разделены на 7 отрядов практически невозможно их пробить
Всегда на старте игры боюсь чтобы проход к лесопилке не охраняли санты - тогда нужно как то вертеться без ресурсов
Никого так не боюсь как сантагремлинов - приходится ждать достаточного кол-во стрелков и делить на 7 отрядов чтобы это пробить
В битвах с ними часто проигрываю или теряю почти всю армию - на начальном этапе это просто ужас
Урона 4-5 им надо и тогда они будут равны своей цене а так черезчур сильны


RE: Ошибки, баги и недочёты ERA - Berserker - 26.03.2022 15:01

У санта-гремлинов урон в среднем стал 5 на единицу без штрафа за дальность. Но это третье улучшение и Боевая Ценность у них соответствующая.


RE: ERA III - Archer30 - 29.03.2022 10:37

Hi! It looks like MM:S still relies on z var to work


Possible to improve?

________


It looks like i^battle_withoutHuman^ lost its definition from Era Erm Framework, while it's been used by i^battle_isVisible^;

I would proposed this to be added in between:



RE: ERA III - Berserker - 29.03.2022 22:33

Archer30, afair, no easy solution.
Seems like I forgot to replace i^battle_withoutHuman^ with ^battle_aiOnly^. Thanks.


RE: ERA III - Archer30 - 01.04.2022 12:48

Berserker, I see thanks.

Currently SN:D doesn't include UN:R2 refreshing reouces bar, would you consider improve it?


RE: ERA III - Berserker - 02.04.2022 05:48

Afair, it's not always desirable to update resources bar. Am I wrong?


RE: ERA III - Archer30 - 02.04.2022 08:55

I see. Personally, I didn't encounter anything that I didn't wish to update the res bar (if applicable), but I completely understand that could happen for someone staying on Windows 2003 148


RE: ERA III - Berserker - 02.04.2022 10:33

Iirc, sometimes you can update adv map, having some dialog opened over it, but updating resource bar causing resource bar to display on the top z-plane, which seems like glitch visually.


RE: ERA III - Archer30 - 03.04.2022 19:24

I see, let's keep it the current way then.
____

I have a finding today, and I am not sure whether this is intended, so I ask here.

Is this correct that the arguments of MF1 trigger can be out of range? It happens with Fireshield, when Efreet Sultan is killed, its fire shield triggers MF1 with a big number as the attacker's ID and my BM:T was screwed up.


This doesn't make much sense, especially considering the alias "OnMonsterPhysicalDamage". What do you think? 102


RE: ERA III - Berserker - 04.04.2022 06:11

Fire Shield damages physically, that's correct.
Cannot find the place, where I would add !#VA(atkStack:x) (defStack:x) parameters to MF1 trigger. Could you point to documentation, where you read about it?


RE: ERA III - Archer30 - 04.04.2022 07:36

Berserker, my miss lol. Sorry for that. I learned from some ancient Chinese scripts about MF1 and thought x1/x2 were officially declared as attacking stack/defending stack. So basically if I add
it would still be safe to use in this way, yes?


RE: ERA III - Berserker - 04.04.2022 08:21

As far as I know, MF1 does not receive any x-parameters. MF:N returns defending stack, but there is no concept of attacking stack in the trigger.
Trigger intercepts function DealPhysicalDamage. This function is called by Moat, Towers, Fire Shield and regular stack strikes. We do not know the source of aggression in it.


RE: ERA III - Archer30 - 04.04.2022 10:41

I see. Currently, my buggy script is used by TUM players. 148 We have got a larger number of samples to test whether x1 as the attacker for MF1 is reliable


RE: ERA III - Archer30 - 08.04.2022 17:22

I propose this to be added at the end of 9999 era - stdlib.erm / auto-completion of sublime


Just returning a constant, but it is rather useful and important. This funcion here is required to convince mod makers to always get the last art ID by using it. In TUM, I have my own FU(GetMaxArtifactId) to return the correct art ID without duplicates, which is desirable to be used by others as well.


RE: ERA III - Berserker - 08.04.2022 18:32

Agree. Just add it and send updated file to daemon_n.


RE: ERA III - Archer30 - 09.04.2022 06:12

Berserker, thanks for approving.

We encounter an issue with Amethyst 2 x SN:H^monname^.

According to Majaczek, SN:H does not support creatures after 196. I tried to change the description of #311 and it corrupted the portrait of Orrin.

Majaczek claims that in order to fix the problem, changes have to be made from ERA, like "expanding the table".

Is this true though? 102 Will it be easier to be done via era, or fix from Amethyst?
You can find the source of the plugin here:
https://gitlab.com/Knightmarevive/_h3era_plugins_/-/tree/master/Amethyst2/amethyst


RE: ERA III - Archer30 - 14.04.2022 18:41

Berserker, hi! I just realise that we have no multiple choices support for Radio dialogue. As I see from Era Framework, it may not be difficult to fix. It is only not sure how you would like to proceed. What do you think about it?




RE: ERA III - Berserker - 14.04.2022 21:53

About SN:H. Tell majaczek to call Era API in OnAfterWoG plugins event:

RedirectMemoryBlock(7D0C90 /* old wog monsters table */, old table size, new address);

Also RedirectMemoryBlock must be called for the following wog tables:

MonNamesSettingsTable: PMonNamesSettingsTable = Ptr($A48440);
MonNamesSingularTable: Utils.PEndlessPcharArr = Ptr($7C8240);
MonNamesPluralTable: Utils.PEndlessPcharArr = Ptr($7B6650);
MonNamesSpecialtyTable: Utils.PEndlessPcharArr = Ptr($7C4018);
MonNamesSingularTableBack: Utils.PEndlessPcharArr = Ptr($A498A8);
MonNamesPluralTableBack: Utils.PEndlessPcharArr = Ptr($A48128);
MonNamesSpecialtyTableBack: Utils.PEndlessPcharArr = Ptr($A88E78);

---------------------------------

I didn't implement support for multichoice dialogs, they are not radio, but checkbox dialogs and most API functions should be changed. No easy solution.


RE: ERA III - Archer30 - 15.04.2022 12:15

Berserker, thanks for the info!


RE: ERA III - Archer30 - 01.05.2022 01:16

Found by daemon_n
Image: unknown.png
& should be |


RE: ERA III - Berserker - 01.05.2022 02:51

Right, please fix in the next update.


RE: ERA III - myoffice91 - 03.05.2022 23:08

Berserker,
Quote:Вчера, обнаружил в окне "ВЫБЕРИТЕ КАМПАНИЮ" из "Клинок армагеддона", что создает поток 5, а если нажать "Назад", то поток не уничтожается. То есть, это оригинальный баг, похоже утечка памяти.


Есть решение:

изменить:
0045EE4F | 81FB 98C66600 | cmp ebx,66C698 | ebx:&"AB.h3c"
на
0045EE4F | 81FB F8CA6600 | cmp ebx,66CAF8 | ebx:&"AB.h3c"




Где при нажатии кнопки кампании, например "Возрождение эрафии"
0045EA2A | 8A4437 60 | mov al,byte ptr [edi+esi+60] | - это активная кнопка с изображением. Всего 3 кнопки с видео.
0045EA3B | 83FE 14 | cmp esi,14h (20) цикл


RE: ERA III - Berserker - 04.05.2022 03:54

Такую правку можно оформить бинарным патчем (Tools\MagicBin) и daemon_n-у в сборку. Спасибо.


RE: ERA III - Archer30 - 06.05.2022 11:11

Reporting a problem only with the latest ERA testing version:

There is a chance my DW receiver could be broken (incorrect internal number) with correct dwelling coordinates. The coordinates were found by UN:U. By checking the found coordinates with OB:T, the result showed it was a legal dwelling.

Here are screenshots after I renewed my testing map several times. Erm error happens on several erms at the same time.
Screenshots - Imgur

Here is a testing mod for reproducing the issue, as well as my debug folders generated by pressing Yes on these three screenshots. Note that the problem happens by chance with unknown condition, cant promise the mod is eligible to reproduce.

Downlod the testing mod

Hawaiing also reported a similar problem with CB, although unfotunately I could not retrieve the debug folder from him. At the moment we have play with UN:P904/905 to bypass the problem.

____

Edit: Proposing these to be added to EEF. it's very important as in Battlereplay the two vars could be changed.



RE: ERA III - Archer30 - 07.05.2022 08:31

There is another issue I believe is with the engine. For some reason, CA:O returns invalid values or possibly OW is broken at processing a correct value, I can't check for details as I didn't have more info from players.

Screenshot:
My erm:
As you see, the value passing to OW:I is fetched by CA:O. I can't think of a reason CA:O could return a value out of the range -1 ~ 7.


RE: ERA III - Berserker - 07.05.2022 14:59

I think OW:I will not work with negative values. Add a check for valid owner.

Quote:Edit: Proposing these to be added to EEF.
Agree. Could you add those lines and send updated code to daemon_n?

Quote:There is a chance my DW receiver could be broken (incorrect internal number) with correct dwelling coordinates
Maybe wrong object replacement with invalid OB:C value?


RE: ERA III - daemon_n - 07.05.2022 18:36

Archer30, i offer add check, if owner<>(NO_OWNER)


RE: ERA III - Archer30 - 07.05.2022 22:55

Berserker,

Quote:I think OW:I will not work with negative values. Add a check for a valid owner.
Then "!!OW - owner out of range (-1..7)" is a lie. If -1 is not acceptable, many scripts have to be corrected. But I don't believe so, we used to use OW with -1 for years.

Quote:Could you add those lines and send the updated code to daemon_n?
Sure, the latest EEF, maintained by the Launcher Team can always be found here

Quote:Maybe wrong object replacement with invalid OB:C value?
Can't be sure. The error happens by chance. Nothing was changed, I just keep recreating a game with the same map, and then the error appeared. If your assumption is true, this script for adding extra creatures to type 17 dwellings would be the most suspicious. What do you think about it?
Neutral Neighborhood


RE: ERA III - Berserker - 08.05.2022 00:28

Quote:Then "!!OW - owner out of range (-1..7)" is a lie.
Just add a check if value is not in range then IF:M^value^.

Quote:What do you think about it?
Just comment all creature changing lines except the one tested and safe and try again to find out. Some filed overwrite or hidden bug/limitation may exist, but hardly it's something with Era engine.


RE: ERA III - Archer30 - 09.05.2022 20:55

Berserker, with no surprise, my report turns out to be a joke 148 It was some other plugins after all...ERA is clear for my report about CA:O - OW:I


RE: ERA III - Berserker - 09.05.2022 23:08

Good news Ab


RE: ERA III - Archer30 - 13.05.2022 12:14

Berserker, what do you think about your script written on 2012?
http://heroescommunity.com/viewthread.php3?TID=8288&PID=1039938#focus
There is also a bug fixed version by Hawaiing here (fixed split button and warlord's banner merging).

The stack exp bug on moving a large stack is ongoing in the modern ERA 148


RE: ERA III - Berserker - 13.05.2022 20:32

It didn't loss actuality? )


RE: ERA III - wessonsm - 15.05.2022 14:41

По поводу этого бага.
Кажется виноват хук Эры по адресу 0x005BA547.
Если отменить хук, баг уходит (я использовал инструмент для удаления патчей Raistlin'а).

Вопрос: как это скажется на функциональности Эры в целом?
Этот хук появился где-то между 3.3 и 3.4, в 3.3.0 его еще нет.


RE: ERA III - Berserker - 15.05.2022 17:52

wessonsm,
Core.Hook(@Hook_ScrollTextDlg_CreateLineTextItem, Core.HOOKTYPE_CALL, 5, Ptr($5BA547));

Я там вычитаю из ширины текста ширину полосы прокрутки в 24 пикселя. В каких-то диалогах это исправляло баг. Вероятно, проблема в отсутствии проверки на наличие той самой полосы прокрутки.

Code:
function Hook_ScrollTextDlg_CreateLineTextItem: integer; stdcall; assembler;
const
  SCROLLBAR_WIDTH = 24;

asm
  sub dword [esp + $0C], SCROLLBAR_WIDTH
  mov eax, $5BC6A0
  jmp eax
end;



RE: ERA III - Archer30 - 17.05.2022 12:03

Berserker, can't let your code slip away until they are added to ERA 148

Well, I just come out with a new request. Can we export the strings in the dialogue of crashing to json? There is only one sentence, but still, not friendly to many players knowing 0 English. I'd hope this dialogue to be localised and help me to collect debug folders from players.

Also, I would hope the text from Papyrus could be exported as well. This dialogue is activated by clicking the Quest Log button with at least one of the map rules selected. The string is hardcoded and the activation is not overridden by igrik's plugin.



RE: ERA III - Berserker - 17.05.2022 19:13

Archer30, nice idea, though I'm inactive these days.


RE: ERA III - Archer30 - 17.05.2022 20:30

Berserker, I completely understand. Ab


RE: ERA III - wessonsm - 18.05.2022 16:21

Случайно обнаружил ошибку в 9999 era - stdlib.erm (вылетало).


Имя дефа или pcx - это тоже строка, поэтому последнее условие нужно изменить на




RE: ERA III - Berserker - 18.05.2022 17:26

Спасибо. Пришли daemon_n или Archer правленный вариант, у них сейчас последняя актуальная версия EEF.


RE: ERA III - Archer30 - 24.05.2022 12:11

Looking for help with a bug of Wandering Monsters. A player reported that he got this at the end of turn (start of a new day)
It is confirmed to be a WM issue since it can resolved by disabling WM

Debug:
https://drive.google.com/file/d/1McPJrzRUB5BRLtqfACVdKc9ZaUYlm6Mh/view?usp=sharing

Does this mean the data of the WM is corrupted somehow?
This msg only appear once and never shown in the following turns


RE: ERA III - Bes - 25.05.2022 12:02

Read // ликбез по работе со строками перенесён в тему по реверсингу 4


RE: ERA III - Archer30 - 27.05.2022 21:20

Reporting an issue with campaign transfer:
In some cases, commanders could have abnormal experiences after winning and arriving at another campaign zone. This happens between OnTransferHero and OnAfterErmInstructions.

Save for testing:
Download
Gem's commander - Just beat her enemy and check her commander's exp in the next zone.

This can be fixed by erm quickly:



RE: ERA III - Berserker - 27.05.2022 22:03

!!CO(HERO_GEM):X1/i^cmd_exp_%i^;

should be

!!COi:X1/i^cmd_exp_%i^;


RE: ERA III - Archer30 - 27.05.2022 23:13

Berserker, corrected Rolleyes


RE: ERA III - Berserker - 28.05.2022 19:18

Did it fix the issue? )


RE: ERA III - Archer30 - 29.05.2022 00:55

Yes for sure. I post the code coz it works, meaning the same can be applied to ERA for a quick fix. I just got a typo without knowing it since I tested only with Gem...


RE: ERA III - Arnor - 04.06.2022 12:53

Доброго дня! Возник вопрос, как совместить скрипты ВОГа и ЕРЫ? До недавнего времени на компе была отличная сборка с сочетанием скриптов ВОГа и ЭРЫ в полном объеме, но был вынужден удалить сие чудо. Пытаюсь теперь найди его - не могу. Скачал разные версии ЭРЫ и ВОГА - толку 0. Либо вог-скрипты - либо скрипты еры. Если и то, и другое - конфликт и отказ ерм работать впринципе. Нашел инфу что ера-скрипты требуют версию ЕРЫ не ниже 2.9.1.2 - в итоге скачал 2.9.1.3 - там вог-скриптов нет. Что делать?


RE: ERA III - Elmore - 04.06.2022 17:15

Arnor, установи сборку через лаунчер http://wforum.heroes35.net/showthread.php?tid=5235


RE: ERA III - Archer30 - 06.06.2022 12:40

Berserker, is it correct that png for SN:R won't work if it's put in zip?
Quote:[+] Added support for separate DEF PNG frames redirections.
    Command template: SN:R^defname.def:groupIndex_frameIndex.png^/^new path to png, relative to root directory.png^.
    Prefer to use single backslashes as path separators in order to avoid "a\test.png" and "a/test.png" to be loaded and cached as different images.

    Example:
    !!SN:R^cefres.def:1_0.png^/^Data\Defs\cefres.def\5_6.png^;

My v1 returned 1, however, the code only works when I put my png to the root folder

Also SN:R for png requires the original png to be existing, it cannot be just def, right?


RE: ERA III - Berserker - 06.06.2022 20:03

As far as I see, dlg_npc2.def:0_86.png should exist at least in zip in order redirection to be performed. I can fix it, I suppose.

Try this dll: https://dropmefiles.com/0WVDA


RE: ERA III - Archer30 - 06.06.2022 20:17

Berserker, thanks! The fix is valid, now I can get rid of the original frames! 132

Btw the first question, I can't make it to work. My png's placed in
Code:
Mods\[my mod]\Data\wog scripts.zip - Data\Pcx\WS\mirror2d.png
It's detected by SN:F^PcxPngExists^/^mirror2d.pcx^ as my code shown above, but SN:R just failed.
At the moment only this works for me
Code:
Mods\[my mod]\mirror2d.png



RE: ERA III - Berserker - 07.06.2022 18:45

Could you make a simpe test mod for me to debug?


RE: ERA III - Archer30 - 08.06.2022 01:45

Berserker, yes.

Please check this one here
Download for png testing mod

- Run the mod and press "1" when you enter the adv map. It gives 5000 exp and also makes the icon of Fire Shield and Death Stare visible in the commander level up dialogue.
- Close the game, remove the pics in Mods\png SNR testing\ and check again these two icons. They should be different from the first step.
- Conclusion: pics in Mods\png SNR testing\\Data\png testing.zip\Data\Pcx\ cannot be loaded by SN:R, while they can be detected by !!SN:F^PcxPngExists^/^mirror2l.pcx^;


RE: ERA III - Archer30 - 01.07.2022 15:01

Berserker, I wonder if it is new to you that MO:G could result in neutral stack size overflowed


With this code, the monster stack would be set to 4 (4100 - 4096), instead of a more reasonable number (4000?).
I belive it would be better if you can add a check before any MO:G execution. For example, correcting any number bigger than 4000 to 4000. What do you think? 102


RE: ERA III - Berserker - 01.07.2022 17:15

I agree, that such check is necessary. Added to todo,thanks.


RE: ERA III - Suft - 12.08.2022 14:22

Berserker, Не знаю daemon_n вам написал или нет (мог и забыть 96-copy ) по поводу метода Отзеркаливания боевых полей (ценой пары строчек кода было бы неплохо)
Идея превосходная - думаю нужно сразу делать в формате png и для сборки сделать оригинальные 8bit png а bmp сделать заглушками - чтобы не делать отдельно два скрипта на зеркала (bmp и png отдельно)

Пример зеркального поля боя (Click to View)

Вы писали что подобная функция есть, но для PCX ли она и если да как ей пользоваться?
Текущая версия: 3.8.9

[-] Исправлены проблемы с отрисовкой отражённых png-изображений. Спасибо helgtla за тест-моды и детализированные отчёты.

История изменений: (Click to Hide)
Код:
Version 3.8.9 (08/2021)
------------------------
[-] Fixed mirrored png pictures rendering issues.
------------------------
Подскажите пожалуйста как такое реализовать для сборки?
И ответ лучше писать сразу daemon_n


RE: ERA III - Berserker - 13.08.2022 11:12

Тут вряд ли помогу. Если функция отрисовки pcx вызвана игрой без параметра горизонтального зеркалирования, то Эра будет рисовать картинку «как есть».


RE: ERA III - Suft - 05.09.2022 15:55

Berserker, Спасибо вам за долгожданное обновление!
Ваш труд просто бесценен для сообщества 119 , с новым генератором чисел игра станет куда приятнее
С этим всегда были проблемы - теперь же генерация карт и выпадения урона будут куда приятнее! 132


RE: ERA III - Berserker - 05.09.2022 17:40

Пожалуйста Ab Твои работы не менее ценны 132


RE: ERA III - Berserker - 05.09.2022 18:24

https://dropmefiles.com/I8ZtT

Быстрое исправление. Загрузка из боя (функция HD мода) больше не ломает события OnGameEnter/OnGameLeave.


RE: ERA III - wessonsm - 06.09.2022 04:50

Спасибо за долгожданное обновление и вопрос:
как вызвать в плагине генерацию случайного числа этим новым методом xoroshiro128?
Геройская random (0x50C7C0) его будет использовать или нет?


RE: ERA III - daemon_n - 06.09.2022 04:55

wessonsm, 96-copy (Click to View)



RE: ERA III - wessonsm - 06.09.2022 05:04

daemon_n, здесь скорость тоже важна.
Я думаю, костыли в виде ExecErmCmd будут замедлять выполнение кода, там надо еще строку распарсить, это нехилая воговская функция такая.
Я обрадовался, когда увидел "xoroshiro", он значительно быстрее вихря Мерсенна должен быть по тестам, которые есть в сети.


RE: ERA III - XEPOMAHT - 06.09.2022 06:08

(06.09.2022 04:50)wessonsm Wrote:  Геройская random (0x50C7C0) его будет использовать или нет?

Если ЭРА ставит туда свой перехват прямо в самое начало, подменяя всю функцию целиком, значит наверняка использует. По крайней мере Тифон вызывает 50C7C0 довольно часто и в него, надеюсь, тоже идёт получение случайных чисел из берсеркерского генератора в era.dll.

(06.09.2022 04:55)daemon_n Wrote:  
wessonsm, 96-copy (Click to View)

Вообще не смешно, а грустно видеть подобный код. ExecErmCommand в плагинах - зло.


RE: ERA III - Berserker - 06.09.2022 06:18

Все геройские и воговские rand(), random() используют движок Эры.

Code:
(* Replace Heroes PRNG with custom switchable PRNGs *)
ApiJack.StdSplice(Ptr($61841F), @Hook_SRand, ApiJack.CONV_CDECL, 1);
ApiJack.StdSplice(Ptr($61842C), @Hook_Rand, ApiJack.CONV_STDCALL, 0);
ApiJack.StdSplice(Ptr($50C7B0), @Hook_Tracking_SRand, ApiJack.CONV_THISCALL, 1);
ApiJack.StdSplice(Ptr($50C7C0), @Hook_RandomRange, ApiJack.CONV_FASTCALL, 2);

Не забывай только, что rand() ограничен 0..65535 и я это ограничение соблюдаю строго по канону С. А вот random(min, max) по адресу 50C7C0 не ограничен, его и использую, где можно. VR:R использует random(min, max) по адресу 50C7C0.

Code:
int Random(int ZLow,int ZHigh)
{
  #include "templ.h"
  __asm{
    mov    ecx,ZLow
    mov    edx,ZHigh
    mov    eax,0x50C7C0
    call   eax
    mov    IDummy,eax
  }
  RETURN(IDummy)
}



RE: ERA III - daemon_n - 06.09.2022 06:46

XEPOMAHT, wessonsm, куда чувство юмора делось ?166



RE: ERA III - Raistlin - 14.09.2022 09:37

Почему-то не работает функция WriteStrToIni(const char* Key, const char* Value, const char* SectionName, const char* FilePath). Просто не видит файл или не вызывается, похоже. При этом ReadStrFromIni может найти файл с таким же названием.


RE: ERA III - daemon_n - 14.09.2022 09:51

Raistlin, в какой именно файл (путь) ты пытаешься писать?
Не забудь SaveIni


RE: ERA III - Raistlin - 14.09.2022 10:33

SaveIni? Это хто? 148

Quote:в какой именно файл (путь) ты пытаешься писать?
Файл лежит в папке с модом. Читается нормально.


RE: ERA III - daemon_n - 14.09.2022 11:37

Raistlin, если я правильно помню, сохранить можно только в папку runtime и корень.

Метод назвал гипотетически. Суть в том, что файл надо сохранить после записи


RE: ERA III - Berserker - 14.09.2022 12:14

С какой-то версии запись в ini кэшируется в память. Иначе сотни записей в цикле изнасилуют жёсткий диск и ЦПУ.
Потому после всех записей достаточно вызвать function SaveIni (FilePath: pchar); stdcall для сброка кэша.


RE: ERA III - Raistlin - 14.09.2022 17:21

Большое спасибо! Все заработало.


RE: ERA III - daemon_n - 13.10.2022 00:21

OnBattleStackObtainsTurn не срабатывает на старте боя (знаю, что там вызывается ф-ция поиска первого стэка из другого места, вот его и предлагаю захукать, тем самым добавив в общий пул)


RE: ERA III - Berserker - 13.10.2022 08:40

Да, неприятно. Это какое там место?


RE: ERA III - daemon_n - 13.10.2022 09:06

Berserker, из "Start Battle", кажется.
Позднее гляну адрес


RE: ERA III - Raistlin - 13.10.2022 09:30

(14.09.2022 12:14)Berserker Wrote:  С какой-то версии запись в ini кэшируется в память. Иначе сотни записей в цикле изнасилуют жёсткий диск и ЦПУ.
Потому после всех записей достаточно вызвать function SaveIni (FilePath: pchar); stdcall для сброка кэша.

Сейчас стало любопытно, а это применяется к прочтению данных из ini?


RE: ERA III - Berserker - 13.10.2022 09:31

Нет, при чтении весь ini файл анализируется и сохраняется в памяти в виде карты ключ - значение. Повторные запросы на чтение не насилуют жёсткий диск вообще. Запись тоже идёт в памяти в этот словарь ключ-значение. Раньше после каждой записи весь файл на диске перезаписывался. Чтобы остановить это ужасное деяние, я добавил SaveIni.


RE: ERA III - Raistlin - 13.10.2022 09:41

Berserker, отлично, большое спасибо! Я забеспокоился на этот счет из-за того, что вынес во внешние файлы много игровых таблиц, и если бы при каждом запуске игры для прочтения каждого значения файл открывался и сканировался заново, было бы обидно за процессор. Но раз все так хорошо оптимизировано, моя душа спокойна Ab


RE: ERA III - daemon_n - 13.10.2022 13:17

(13.10.2022 09:06)daemon_n Wrote:  Berserker, из "Start Battle", кажется.
Позднее гляну адрес

Berserker, 0x462E26


RE: ERA III - Berserker - 14.10.2022 08:24

Спасибо.


RE: ERA III - daemon_n - 20.10.2022 04:15

Berserker, я понимаю, что можно сменить один png другим с относительным путём:
!!SN:R^cefres.def:1_0.png^/^Data\Defs\cefres.def\5_6.png^;

но можно ли сделать то же с def файлом?
!!SN:R^cefres.def^/^Data\Defs\customPath\cefres_a.def^;

а то не хочу покадрово делать SN:R - ещё не факт, что кол-во кадров будет соответствовать

проще говоря, можно ли обычные def расположить в субкаталогах, чтобы через sn:r выбирать к ним нужный путь?


RE: ERA III - Berserker - 20.10.2022 06:40

daemon_n, нет.


RE: ERA III - daemon_n - 20.10.2022 07:02

Berserker, ну, ничего - буду работать через циклы тогда - как оказалось, можно подменять png даже там, где нет png))


RE: ERA III - XEPOMAHT - 20.10.2022 08:49

Как вызвать эровскую внешнюю функцию GetButtonID? Т.к. эта фишка с автоматической выдачей номеров кнопок платформой ЭРА, на которую моддер не может повлиять, немножко бесит.

В данный момент Тифон использует фиксированные эровские ID для новых кнопок, но если кто-то добавит собственный *.btn, то тифоновские кнопки в лучшем случае перестанут работать (т.к. их индексы автоматически будут заняты другими кнопками), в худшем - игра будет вылетать. Можно конечно поставить перехват на конструктор нужного диалога и ставить в нём свои кнопки, но в этом есть минус: на конструкторах диалогов и так весит вереница хуков от кучи плагинов, аккуратно вклиниваться Тифоном в этот хаос так, чтобы ничего не поломать, совершенно не хочется.

Поэтому очень желательно, чтобы была возможность ручного указания номера новой кнопки в эровском *.btn, т.к. с вызовом эровских функций я таки разобраться толком по-прежнему не могу - на выходе либо Ашибки в era.dll или buttons.era, либо -1, либо мусор.

PS: когда же в ЭРЕ наконец-то появится окошко при запуске с автоматическим предложением подключить к ЭРЕ моды, не прописанные/не закомментированные в list.txt??? Очень, очень многие не знают, что моды подключаются к ЭРЕ в list.txt, поэтому каждый раз приходится объяснять. А хотелось бы, чтобы движок ЭРЫ сам находил новые моды в папке mods и спрашивал игрока о том, надо их подключать или нет.


RE: ERA III - Berserker - 20.10.2022 10:12

Автоматические ID кнопок Эры начинаются с 400. Может начать свои ID с 2000000. Проблема-то.

Вызвать просто:

push 'имя кнопки'
call Era.GetButtonID
eax = ID или -1, если кнопки с таким именем в *.btn файлах не было.


RE: ERA III - Berserker - 20.10.2022 10:21

Quote:PS: когда же в ЭРЕ наконец-то появится окошко при запуске с автоматическим предложением подключить к ЭРЕ моды, не прописанные/не закомментированные в list.txt???
По изначальной задумке то, что не прописано в list.txt, и должно быть отключено. Это просто архивы. Так называемое комментирование заставляет движок VFS искать несуществующие папки. Загрузка модов по списку вынесена на библиотеку VFS.dll. Эра не занимается проверкой, какая папка существует, какая указана и т.д. Из-за этого сложнее получить список реально загруженных модов.

Можешь написать такой плагин сам (правда успехов с определением, что такое закомментированное имя мода и как его отличить от отсутствия имени мода в списке).
Читаешь список каталогов, читаешь содержимое list.txt, парсишь, сравниваешь. Для сканирования папок в обход VFS код сканирования нужно выделить в отдельную функцию, после чего вызвать VFS.dll:: CallWithoutVfs(адрес функции, аргумент для функции).


RE: ERA III - wessonsm - 20.10.2022 11:05

Сегодня день вопросов по-видимому Ab
У меня тоже есть вопрос, и тоже связан с перенаправлением:
как можно сделать так, чтобы вместо ресурса XXX загружался ресурс YYY, если он существует,
а если не существует, загружался оригинальный ресурс XXX?
Идеи есть, но они кажутся мне слишком сложными (хукать функции загрузки def и pcx), может есть простой способ, которого я не вижу?


RE: ERA III - Berserker - 20.10.2022 11:39

С этим сложно. Есть механизм перенаправления, если ресурс не существует (Redirect Missing) и его Эра использует.

А какова область применения и решаемая задача?


RE: ERA III - wessonsm - 20.10.2022 12:44

(20.10.2022 11:39)Berserker Wrote:  С этим сложно. Есть механизм перенаправления, если ресурс не существует (Redirect Missing) и его Эра использует.

А какова область применения и решаемая задача?

Пытаюсь сделать загрузку отмасштабированных заранее ресурсов для HD-мода без использования стретч фильтров в реальном времени.
Я знаю, что такая идея не раз звучала, но всерьез за нее никто особо браться не захотел.
Да и у меня нет уверенности, что из этого что-то получится, но попробовать хочется.
Пока все в зачаточном состоянии, и в принципе, рано еще о чем-то говорить.
Но сама реализация не такая уж сложная: я не лезу глубоко внутрь HD-мода и просто изменяю координаты элементов диалогов (для этого вполне достаточно функционала patcher_x86) и заменяю сами ресурсы.

А нужен такой способ перенаправления вот для чего:
Допустим, у нас нет отмасштабированного дефа или pcx (например он в моде каком-то или просто не сделали пока).
В этом случае берем оригинальный ресурс (неотмасштабированный) и масштабируем при загрузке.
Изначально я хотел дописывать к имени ресурса суффикс какой-то (например GamSelBk_150.pcx) или может лучше с тем же именем, но в отдельную папку класть.
Пока никакого такого механизма у меня вообще нет, и я просто заменяю оригинальные ресурсы масштабированными, оно все в одной куче получается.


RE: ERA III - Berserker - 20.10.2022 12:58

Не забудь про ограничение длины имени в 11 символов.

Видишь ли, проверка существования ресурса тоже не дешёвый вопрос. Все лоды обойти + на диске поискать.


RE: ERA III - wessonsm - 20.10.2022 13:06

Тогда может лучше свой лод подгружать и искать сначала только в нем, а уже в случае неудачи - во всех остальных.


RE: ERA III - Berserker - 20.10.2022 15:55

В Эре есть неэскпортированная функция function FileIsInLods (const FileName: string): boolean;
Могу сделать её эскпортный аналог, если нужна проверка на существование файла в лодах.

Если будешь для начала свой лод грузить, то вот функция для поиска файлов в нём:

Code:
function FileIsInLod (const FileName: string; Lod: Heroes.PLod): boolean;
begin
  {!} Assert(Lod <> nil);
  result := false;

  if FileName <> '' then begin
    asm
      MOV ECX, Lod
      ADD ECX, 4
      PUSH FileName
      MOV EAX, $4FB100
      CALL EAX
      MOV result, AL
    end; // .asm
  end;
end; // .function FileIsInLod

4FB100 в IDA базе.


RE: ERA III - wessonsm - 20.10.2022 16:49

Berserker, спасибо большое. Это надо хорошо всё обдумать сначала.


RE: ERA III - Archer30 - 22.10.2022 10:28

Hi Berserker, I notice that BA1 do not trigger when BA:D1 is used on BA0. This is kinda unexpected.

In fact there are a couple of scripts, I find broken when BA:D1 is used. If ERA could trigger BA1 regardless of the presence of BA:D1, the issue would be fixed.

Can we make it this way?


RE: ERA III - Berserker - 22.10.2022 14:03

Right, because battle is cancelled and really it does not happen on defender side.
Nope, already met this behavior and it's quite correct. If no battle starts on attacker side, then nothing to send to "defender" side.


RE: ERA III - Archer30 - 22.10.2022 17:42

Berserker, sorry for messing up legacy erm trigger names, I mean FU(OnBeforeBattleUniversal) and FU(OnAfterBattleUniversal). I thought they always come in pairs, until recently I find out BA:D1 is the exception.

As I see, many script writters are not aware not this. For example, one author sets up global vars OnBeforeBattleUniversal and reset those vars to default stats/0 OnAfterBattleUniversal. This works fine in most of the case, yet it break when we have BA:D1. The OnAfterBattleUniversal does not trigger and variables are not initialised correctly. Should all the variable resets moved to OnBeforeBattleUniversal instead?


RE: ERA III - Berserker - 22.10.2022 20:05

Right, they are not paired. It's a bit strange, but really if you cancel battle, it does not start and it does not finish, everything is right.

Yep, it's really not obvious, but having AfterBattle without battle will produce script bugs too. Anyway, we will have to check if battle was cancelled or not in every script Bad


RE: ERA III - daemon_n - 23.10.2022 03:02

!?FU(OnPreTownScreen);
2 бага:

1) срабатывает только если типы городов при смене отличаются.
Если нет, то триггер пропускается
ключевая проверка на типы сменяющихся городов, как я понял, находится здесь 0x5C6E17
достаточно сменить EAX на -1 (а лучше на -2, так как дальше есть проверка на -1 перед вызовом на 0x5C6E1F), и триггер сработает;

2) не срабатывает при переключении городов на стрелочки на клавиатуре


RE: ERA III - XEPOMAHT - 25.10.2022 05:01

Ещё один то-ли баг, то ли фича эровских кнопок: в экране героя они срабатывают только на тип клика 13. Остальные типы кликов полностью игнорируются, что в общем-то печально... Т.е. код непосредственно на нажатие эровской кнопки применить увы нельзя. Зачем так ограничен функционал эровских кнопок по сравнению с оригинальными содовскими - совершенно не понятно. 112


RE: ERA III - daemon_n - 25.10.2022 06:14

XEPOMAHT, пкм (14) тоже работать должен


RE: ERA III - XEPOMAHT - 25.10.2022 06:39

(25.10.2022 06:14)daemon_n Wrote:  пкм (14) тоже работать должен

На ПКМ там стандартная эровская реакция - вывод текста из *.btm, потому данный тип клика не нужен (там всё равно нет возможности отмены вывода текста, а может быть в дебрях кода эры оно где-то и есть...). Ну фиг с этим - использую тип клика 13 вместо 12 - немного некорректно, ну с этим сейчас ничего не сделать кроме как ставить свою кнопку с НУЖНЫМИ флагами, а эра похоже ставит немного не те какие нужно флаги, закрывая доступ моддеру к установке кастомного флага - то же самое, что и в случае с индексом кнопки, что очень не удобно (например тип 12 будет нужен, если в экране героя игроку что-то нужно будет перетаскивать из эровской кнопки, тащить с заменой курсора можно из содовского элемента диалога, а вот из эровского - уже фиг, возможно это намёк на то, чтобы моддеры ставили свои кнопки сами...).


RE: ERA III - Berserker - 25.10.2022 06:51

XEPOMAHT, Эра ничего не ставит. Ставил плагин buttons.dll от МОРа, для которого я лишь написал обвязку. Его исходники открыты. Могу найти и загрузить.


RE: ERA III - XEPOMAHT - 25.10.2022 07:34

(25.10.2022 06:51)Berserker Wrote:  Ставил плагин buttons.dll от МОРа, для которого я лишь написал обвязку. Его исходники открыты. Могу найти и загрузить.

Загрузи если не сложно. Т.к. хуки buttons.dll не показывает в логе патчера, возможно я мог записать свои хуки поверх хуков из buttons.dll из-за чего часть функционала buttons.dll и не работает (например в экране города buttons.dll ничего не выводит по ПКМ, приходится делать это Тифоном).


RE: ERA III - daemon_n - 25.10.2022 07:44

XEPOMAHT, плагин же buttons.era


RE: ERA III - Berserker - 25.10.2022 09:08

Хватай Sm
https://dropmefiles.com/itocW


RE: ERA III - XEPOMAHT - 25.10.2022 16:06

(25.10.2022 09:08)Berserker Wrote:  Хватай Sm
https://dropmefiles.com/itocW

Спасибо. Буду использовать в ERA+.


RE: ERA III - Berserker - 25.10.2022 16:25

Это исходник buttons.era, пожалуйста.


RE: ERA III - Archer30 - 29.10.2022 06:23

A WoG bug:

When a commander with Block ability active (Defense + Speed) attacks a stack processed with Fire Shield, there is a chance to trigger Block with the Fire Shield damage. Once Trigger, the Block animation would be played on both the commander and the stack with Fire Shield.

It seems to be a visual bug only. The correct way would be to play the animation only for the commander. Although it is also questionable whether Fire Shield could be considered as Physical damage that can be blocked by the commander.

Btw, I recreated Block ability with erm. I think this script has the perfect behaviour imo. It seems to me that the timing for triggering commander's Block is like at MF1, while I coded my scirpt with OnStackToStackDamage.


RE: ERA III - Berserker - 29.10.2022 09:22

Ok, thanks for info.


RE: ERA III - Archer30 - 01.11.2022 02:39

Np 148

Reporting a critical bug of igrik's quest dialog plugin:

If you visit a Guard that is only available to another player, for example, Green player visits a Guard that can only be passed by Red, the Quest log is permanently locked, resulting in a CTD every time clikcing on it.

Image: kcQf2iB.png

Save game for testing


RE: ERA III - Archer30 - 04.11.2022 08:16

Berserker, please remove SeerHut.txt from hmm35wog.pac in order to solve the problem above.

In ERA 3, this text file was added with meaningless edits, resulting in the buggy quest guard event written in Quest Log. That's the culprit for CTD opening quest logs. igrik's plugin has nothing to do with it.

Credit:
Cruel Tomato and Hawaiing for identifying the actual cause of the problem.


RE: ERA III - Berserker - 04.11.2022 08:20

Archer30, ok, thanks. I don't remember the origin of this file.


RE: ERA III - Archer30 - 04.11.2022 08:38

Berserker, no problem. It was a pure coincident the guys found the actual cause of the problem without many tests. 96-copy


RE: ERA III - Archer30 - 06.11.2022 06:28

I don't fully get the idea of the new VR:C syntax. Was trying to create an array of the new combination artifacts.


It looks like I am not allowed to re-declared my newCombiArtPieces with a new length.
Here I tried to set newCombiArt to 1, yet my newCombiArtPieces array has still got the size "4" from the its declaration when newCombiArt = 0.

Is this the intended behaviour?


RE: ERA III - Berserker - 06.11.2022 08:05

That's because !#VA arrays are static arrays, while you need dynamic array here. If array size differs on conditoin, then use dynamic array.

!!VR:C is not related to issue it all.

But you can also declare largest possible set array like artPieces[16] and declare numPieces:y var separately. Thus you effectively emulate dynamic array without any memory allocation/deallocation.


RE: ERA III - Archer30 - 06.11.2022 08:27

By dynamic you mean SN:M series?

Getting confused again, how to declare numPieces:y seperately?

I ended up converting my code to SN:M


Is there any chance this code can be using VR:C array instead? Or any better implementation?

It is rather interesing that HE:A2 not working as expected under OnEquipArt. HE:A2 doesn't count the artifact being equipped (v998), which makes my code longer than expected.


RE: ERA III - Berserker - 06.11.2022 12:47

Something like that:




RE: ERA III - Archer30 - 06.11.2022 20:04

Berserker, I get the idea, thanks! 132

Is it true that usually VR:C arrays are preferred than SN:M, as they use fewer system resources?


RE: ERA III - daemon_n - 07.11.2022 08:00

Archer30, it is true)


RE: ERA III - Berserker - 07.11.2022 17:42

Archer30, if you don't use arrays in heavy loops, use whatever is simplier for your task. For heavy loops (100000+ iterations every turn, for instance), you MAY use static arrays in the most significant and most often called functions.

The task above is easily solved using static array and array index access syntax is quite readable numCombiArtPieces[i]. In complex cases use trigger local dynamical array. It's easy to create, fill, sort, pass to another function, etc.

Static arrays are for really simple tasks.


RE: ERA III - XEPOMAHT - 23.11.2022 07:03

Огромная просьба не использовать это в era.dll (проверял с версией 3.9.3)

Code:
HeroSpecsTable:             PHeroSpecsTable        = Ptr($7B4C40);

Т.к. в ERA+ данная таблица не используется, в итоге новые эровские ERM-команды Берсеркера, пытающиеся читать $7B4C40, читают мусор и скрипты работают с Ашибками.

Базовый адрес на данную таблицу находится в 679C80h. Используйте базовый адрес в режиме реального времени, а не копируйте его куда-то заранее, до того, как таблица будет перемещена, получая в итоге неправильный адрес!!!


RE: ERA III - Berserker - 23.11.2022 13:34

XEPOMAHT, а нельзя ли в OnAfterStructsRelocations получить конечный адрес по базовому?


RE: ERA III - XEPOMAHT - 23.11.2022 14:54

(23.11.2022 13:34)Berserker Wrote:  а нельзя ли в OnAfterStructsRelocations получить конечный адрес по базовому?

Не рекомендуется, т.к. таблица может быть перемещена в любой момент времени, например маппер может создать собственную таблицу специализаций в ассоциативной памяти эры и подключить её к игре с помощью базового адреса в инструкции карты. Тифон патчит структуры после AfterWoG уже после всех патчей ЭРЫ в AfterWoG, а эровская обработка OnAfterStructsRelocations происходит имеено в эровском AfterWoG, а не где-то позже, из-за чего ЭРА не воспринимает данные из OnAfterStructsRelocations полностью (те же самые глюки со структурой монстров, где вперемешку используется и старый и новый адреса из-за позднего OnAfterStructsRelocations).


RE: ERA III - Berserker - 23.11.2022 15:44

До сих пор проблема сделать патчинг в AfterWoG?

Code:
; Code section
section '.code' code readable executable

rd 500; для антивирусов

_OnAfterWoG              db 'OnAfterWoG', 0
_OnCustomDialogEvent     db 'OnCustomDialogEvent', 0
_OnBeforeBattleAction    db 'OnBeforeBattleAction', 0
_OnAfterBattleAction     db 'OnAfterBattleAction', 0
_OnBeforeErmInstructions db 'OnBeforeErmInstructions', 0

DLL_PROCESS_ATTACH = 1

match =FALSE, COPYMODE
{
proc TYPHON, hDll, Reason, Reserved
  ; только при подключении dll к процессу, не к потокам
  .if dword [Reason] = DLL_PROCESS_ATTACH
    ; регистрируем обработчики событий
    stdcall [RegisterHandler], OnAfterWoG,              _OnAfterWoG

Code:
; ГЛАВНАЯ ПРОЦЕДУРА
proc OnAfterWoG uses esi edi ebx, Event ; после инициализации WoG
; ставим хуки
       mov esi, Table_Hooks
.LoopHooks:
       mov al, [esi+8]
       mov ecx, [esi+4]; тифон
       mov edx, [esi]; ориг
       mov [edx], al
       lea eax, [edx+5]
       sub ecx, eax
       mov [edx+1], ecx
       add esi, 9
       cmp esi, End_Table_Hooks
       jl .LoopHooks
; Меняем допустимое кол-во существ:
       mov esi, ChangeNumMon; таблица адресов
    @@:
       lodsd
       mov dword [eax], MonNum
       cmp esi, EndChangeNumMon
       jnz @b
; изменения для случайной генерации
       mov dword [541159h+1], MonNum-1
       mov eax, -0FB0h;
       mov dword [541013h+2], 0FB0h
       mov [54106Bh+2], eax
       mov [54109Ch+3], eax
       mov [5410E1h+3], eax
       mov [541174h+3], eax
; переносим структур MonNum
       mov eax, MonNamesERM; таблица имён и описаний для ERM
       mov [733390h], eax
       mov [7333C3h], eax
       mov [7514F4h], eax
       mov [752185h], eax
       mov [7521F1h], eax
       mov [752F35h], eax
       mov eax, 12*MonNum; размер таблицы
       mov [7514EFh], eax
       mov [75217Ch], eax
; Переносим таблицу ссылок на имена существ и способност



RE: ERA III - XEPOMAHT - 23.11.2022 16:05

(23.11.2022 15:44)Berserker Wrote:  До сих пор проблема сделать патчинг в AfterWoG?

Да. В AfterWoG нет порядка и хуки Тифона могут быть случайно перекрыты любым сторонним кодом из AfterWoG от другого плагина, что небезопасно (особенно когда Патчер или сама ЭРА пытаются ставить свои высокоуровневые хуки поверх тифоновских не понимая, что при забивании нопами испорченного хуком кода портится чуть ли не половина функции, т.к. патчеру или ЭРЕ нельзя сказать, что код испорчен - анализатор кода патчера всегда пытается найти место выхода из хука, перенеся и выполнив при этом затёртый код вместо программиста невзирая ни на что, в итоге приводит к ошибкам в игре, т.к. патчер не видит "грязные" хуки, ему только чистый код подавай, спасибо на том, что патчеру просто можно в той же "грязной" форме сказать, что в этом месте Тифон что-то меняет, но это больше для тех, кто занимается совместимостью с ERA+, а не для самого патчера, память которого наборот забивается несуществующими патчами, о которых патчер только знает, но которые никогда не выполняются). Тем более сейчас, когда в эровском AfterWoG участвуют добрая пловина плагинов к ЭРЕ и будут участвовать ещё и будущие плагины. Отдельный хук после AfterWoG на все тифоновские патчи геройских структур был сделан в Тифоне Мастером ещё начиная с версии 1.0, и все патчи в версии 3.ХХ написаны именно под этот адрес хука, а не под AfterWoG, просто страшно, что ту гиганскую портянку придётся адаптировать под AfterWoG - это ~3300 ассемблерных команд, вручную всё это проверять (тем более, когда многие команды затрагивают саму ЭРУ и HD-мод) - самоубийство для проекта ERA+. Лично я предпочитаю делать по принципу "написал->работает->не трогай", т.к. времени, которое я могу уделять на развитие ERA+, стало не так много.


RE: ERA III - Berserker - 23.11.2022 16:55

1) Код Эры выполняется ДО кода всех плагинов. Иными словами, все обработчики OnAfterWoG Эры выполняются ДО любых обработчиков OnAfterWoG плагинов. Перепроверять особо ничего не нужно.

Quote: Отдельный хук после AfterWoG на все тифоновские патчи геройских структур был сделан в Тифоне Мастером ещё начиная с версии 1.0
2) Это костыльный вариант. В TyphonZ я сразу же заменил его на нормальную подписку на события. А игра в кто первее пропатчит одно и то же место обречена на провал. Два плагина, переносящие одну и ту же структуру, и так несовместимы.


RE: ERA III - XEPOMAHT - 23.11.2022 17:18

(23.11.2022 16:55)Berserker Wrote:  Два плагина, переносящие одну и ту же структуру, и так несовместимы.

Хорошо, пример: Тифон подменяет некоторые кривые хуки Эмерала на артефакты. Так же Тифон подменяет хуки например от buttons.era, затирает кое-что из game bug fixes extended.dll, wog_native_dialogs.era, да простит меня Игрик.... Более того, манипуляции Тифона происходят и с HD_WOG.dll. Именно ради совместимости с плагинами Тифон должен выполняться на 100% после ВСЕХ плагинов, устанавливающих хуки в AfterWoG, иначе Тифон не сможет контролировать эти хуки. Да, в чистом безкостыльном виде typnon.dll вообще ни с чем практически несовместим так же точно как в среде ЭРЫ и эровских плагинов не сможет выполнится HotA.dll с просто гигантским количеством изменений в коде игры несмотря даже на все ухищрения патчера.

Если функционал всех плагинов, входящих в базовую комплектацию ЭРЫ и ЭРЫ+, добавить непосредственно в typhon.dll, тогда да - можно будет безболезненно перенести установку всех патчей и хуков в эровкий AfterWoG.

Собственно AfterWoG - для небольших плагинов. Глобальные плагины должны использовать аналог AfterWoG, чтобы работать независимо от того винегрета, который исполняется в AfterWoG и с которым у Тифона всегда будут конфликты. Авторы плагинов не могут/не хотят заниматься совместимостью с ЭРА+ (исключение - Игрик), их не мало, со всеми договориться просто не реально (пишут плагины и программисты из Кореи например), поэтому совместимость приходится делать только в рамках самой ЭРЫ+ с отдельными dll. AfterWoG для этого совершенно не годится в виду своей безконтрольности.


RE: ERA III - Berserker - 24.11.2022 07:29

XEPOMAHT, плагины ведь грузятся в порядке сортировки по алфавиту. Почему бы не назвать typhon.dll ztyphon.dll или zztyphon.dll? )


RE: ERA III - XEPOMAHT - 24.11.2022 07:42

(24.11.2022 07:29)Berserker Wrote:  Почему бы не назвать typhon.dll ztyphon.dll или zztyphon.dll? )

Ну вдруг кто-то захочет добавить плагин с именем zzzzz.dll? Или плагин на русском/японском/китайском языке, который может грузится ещё позже? Было бы что-то аналога list.txt, в котором содержался бы список совместимых с модом плагинов в соответствующем порядке загрузки, но это во первых неудобно, во вторых вряд ли стоит ради одного единственного typhon.dll. Ну или создать новую папку или расширение для плагина, который будет гарантированно на все 100% выполнять код в AfterWoG после любых *.dll и *.era. Правда тоже зачем? Лучше оставить как есть - в тифоновском хуке сразу после AfterWoG.


RE: ERA III - Berserker - 24.11.2022 07:47

XEPOMAHT, у Эра+, как ты сам заметил, по умолчанию слабая совместимость с плагинами и ты тщательно их отбираешь сам. Потому как быстрое и простое решение — вполне. Могу альтернативно сделать просто приватное событие для Era+ вместо AfterWoG. Это мне пара строк кода.


RE: ERA III - XEPOMAHT - 24.11.2022 08:32

(24.11.2022 07:47)Berserker Wrote:  у Эра+, как ты сам заметил, по умолчанию слабая совместимость с плагинами и ты тщательно их отбираешь сам.

Пользователей Эра+ это не останавливает. Кто-то например захочет доложить в мод новейший плагин от daemon_n, кто-то может написать свой собственный конкретно под Эру+. Тем более в составе Эры+ есть редакторы монстров и заклинаний, а в будущем возможно будет и редактор городов, что так же привлекает некоторых энтузиастов.

(24.11.2022 07:47)Berserker Wrote:  Потому как быстрое и простое решение — вполне. Могу альтернативно сделать просто приватное событие для Era+ вместо AfterWoG. Это мне пара строк кода.

Лично я не понимаю, чем новое эровское событие, которое будет добавлено исключительно для Тифона, будет лучше хука? В данный момент эровские события в Тифоне не используются вообще никак. А "import era" в импортируемых процедурах закомментирован до лучших времён.


RE: ERA III - Berserker - 24.11.2022 08:53

Потому что оно сработает до OnAfterStructsRelocations. А в том событии все структуру уже должны быть перенесены.


RE: ERA III - XEPOMAHT - 24.11.2022 09:18

(24.11.2022 08:53)Berserker Wrote:  Потому что оно сработает до OnAfterStructsRelocations. А в том событии все структуру уже должны быть перенесены.

Там прикол был в том, что с той же структурой монстров RedirectMemoryBlock не срабатывал из AfterWoG, поэтому у меня нет доверия к эровскому AfterWoG, слишком много уже с этим намучался. RedirectMemoryBlock корректно работал только в момент инициализации самой dll и больше нигде. Причины неизвестны, возможно, что ЭРА всё же копирует адрес на структуру монстров где-то до AfterWoG, а где-то - после, поэтому в эровском диалоге найма монстров не отображались ресурсы, хотя всё остальное - работало, та же самая ситуация была у Маячка в феаноровском плагине на новых монстров, не знаю, как он её разрулил.

Проще уж применять в era.dll результаты RedirectMemoryBlock где-нибудь перед главным меню игры, когда все структуры уже пропатчены. Без специальных событий для плагинов, глобально меняющих структуры игры.


RE: ERA III - Berserker - 24.11.2022 13:17

Да работает он, работает. Сразу после вызова по функции GetRealAddr можно проверить. Предлагаю всё же выделенное событие. Тебе там правок-то буквально строк 5.


RE: ERA III - XEPOMAHT - 24.11.2022 15:51

(24.11.2022 13:17)Berserker Wrote:  Предлагаю всё же выделенное событие. Тебе там правок-то буквально строк 5.

Если такое событие появится в следующей версии ЭРЫ, то можно будет попробовать.


RE: ERA III - Berserker - 24.11.2022 16:34

Прямо сейчас для тестов тебе подходит OnReportVersion.

Порядок:

Code:
VfsImport.RunVfs(VfsImport.SORT_FIFO);
  VfsImport.RunWatcherA(pchar(GameDir + '\Mods'), 250);

  EventMan.GetInstance.Fire('OnAfterVfsInit', NO_EVENT_DATA, 0);

  LoadPlugins('era');
  EventMan.GetInstance.Fire('OnBeforeWoG', NO_EVENT_DATA, 0);
  BinPatching.ApplyPatches(GameDir + '\' + PATCHES_PATH + '\BeforeWoG');

  InitWoG;

  LoadPlugins('dll');
  EventMan.GetInstance.Fire('OnAfterWoG', NO_EVENT_DATA, 0);
  BinPatching.ApplyPatches(GameDir + '\' + PATCHES_PATH + '\AfterWoG');

  EventMan.GetInstance.On('OnGenerateDebugInfo', OnGenerateDebugInfo);

  EventMan.GetInstance.Fire('OnReportVersion');
  AssignVersionsInfoToCredits;

  EventMan.GetInstance.Fire('OnAfterStructRelocations');



RE: ERA III - Archer30 - 17.12.2022 10:20

Some mod makers are asking for a correction for the non-working !?FU(OnKeyPressed)&i^key^=(KEY_F12) Rolleyes


RE: ERA III - Berserker - 17.12.2022 21:16

F12 and F11 have special meaning and are handled by ERA for reload scripts and extract scripts feature.


RE: ERA III - Archer30 - 25.12.2022 17:07

Right.

Possible to enable ert support for QW:A?

Quote:A#1/#2/#3/$4;

Lets you add, change, or remove an entry in the new Papyrus quest log.
    #1 - A unique number you set for the the particular quest (set only)
    #2 - Hero number (See Format H)
    -1 - Current
    -2 - Any (all heroes). Set only
    #3 - Owner (See Format E1).
    -1 - Current,
    -2 - Any (all colours) Set only.
    $4 - index for Z variable containing quest text.
    -1 - Delete this quest (set/check/get).
Comments:
You can use a combination of #2=-2 and #3=-2:
   #2=-2 and #3=owner - all heroes of this owner have this quest.
   #2=hero and #3=-2 - this hero of any owner (if rehired) has this quest.
Quest text may be formatted.

For now $4 works only for normal z vars. It makes a conflict sometimes.


RE: ERA III - daemon_n - 25.12.2022 17:21

I wanna also remind, that F10 and F11 are used by HD mod to swap army/arts in the hero meeting screen, so we have a bit conflict there.


RE: ERA III - Archer30 - 29.12.2022 05:33

Can we have a trigger OnAfterEquipArtifact which is slightly after !?AE0?

The drawback of !?AE is, it doesn't reflect the artifact being equipped (stored at v998) to HE:A2. And this makes scripting not very convenient. Like I have to script like this (Showing a dialog when equipping the last piece of the artifact combo)


RE: ERA III - Berserker - 29.12.2022 09:51

I agree. Such trigger is necessary.


RE: ERA III - Archer30 - 31.12.2022 04:05

Thanks for considering.

There's something counterintuitive that I'd like to discuss here:
The i^battle_round^ (v997) is still a negative number on the first OnBeforeBattleStackTurn and OnBattleStackObtainsTurn after the Tactics phase. Some kinda bug?


RE: ERA III - Archer30 - 03.01.2023 21:48

I have a suggestion. Can we have WoG and Era Erm Framework mod loaded without considering whether they are in list.txt?

It happens that some players could accidentally disable these mods and got countless error msg. Would be really good if we ease the pain.


RE: ERA III - Berserker - 04.01.2023 07:36

Archer30, seems like OnBeforeBattleStackTurn occurs before start of the round. Did you check OnBattleRound vs OnBeforeBattleStackTurn precedence?

EEF mod is not obligatory, forcing WoG mod is possible, though currently it's allowed to rename this folder to anything else or event split the data between mods.


RE: ERA III - Archer30 - 04.01.2023 08:19

Quote:Did you check OnBattleRound vs OnBeforeBattleStackTurn precedence?

Yes. The first OnBeforeBattleStackTurn after Tactics phase happens before OnBattleRound&i^battle_round^=0. It works as intended, but not obvious.
Anyway, it confused me when I wanted to mimic the native artifact cast behavior (Angelic Alliance) which happens on the first stack turn of each side. I ended up with a hook for it. Solution found, I won't bother anymore.

About obligatory mod, well EEF is not, but I personally hope to have it always enabled since players would submit false reports that result by disabling EEF.
Possible to let mod maker define obligatory mods from json? We have a few total conversion mod distributions (based on ERA) today, like Knightmare Kingdome by Majaczek, Legacy of the Void by Kongsuni. The authors would certainly like to have a controlled mod list.
Renaming is some kind of advanced action. A player knows it well that renaming could break things, just like any other application in Windows. However, double-clicking on items in the mod manager is not. It is frequently happening that a player disables a mod without realizing it. Ideally, I hope SyDr disables the feature "enable/disable a mod by double-clicking" too.


RE: ERA III - V.Vejlivy - 08.01.2023 10:34

Здравствуйте! Спасибо всем вам большое за вашу работу по продвижению и улучшению любимых игр нашего детства/юности/и_даже_зрелости!! Много лет играю в Героев 1-5, качаю и храню на дисках разные версии, моды, регулярно читаю и держу в закладках многие темы на этом и других форумах, но разродился зарегиться только сейчас, именно для того чтобы выразить всем причастным огромную человеческую благодарность! Уверен, что таких же, как и я, тихих соглядатаев и пользователей вашего творчества ещё очень много на нашей планете! С наступившим вас Новым 2022-м годом, пусть он принесёт только благо и пользу всему человечеству и всем прочитавшим это сообщение лично!
С превеликим уважением к вашему творчеству,
В.Вежливый.


RE: ERA III - V.Vejlivy - 08.01.2023 10:49

Вопрос:
Играю в HoMM-3 достаточно регулярно, чуть ли не через день. Скачал из нета все возможные подборки карт, даже страшно представить, сколько их у меня сейчас на компе скопилось, отсортировать всё некогда. Играю, для разнообразия переключаясь каждый раз с Хоты на Вог и иногда на MoP, последний крайнее время с установленным фан-патчем 3.15. Для игры с опциями Вог до сих пор пользую Эра 2.9.14 с откатом к ряду функций 2.9.13 (в части касающейся Эра_скрипт_рус), т.к. именно в ней, а не в рекомендуемой версии 2.46 меня практически всё устраивает, и совместимость с ранними модами и вообще. По существу, в собранной мною ручками сборке меня сейчас не устраивает только один артефакт, а именно, шляпа адмирала при включенной опции "артефакты рюкзака" (если есть возможность, подскажите, как это исправить в данной сборке, не скачивая новую).
Ну и на посошок - не станет ли шоком для меня установка Эры 3 после многих лет использования Эры 2?


RE: ERA III - Berserker - 08.01.2023 13:03

V.Vejlivy, не станет шоком. Особенно с модом на Продвинутые Классы.


RE: ERA III - daemon_n - 08.01.2023 15:30

Berserker, не знаю, давно ли, но команда !!MA:H(monId)/$ не работает - заметил, что она использует содовскую таблицу данных существ
вот фикс, кому надо:



RE: ERA III - XEPOMAHT - 08.01.2023 20:26

(08.01.2023 15:30)daemon_n Wrote:  не знаю, давно ли, но команда !!MA:H(monId)/$ не работает - заметил, что она использует содовскую таблицу данных существ

Нет, адресация там идёт чисто по прямому адресу на воговскую таблицу:

Code:
        case 'H': // AdvMapH H#/$ соответствующий параметр в TXT
            if(Apply(&MonTable[k].AdvMapH,4,Mp,1)) break;
            CrIsChanged(k);
            break;

Естественно, что в феаноровском плагине на новых монстров патча на данную команду может быть просто не быть. В Тифоне с первой версии соответствующий патч на весь !!МА есть, если что.


RE: ERA III - daemon_n - 09.01.2023 03:39

XEPOMAHT, а ты просто проверь на чистой ЭРА MA:H/ , и будет тебе ответ 118


RE: ERA III - Archer30 - 09.01.2023 11:43

BM:Q command does not work correctly. No matter what I try, the placed mines damage the defenders when the caster is one of the defending stack


Edit: Looks like BM:C for casting Quicksand also has this problem. The victims are always the defenders


RE: ERA III - Berserker - 09.01.2023 12:17

Tried placing mines in OnBattleRound event?


RE: ERA III - Archer30 - 09.01.2023 15:33

same


RE: ERA III - daemon_n - 09.01.2023 16:46

oh. that explains "gremlins cast mines winth desync in pvp combats" 102
they cast that spell only on one side


RE: ERA III - Berserker - 10.01.2023 09:10

Yeah, seems like the same issue with mines, casted by gremlins stack experience. Built-in desynchronization bug.


RE: ERA III - Raistlin - 13.01.2023 09:54

Quote:- ERA intercepts all rand/srand calls. Previously a few functions were not tracked.
Если в моем коде тоже вызывается эта функция, это на что-то влияет? При игре по сети не будет рассинхронизации?


RE: ERA III - Berserker - 13.01.2023 10:03

Наоборот, рассинхронизации по сети не будет.


RE: ERA III - Raistlin - 13.01.2023 10:18

Замечательно, спасибо!


RE: ERA III - SergOz - 13.01.2023 11:31

В !!SS:N$ -Установить/проверить/получить название заклинания / $ – текстовая z-переменная
нельзя воспользоваться s^^ переменной


RE: ERA III - Berserker - 13.01.2023 14:19

Разве SN:H^spell^ не решает именно эту проблему?


RE: ERA III - SergOz - 13.01.2023 16:37

Berserker, та решает...
Но о такой команде же надо помнить Sorry


RE: ERA III - Archer30 - 21.01.2023 14:12

An erm request:

Can we have the returned value of OW:T-1/?(team:y) as -1 instead of 0?

Would be more convenient to have it this way so that it doesn't confuse with the real number 0 team.

Here's an example showing why this can be useful

Without (team) = -1 from OW:T-1/?(team:y)

With (team) = -1 from OW:T-1/?(team:y)



RE: ERA III - daemon_n - 21.01.2023 14:18

Archer30, there is GetPlayerTeam in wog stdlib


RE: ERA III - Archer30 - 25.01.2023 01:28

I propose something like this to be added in EEF. It is surprising that FU(UnequipArtFromSlot) does not work for backpack slots. Would be good to have a universal artifact removal function.




RE: ERA III - XEPOMAHT - 25.01.2023 02:44

(25.01.2023 01:28)Archer30 Wrote:  I propose something like this to be added in EEF. It is surprising that FU(UnequipArtFromSlot) does not work for backpack slots. Would be good to have a universal artifact removal function.

В данный момент - только вызовами соответствующих содовских функций эровским SN:E. Адреса без труда находятся в эровском H3era.dbgmap, как вызывать - в ollydbg например.

В ERA+ как раз занимаюсь добавлением в HE:A поддержки рюкзака героя. Включая открытие этого самого рюкзака из любого места игры (порт с MoP). Да и в саму команду !!HE постепенно добавляются все разобранные за 20 лет данные, включая небольшое ускорение работы самой !!HE за счёт добавления в неё кейсов вместо многократных elseif.


RE: ERA III - Berserker - 25.01.2023 07:11

Archer30, artifacts in backpack are not treated as equipped (they do not have any effect on hero). To the function has no sense for them. You need removeArtifactFromBackpack function or generic removeArtifact function?


RE: ERA III - Archer30 - 25.01.2023 09:22

A general function for removing an artifact from a given slot would be good.

The erm combination HE:A1 + HE:A2 almost serves the part FU(UnequipArtFromSlot) missing, yet HE:A doesn't allow defining a particular slot for art removal

Quote:В ERA+ как раз занимаюсь добавлением в HE:A поддержки рюкзака героя. Включая открытие этого самого рюкзака из любого места игры (порт с MoP).
Cool feature 132


RE: ERA III - igrik - 27.01.2023 08:20

Berserker, не подскажешь адрес по которому WOG устанавливает все свои основные патчи и хуки (где-то между срабатыванием заплаток BeforeWoG и AfterWoG)


RE: ERA III - Berserker - 27.01.2023 17:14

Их плагин HD мода ставит, перехватывая управление вогом, там адрес динамический.
А так тебе нужна Initialize из _B1.cpp по адресу 701215

Code:
Dword Initialize_P=0;
void Initialize(void)
{
  int   i,j;
  long  del;
  Byte *s,*d;

  Initialize_P=(Dword)ForAK; // to prevent removing of ForAK
  StartDLLService();
  if(LoadZVSDialogs()) return /*Exit()*/;
  //  CommonDialog("Hi from a Heroes3 extension!");
//  START("Start Up Initialization");

//InitWoGSetup();
//UseWogSetup(&DlgSetup);

  for(i=0;;i++){
    if(Accessers[i].where==0) break;
    s=(Byte *)&Accessers[i].what;
    d=(Byte *)Accessers[i].where;
    for(j=0;j<Accessers[i].len;j++) *d++=*s++;
//    *(long *)(Accessers[i].where)=Accessers[i].what;
#ifdef DEBUG
    if(DebugDPNum<DSNUM){
      if(Accessers[i].remember!=0){
        for(j=0;j<16;j++){
          char c=Accessers[i].remember[j];
          DebugDP[DebugDPNum].name[j]=c;
          if(c==0) break;
        }
        DebugDP[DebugDPNum].dp[0]=(Dword)Accessers[i].what;
        DebugDP[DebugDPNum].dp[1]=(Dword)Accessers[i].what+Accessers[i].size;
        ++DebugDPNum;
      }
    }
#endif
  }
  for(i=0;;i++){
    if(Copiers[i].from==0) break;
    j=Copiers[i].len;
    do{ *Copiers[i].to++=*Copiers[i].from++; --j;  }while(j!=0);
  }
  for(i=0;;i++){
    if(Callers[i].where==0) break;
    if(Callers[i].fnew==0) continue; // если новый указатель=0, то пропустим
    del=Callers[i].fnew-Callers[i].where-5;
    *(long *)(Callers[i].where+1)=del;
#ifdef DEBUG
    if(DebugDPNum<DSNUM){
      if(Callers[i].remember!=0){
        for(j=0;j<16;j++){
          char c=Callers[i].remember[j];
          DebugDP[DebugDPNum].name[j]=c;
          if(c==0) break;
        }
        DebugDP[DebugDPNum].dp[0]=(Dword)Callers[i].fnew;
        ++DebugDPNum;
      }
    }



RE: ERA III - igrik - 03.02.2023 22:46

Спасибо.
Вечно запариваюсь какие параметры хука использовать, если ида не указывает соглашение о вызове.
Поэтому просто оставлю это здесь, как памятку.
Code:
void Initialize(void) 0x701215 // в исходниках
signed int sub_701215() // в иде
_PI->WriteHiHook(0x701215, SPLICE_, SAFE_, CDECL_, WoGInitialize);



RE: ERA III - Archer30 - 06.02.2023 19:05

It is a little bit surprising to find out that IF:M breaks the mouse click/release event

Try this code:

What you want to do is to click on the first town of the list (item 32). You get a IF:M msg show correct item ID. And then try to click on anywhere of the Adventure map, you will again get the msg saying mouse item is 32, which is wrong (should be 37).

This is because in the mouse event was interupted by the frist IF:M and the "mouse release" part of the event was only triggered when we click the second time. It is understandable, but kinda surprising.


RE: ERA III - XEPOMAHT - 06.02.2023 20:12

(06.02.2023 19:05)Archer30 Wrote:  Try this code:

In ERA+ code working correct:


always 37 on adventure map click.


RE: ERA III - Berserker - 07.02.2023 05:39

Nope, saying 37.


RE: ERA III - Archer30 - 07.02.2023 05:48

Berserker, apologize for my miss. My code was more complicated than this, when I tested it, it produced error. And something magically happened when I extract the "problematic code", it just stopped being problematic 112

Okay I have another finding:

It looks like SN:F^GetGameState^ is useless. It seems only returns the y3 value (of SN:L A E) which is always 4205280 (Adv Map Screen) no matter what exactly the screen we are on. This defeats the purpose of using this command.



RE: ERA III - daemon_n - 07.02.2023 07:44

Archer30,
    !!SN:F^GetGameState^/?y1/?y2;
    !!IF:M^%y1 %y2^;
y1 always map, y2 current dlg


RE: ERA III - Archer30 - 07.02.2023 17:49

Great! Rolleyes Did not know it has a second argument as well


RE: ERA III - XEPOMAHT - 08.02.2023 00:43

(08.02.2023 00:29)Archer30 Wrote:  Bug report: AotD does not work for defending AI

In order to reproduce, just follow the steps
- use the erm
- pick one AI hero to fight
- find out the AI hero does not cast AotD spells

!!HE:A4 не оденет артефакт на куклу героя, если слот на кукле занят другим артефактом, включая заблокированные слоты. Артефакт будет добавлен в сумку, из которой автокаст не работает. Для 100% одевания артефакта сначала нужно раздеть героя, а потом уже что-то одевать.

И не стоит забывать, что автокаст от артефактов работает именно на ходе первого монстра со стороны героя, имеющего на кукле соответствующий артефакт.


RE: ERA III - Archer30 - 08.02.2023 01:02

Quote:!!HE:A4 не оденет артефакт на куклу героя, если слот на кукле занят другим артефактом, включая заблокированные слоты. Артефакт будет добавлен в сумку, из которой автокаст не работает. Для 100% одевания артефакта сначала нужно раздеть героя, а потом уже что-то одевать.

Thanks

For some reason, I want to kill myself now. "Report" removed.


RE: ERA III - Berserker - 08.02.2023 03:10

Please, don't kill yourself. We need you Sorry


RE: ERA III - Archer30 - 08.02.2023 04:09

Don't worry, if I can get some help with this matter

Image: ObGKNJQ.png

debug

A player reported this error about "no space in buffer". What does that mean? Looking for some general info and advice how to fix the problem

Edit: I start to wonder if the player had submitted a wrong debug folder for this problem, because it shows another problem that I had indentified.

Well, in this case, I still wonder how to resolve the problem from the debug. It was resulted by my "fix" to the first acting stack on the battlefield. It is sometimes not correct and thus I correct it by erm.

I wonder if there is a better solution, if my script can't work correctly.
It's not yet found what cause the error, but very likely, it's Majaczek's plugin )))


RE: ERA III - XEPOMAHT - 08.02.2023 05:37

(08.02.2023 04:09)Archer30 Wrote:  

По скрипту сразу видно отсутствие проверки на неинициализированные стеки. В итоге в переменную (speed:y) может записаться мусор. Так же нет проверки на стрелковые башни, в итоге - так же может затесаться мусорный результат функции.

Ну и сама запись "!!VRi^tum_firstStackFixed^:S(TRUE);" мне вообще не понятна. При чём тут тип переменных "i", которых и так кот наплакал? Используй старый добрый тип переменных "v".


RE: ERA III - Berserker - 08.02.2023 07:59

Quote:A player reported this error about "no space in buffer". What does that mean? Looking for some general info and advice how to fix the problem
It means bad hook somewhere in ERM in plugin, which broke ERM engine. Already told daemon_n about this message.

Quote:Well, in this case, I still wonder how to resolve the problem from the debug. It was resulted by my "fix" to the first acting stack on the battlefield. It is sometimes not correct and thus I correct it by erm.
I don't get the point of script, but anyway, check for monster type <> NO_MON, at least.

XEPOMAHT, это именованные SN:W переменные. i^...^ для чисел, s^...^ для строк.


RE: ERA III - daemon_n - 08.02.2023 12:02

Archer30, the problem is not about speed - there are some scripts that can affect stacks - imo better do not use "onStackObtainTurn"
use "regenerationPhase" or "BattleRound"


RE: ERA III - Archer30 - 11.02.2023 02:04

I believe the corrupted first stack was from Luck enhancement (WoG Scripts) and is now fixed by daemon_n, great! 132 My script for fixing is no longer needed.


RE: ERA III - daemon_n - 11.02.2023 07:26

Archer30, luck corrupting was cause of BM:C makes stack aactive when it casts


RE: ERA III - ArKan - 20.02.2023 00:25

Есть инструкция и рыба для добавления новых существ в игру?


RE: ERA III - XEPOMAHT - 20.02.2023 01:03

(20.02.2023 00:25)ArKan Wrote:  Есть инструкция и рыба для добавления новых существ в игру?

1. Устанавливаешь Тифон
2. Открываешь MCrEdit.exe, выбираешь свободного монстра, настраиваешь ему поля в программе, затем сохраняешь конфиг
3. Добавляешь в архив с игрой боевой def с озвучкой
4. Добавляешь портреты в CPRSMALL.def и TWCRPORT.def
5. Добавляешь фигурку монстра на карте - файлы *.def и *.msk, добавляешь соответствующую инфу в ZEOBJTS.txt, zaobjts.txt и zobjcts.txt
6. По желанию настраиваешь опыт монстрам в CREXPBON.TXT


RE: ERA III - ArKan - 20.02.2023 08:42

А отдельным модом?


RE: ERA III - daemon_n - 07.03.2023 03:55

В установщике ERA лежат старые:
патчер x86

game bug fixes extended.dll
wog native dialogs.era
wnd.json

EEF

sublime_erm_editor


RE: ERA III - Berserker - 07.03.2023 09:11

Скинь, пожалуйста, обновление указанных файлов/папок. Обновлю и у себя. Я-то уже из гонки новинок выпал.


RE: ERA III - daemon_n - 07.03.2023 09:23

Berserker, держи


RE: ERA III - Berserker - 07.03.2023 12:10

Спасибо!


RE: ERA III - Archer30 - 07.03.2023 23:12

Berserker, don't forget to remove seerhut.txt. And don't forget to update the debug map of game bug fixes extend and wog native dialog? Not sure if these are the latest here.

Btw there is problem I am not sure whether it should be fixed in ERA. The prices of WoG artifacts are not defineds in artraits.txt. Usually there is no problem with this as we don't trade these artifacts via Artifact Mechant building. However, with Algor's Advanced Artifact Mechanct script, these artifactrs are also allowed to appear in the shop. The prices are 0 and you can take them for free.
Should we define the prices in artrati.txt?

Is vfs.dll the latest from the 3.9.4 installer? I have one from 2021, which is newer but also smaller size comparing the one from your pacakage.


RE: ERA III - Panda - 08.03.2023 05:51

Патчер x86 лучше вообще убрать из дистрибутива Эры, т.к. непосредственно к самой Эре он отношения не имеет, это часть HD-мода. К тому же после каждого обновления HD-мода, может и иногда меняется версия патчера, а глюк с обновлением как я понял, для Эры так и не исправили.


RE: ERA III - XEPOMAHT - 08.03.2023 10:04

(08.03.2023 05:51)Panda Wrote:  Патчер x86 лучше вообще убрать из дистрибутива Эры, т.к. непосредственно к самой Эре он отношения не имеет, это часть HD-мода.

Патчер в данный момент необходим для запуска era.dll и доброй половины плагинов (даже Тифон вынужденно взаимодействует с патчером ради участия в его отладочной информации), поэтому убирать его нельзя.

(08.03.2023 05:51)Panda Wrote:  К тому же после каждого обновления HD-мода, может и иногда меняется версия патчера, а глюк с обновлением как я понял, для Эры так и не исправили.

Да, проблема, что era.dll "нопит" затёртый хуком код игры с помощью патчера, не исправлена, т.к. патчер при этом не всегда правильно понимает, какой затёртый код доложен быть скопирован в память патчера и исполняться после хука. В итоге, после хуков патчера может выполняться мусор, что ведёт к нестабильности. А большую нестабильность вызывают поставленные рядом хуки и патчи - патчер тоже не всегда корректно работает с таким "соседством".

Поэтому например мне приходится затирать во время установки хуков гораздо большие участки кода, чтобы снизить вероятность исполнения испорченного кода до 0.

Ну и самая беда была добавлена в 5.3:

Code:
5.3 R6 -> 5.3 R9 (09.09.2022)

[ ] The patcher_x86.dll library has been updated to version 4.15.1.
[+] Adventure map rendering is optimized and now runs in multiple threads (The feature is controlled by the Graphics.AdvMap.Threads tweak)
[+] Optimization of rendering of all graphics (regardless of the selected graphics mode).
[ ] Minor changes and fixes.

Что вызвало чудовищную нестабильность игры в модах, последствия исправляются по сей день (версия патчера должна быть ниже 4.15.1 или выше 4.17.3, то, что между этими версиями - глючит).


RE: ERA III - Berserker - 10.03.2023 06:46

Archer30, thank you, Archer, for your patience and valuable remarks. If you set price for those artifacts, I will include the file with them. It's abnormal, that artifact has no price.

Panda, без него Эра не запустится вообще. Так что это устаревающая, но критическая зависимость. Возможно, установщик не должен заменять этот файл при наличии более новой его версии в папке.

Quote:Да, проблема, что era.dll "нопит" затёртый хуком код игры с помощью патчера
Я с патчера использую только WriteData или WriteCode, то есть самую низкоуровневую часть. А в перехватчиках всё верно делается. Если перехватчик затирает часть команды, то вторая часть команды забивается пустыми операциями. Сами перезаписанные команды копируются в безопасное место. Как раз без этого получается мусор. Если два патча ставятся в пересекающуюся область, то они сами по себе уже несовместимы.

XEPOMAHT, а что за беда с версией 5.3 HD мода?


RE: ERA III - Berserker - 10.03.2023 06:55

Archer30, right, outdated vfs.dll in installer. Thanks.

Quote:а глюк с обновлением как я понял, для Эры так и не исправили.
Обновлением чего?


RE: ERA III - XEPOMAHT - 10.03.2023 07:45

(10.03.2023 06:46)Berserker Wrote:     Если два патча ставятся в пересекающуюся область, то они сами по себе уже несовместимы.

Да, в том то и дело, что проблема в совместимости, когда патчи эры, сделанные низкоуровневыми WriteData или WriteCode приходится перетирать тем же бараторческим WriteByte, чтобы патч было видно в "x86 patches.txt", в итоге команда WriteData, вызванная из ЭРЫ по какой-то причине затирает в 2 раза больший код, о чём можно узнать только в ollydbg, сам же "x86 patches.txt" показывет при этом, что там ничего затёрто не было. В общем, патчер совершенно не расчитан на отмену и перезапись чужих хуков, а в глобальных модах типа ERA+ эта штука нужна даже очень. Поэтому приходится делать выход из хука намного ниже, чтобы обходить испорченный патчером код.

(10.03.2023 06:46)Berserker Wrote:  а что за беда с версией 5.3 HD мода?

В начале в патчере замем-то отменили поддержку Windows 5.XX, затем вернули, но с утечками памяти и случайными вылетами при открывании/закрывании случайных окон. Далее, все вылеты патчера починили в SoD-версии, но в WoG-версии с этим не торопились и чинили по мере жалоб игроков. С каждой новой версией HD-мод работал всё более стабильнее, сейчас, по крайней мере у меня, вылетов патчера с WoG-ом в HD-моде не наблюдаю, надеюсь, что Бараторч исправил все критические ошибки, которые были добавлены после отмены и восстановления поддержки Windows XP и 2003.


RE: ERA III - Archer30 - 13.03.2023 20:00

It looks like any dialogue before PVP battle can lead to desync. In ERA, Astral Spirit's ability to persuade the enemy's troops does this job.
My suggestion is to hide this dialogue in PVP.
And maybe create a switch that can globally turn off all the dialogue before PVP battle.


RE: ERA III - daemon_n - 13.03.2023 22:19

Archer30, it requires using callback function to call any functions from it to resolve that issue


RE: ERA III - Berserker - 14.03.2023 09:09

Quote:в итоге команда WriteData, вызванная из ЭРЫ по какой-то причине затирает в 2 раза больший код
WriteData затирает ровно столько байт, сколько передано. Не встречал ни разу багов с ней.

Archer30, yep, messages before battle should be shown in !?BA0 trigger probably, before sending data to remote side.


RE: ERA III - daemon_n - 14.03.2023 09:13

Berserker, actually !?BA0; doesn't work for non active PC player at all;
so if AI attacks non active player, then we have some bugs there;


RE: ERA III - Berserker - 14.03.2023 15:05

Происходит рассинхронизация? Кто-нибудь смотрел в режиме отладочного вывода случайных чисел в консоль?


RE: ERA III - daemon_n - 15.03.2023 00:57

Berserker, числа не смотрел, но рассинхрон происходит.


RE: ERA III - Archer30 - 15.03.2023 02:18

Berserker, it seems to me there is serious problem of UN:I - it can fail on AI turn.

I found this from about 5 player reports. In my script Dragon Town, when AI tries to build the new town on the location of a defeated Utopia, the town has chance not appearing on the map, yet the structure of the town has been created and corrupted. This means the game will crash soon on the next week when executing 005BFF60 (fucntion for getting creature growth, it gets wrong creature ID). While on a human players's turn, this has never been reported. There was no player claiming that he paid the resources and the dragon town did not appear.

Any idea?

For now I will have to disable AI interaction in the script.


RE: ERA III - XEPOMAHT - 15.03.2023 02:41

(15.03.2023 02:18)Archer30 Wrote:  Any idea?

У тебя там какая-то странная команда, которой нет в хелпе:

Code:
; Generate a random number
!!VR(random:y):R0/1/15;

Случайный номер города - значения от 0 до 8 (в обычной ЭРЕ) или от 0 до 11 (в ERA Plus).

Из несуществующих типов городов нельзя получить их прирост и тем более поставить на карту.


RE: ERA III - Berserker - 15.03.2023 02:59

XEPOMAHT,

Quote:Version 3.0.0 (06/2020)
------------------------
[+] Added new command !!VR:R0/#min/#max, generating random value in specified range and assigning its to variable.
    Example: !!VRy1:R0/100/300; set y1 to random value in 100..300 range



RE: ERA III - Archer30 - 15.03.2023 03:02

XEPOMAHT, I hope you enjoy learning new syntax from my scripts 96-copy

The random number here is for getting a random name for the new town. It is not the type of the town. The town type is determined by the type of the hero.


RE: ERA III - XEPOMAHT - 15.03.2023 03:29

(15.03.2023 03:02)Archer30 Wrote:  I hope you enjoy learning new syntax from my scripts 96-copy

Да, я по-прежнему пользуюсь старым синтаксисом, т.к. пишу на ERM крайне редко. В основном использую Ассемблер вместо ERM у себя в опциях игры.

(15.03.2023 03:02)Archer30 Wrote:  The random number here is for getting a random name for the new town. It is not the type of the town. The town type is determined by the type of the hero.

Тогда эта команда

Code:
!!UN:I(x)/(y)/(z)/(OBJ_TOWN)/(townType)/(OBJ_TOWN)/(townType)/(terrain)/0; [x/y/z - the right bottom corner of the town]

откуда берёт тип города? Посмотрев скрипт, вижу что (townType) нигде не задаётся с помощью команды !!VR(townType). И тип этой переменной не известен (в старом ERM сразу виден тип, а тут - хрен пойми, как будто скрипт не полный).


RE: ERA III - Archer30 - 15.03.2023 03:31

XEPOMAHT,


It's not that messy. Just be aware that the first time a variable appears in a function, it has to be declared with ":y" ":x" ":z" depending on the type of var.


RE: ERA III - igrik - 15.03.2023 08:50

Berserker, а проверки без второго слагаемого разве разрешены в ERM2? Не знал.
Code:
!!UN&(ERM_FLAG_IS_HUMAN):R2;

или
!!UN:P73/?(enhWMIII:y);
!!PO(x)/(y)/(z)&(enhWMIII):H1 T1;



RE: ERA III - daemon_n - 15.03.2023 13:47

igrik, разрешены. С 3.1+, кажется


RE: ERA III - Berserker - 15.03.2023 16:23

igrik, да, разрешены и означают =(TRUE).


RE: ERA III - Archer30 - 15.03.2023 23:52

I thought that's !=(FALSE)?


RE: ERA III - daemon_n - 16.03.2023 03:29

Archer30, !false is equal to true :mon_demon:


RE: ERA III - Archer30 - 16.03.2023 06:53

There are several consistency problems of the wog stack exp abilities. Not sure if anybody cares. For example:

1. Firebird and Phoenix have the strongest Fire Shield ability in the game. It possesses all the allies with Fire Shield on high rank. However, Sacred Phoenix loses this ability completely.
2. Gorynyches are fearless. Yet they still got the fearless stack exp ability for some reason.


RE: ERA III - Panda - 17.03.2023 07:27

Berserker, XEPOMAHT,
спасибо за разъяснения.

Глюк с обновлением патчера при обновлении HD-мода.

(версия патчера должна быть ниже 4.15.1 или выше 4.17.3, то, что между этими версиями - глючит).
Ну, версию ниже 4.15.1 можно взять из архива или чистой сборки, там HD-мод 5.3 R6, а вот где взять версию выше 4.17.3 - вот в чем вопрос, т.к. сейчас при обновлении у меня последняя 5.4 R26, но версия патчера там 4.17.2.


RE: ERA III - XEPOMAHT - 17.03.2023 10:00

(17.03.2023 07:27)Panda Wrote:  сейчас при обновлении у меня последняя 5.4 R26, но версия патчера там 4.17.2.

Начиная с версии 5.3 R15 должен обновиться до 4.17.3. Возможно, из-за багов откатили до 4.17.2 или в логе обновлений ошибка. Лично я обновлял только патчер (т.к. именно он нестабильно и работал), сам HD-мод у меня 5.3 R11, но по логу правятся ошибки, включаяя критические, так что более предподчтительнее именно 5.4 R26 (я не поспеваю за обновлениями HD-мода, т.к. вручную муторно, это не ЭРА, где для обновления под ЭРА+ достаточно заменить 1 dll).


RE: ERA III - Berserker - 17.03.2023 12:52

Quote:I thought that's !=(FALSE)?
You're right.


RE: ERA III - Archer30 - 17.03.2023 13:43

There is a Heroes 3 bug in ERA. Disguise spell shows different levels of effect for different players.

Here's what you would see after casting Expert Disguise:
And here's what your opponent would see:
According to wiki, the second picture is wrong. The opponent should see all 0 (expert effect) like in the first picture.


RE: ERA III - Archer30 - 20.03.2023 19:17

It looks to me that the 5th parameter of BM:C, checking whether the position has a valid stack uses a bad way to check.

The BM:C spell won't be cast if the 5th parameter is TRUE, and the casting position is at a 2-hex unit's head.

While BM:C behaves out of expectation, BU:E works quite well. It correctly returns the stack ID when checking the hex of the head of a 2-hex unit.

My question is, is it possible to let BM:C uses to the same method of checking as BU:E?


RE: ERA III - XEPOMAHT - 20.03.2023 20:44

(20.03.2023 19:17)Archer30 Wrote:  My question is, is it possible to let BM:C uses to the same method of checking as BU:E?

Можно. Но для этого понадобится СИ-шный компилятор, чтобы заменить этот код

Code:
            if(Check){ // если надо проверять
                for(i=0,st=-1;i<(21*2);i++){
                    // 3.58 Tower skip
                    if(i==20) continue; // 3.58
                    if(i==41) continue; // 3.58
                    tmon=&bm[0x54CC+0x548*i];
                    if((*(int *)&tmon[0x38])==Pos){ st=i; break; }
                }
                if(st==-1) break;
                tmon=&bm[0x54CC+0x548*st];
                if((*(int *)&tmon[0x4C])==0) break; // монстр уже убит
            }

на этот

Code:
            bh=(char *)GetHexStr(v);
            if(bh==0){ MError("\"!!BU:E\"-incorrect hex number."); RETURN(0) }
            if(bh[0x18]==-1){ // нет живого стека
                st=-1;
            }else{
                st=(int)bh[0x18]*21+(int)bh[0x19];
            }

Т.е. спросите о подобном плагине для тех, кто пишет на СИ (не смогу помочь с этим).


RE: ERA III - Archer30 - 21.03.2023 13:25

XEPOMAHT, thank you very much. I believe this fix should be in ERA Rolleyes


RE: ERA III - Archer30 - 23.03.2023 03:47

There is another inconsistency with these 2-hex things.

In heroes 3, for Magog and Liches, we are able to choose which hex to attack on a 2-hex unit by mouse-clicking. This is crucial to maximize the effect of the attack and reduce the friendly fire.

Yet in WoG stack experience abilities - spell casting before/after attacks, this mechanism is lost. The spell will always be cast on the BM:P result of the 2-hex unit, instead of the hex mouse clicked.
You might think this is ok, yet when playing Magog, you would immediately feel uncomfortable. Magog has a 50% chance to cast Fireball before attacks on Ace rank. If you mouse click on the head of a 2-hex unit, you would see the first Fireball (stack exp ability) explode on the hip of the unit, and the second Fireball (attack) explodes on the head. I don't see a reason this attacking stack exp ability should have a different mechanism. Just like hero casting, you should be able to choose which actual hex to cast on attacks.


RE: ERA III - XEPOMAHT - 23.03.2023 07:33

(23.03.2023 03:47)Archer30 Wrote:  Magog has a 50% chance to cast Fireball before attacks on Ace rank. If you mouse click on the head of a 2-hex unit, you would see the first Fireball (stack exp ability) explode on the hip of the unit, and the second Fireball (attack) explodes on the head. I don't see a reason this attacking stack exp ability should have a different mechanism. Just like hero casting, you should be able to choose which actual hex to cast on attacks.

WoG-ability magogs is cast original spell. SoD-ability magogs not cast spell, only adding damage surround stacks after attack with Fireball animation. It is different game mechanics.


RE: ERA III - Archer30 - 24.03.2023 07:28

Yes, they are different. One is a normal attack and one is spell casting. But why should they use different strategies for positions? There is no reason, right? When a hero casts Fireball, the Fireball would appear in exactly the position of mouse-clicking. The same applies to Magog's normal attacks. That's why stack exp Fireball casting in the mouse-clicking position would also be favored. It follows the original H3 logic.


RE: ERA III - XEPOMAHT - 24.03.2023 16:27

(24.03.2023 07:28)Archer30 Wrote:  Yes, they are different. One is a normal attack and one is spell casting. But why should they use different strategies for positions? There is no reason, right? When a hero casts Fireball, the Fireball would appear in exactly the position of mouse-clicking. The same applies to Magog's normal attacks. That's why I stack exp Fireball casting in the mouse-clicking position would also be favored. It follows the original H3 logic.

Потому что в ВоГе это дело сделано костылями: доступ к стеку, по которому кликнули мышью, возможен только по 1 ячейке на поле боя. Соотвественно, чтобы получить ячейку для двухклеточного монстра, нужно сделать пересчёт, потеряв при этом место клика. ВоГ не сохраняет место клика. А код опыта монстра применяет заклиние на кликнутом, не важно как, монстре, а не на кликнутом гексе (т.к. гекс получается из структуры монстра, игнорируя гекс, по которому кликнул игрок). По идее, гекс, в который производится атака, хранится там же в структуре монстра, но ВоГ эту информацию не использует - возможно потому что её можно использовать после физической атаки, а не до, как сделано в ВоГе.


RE: ERA III - Archer30 - 30.03.2023 17:48

Something weird is happening

This script sets the specialty of all the heroes to Upgrading Pikeman and Cyclops to Cyclops Kings. Yet for some reason, Cyclops are also promoted to upgrade to themselves. And - if you refuse, you are even getting a 25% of stack exp penalty just like you upgraded.

Image: xtS3fOA.png


RE: ERA III - XEPOMAHT - 30.03.2023 18:56

(30.03.2023 17:48)Archer30 Wrote:  This script sets the specialty of all the heroes to Upgrading Pikeman and Cyclops to Cyclops Kings. Yet for some reason, Cyclops are also promoted to upgrade to themselves. And - if you refuse, you are even getting a 25% of stack exp penalty just like you upgraded.

Потому что под апгрейд по специализации подпадают 4 типов монстров. Так это работает в SoD. И в WoG, соотвественно, так же точно.


RE: ERA III - SergOz - 30.03.2023 19:18

Archer30, так получается только если в специализации героя выставить существо для улучшения и улучшенное существо такими, которые можно улучшить в городе, при наличии соответствующей постройки. То есть: Циклопов в Королей Циклопов, Кавалеристов в Чемпионов, Гогов в Магогов и так далее. Если ты поменяешь Циклопов на любое другое существо - такого бага не будет.


RE: ERA III - Archer30 - 01.04.2023 04:33

SergOz, this is a known issue? Thanks. after replacing Cyclops, the bug is resolved. Yet I still need the Cyclops to Cyclops King specialty.


RE: ERA III - SergOz - 01.04.2023 08:32

Archer30, может быть через !?FU(OnHeroScreenMouseClick) можно?
В том смысле, чтобы блокировать вызов диалога улучшения, если в слоте Короли Циклопов.
Я, правда, не знаю как можно отследить двойной клик Sorry


RE: ERA III - Archer30 - 01.04.2023 09:06

SergOz,


FU(OnDetermineMonInfoDlgUpgrade) works ok for setting new upgrades for specific creatures/heroes. This allows to set upgrading specialty without HE:X6.
But some of my other scripts require HE:X6 to return correct values, this bug makes it a bit inconvenient.

Edit: wait a minute...
A proper fix for this problem:

I believe upgrading to self should be globally disabled in ERA. Noone wants to do that as it's meaningless and costs stack exp.


RE: ERA III - SergOz - 01.04.2023 09:21

Archer30, да, хорошее решение. 20


RE: ERA III - Berserker - 01.04.2023 18:27

Right, should be a global fix.


RE: ERA III - Archer30 - 08.04.2023 06:09

I wonder if this is intended:
Santa Guard cannot move and melee attack, yet they can shoot. Ideally, the ability to shoot and melee attack should be the same. Otherwise, Master Gremlins get too many advantages as they are the only type of guards that can attack.

My suggestion is to enable the melee attack for Santa Guards. This balances ranged guards and melee a bit. Seeing a troop that cannot attack doesn't make much sense in the first place.


RE: ERA III - Berserker - 08.04.2023 15:12

You mean guards, granted by wog default stack experience settings?


RE: ERA III - Archer30 - 09.04.2023 04:50

Berserker, not exactly. The guards are given by Santa Gremlins' hardcoded ability, and WoG stack experience ability upgrades the guards from level 1 unupgraded troops to level 1 upgraded troops. In the case the hero belongs to the Tower faction, the upgraded guards are Master Gremlins, which are the type of guards that can attack as they can shoot.


RE: ERA III - Berserker - 09.04.2023 22:20

So the issue is wog experience settings. Maybe just change them to provide more non-upgraded guards?


RE: ERA III - Archer30 - 09.04.2023 22:27

Berserker, this is not an exp ability problem. What if there is a 13th faction and the 1st non-upgrade can shoot? Also in some mod, Centaur may be able to shoot without exp.

Currently, Santa has two abilities. one is upgraded guards, and the other is more guards.

I am happy with two solutions:
a. Give the guards the ability to melee, just like they can shoot.
b. Disable the guards' ability to shoot, just like they should not melee. If this is adopted, it's preferred automatically skip the guards' turn as it's meaningless clicking the defend button.


RE: ERA III - Berserker - 10.04.2023 03:12

Seems like b is intended solution, because guards are not summoned creatures, they should not move or shoot. Though there is no easy way to distinguish between them and regular stacks, afair.


RE: ERA III - daemon_n - 10.04.2023 14:36

Berserker, imo guards is really stupid abilitiy as it is - we have 20 stack per side limit - summonnig useless stacks makes gameplay overloaded and nonses cause of stupid "meat" placement - imo almost wog creatures is just a "look we can sth that was never possible before, we don't know why, but we can add that"
Same is about werevolves, ghost and dracoliches - i don't like these creatures at all - hundreds lines of code which make unmodable a lot of game functions and dependent on the new one.
In short Santa gremlins should be replaced or cut


RE: ERA III - Archer30 - 10.04.2023 20:01

Quote:Though there is no easy way to distinguish between them and regular stacks

Try this? Old addresses found by Hawaiing:
Santa Balance

Quote:i don't like these creatures at all
Just turn "Some Monsters are replaced with WoG Monsters" off. Rolleyes


RE: ERA III - daemon_n - 10.04.2023 21:08

Archer30, that will not remove "bad" code from the application 105


RE: ERA III - Spamexecute - 11.04.2023 19:16

Добрый вечер, проблема с рассинхроном (wog с опытом существ).
Из 3х игр, в 2х при нападении на вражеского героя (не компьютера), примерно на 7 - 10 ходе происходил рассинхрон. Где - то на форуме читал, что вроде - как это пофиксили, но не уверен.
Есть обновлённая информация ?
По надобности, моги приложить скирны с разных компьютеров.
Заранее спасибо.


RE: ERA III - Archer30 - 24.04.2023 16:12

It is rather surprising to realise that %Vi and %vi are actually different.

Script for testing:

%Vi was kept for legacy support?
Basically it's safe to batch replace all the %Vi to %i?


RE: ERA III - Berserker - 25.04.2023 07:47

Legacy support was a number 1 priority.


RE: ERA III - Archer30 - 25.04.2023 15:25

Reporting an issue with the ERA engine:

It seems to me w vars might have some issues in the SN:T syntax. Sometimes the w index is not recognised.

Check this screenshot for example:
Image: PmCDntm.png
Download the debug saved by clicking yes here

The code was not wrong:
Yet I can reproduce the problem 100%.
It was resolved only when I changed the code to:



RE: ERA III - Berserker - 26.04.2023 08:59

   I thought there is a restriction for up to 16 parameters for single ERM command. Could you try to reduce the number of parameters?


RE: ERA III - Archer30 - 16.05.2023 14:25

Berserker, it did not help.
The same error happens with
Not sure if this is related, but the problem only happens to a hero without an owner. Any difference in data for a hero with and without an owner on w160?

****

This may be a bug report. OnPreTownScreen doesn't get triggered when you teleport your hero from one Inferno to another with Castle Gate.


RE: ERA III - Berserker - 16.05.2023 22:12

Archer30, You must use IF:W to set hero for w-wars before using w-vars, afair.

OnPreTownScreen probably does not trigger if the same town dialog remains on the screen. Daemon_n wrote about some issue with town screen events, afair.


RE: ERA III - Archer30 - 16.05.2023 23:16

Berserker, I am an experienced erm writer and IF:W's never been forgotten. It's been put in the start of the function.
We are talking about the w index out of range - this is unrelated to the value of w160.

****

Quote:OnPreTownScreen probably does not trigger if the same town dialogue remains on the screen
Well, it would be very welcome to have OnPreTownScreen include all the switches of town screens, otherwise the trigger is sort of abundant.

****

And I wonder if it is possible to implement a scrolling feature for pop-up dialogue. This is sometimes very desirable.
Check out the latest GEM feature, right-clicking on combi artifact set pieces to show the all the other pieces:
Image: M9umgV6.png
A good feature but lack of scrolling support, turns it into an incomplete one.


RE: ERA III - Archer30 - 01.06.2023 05:53

I recon this should be fixed:

As it showed in Liso's latest video, Cavaliees/Unicorns can be turned into Black Knights, yet Champions/War Unicorns can only become Skeletons. This behaviour exists in ERA without mods.

I propose restoring the conversion of Cavaliers/Unicorns to Skeletons like in SoD. I would update skeleton transformation fix.bin if it's agreed.


RE: ERA III - Berserker - 01.06.2023 12:40

IMO, skeleton transformer should either transfor anything into skeletons or transform anything to corresponding level necro town creatures. 2 different approaches from balance point of view. Anyway, this file is just a nice patch to have in Era package, you can change it to whatever you consider more balanced or realistic. Probably, this building is for conversion to skeletons only.


RE: ERA III - Archer30 - 01.06.2023 16:20

Berserker, well I agree that anything into skeletons except I also accept Bone Dragons as "Skeletons". Dragons and Hydra can be turned into Bone Dragons. This is the SoD behaviour (Wiki) in case it's forgotten.

As I see the goal of ERA is to become a pure modding engine. It is reasonable to keep things the same in SoD in most situations.
The bin patch is enabled by default in ERA - it represents what ERA is for most players, so I take it seriously Sm

The latest skeleton transformer fix.bin can be found here (permanent link).
Changes:
- Cavaliers/Unicorns can no longer be converted to Black Knights, they would be turned into Skeletons.


RE: ERA III - Berserker - 01.06.2023 17:34

Thanks!


RE: ERA III - Valery - 02.06.2023 19:00

Hi guys

I can't make the game play. Installed Heroes complete, then HD then ERA 3 latest, installation aborts with message about mods list not being able to create then I don't have mods folder. When trying to play it says not able to find Zdraw.dll.


RE: ERA III - Berserker - 03.06.2023 14:50

Valery, hi, Val, the latest release contains invalid exe file, my fault. There are also outdated files in the latest release, so I strongly recommend to install Era via Launcher by daemon_n and just delete/disable all mods, that you don't like.


RE: ERA III - Valery - 11.06.2023 23:36

I am a bit confused. The launcher does 24 mo, so I obviously need something else, no?

Can someone please put links to what is needed to day to get the game run? Era light? Launcher? Wog scripts? And where are the plugins like fix clone bug etc?
I miss the times when there was one click. Thanks


RE: ERA III - Panda - 12.06.2023 03:33

Valery, If you do not want to suffer with the installation of the edition launcher, then just install the clean version in one click.

http://wforum.heroes35.net/showthread.php?tid=5995


RE: ERA III - PerryR - 12.06.2023 06:21

(11.06.2023 23:36)Valery Wrote:  I am a bit confused. The launcher does 24 mo, so I obviously need something else, no?

Can someone please put links to what is needed to day to get the game run? Era light? Launcher? Wog scripts? And where are the plugins like fix clone bug etc?
I miss the times when there was one click. Thanks

Hi,

actually the launcher should provide everything you need. Download, install and specifiy your game path, press game controle to check for updates.
What is 24 mo?
The fix for clones spells is most likely in the plugin "game bug fixes extended.dll" in the WoG core mod.

really just one click (if it works).
There are plenty on videos on how to install with laucher: https://www.youtube.com/watch?v=peVlMctCGj0 or from Lisos page


RE: ERA III - Valery - 12.06.2023 07:01

Panda,

Thanks, installed. but it does not have Wog scripts, do I borrow them from previous Era versions? Are all plugins in or must find them separately?

Perry

The Launcher is 24 mega-octets, Era is 85. So the launcher obviously does not contain Era. You mean Launcher will download Era on its own? Will try.


RE: ERA III - Berserker - 12.06.2023 13:16

Valery, Launcher allows to automatically download and install Era with mods + possibility to automatically download updates, which is handy.
So it's downloader, installer and updater in one program.


RE: ERA III - Panda - 12.06.2023 16:45

Valery, This is the clean version. From it, the mod for scripts was removed a long time ago. If you need these scripts, then install the Launcher edition.


RE: ERA III - Archer30 - 13.06.2023 11:48

I propose a change to zaobjts, zeobjts, zobjcts

For some reason, Magical Terrain (or Terrain Overlay, Wiki) has different behaviour on mines.

Gem and ore mines are placed underneath the terrain overlay, while others are placed above.
Without Magical Terrain:
Image: DrccW8V.png
With Magical Terrain (Gem and Ore are covered):
Image: XnUoeoH.png

It doesn't look like placing a map object underneath the overlay would bring any benefit, so I decided to standardise the behaviours.
With Magical Terrain (All the mines can be seen):
Image: cKbKSj2.png

Updated zaobjts, zeobjts, zobjcts with this change
Download: here.

Update:
Unfortunately, my trick on text doesn't work on existing maps. The passibilities are written on the map and won't be changed by updating text.
It will most likely only work for random maps.
________

Almost forgot, there is another proposal:
Updated resource.def, with Mithril frame added. (was this made by Grossmaster?)
Download: here


RE: ERA III - Grossmaster - 13.06.2023 15:59

    I think, disabling the "part of ground" mark from these mines - is a bad solution from the point of view of the game visual.
In this case, the rendering of the gem pond and the ore mine will be illogical: the pond will be "levitate" over the trees, and so on. In addition, shadows from other objects will no longer fall on these objects.

I think, the right solution would be to write a plugin, that allows to force the rendering of these terrains under all objects, roads and rivers.

Image: Screenshot-6.png


RE: ERA III - Archer30 - 13.06.2023 17:06

Grossmaster, I wasn't aware of this drawback, thanks! At this point, the text should not be changed then.


RE: ERA III - Valery - 30.06.2023 16:27

I have a problem with the TrainerX mod, I open on my main hero, don't do any modifications and when closing it automatically "cures" from all curses my hero and sets it to level 1, is this a bug or?


RE: ERA III - Berserker - 30.06.2023 21:07

Seems like a bug. You can try to press F11 right after dialog close and search Heroes 3/Debug/Era/erm tracking.erm from the end for any ERM command, related to curses.
The file is a list of last executed ERM commands with corresponding file names and line numbers.


RE: ERA III - Valery - 30.06.2023 21:18

The main hero started with negative experience and a lot of courses, by default. So I would like to hear from Archer, maybe he added some automatic check for negative values.

I have another problem, I disabled all additional mods except wog core and wog scripts of course. But the option "heroes get 9-10th skills" was replaced by Archer with "every town can get Capitol". Thats a bit annoying because it makes a lot of my maps using dat file unplayable. I am not sure the secondary skills scrolling mod would be a replacement, as I remember I tested it before and didn't work the way I wanted. The plugin 9-10th skills is activated, yet Ctrl/click on experience icons doesn't trigger hidden skills.

So, what should I do, replace that erm file with the original from wog then ship it with the maps?


RE: ERA III - Berserker - 30.06.2023 23:19

SSS mod was rewritten twice, seems quite a stable solution for now. Could you try it?
Yep, for your case I would include script, working with old option ID.


RE: ERA III - Archer30 - 01.07.2023 05:38

Valery, I am happy to assist you to fix the compatibility of the latest Era Launcher Build and your maps. If you like we can talk via Discord or any other IM so the conmmunication would be more efficient.

Quote:I have a problem with the TrainerX mod, I open on my main hero, don't do any modifications and when closing it automatically "cures" from all curses my hero and sets it to level 1
Quote:The main hero started with negative experience and a lot of courses, by default.
Idk.
I have no knowledge TranierX executes script at the start of a map dealing with exp. I need more info to diagoise, like on what exactly map this happens.

Quote:Thats a bit annoying because it makes a lot of my maps using dat file unplayable. I am not sure the secondary skills scrolling mod would be a replacement
The recommendation is using SSS. Just let me know if you encounter any compatiblity issue so we can start to adjust.


RE: ERA III - Archer30 - 01.07.2023 06:34

The shooting function from EEF doesn't fully work on Liches/Magos, who have extended shooting range for some timing (like OnBattleActionEnd) when the shooting target is different from the BG:E target.

And the solution is found (thanks to Hawaiing). It can be fixed by changing BM:G data. For example:

My suggestion is to add this BM:G manipulation into FU(BattleStack_Shoot) so that the function works more universally. Is that ok?


RE: ERA III - Valery - 01.07.2023 09:28

I would need only to know how to remove the capitol script from 77.erm safely, then how to replace with old version without screwing the whole thing. Can I just replace the script with old 77.erm of other modifications were done to it and will not work?


RE: ERA III - Archer30 - 01.07.2023 09:56

Valery, if I understand correctly, you want to Display Hidden Skills since you mentioned SSS.

For achieving such a purpose, you'll need to embed the removed Display Hidden Skills script into your build.
Display Hidden Skills

Let me know if you also need the solution to learn the 9th/10th skill.

Quote:Can I just replace the script with old 77.erm of other modifications
It may work. I don't recall anything that could conflict but can't promise.


RE: ERA III - Valery - 01.07.2023 16:56

Ok, I managed to cut the script you gave me to strictly necessary for display hidden skills, after the game gave me thousand errors when I just pasted the whole in then removed the check for activating the script. 36

Now looks safe, thanks.

Secondary skills scrolling can not 100% replace Display Hidden Skills, since it does not allow leaning new skills at huts, universities and scholars once you had the 8th skill, while Display hidden skills allow it by using the commander's hat (which gives always First Aid) equip/ctrl + click on experience icon then swap skills between hidden and not hidden. So a new skill emplacement is free.

So it had its purpose, especially in chinese maps by Woodmelon where this functionality is part of the game.


RE: ERA III - Archer30 - 01.07.2023 17:54

Valery, SSS does not allow heroes to learn 9th/10th skills. It only provides the ability to check out more than 8 skills from the hero screen if applicable.

The classic map rule of Learning the 9th/10th skills was removed for the following reason:
- It was badly implemented due to technical limitations. The 9th/10th are not given by using the native way.
- We have way too many options/plugins in the Era Launcher Build for extending the skills limit. It led to confusion for players. Currently, there are 10 SS mod (by igrik), Maximum Secondary Skills (provides 12 skills limit by default, Option 824 by igrik) and unlimited secondary skills (bin patch in wog mod) all available from era launcher build.

An alternative / recommended way to raise the skill limit to 10 is to use the following script:
This provides the native way of learning secondary skills up to 10. Should be safe to be inserted in any map.


RE: ERA III - Valery - 01.07.2023 18:24

There is no problem with learning 9th and 10th skill, since there is a plugin to learn them all. The problem, as I see it, is the removal of hidden skills display, since it allowed actions that SSS do not. Sure you can always come with new ways, new scripts and finally achieve same result, but the main problem is that a lot of maps use the former version from 3.58, which was functional also in Era 2 up to Era 3.8 or so, and the removal makes them unplayable.

I would suggest this script return to WoG scripts, since built capitol everywhere script can just be an additional option, why not.


RE: ERA III - Archer30 - 01.07.2023 19:08

Valery, if you put this 53 map options script into ...\Mods\WoG Scripts\Data\s, does it serve you the purpose of displaying hidden skills?
Download 53 map options

Please make sure option 182 is enabled.



RE: ERA III - Berserker - 01.07.2023 21:59

Archer30, maybe we should check some flag, which means area attack, not exact creature ID? I agree, that shooting function can be improved using Hawaiing's code.


RE: ERA III - Archer30 - 02.07.2023 03:47

Berserker, it's only for the example I made a creature type checking. As I recon checking creature/flag are not necessary, setting BM:G data can be universal:



RE: ERA III - Archer30 - 02.07.2023 04:16

There is a problem with SN:H^object^ and !?FU(OnAdvMapTileHint). They don't work as the native mechanism.

In H3, when the cursor hovers over a hero visiting an object, the hint/pop-up would display the hero's info. However, if SN:H^object^ is set (same as !!HT), it would display the info of the object instead.
The problem of !?FU(OnAdvMapTileHint) is usually it's used to set the hint of an object by MM:M. Yet the pre-defined parameters of it provide only the object type of the entrance underneath the hero, which in most situations is not what we want. Ideally, I hope the object type of the real coordinates is one of the hero (return hero if hero is above the object).

To resolve the inconsistency, I've corrected the script for setting hints/pop-ups:
Setting pop-up/hint for Emerald Tower (depending on whether the tower has been visited)
I don't think it can be shorter without the imrovement of SN:H^object^ and !?FU(OnAdvMapTileHint)


RE: ERA III - Valery - 02.07.2023 05:13

(01.07.2023 19:08)Archer30 Wrote:  Valery, if you put this 53 map options script into ...\Mods\WoG Scripts\Data\s, does it serve you the purpose of displaying hidden skills?
Download 53 map options

Please make sure option 182 is enabled.

Thanks but I don't think I need such thing, since the maps use a dat file so the player doesn't need to read wog options. In my opinion, the main subject remains why the Display hidden skills script doesn't return.

I encountered a bug when playing Launcher version, the warfare II option doesn't give the number of tents specified, but only 1. It should be 14, as my hero level. Catapults are ok.

I see the script was redone by daemon and it says the tents and catapults are limited to 2 (yet I have 3 catapults at 14th level). Any functional changes were done to combat scripts?


RE: ERA III - Archer30 - 02.07.2023 06:14

Valery, the display hidden skills option can be returned to 53 map options so that when player load the .dat, Display Hidden Skills is auto-enabled. Sounds okay?

If you check out the description of Enhanced War Machines II from WoG 3.58f / wog options menu, it says exactly this option does: Putting a limit of 2 for First Aid Tents and Ballistas. Catapults' number was not mentioned because in regular H3 they do not appear. In Enhanced Warmachines II their number is the same as Ballistics level - perhaps the script comment did not mention this bit.

Quote:Any functional changes were done to combat scripts
There are perhaps many changes, although most are on the detials improvements and bug fixing.


RE: ERA III - Valery - 02.07.2023 06:41

Well, no, because comparing with Era 3.0 which I still have, at 14th level my hero has 14 tents and 3 catapults. In the launcher version, catapults are still 3 but tents are only 1. So impossible to go past battles which required 14 at that moment.

About Hidden scripts, I just added the script to my main erm file. It is activated as I removed the check. So the only way now is to ship with the map, which will be not so difficult for me, but difficult for the tons of maps using it which are not mine and creators long time gone.


RE: ERA III - Archer30 - 02.07.2023 07:16

Quote:I still have, at 14th level my hero has 14 tents
This is because another script, First Aid II gives additional tents without the regulation of Enhanced War Machines II in the previous version. With this combo, most random maps become way too easy since it is so difficult to get casualties now.
It was considered a bug after some discussion. (There is no way to ask both the script authors whether the behaviour of FAII + EWII was intentional, unfortunately). We decided to make the behaviours this way when both FAII and EWII were enabled:
Quote:FAII now provides only one additional tent (instead of the number based on the hero level).
If the hero is a First Aid Specialist, FAII would provide another tent.
In the best scenario, a total of 4 tents can appear on the battlefield (artifact + Rampart commander + FAII + FAII hero spec).
This change of FAII is mentioned in the latest option description.
I understand that the change may not be favoured by some custom maps. My suggestion is to add a script to maps to increase the tent number so that battles can be easier.

Quote:I just added the script to my main erm file. It is activated as I removed the check
Not ideal if the launcher build added this script, it's possible to have a double script triggered.
I will add this script in the launcher build and the option is enabled by default. With this, the compatibility with old maps should be preserved.


RE: ERA III - Valery - 02.07.2023 07:27

Well ok, that settles the whole issues, since main scripts were modified this version the Launcher uses is not playable, at least for me. Thanks for clarifying. Its useless to attach small patches with maps here and there, since you guys are clearly on the path of reinventing the game, so probably next version will require others patches and so on.

Bersy, since I still get mails asking why this thing or another doesn't work, what Era version should I propose, which is functional, not bugged or with voluntary changes provoking unexpected issues?

I still have Era 3.0 but wog options screen is empty and trying to load a dat file crashes the game. You told me 3.9 is bugged, so is there anyt Era version properly working? You know, where you can play anything this game proposes without having to give up after 15 minutes.


RE: ERA III - Archer30 - 02.07.2023 07:43

Valery, does it work for you if using the WoG Scripts from igrik's repo?
WoG Scripts igrik


RE: ERA III - Valery - 02.07.2023 08:16

I appreciate the help you put there, but what I really need, if possible, is an Era 3. x working version, which means the one before the definitive changes to main scripts, which basically invalidated what has been done in the past 15 years.

I can't attach all wog scripts to every map out there, and that's about 20 of them, not all mine, but revised by me, in order to fix compatibility between 3.58 and Era 2. And now probably none of them is working. 4 years ago I would probably take the challenge and do the necessary work, but now I just lost interest, seeing the direction of things.


RE: ERA III - Berserker - 02.07.2023 17:25

Valery, I didn't touch WoG Scripts mod for long ago. I can prepare special package for your projects, but we have to decide, which version of WoG Scripts to include in it. Check the above mentioned WoG Scripts mod by igrik. If it suits your needs, I'll use it.


RE: ERA III - Valery - 02.07.2023 18:30

Great, let's come to a compromise, what would be fine is the Era version just before the main scripts were rewritten. My Era 3.0 has bugs with displaying wog options then loading dat files crashes the game, I didn't test all Era version between 3.0 and 3.9. I checked Igrik WoG scripts mod and it looks fine, not updated recently.

Since the launcher version breaks compatibility with previous mods using wog scripts, would it be possible to create a package like Era 3.0 but 100% functional? With the necessary plugins like fix game issues so everything is fine.


RE: ERA III - Berserker - 03.07.2023 00:59

I'll try to make such package (raw Era 3.9.5 installer with fixes + WoG Scripts by igrik). You can give this assembly custom name like Era 3 Compat Edition. You can also change any files/scripts/plugins inside to suit old projects, because Era installer is Rar SFX and can be updated using WinRar. I'll write here when I'm ready or just remind me in a 3-4 days here.


RE: ERA III - Valery - 03.07.2023 04:47

That's very kind. Meanwhile I replaced wog scripts folder from launcher with Igrik's one, just to see how dependent they were, and I could go into game for 3 hours without any error.


RE: ERA III - Berserker - 03.07.2023 15:19

Valery, that's sounds promising Ab


RE: ERA III - Berserker - 04.07.2023 00:01

https://dropmefiles.com/MfF3q
Era 3.9.5 Compatibility Package

Includes all 2.9.14 package mods:

Era Erm Framework (latest)
Fast Battle Animation (old)
Quick Savings (recent)
Secondary Skills Scrolling (recent)
WoG (latest)
WoG Scripts (corrected by igrik)
Yona (corrected for Era 3)


RE: ERA III - Valery - 04.07.2023 12:44

I have same problem as when trying last Era version, install goes fine until it says "failed to created mod/list" or something like that, then it starts a loop asking same thing. At the end I have no choice but abort install and then the folder Mods is not created.

Edit: I tried again to install it on the previous failed install (so a Heroes folder but without Mods), it went again to a security loop (do you want this software to install etc) for 10 times or so, I clicked yes every time and then it worked. Mods are in.

So I think there is some bug about install.


RE: ERA III - Berserker - 04.07.2023 20:37

Seems like local issue with User Access Control. Do you install on C drive and do you run installer as administrator?


RE: ERA III - Valery - 04.07.2023 20:54

Yes, I install it in the usual C:\GOG Games, and Launcher installed perfectly there. I also have Kaspersky but it always let me install things, the most it does sometimes it asks for confirmation, but never blocks by it self.


RE: ERA III - Archer30 - 05.07.2023 20:11

Hell Baron has an undocumented (in creature description) fearsome ability @7604FB
I am wondering if this is supposed to be a removed ability but the wog team forgot to do so.
By contrast, Darkness Dragon has similar abilities. But having no taking soul ability makes it much worse than Hell Baron. The balance seems to be a concern.

Btw, I hope the issue of SN:H^object^ gets some attention too x)


RE: ERA III - Berserker - 06.07.2023 02:38

I think this ability should be added to text.
SN:H uses WoG hint trigger. Should I fix objType and objSubtype parameters for OnAdvMapTileHint?


RE: ERA III - Archer30 - 06.07.2023 08:17

Quote:Should I fix objType and objSubtype parameters for OnAdvMapTileHint

Yes.
Object type (x4) should always be returned as a hero if there is a hero at the real coordinates. This is not simply via erm since OB:T will return the object type underneath if the hero at the position is the current hero.
I don't think the original x4/x5 (object type/subtype underneath the hero at the entrance) would be of great use since usually OnAdvMapTileHint is used for setting hints, and this type/subtype is not what we would use in the native mechanism.

Quote:SN:H uses WoG hint trigger
Well, I am not quite sure how it internally works. But the request is similar - the game should not show the SN:H^object^/HT hint when I hover over a hero visiting an object set with SN:H^object^/HT, it should show the hint of the hero instead. Same as RMB pop-ups.

Btw, is there a chance to have a pop-up trigger similar to OnAdvMapTileHint for the hint, which changes the native msg and can be disabled by CM:R0?
CM:R0+IF:M works great for setting pop-ups. Yet when you have several right-clicking features, it starts to become a problem since CM:R0 cannot disable IF:M msg.
For example: I wrote an enhanced pop-up for Commander Witch Huts, now when you right-click on huts, it shows both the skills taught to my hero and my commander.
And I have Mithril. When I right-click on the huts, it would ask me whether to change the skill teaching.
Now ideally when I right-click on the huts, I want only the Mithril question shown and the enhanced commander witch huts pop-up should be disabled. But since the enhanced pop-up is realised by IF:M, nothing can be done unless playing with some global variables.


RE: ERA III - Berserker - 06.07.2023 17:23

Got it. The second issue is solvable on library level.




RE: ERA III - Archer30 - 06.07.2023 18:20

Yea, that's solvable but that means all those pop-ups have to be remade. Nothing similar can be done in ERA like the OnAdvMapTileHint event?

Assuming the answer is negative. Can you give some hints about manipulating the Witch Hut RMB pop-up, like where to hook and how to replace the original hint?


RE: ERA III - Berserker - 06.07.2023 21:52

Nope, any solution will lead to code rewrite. You cannot force authors to use new API instead of unique IF:M/Q/Custom dialog popup.
Doesn't CM:R work for witch huts?


RE: ERA III - Valery - 07.07.2023 01:33

Seer huts mod works only partially in 3.9.5. Dialog with huts and border gates shows fine, seer huts work as their position is stored in v6-v8 but border guards position is stored in v1-v3 and gets corrupted, no idea why...

I will try to change variables, but I don't remember very well how I coded the whole thing, was years ago Mad
Note to myself, always put detailed comments to scripts for 50 years later.

Would help to know what changed, is v1-v3 handling different now? I am not even sure it is about those variables, maybe something else. Works fine on 3.0. Is it possible that when closing a DL now changes v1-v3?


RE: ERA III - Berserker - 07.07.2023 02:27

v1 is used heavily for external function calls (SN:F, SN:E store result in v1). I would start trying to change v1..v3 to v2..v4 or v600.v602. Paste here of piece of code if it does not work.


RE: ERA III - daemon_n - 07.07.2023 06:22

Berserker, about pyramid's WoG objects
0040C577 - Lohook here for hint
00414F3C - hook here for rmc

Or just HiHook both hint handlers and create new Triggers
Cause the native hints works with better way imo


RE: ERA III - Valery - 07.07.2023 15:18

(07.07.2023 02:27)Berserker Wrote:  v1 is used heavily for external function calls (SN:F, SN:E store result in v1). I would start trying to change v1..v3 to v2..v4 or v600.v602. Paste here of piece of code if it does not work.


Well, from my tests closing the dialog corrupts v1-3. Here is the part of script storing quest guards coordinates



v1-v3 are not used in any of the additional actions, then when I close the dialog


I used debug messages and v1-v3 changes exactly when I press close dialog. Those scripts were modified now to v6-v8 and that fixed it. However now I should check all the mods using DL, unless there is another explanation which I can't find.


RE: ERA III - Berserker - 07.07.2023 18:01

You close the dialog by pressing "Enter" key, which generates OnKeyPressed event. Any script, using v1..v3 may scree them. I thought we had "keyboard fixed.erm" script in many of your mods, saving v1..v10(?) before the first OnKeyPressed handler and restoring after.


RE: ERA III - Archer30 - 07.07.2023 19:44

There is a small issue with IF:D/E receivers

Many WoG scripters wrote their script by using 0 as the parameter for "nothing", like this one from the Emerald Tower script:
Sometimes they put nothing in it (Espionage script):

Most of the time these are ok. however, when you have another IF:D/F/E dialogue using the same dialogue ID, the problem comes. For example, execute this before the emerald tower script:
and you will see the Emerald Tower dialogue corrupted because both this script and Emerald Tower use the same dialogue ID 3.

This should not happen in ERA 3! We are free from remembering the used variable index, so should dialogue IDs.
I suppose ERA should support "0" or "nothing input" in IF:D/F for clearing the cache created in the previous erm executions.

Quote:Doesn't CM:R work for witch huts?
It does but when I have two IF:M from two different scripts, I can't disable one by CM:R0. Anyway think I have a solution.


RE: ERA III - Berserker - 07.07.2023 20:46

Afair, there is no «cache». IF:D/F settings are just stored in global static arrays. Thus valid code should either use high level API or clear/overwrite the whole 16 parameters before showing dialog.
I would use ID = 1 in ERM Api, like it's done in RadioDlg_Show. Or, maybe, if GET syntax is supported, higher level API should save/restore DLG 1 settings.

See how RadioDlg_Show is implemented in EEF.


RE: ERA III - Archer30 - 07.07.2023 20:59

Quote:IF:D/F settings are just stored in global static arrays. Thus valid code should either use high level API or clear/overwrite the whole 16 parameters before showing dialog
Yup. If I understand your idea correctly, these examples from WoG Scripts can be fixed by:
It's fixable in the erm. Yet kinda clumsy in syntax. As I see those WoG scripters already treated 0 as a valid initialization. It would be good to support that usage.


RE: ERA III - Berserker - 07.07.2023 23:52

As far as I see from erm.cpp and service.cpp the first time you call IF:D/F for certain dialog ID changes that dialog ID from UNSET to SET. The first time 0 works as empty string, the second time as "do not change".

Both IF:D3 and IF:F call the same function, but IF:F passes the first 10 arguments as 0. Because IF:F is called after IF:D, dialog is initialized and 0 is treated as "do not change".
I recommend something like:


Otherwise implement higher level api.


RE: ERA III - Archer30 - 08.07.2023 13:59

Well then I've already replace those with 0 with ^^ in scripts to make sure they don't have compaitiblity issue.

Any finding for SN:R replacing def frame with given png?


RE: ERA III - Valery - 14.07.2023 04:52

Bersy, I finished test, all fine. Would it be possible to add to the package Igrik's 2 plugins for battle replay -and battlesave)? I uploaded them here :

https://easyupload.io/rq0te9

I will wait for a link to final 3.9.5 then I will create a second link on my side too. Thanks


RE: ERA III - Berserker - 14.07.2023 13:25

Quote:Bersy, I finished test, all fine.
Great news!

Battle Replay plugin usually needs ERM support for complex scripts/mods (special events like OnBeforeBattleReplay were added) because !?BA trigger handlers usually change global variables, which are not reverted by plugin. igrik, daemon_n and Archer fixed many wog scripts to support replays. So your custom maps logic may be broken after the first replay. I think BattleSave plugin is much safier.


RE: ERA III - Archer30 - 14.07.2023 14:48

There is a serious compatibility issue between era and HD mod.
Quote:HE:A2 can return wrong values after assembly/disassembling artifacts in the hero's backpack dialogue (HD mod feature).

To reproduce:
You would want to disassemble a combination artifact and assemble it back a few times in the HD backpack dialogue, and then check the HE:A2 value of the parts. If everything's correct, you would see that some parts become invisible to HE:A2.

To be more specific, try the following:
- Run my script
It gives Armor of the Damned to every hero in the backpack.
- Open the backpack of any hero and disassemble/assemble the AotD a few times
- Press 1 from the hero screen and check the statistics of HE:A1/HE:A2 results
Typically you would get this. As you see, there are difference between HE:A1/HE:A2 results, which should not happen:
The invisible artifacts to HE:A2 could be a nightmare to many scripts. I wonder if there is a way to update the HE:A2 value after assembling/disassembling arts in the backpack.


RE: ERA III - Valery - 14.07.2023 14:58

Bersy,

I don't know what each plugin does, I used both and didn't notice errors while I often replay battle. But ok, put the one you think safe.

One thing I noticed is that field obstacles are modified from the original, sometimes, not always. I disabled HD mod still they are. Not something hard to overcome, but still annoying a few times.

Ok, waiting for the package, take your time.


RE: ERA III - Berserker - 15.07.2023 14:08

Archer30, thanks for investigation, but it seems like HD mod bug, because HE:A2 uses hero structure and loops though all equipped and all backpack artifacts during counting.

erm.cpp

Code:
case 2: // A2/art/num/act - count artifacts
                  aflag=anum=0;
                  for(i=0;i<19;i++){
                    if((p->IArt[i][0]==art)&&(p->IArt[i][1]==arts)){
                      ++aflag; ++anum;
                    }
                  }
                  for(i=0;i<64;i++){
                    if((p->OArt[i][0]==art)&&(p->OArt[i][1]==arts)){ ++anum; }
                  }
                  Apply(&anum,4,&M,2);
                  Apply(&aflag,4,&M,3);
                  break;

Valery, could you upload those two plugins, say, on dropmefiles.com?

The game should have the same obstacles on battlefield (I use in-game generator for this purpose), otherwise it's looks like an issue. Could you reliably confirm the bug and do you have saved gamed before such battle?


RE: ERA III - Archer30 - 15.07.2023 15:11

Berserker, this is weird. How come HE:A1 returns correct values? It doesn't get results from the hero structure?

Would be really good if you can take some time and check if png for replacing def frames works correctly 96-copy The feature is crucial to many scripts now.


RE: ERA III - Valery - 15.07.2023 19:08

Bersy

https://dropmefiles.com/ccuGE


RE: ERA III - Berserker - 16.07.2023 02:30

Archer30, as far as I see, HE:A1 uses the same data as HE:A2, but also supports 1000+ art numbers for spell scrolls. HE:A2 does not support 1000+ art IDs as spell scrolls. Further investigation will be required.

HE:Z?y1 base hero address

+0x68 - array of 19 equipped arts, each one is [art type: 4 bytes, art subtype: 4 bytes]
+0x100 - array of 64 backpack arts, each on is [art type: 4 bytes, art subtype: 4 bytes]

Seems like dumping and checking is required.

Valery, thanks.


RE: ERA III - XEPOMAHT - 16.07.2023 07:10

(16.07.2023 02:30)Berserker Wrote:  but also supports 1000+ art numbers for spell scrolls. HE:A2 does not support 1000+ art IDs as spell scrolls.

Вообще-то свитки - с 1001. 1000 = 0 - костыль для того, чтобы давать/забирать у героя книгу магии.

HE:A1 и HE:A2 являются сильно устаревшими командами и их использование в скриптах крайне не желательно. Например в ERA+ манипуляции с куклой и рюкзаком поддерживаются следующие:

!!HE:A4 - дать герою артефакт
!!HE:A5 - узнать количество артефактов у героя
!!HE:A6 - одет ли артефакт на куклу героя
!!HE:A7 - добавить артефакт в слот куклы
!!HE:A8 - удалить артефакт из слота куклы
!!HE:A9 - добавить артефакт в слот рюкзака
!!HE:A10 - удалить артефакт из слота рюкзака
!!HE:A11 - получить слот куклы с искомым артефактом
!!HE:A12 - получить слот рюкзака с искомым артефактом
!!HE:A13 - забрать артефакт у героя
!!HE:A14 - открыть диалог рюкзака героя
!!HE:A15 - получить содержимое слота куклы героя (низкоуровневый доступ)
!!HE:A16 - получить содержимое слота рюкзака героя (низкоуровневый доступ)

Всё тоже самое может быть реализовано с помощью Era Erm Framework в базовой версии ERA, для тех, кто не хочет использовать ERA+.


RE: ERA III - Berserker - 16.07.2023 15:37

XEPOMAHT, они не очень удобные, но что с ними не так в плане реализации?


RE: ERA III - XEPOMAHT - 16.07.2023 16:57

(16.07.2023 15:37)Berserker Wrote:  но что с ними не так в плане реализации?

1. Не поддерживаются сборные артефакты, т.е. что там под "замочками" - потребуется нагрузить ERM-код допскриптами, которые просто так никто не напишет.
2. Костыли со свитками, когда надо отнимать/прибавлять 1001. В ERA+ ERM выдаёт данные артефакта 2 числами вместо 1.
3. Костыли с рюкзаком, когда слоты рюкзака и слоты куклы - 1 массив, аналогично свиткам, хотя логически должно быть 2 массива. В ERA+ команды на рюкзак и куклу - отдельные команды.
4. Недоработанность старых команд - в хелпе про это написано, например автоматически не определяется слот на кукле, куда добавляется артефакт, на замочки он не проверяет, команда не оповещает о true или false при добавлении/отнятии артефактов.
5. Нельзя ставить замочки на слоты - в ERA+ можно.
6. Нельзя записывать пользовательскую информацию в данные слота артефакта - в ERA+ можно.
и т.д...


RE: ERA III - Berserker - 16.07.2023 19:58

Valery, I'm looking for alternative to bat-file installer, which sometimes performs unreliably.


RE: ERA III - Valery - 17.07.2023 04:45

No hurry, take what is best. I will visit here every year until is done 118


RE: ERA III - Berserker - 17.07.2023 15:47

Valery, you wan't wait! Testing )

Quote:1. Не поддерживаются сборные артефакты, т.е. что там под "замочками" - потребуется нагрузить ERM-код допскриптами, которые просто так никто не напишет
В моём понимании нужно два разных API. С одной стороны, замочки не являются более самостоятельными артефактами, а с другой — остаются частями. Напомни, игра ведь считывает бонусы только с настроек сборного артефакта? Бывшие части игнорируются?


RE: ERA III - XEPOMAHT - 18.07.2023 14:01

(17.07.2023 15:47)Berserker Wrote:  С одной стороны, замочки не являются более самостоятельными артефактами, а с другой — остаются частями.

Замочки не являются артефактами. Их спрайт хранится в Artifact.def в самом конце, а артефактами их сделал WoG, чтобы не переделывать код игры. Спрайт замочка показывается в окне диалоге, но в структуре героя в запертых слотах никаких артефактов нет.

(17.07.2023 15:47)Berserker Wrote:  Напомни, игра ведь считывает бонусы только с настроек сборного артефакта? Бывшие части игнорируются?

Бонус считывается со сборного артефакта и со всех его компонентов. Игра проходит по массиву из 160 байтов, где каждый байт - 0 или 1. Т.е. можно сделать, например, сборный артефакт, который будет состоять из всех 160 артефактов и все их бонусы будут работать, т.к. проверка на артефакт учитывает его нахождение в сборнике по массиву компонентов сборного артефакта.


RE: ERA III - Valery - 18.07.2023 21:30

Bersy

Quick savings worked fine in TEW3 map but in Alexander the Great it gives me this error, what should I add?

Image: Untitled-2.jpg


RE: ERA III - Berserker - 18.07.2023 22:44

I see. It uses key constants from Era Erm Framework now, which is not loaded by "load only these scripts.txt". Replaced them with key codes.
Try this one:
https://dropmefiles.com/F7NYs

XEPOMAHT, то есть правильно бы было иметь виртуальную куклу героя, где вместо замочков — реальные артефакты. Так срабатывали бы проверки на них.


RE: ERA III - Berserker - 18.07.2023 23:05

Valery, SSS mod also fully depends on Era Erm Framework, thus

-9999 era - stdlib.erm
9999 era - consts.erm
9999 era - key codes.erm
9999 era - stdlib.erm

Are obligatory in "load only these scripts.erm" for it to work. I can remove this mod from package, if you want.


RE: ERA III - Valery - 19.07.2023 03:58

I placed era - quick savings.erm in my mod data/s but now the S key produces esq.msg file, not a save on that day. I am confused on what to do.

I don't need SSS (secondary skills scrolling?) mod, I never use it as my maps require to learn or forget skills from various objects/huts and SSS doesn't allow that. Also ERM framework is always activated.


RE: ERA III - XEPOMAHT - 19.07.2023 06:55

(18.07.2023 22:44)Berserker Wrote:  то есть правильно бы было иметь виртуальную куклу героя, где вместо замочков — реальные артефакты. Так срабатывали бы проверки на них.

Правильнее - добавить 2 строчки в воговский код проверки:

Code:
v5 = o_ArtSetup[art].PartOfSuperN;
  return v5 != -1 && Hero_HasArt(hero, *(_DWORD *)(ComboArtSetUpPo + 24 * v5));



RE: ERA III - Berserker - 19.07.2023 22:29

Valery, replace the appropriate file in Quick Savings mod. It uses Lang\quick savings.json file for translation, like ert file.


RE: ERA III - Valery - 20.07.2023 09:34

I did it thanks. But my point was to have one quicksave script compatible with old mods, if I can't ship it with the mod and must be downloaded separately it won't work ;(

Anyway, it doesn't work as you intended, no idea why. F5 creates saves as 3.GM1 only (when day 3 for example) then there is no autosave (name of the day) at the end of each day, at all. I looked into script and definitely it wasn't supposed to go this way.

It worked very well when testing TEW3, which uses a dat file, but on Alexander map, which uses hand scripting and no related to wog scripts, doesn't work.


RE: ERA III - Berserker - 21.07.2023 02:30

Paste here Alexander map link, please, I'll check it.


RE: ERA III - Valery - 21.07.2023 02:33

Thanks

Map


RE: ERA III - Berserker - 21.07.2023 19:02

Does it have any mod dependencies? Craches because of missing 124.def and unknown object type.


RE: ERA III - Berserker - 21.07.2023 19:21

Maybe new object patch is necessary?


RE: ERA III - Valery - 21.07.2023 19:41

No, I uploaded the whole mod as made by mod manager. So the graphics are in the pac file.

Edit: you are right, looks like mod manager bugged wheb creating self package, the pac file didn't make it. Here is correct

https://drive.google.com/file/d/1Z-KHzqC2aBDdDtbqy-UjIh7USJyDKZHK/view?usp=drive_link


RE: ERA III - Berserker - 23.07.2023 01:06

Thanks, will try to check soon.


RE: ERA III - Berserker - 28.07.2023 00:39

Valery, tested updated Quick Savings mod with 3.9.5 Compat assembly and Alexander The Great. Pressing "S" saves to N.gm1, where N is day number. Pressing F5 saves to "quick.gm1". Seems like you didn't start new game or didn't replace the script with the one I provided.

Could you check the fresh map start?
https://dropmefiles.com/ksUJY


RE: ERA III - Valery - 28.07.2023 06:54

Nope, used fresh start, new mod installed, day 8 I get again 1.GM1 when S key, it saves only from 1 to 7, so day of the week only.
Autosave works but there is only one available, each turn - the game original autosave. The mod doesn't create each day-of-the-game autosave as it did before.

I disabled all mods except wog scripts and Era erm framework for the test. Using HD 5.4.R32, option save every day for tournaments disabled. I also tried without HD, same result Bad

Edit: I tried on Tew 3, which uses a dat file, and it works, I get every day autosave. So only Alexander has the problem, no idea why. Does the mod require some wog script?

I checked month 4/1/1 and this:


gives 1, red, 1. The save shows only 1.gm1


RE: ERA III - Berserker - 28.07.2023 09:36

Valery, which format would you like? Day + color? Write examples, please. And what format for end of turn autosaves is desired?


RE: ERA III - Valery - 28.07.2023 10:15

I would like a glass of whisky, with an ice and one drop of Baileys, please.

No, seriously, I liked how the mod worked until now, there was nothing wrong with, autosave (or S) creates player color + day of the game, F5 creates quicksave (which works).

Is just that I can't make the autosave part to work on Alexander map, and no clue why. And why it works on your side.

And you remember, when I modified the script for Era 2 to create multiple quick saves for each day, that was really optimal, here was the script, not sure it can be implemented again:


But this I will try to implement for my own use only, maybe asking some help as Era 3 erm looks unknown to me.


RE: ERA III - Berserker - 28.07.2023 19:18

The autosave part was removed (either because GEM had this functionality or because of HD-mod better autosave functionality). I will restore it.
Do we need player colors? I may leave only 1.gm1..7.gm1 for "S" and 1 end.gm1..7 end.gm1 for autosave.


RE: ERA III - Valery - 28.07.2023 19:32

HD mod doesn't save each day, at least not in Era. Is there some option in tweaks?

The best option would be autosave each day with day of the game name, not day of the week, which limits only to 7 autosaves. So your last proposal looks good, except day of the game


RE: ERA III - Berserker - 28.07.2023 23:06

Yes, there is a tweak (<Misc.TournamentSaver> = 1) where each autosave is saved in directory with MapName and absolute day index. I don't like polluting the whole games directory, but it seems to be exactly what you like. Could you try it?


RE: ERA III - Valery - 29.07.2023 03:08

I got it, it saves in map name directory. So thates good, the bad side is that quicksave is saved in another directory so that forces me to save manually to access fast.

It could be a solution, but I still don't get why the old quicksavings which worked for 10 years, now doesn't ;(

Anyway, the quicksave mod isn't priority. I finished my tests and 3.9.5 is working fine (except Atlantis which is a mess, I will ask for that later), so is it possible please to have a package (with both battle plugins added, they work perfect) so I can host it and propose the link when playing Era 2 mods?


RE: ERA III - Berserker - 29.07.2023 05:03

https://dropmefiles.com/ozLd1
Fixed Quick Savings mod with old behavior. If it's ok, then I'll make a package.


RE: ERA III - Berserker - 29.07.2023 06:06

Ready to use 3.9.5 Compat (try clean install over Complete).
https://dropmefiles.com/q5dOl


RE: ERA III - Valery - 29.07.2023 06:30

Thanks for both, I modified Quicksavings to give day of the game (!!VRy2:Sc) instead of day of week and now is fine for me.

A little detail, I don't remember how we did to have 001 -100 days order, instead of 1-9, then order is messed when day 10 passes before 9 because two figures.


RE: ERA III - Berserker - 29.07.2023 06:40

Do you still need player color for 001 ... 999 day formats?


RE: ERA III - Valery - 29.07.2023 06:50

No, player color is not needed. But 001-999 would be nice, back in time I knew how to code it, I tried now and got funny results so ...

Thanks 118

Ok, I found the old code (001-999) for daily quick save but no idea how to implement it in the new format



RE: ERA III - Berserker - 29.07.2023 07:50

Welcome Ab
Try this one: https://dropmefiles.com/nzWaB
Should generate 001..999.gm1.


RE: ERA III - Valery - 29.07.2023 08:14

Finally !

Thanks.


RE: ERA III - Valery - 29.07.2023 10:25

Trying the Era, the two plugins battle replay and battle save aren't in;(

They worked fine


RE: ERA III - Berserker - 29.07.2023 23:01

If somebody gets screwed ERM variables in Atlantis because of multiple battle restart, it won't be my fault ) BattleReplay allows multiple !?BF triggers for the same battle. Same with BattleSave, occuring after !?HM. If some script has OnHeroMove logics, BattleSave plugin allows to trigger !?HM on the same tile multiple times for free (attack and load save, repeat). Thus these plugins will never be 100% safe for custom scripted map/mod. If your aim is maximum reliability, then we should either omit the plugins or include in the OFF state. What do you think?


RE: ERA III - Valery - 30.07.2023 02:04

I usually use battle replay when I get minimal loses in creature banks or not important battles, so I didn't have any problem. For scripted battles, which are quite rare, I never use battle reload as I need different morale/luck parameters so I shut the game.

I used them in all tests and everything worked fine, but you might be right. What can be done is ship them with Era 3.9.5 because they are really helpful, while I put a notice in my maps start about possible problems. Frankly, scripted battles, you find only a bunch and in 10-15 maps only, can be handled separately, no?


RE: ERA III - Berserker - 30.07.2023 03:27

But if the bug occurs, it may be quite hard to find out the real reason (n days ago replayed scripted battle changed some global variable twice). Archer, igrik and daemon_n had to change WoG 3.58 scripts to fix bugs, occuring just with BattleReplay plugin. Maybe, just put them in off state, so that user could use plugin manager to enable them manually? Anyway, you decide.


RE: ERA III - Valery - 30.07.2023 03:51

Sounds good in off state.


RE: ERA III - Archer30 - 31.07.2023 18:57

I do encounter many times I'd hope _Quit triggers can be skipped by SN:Q. Actually, to be skipped by SN:Q is the main reason I'd use a _Quit trigger. It ensures the event to be relatively later then other events and is almost certain to be skipped when SN:Q is presented. But the current strategy, executing _Quit if a SN:Q is presented, is apparently against this usage. Could there be a change?


RE: ERA III - Berserker - 31.07.2023 19:17

_Quit triggers exist for the the only purpose: to be unescapable by SN:Q. They allow symmetric actions: write value on trigger start, restore on trigger end. Push some value in stack on trigger start, pop the value on trigger end. Ultimate trigger quitting mechanism does not allow to write a reliable library. EEF mouse/keyboard wrappers is a good example.


RE: ERA III - Archer30 - 31.07.2023 19:43

105 It happens, different devs have entirely other preferences.

Still being curious. Got a chance to check if SN:R for replacing a def cadre works for the latest ERA? Unsure


RE: ERA III - Berserker - 03.08.2023 09:49

Archer30, sorry, still didn't debug. Moving data to new PC.


RE: ERA III - Berserker - 03.08.2023 11:10

Updated Era 3.9.5 compat package:
[+] Added BattleSave/BattleReplay plugis in off state
[-] Removed admin rights requirement

Should be tested on clean H3 Complete.


RE: ERA III - Valery - 03.08.2023 12:27

It isn't in your release list. Give me a link please


RE: ERA III - Berserker - 03.08.2023 12:46

Argh, didn't paste the link, sorry. Reuploading.
https://dropmefiles.com/jJCkg


RE: ERA III - Valery - 03.08.2023 13:11

Thanks, any functional changes? Because I am almost done with the test of previous 3.9.5 and I don't feel like playing a whole game again on it, it took 2 weeks.


RE: ERA III - Berserker - 03.08.2023 13:13

Just + 2 plugins. The only test should be installation on windows 10. I removed admin rights requirements.


RE: ERA III - Valery - 03.08.2023 13:27

Ok thanks, the previous installation went ok too.


RE: ERA III - Archer30 - 08.08.2023 11:14

Can we have days in a week as constants for using with i^timerWeekDay^?
It's sometimes confusing in modding - not sure whether Monday is 0 or 1, Sunday is 0 or 7 etc. With the help of constants, modders don't have to worry about that

Edit: Looks like my the text has partially lost its idea in translation, as least for XEPOMAHT. 96-copy I have to clarify it. It's a small suggestion for ERA. I am asking for 7 constants to be added:
They can be created by myself ofcoz, but I believe not only me wanted them.


RE: ERA III - XEPOMAHT - 08.08.2023 12:46

(08.08.2023 11:14)Archer30 Wrote:  Can we have days in a week as constants for using with i^timerWeekDay^?

Воговские таймеры - зло и костыли. Не используйте их никогда. 108

(08.08.2023 11:14)Archer30 Wrote:  It's sometimes confusing in modding - not sure whether Monday is 0 or 1, Sunday is 0 or 7 etc. With the help of constants, modders don't have to worry about that

В ERA+ текущий день/неделя/месяц всегда хранятся в переменных v991/v992/v993. Значения обновляются перед срабатыванием функции 30379 внутри Тифона. Сама функция 30379 - триггер нового дня. Диапазон дней - от 1 до 7, месяцев - от 1 до 4. В обычной ЭРЕ получение дня/недели/месяца - с помощью команды UN:C.


RE: ERA III - Berserker - 09.08.2023 09:54

Archer30, I agree. Maybe also add WEEKDAY_1 ... WEEKDAY_7 constants? Because numbers are much clearer.


RE: ERA III - Archer30 - 09.08.2023 10:47

Berserker, anything that works for you will do. Well actually I have memorised all this info when I typed in the suggestion here Rolleyes So it probably ain't matter now.


RE: ERA III - Valery - 11.08.2023 09:41

On the last Era install, modifications on map aren't saved, and a file like MFC4C89.tmp is created in maps folder each time I try to save. Where could come from?

On previous install is working, so I am switching from one editor to another.

Beside, Google blocked access to last Era 3 upload in my google drive, they said suspicious so no one can't see it. The mail proposed me to ask a deeper check, I asked then waiting for 7 days already, nothing. Idiots.


RE: ERA III - Berserker - 11.08.2023 12:26

Seems like local issue, but I'll recheck. Tested a few package versions on VirusTotal. Even removing Tools\AutoIt and Tools\ModManager does not help. "Google Antivirus" (WTF?) still is angry.
https://www.virustotal.com/gui/file/4aced4fa5b657bedb637811eec987f6695d6eeffed463f262d8eb2d1254cb5b5?nocache=1

Browser + search monopoly + antivirus = block anything.


RE: ERA III - Berserker - 11.08.2023 13:37

I will see what can be done.


RE: ERA III - Valery - 11.08.2023 13:43

From what I saw, a copy of the map when a map/mod is activated is placed in maps folder, (while original is in mymod/maps)

If I open from maps folder, the editor thinks is different from the one in the mod, so you get two versions.


RE: ERA III - Berserker - 11.08.2023 13:49

One of the simplier solutions is password-protected archive. 100% safe. Will check saving issue first.

» From what I saw, a copy of the map when a map/mod is activated is placed in maps folder
There is no such functionality, unless you press CTRL + S in map editor.


RE: ERA III - Berserker - 15.08.2023 22:14

I checked map saving and it's ok. Just do not forget, that file will be saved in real Game\Maps directory. It must exist and be writable. I started editor and opened Alexander The Great using File -> Open dialog.

Updated package. Password: 321 is required for unpacking. I included it in file name itself. It helps storing file on cloud drives.
https://dropmefiles.com/D1NtW


RE: ERA III - Archer30 - 16.08.2023 18:46

There is a wog bug.

Sacred Phonenixes are Fearless, yet they still got Fearless as a stack exp ability. It would make sense to remove this stack exp ability from crexpbon.txt

Edit:
Well, I think there are many weird decisions. Can't have time to sort out all of them, other examples:
Quote:- Dracolich has 2 stack exp abilities to cast Poison, with each at 50% chance.
- Diamond Dragons have 100% to block 50% physical damage at R10. With its full spell immunity, it's simply unkillable.



RE: ERA III - Berserker - 16.08.2023 20:23

I totally agree.


RE: ERA III - Akpoc - 30.08.2023 03:17

Уважаемые создатели и все мододелы! Огромное вам спасибо за Эру! Это нечто гениальное! В который раз убеждаюсь, что разрабы выпускают по большей части сырой продукт, бета-версии по факту, годные на пару недель - месяц игры. И лишь моддеры делают игры по-настоящему интересными, дорабатывают все механики, нюансы игр. Благодаря вам
гейминг становится полноценным!
Несколько дней разбирался с установками-настройками игры и вот наконец-то погрузился в полноценный мир полноценных героев 3. Удовольствие - не передать словами! Sm


RE: ERA III - Berserker - 30.08.2023 22:26

Akpoc, это прекрасно, что игра принесла Вам столько новых эмоций!


RE: ERA III - Barin - 06.09.2023 17:07

Установил ERA 3 на Платину. Не запускается:
Image: dsgkli.jpg

Что это?


RE: ERA III - Berserker - 07.09.2023 13:44

Ссылка устарела, там проблемная версия. Обновил. Перекачай, пожалуйста.


RE: ERA III - Archer30 - 10.09.2023 02:19

Not sure if this is a problem, but i^battle_acting_side^ != BG:Q, instead it equals BMi^battle_acting_side^:I. In most situation, they are the same, yet when i^battle_acting_stack^ is hypnotized, the result of BG:Q and i^battle_acting_side^ would be different.

Perhaps i^battle_acting_side^ should always equal BG:Q, judging by its name?


RE: ERA III - Berserker - 10.09.2023 15:25

Seems like there is a difference between owner of active stack (left or right) and controller of active stack (left or right). In BG:Q set and valid in OnBeforeBattleAction?


RE: ERA III - Archer30 - 10.09.2023 21:35

Berserker, BG:Q returns the controller side, as I see it works for all the stages on the battlefield. I suppose it has the same mechanism as #2 in OW:C?#1/?#2


RE: ERA III - Berserker - 10.09.2023 22:26

Ok, you can fix the code from side calculation to BG:Q in stdlib.erm


RE: ERA III - Archer30 - 10.09.2023 22:46

Done


RE: ERA III - Berserker - 11.09.2023 00:00

Nice update, thanks.


RE: ERA III - Archer30 - 19.09.2023 20:07

What would be an excellent way to deal with the current era mechanism? - I notice that if a stack is blocked and cannot be attacked on the battlefield if the attacker's side clicks on this stack, there would be a stack turn passed. For some scripts, this is a nightmare. For example, I have a creature with 30% chance of creating a clone of itself after melee attacking. Now if spamming left clicks on a stack that cannot be accessed, the clone is guaranteed to be made.

How can I check if a stack turn is a valid one? I have hook solutions but I would like to know if there is better ones.


RE: ERA III - Archer30 - 20.09.2023 18:20

And what would this be?
Too many scripts exceeding the 128m limit?
Image: 7491aa7.png


RE: ERA III - Valery - 12.11.2023 07:26

Bersy, in the Era 395 you made for me, I have this issue in plugins
There are clones, one is off, on is on, and clicking on any doesn't change the state

Image: Screen-Shot-11-15-23-at-09-06-PM.png


RE: ERA III - Berserker - 12.11.2023 16:52

Archer30, it means, that 128 MB for ERM are consumed, right. No more ERM can be Seems like missing translation from json. Message includes @limit@ parameter.

What concerns disabling action and your script with cloning, this is a difficult issue. Seems like it's a game crutch. No action should be triggered during such clicks.

Valery, checked and it seems I don't have such issue (no cloning and everything works). 0.93.6.16.beta version of mod manager?


RE: ERA III - Valery - 13.11.2023 06:31

Yes, I use the mod manager version inside the rar. Strange, I deleted manually the clones, now is fine.

Also any knows why after erm instructions, the game starts proposing skills to upgrade for AI heroes? A guy was testing my map. He spent about 15 minutes in the introduction (select internal difficulty, faction etc) so thats in middle of instructions. When he finally clicked for game, he had tens of popups for AI heroes to upgrade. Is it possible that if you stop erm instructions and delay them for a long time, the game goes crazy?,


RE: ERA III - Berserker - 13.11.2023 22:17

Valery, nope. It seems like wog script functionality (like heroes start at level 5). Definitely some script. Were you able to reproduce the same behavior? On what map can it be tested?


RE: ERA III - Valery - 16.11.2023 06:55

No, I wasn't able. Besides they can't start at level 5, as they are already at level 40+ in map editor. Is a mystery for me. He is streaming the map so when he starts it again, I will look then post here video if it happens again. Thanks.


RE: ERA III - Valery - 17.11.2023 14:39

Bersy, do you still have somewhere the erm manual written by Gamecreator for handling seer huts (QU commands)?


RE: ERA III - Berserker - 17.11.2023 18:09

Yes, they are included in all packages:

Heroes 3 Compat\Help\Erm Help 2.81\receiver_pa.en.htm
Heroes 3 Compat\Help\Erm Help 2.81\receiver_pa.ru.htm
Heroes 3 Compat\Help\Erm Help 2.81\receiver_qu.en.htm
Heroes 3 Compat\Help\Erm Help 2.81\receiver_qu.ru.htm


RE: ERA III - Valery - 17.11.2023 20:59

Thanks, I was looking in wrong places


RE: ERA III - Archer30 - 21.11.2023 23:26

lua support on ERA, when Rolleyes


RE: ERA III - Berserker - 22.11.2023 03:20

Archer30, hard to say, dear friend. I have older lua bridge libraries, but they should be fixed/rewritten, and it seems there is not so much time for it. We'll discuss this question soon.


RE: ERA III - Archer30 - 22.11.2023 05:13

Hah, I understand, Real-life life stuff comes first.

It seems like RD:I doesn't work at all on HD mod recruit dialog (the dialog called by clicking on the bottom left of town screen). #2/#3/#4 are always -1.
Possible to improve?

Btw I recommend adding a few constants. Came up idea while reading Era 2 Changelog



RE: ERA III - XEPOMAHT - 22.11.2023 06:49

(22.11.2023 05:13)Archer30 Wrote:  It seems like RD:I doesn't work at all on HD mod recruit dialog (the dialog called by clicking on the bottom left of town screen). #2/#3/#4 are always -1.

В HD-моде совершенно другой диалог найма монстров. RD:I поддерживает только родной содовский диалог.


RE: ERA III - Berserker - 22.11.2023 19:45

It's really a pity, that RD:I and HD mod are not compatible. Not easy to improve, because I cannot hook HD mod functions and examine data structures.


RE: ERA III - Valery - 22.11.2023 20:39

There is a problem with brute commander after really big fights, instead of giving gold, it takes it, negative value. Is there anything I can do about with erm, or is hardcoded?


RE: ERA III - Berserker - 22.11.2023 20:50

Hard coded without overflow check. more then 2147483647 gold overflows.


RE: ERA III - Valery - 24.11.2023 01:03

So is it possible for me to intercept the overflow then add the maximum gold, like check gold right after last unit was killed then calculate fix in BA1 trigger, by restoring gold first value than add the maximum possible?

Or check player gold in BA0, then in BA1, restore if less then add the max, would that make sense? Commander gold comes before or after BA1?


RE: ERA III - igrik - 24.11.2023 03:21

Valery, use ERM hooker





RE: ERA III - Valery - 24.11.2023 03:28

Hi Igrik

Era has erm hooker active. Is this a script I only have to add in main script? What it does exactly?


RE: ERA III - igrik - 25.11.2023 20:28

Valery, a very strange question on your part! What you asked for, this script does.
It seems that you haven't even experienced it.


RE: ERA III - Berserker - 25.11.2023 21:05

igrik, bruteGold — сколько прибавится золота после боя и это значение можно в хуке перезаписать?


RE: ERA III - igrik - 25.11.2023 21:50

Yepp Ab


RE: ERA III - Berserker - 26.11.2023 02:18

Если я правильно понял, исправление должно быть следующим:




RE: ERA III - Valery - 26.11.2023 13:28

Ok, which one now?Bad

And in Igrik example there are two scripts, one in spoiler. Both are necessary?


RE: ERA III - Berserker - 26.11.2023 20:37

Valery, try only the script from my code. Put it in a separate file. I didn't test it, but it should fix the issue. Need battle with huge exp.


RE: ERA III - XEPOMAHT - 26.11.2023 21:47

(26.11.2023 13:28)Valery Wrote:  And in Igrik example there are two scripts, one in spoiler. Both are necessary?

Опять костыли для бога костылей? Может быть стоит просто 1 проверку в воговскую функцию добавить:

Code:
void SetRes(int Player,int Nres,int Vres)
{
    STARTNA(__LINE__, 0)
    int *rp;

    if(Vres<0) RETURNV ; нельзя давать отрицательное количество ресурса игроку
    rp=GetResPo(Player,Nres);
    if(rp==0) RETURNV
    *rp=Vres;
    RedrawRes();
    RETURNV
}

Всего лишь подменить функцию по адресу 7100A3h


RE: ERA III - Berserker - 27.11.2023 01:00

XEPOMAHT, отрицательные ресурсы абсолютно легальны.


RE: ERA III - Archer30 - 27.11.2023 07:11

It looks like OB:S on !?OB completely blocks the !$OB trigger on the same object. Is this a bug?
It's not very convenient here.

Say if this is intended, is there any place to hook that serves a similar purpose of !$OB for Witch Huts?

_______

Berserker, could you upload the latest code of ERA 3.9.5 to GitHub please? They would be needed for Gamemaster to develop a branch of ERA using the new Delphi. Thanks


RE: ERA III - Berserker - 27.11.2023 08:08

Archer30, yep, OB:S is quote old and not script-friendly way to work with objects.

Probably, after this:
{0x4AA766,0,DP(Enter2Object)},

I updated Era sources on github and will use gamemaster code in the future, if I ever continue to write the code, because new Delphi versions are really better. Already installed Delphi XE 12.


RE: ERA III - Archer30 - 27.11.2023 08:24

Berserker, that's great! Thanks for helping out and looking forward to a modern era release


RE: ERA III - XEPOMAHT - 27.11.2023 09:24

(27.11.2023 07:11)Archer30 Wrote:  It looks like OB:S on !?OB completely blocks the !$OB trigger on the same object. Is this a bug?

Нет, так и задумано - !$OB пропускается, если ранее объект был выключен для посещения с помощью !!OB:S. Чтобы !?OB и !$OB работали, а объект не посещался, достаточно просто сменить тип объекта на пустышку, т.к. !$OB не использует реальные тип и подтип объекта, а запускается с заранее сохранёнными перед !?OB для того, чтобы триггер срабатывал после костров с сундуками. В том же !$OB восстанавливайте старый тип - Слава Сальников поступал именно так с объектами ВоГа, просящие разрешения взятия у игрока в стиле HoMM4.

(27.11.2023 08:08)Berserker Wrote:  if I ever continue to write the code, because new Delphi versions are really better. Already installed Delphi XE 12.

Если совместимость с Windows 2003 при этом снова будет сломана, ERA Plus так и останется на ERA 3.9. Дорогую цену пришлось заплатить при портировании Тифона 3 с ERA 2 на ERA 3, второй раз этот подвиг я повторить уже не смогу, особенно когда ERA+ сильно разрослась и зависит именно от текущей версии ЭРЫ (некоторые функции ЭРЫ подменяются Тифоном, некоторые особо конфликтные выключаются вовсе). К "осовремениванию" ЭРЫ отношусь с максимальной настороженностью, т.к. это очередные потенциальные проблемы с совместимостью (потом снова мучиться с объяснениями людям о необходимости устанавливать старую версию ERA для корректной работы ERA+ ).


RE: ERA III - SergOz - 27.11.2023 12:25

Один мой знакомый создал значительную часть карты на SoD. Теперь он решил перейти на ERA, так как ему понадобились её возможности. Многие битвы, на его карте, завязаны на ландшафте клеток карты. Но оказалось, что в ERA препятствия на поле битвы отличаются от препятствий в SoD (клетки те же), потому что он использовал SoDSP.

Вопрос: что можно сделать, чтобы на ERA поля битв выглядели бы так же, как и в SoD, с использованием SoDSP?
Вариант с прорисовкой поля при помощи !?BF не предлагать )



RE: ERA III - igrik - 27.11.2023 16:33

SergOz, у меня генерация препятствий в ERA 3.9.2 такая же как и в SoD + SodSP.

UPD: ага понятно. Это появилось в версии 3.9.3

Да, Берс, авторские карты должны быть поддерживаемыми - как по мне, лучшее решение довабить твик в Heries3.ini, который будет восстанавливать зерно генератора SoD для размещения препятствий.


RE: ERA III - XEPOMAHT - 27.11.2023 17:54

(27.11.2023 16:33)igrik Wrote:  лучшее решение довабить твик в Heries3.ini, который будет восстанавливать зерно генератора SoD для размещения препятствий.

И как автор карты удалённо сможет включить этот твик для одной конкретной карты? Проще в триггере перед установкой препятствий с помощью UN:C уничтожать эровский хук на 465E70h (вроде бы это он, у меня исходные коды так же только от ЭРЫ 3.9.2, а там этого хука я не нашёл).


RE: ERA III - Archer30 - 27.11.2023 21:12

XEPOMAHT, thanks. Not a bad idea to play with object type on !?OB.


RE: ERA III - SergOz - 27.11.2023 21:55

(27.11.2023 16:33)igrik Wrote:  лучшее решение добавить твик в Heries3.ini, который будет восстанавливать зерно генератора SoD для размещения препятствий.
(27.11.2023 17:54)XEPOMAHT Wrote:  И как автор карты удалённо сможет включить этот твик для одной конкретной карты? Проще в триггере перед установкой препятствий с помощью UN:C уничтожать эровский хук на 465E70h (вроде бы это он, у меня исходные коды так же только от ЭРЫ 3.9.2, а там этого хука я не нашёл).

Не знаю как сделать лучше в общем, но в данном случае карта будет выпущена в том же формате что и "Война на Холсте" и "СТАЛКЕР". Потому автор спокойно может включить нужный твик в лаунчере и пользователь получит файл в формате "all inclusive". Подозреваю, что такой формат, для "навороченных" авторских карт для ERA, станет единственно возможным. Во всяком случае, я получил очень много писем от игроков с благодарностью о таком формате, где игроку вообще не нужно ничего настраивать: загрузил - распаковал - установил - играешь - кайфуешь )

P.S. Кстати вот только узнал, что в ERA можно подключить пак SoDSP и получить плюшки этого пака (правда поля боя не такие). Вот и возник вопрос: такое подключение чревато последствиями?


RE: ERA III - Berserker - 27.11.2023 23:00

igrik, очень странно. Мне казалось, всё работало ровно так, как в оригинале:
- The global generator engine is switched to native C rand implementation only for the phase of placing battle obstacles.

На поле боя я использую родной генератор. Значит, нужно перетестировать.


RE: ERA III - XEPOMAHT - 27.11.2023 23:11

(27.11.2023 21:55)SergOz Wrote:  в ERA можно подключить пак SoDSP и получить плюшки этого пака (правда поля боя не такие). Вот и возник вопрос: такое подключение чревато последствиями?

Скорее всего ошибками воговского, эровского кодов, а возможно и плагинов, т.к. SoDSP меняет только содовский код. Насколько помню, изменения из SoDSP по большей части дублируют другие эровские моды и конкретно для платформы ЭРА его ценность сомнительна.

(27.11.2023 23:00)Berserker Wrote:  На поле боя я использую родной генератор. Значит, нужно перетестировать.

Подтверждаю: с Тифоном, который увеличивает количество препятствий до максимума, текущая версия ЭРЫ в плане генератора препятствий совместима, глюков нет - все хотовские кактусы устанавливаются на поле брани так же как в хоте (не сломайте это, пожайлуста).


RE: ERA III - Archer30 - 28.11.2023 03:00

Berserker, it looks like no secondary skills limit.bin misses out on the skills limit in Pandora's Boxes' events.

Address for Pandora's sec skill number check:
Code:
49F90B

here's the fixed bin


RE: ERA III - Berserker - 29.11.2023 07:57

Кто-нибудь ещё может подтвердить, что объекты на карте в 3.9.5 не такие, как в Сод? Валера бы первым написал, если бы хоть один бой в его карте был не как ранее.


RE: ERA III - SergOz - 29.11.2023 21:05

Berserker,
* версии 3.9.5 нет в общем доступе.
* Валера вряд ли создавал свои карты в SoD. А речь шла именно об этом.
* igrik написал, что на 3.9.2 поля боя такие же как и в SoDSP. Я скину человеку эту версию и проблема устранится. Эта версия способна реализовать те задумки, которые он хочет воплотить в своей карте.


RE: ERA III - igrik - 29.11.2023 21:33

Berserker, обрати внимание, даже расстановка лучников изменилась.
скрин (Click to View)
Валерий, если ты забыл, использует ERA 2.9.15


RE: ERA III - Berserker - 30.11.2023 01:24

3.9.5 уже использует. Понял, спасибо.


RE: ERA III - Archer30 - 30.11.2023 20:01

Bug report:
Stange interaction between Death Stare of Paralyse of commanders.

In WoG/ERA 2.9.14, there's no interaction between Death Stare and Paralyse. They are standalone events and won't interfere with each other. Yet in ERA 3.9.5, if a commander leans both Paralyse and Death Stare, this could happen:
- The chance of triggering Death Stare becomes rather low, instead of 100% (it should be 100% according to documents)
- If Death Stare triggers after Paralyse, the kill amount of Death Stare would become one, instead of commander level/victim creature level (documents).
Both issues don't appear in WoG/ERA 2.9.14.

Here are save games for testing

Tips:
You can cast Teleport spell to teleport the commander to any tile and attack and see the difference.
The issue exists in "raw" era 3.9.5 without game bug fixes extended.dll.


RE: ERA III - igrik - 30.11.2023 20:11

Archer30, вы слижком углубляетесь в ненужные моменты. Командиры и так имбалансны.
Связка Смертельного взгляда и Паралича ещё со времён вога работала неккоректно - пусть остаётся и так.
Как и то, что кавалерийский бонус не работает одновременно с полётом.
А дыхание дракона с круговой атакой.

Таких недочётов много, и исправлять их в настоящее время, я считаю, неккоректно.


RE: ERA III - Noel - 30.11.2023 20:48

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


RE: ERA III - Archer30 - 30.11.2023 21:21

igrik, this issue has been reported by players quite often. At first, I had the same reaction "Well, this is just expected". yet more and more reports come in and I decided to test today and made this bug report here.

Quote:Связка Смертельного взгляда и Паралича ещё со времён вога работала неккоректно - пусть остаётся и так.
Nope. I attached 4 save games based on ERA 2.9.14 and ERA 3.9.5 for the convenience of testing. I did see a difference.

Commanders are indeed overpowered. But it should be a nerf in general instead of relying on a unique skill combination (Death Stare + Paralyze). Sometimes you are forced to learn a commander skill, like in Commander Witch Huts (option 66) or just leveling up. It doesn't feel right having to downgrade your commander's strength in this way.

Btw I don't think this requires recreating a lot of code to fix. It might just be a small mistake since Bersy recreated the new random roll mechanism.


RE: ERA III - igrik - 01.12.2023 00:31

(30.11.2023 21:21)Archer30 Wrote:  Nope. I attached 4 save games based on ERA 2.9.14 and ERA 3.9.5 for the convenience of testing. I did see a difference.
Archer30, they differ only in the chance of falling out, because the grain of the random number generator has changed.
The very logic of behavior is not. And she's just like I've described since the time, not even that ERA 2.46, It was like that back in WoG 3.58f

UPD:

But here you will encounter another problem - first the paralyze is performed, then the death stare. And this already depends on the location of the functions in the SOD section. And it is already extremely difficult to fix this, so as not to break a lot of other mods. And this completely devalues the paralyze in this form.

That's why I wrote "you need to leave it as it is and not touch it"


RE: ERA III - Archer30 - 01.12.2023 02:59

igrik, that's persuasive. After re-testing and thinking, I agree that it's best to leave it as it is.

Quote:С командиром единственное что раздражает - это необходимость в каждом бою каждый ход руками переключать бить рукой или стрелять ему. Было бы хорошо чтоб запоминало и не только на протяжении боя, а и после него.
Not a bad idea. What does igrik think? Rolleyes


RE: ERA III - igrik - 01.12.2023 04:13

(30.11.2023 20:48)Noel Wrote:  С командиром единственное что раздражает - это необходимость в каждом бою каждый ход руками переключать бить рукой или стрелять ему. Было бы хорошо чтоб запоминало и не только на протяжении боя, а и после него.
Сделано. Плагин на гите.
Важно! Но нужно потестировать, ибо я дотошно не проверял.


RE: ERA III - Noel - 01.12.2023 08:54

Я проверю, спасибо, играю частенько


RE: ERA III - Noel - 01.12.2023 09:06

Работает, спасибо. К слову заметил еще проблемы с модом Human AI. Ставлю режим усиления с 20 дня, режим сложный с 50 дня, в итоге наблюдаю, что АИ совершенно почти не развивается. Банки существ рядом с замком не грабит, часто стоит на месте, существ не присоединяет, параметры набираются очень слабо, существ очень мало. Проблема по моему появилась где то с 2 апдейта назад. Уж не знаю как можно АИ усилить, чтоб он хоть как то был вызовом.


RE: ERA III - Archer30 - 04.12.2023 08:47

There is a bug that has been a year I reported it to Bersy in pm, and I just hope it to be fixed soon.

!!UN:U for counting the number of towns or looking for the next town can be mistaken if a hero standing in the red zone, like this:
Image: ghLkg49.png

Download a save game with hero stuck at red zone

Script for counting the number of towns:

Steps to reproduce:
- Load the save game I uploaded OR create a new map and move the hero into the red zone of a town
- Execute my script for counting town number
- Move the hero out of the red zone
- Execute my script for counting town number and see the difference from the previous step
Ideally, you will see that after moving the hero out of the red zone, the number of towns is 1 less. This is because in the previous counting, the hero in the red zone was recon as a town. Enabling the check of TR:P will return the real result of town number.


RE: ERA III - XEPOMAHT - 04.12.2023 09:18

(04.12.2023 08:47)Archer30 Wrote:  There is a bug that has been a year I reported it to Bersy in pm, and I just hope it to be fixed soon.

!!UN:U for counting the number of towns or looking for the next town can be mistaken if a hero standing in the red zone, like this:
Image: ghLkg49.png

Не баг. Так специально сделано. Вы должны понимать логику работы команды !!UN:U - она не предназначена для подсчёта количества городов, она считает только количество жёлтых квадратов для определённых типов/подтипов объектов. Естественно, что герои с лодками в ней намеренно игнорируются - так запрограммировано Славой Сальниковым.

Количество городов на карте игра выссчитает из размера выделенной памяти на все структуры городов - это и быстро и вам не придётся перебирать все клетки карты на наличие города. Делайте так же точно на ERM c помощью !!UN:C - мой вам совет. Завязывайте с костылями.

Если всё же хочется делать "по-воговски", то вам придётся применять бинарные патчи до и после !!UN:U для отключения/включения игнорирования героев и лодок - пример есть в скриптах ERA+ (где я не стал менять воговскую логику, хотя надо было, но было лень).


RE: ERA III - Berserker - 04.12.2023 09:49

XEPOMAHT, там герой не в лодке должен стоять, а на красной клетке. Почему это мешает подсчёту жёлтых клеток входа?


RE: ERA III - XEPOMAHT - 04.12.2023 10:02

(04.12.2023 09:49)Berserker Wrote:  там герой не в лодке должен стоять, а на красной клетке. Почему это мешает подсчёту жёлтых клеток входа?

Герой на карте - такой же объект "со входом" как и все остальные. На красной клетке герой физически стоять не может (клетка автоматически заменится на желтую, после снова сменится на красную согдасно маскам препятствий объекта, когда герой с неё уйдёт - видимо в RoE были ошибки с попаданием героя на препятствия, поэтому разработчики позаботились, чтобы игрок мог продолжить при этом игру), а !!UN:U просто увидит у города 2 жёлтых квадрата вместо одного. Всё просто.


RE: ERA III - Archer30 - 04.12.2023 14:08

Whether it's a bug or not, I don't see any case UN:U returning the wrong number of towns would be favoured.


RE: ERA III - XEPOMAHT - 04.12.2023 17:26

(04.12.2023 14:08)Archer30 Wrote:  Whether it's a bug or not, I don't see any case UN:U returning the wrong number of towns would be favoured.

Not bug. But UN:U not support objects with two yellow cells - it is worked only on one. If you want towns count on map, don't use UN:U.


RE: ERA III - wessonsm - 04.12.2023 21:49

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


RE: ERA III - Berserker - 04.12.2023 23:19

Согласен. Нельзя накладывать один объект поверх другого.


RE: ERA III - Archer30 - 05.12.2023 03:37

As I know there are two ways to put a hero in the red tile of a town.

- By bug of Flying spell. Sometimes the hero stays at the red tile after moving with Fly. I can't reproduce it now but it was reported from time to time.
- By scripts. We try to avoid this situation.

XEPOMAHT, thanks. Could you tell me what UN:C should be used to obtain the real town number? We don't have access to the Russian Erm help.


RE: ERA III - Berserker - 05.12.2023 04:16

Yep, getNumTowns() function would be a stable solution.


RE: ERA III - XEPOMAHT - 05.12.2023 08:39

(05.12.2023 03:37)Archer30 Wrote:  thanks. Could you tell me what UN:C should be used to obtain the real town number? We don't have access to the Russian Erm help.

На Си - одна строчка кода:

Code:
GetTownsCount() {return ((_int_)((*(_dword_*)(((_ptr_)this) + 0x21618) - *(_dword_*)(((_ptr_)this) + 0x21614)) / 360));}

На вого-ассемблерной вставке так:

Code:
int GetCastleMapCount(void)
{
    STARTNA(__LINE__, 0)
    _CastleSetup_ *strt,*end;
    __asm{
        mov  eax,BASE
        mov  ecx,[eax]
        add  ecx,0x21614
        mov  eax,[ecx]
        mov  strt,eax
        mov  eax,[ecx+4]
        mov  end,eax
    }
    RETURN((end-strt)/360)
}

На ERM2 это как-то тоже можно написать...


RE: ERA III - daemon_n - 05.12.2023 17:31

Archer30,



RE: ERA III - Archer30 - 05.12.2023 18:03

Very cool thanks!

But in the end UN:U for finding next town still returns hero if he/she stucks in red


RE: ERA III - daemon_n - 05.12.2023 19:10

Archer30, mb cause if when it finds hero it checks object below? and it is probably town with new coord?


RE: ERA III - Archer30 - 16.12.2023 17:30

Hi Berserker, there is a weird bug report from the community. The log is a bit confusing.

Quote:Failed to write data at F8558D0E.
EIP: Era.50076 (AdvErm.GetSlot + 98 in AdvErm.pas on line 1220 offset 2). Code: C0000005

> Registers
EAX: 00000001 (int: 1)
ECX: 0000000A (int: 10)
EDX: 00000009 (int: 9)
EBX: H3era hd.00A5A008 (int: 10854408, pint: 0x00000000)
ESP: 02D359E8 (int: 47405544, pint: 0x02D3617C = 47407484)
EBP: 02D35C00 (int: 47406080, pint: 0x02D36168 = 47407464)
ESI: 00000001 (int: 1)
EDI: 02D35A00 (int: 47405568, pint: 0x02D36001 = 47407105)

> Callstack
H3era hd.007493CC
Era.64AD8 (Erm.ProcessErm + 2456 in Erm.pas on line 5802 offset 11)

Should that be an erm issue?

Download Debug here

According to my test, it has 95% chance to be related to Remagic (Era Scripts option) 102


RE: ERA III - Berserker - 16.12.2023 17:43

According to write address, seems like Era memory corruption.


RE: ERA III - Archer30 - 16.12.2023 21:57

Berserker, should that be resolved on scripts or your end?


RE: ERA III - Berserker - 16.12.2023 22:58

Memory corruption is scripts area. I think some UN:C or plugin write operation could do it. Maybe some buffer overflow in EEF function, but not Era core.


RE: ERA III - daemon_n - 17.12.2023 00:01

Archer30, try same w/o these suspisious hooks


RE: ERA III - Archer30 - 17.12.2023 13:51

daemon_n, issue resolved after disabling the content under Summon Elemental Hook in ReMagic

Download the latest debug before disabling the hook content


RE: ERA III - gamemaster - 17.12.2023 18:05

Hi,

@Berserker Can you push 3.9.6 so I can port it to D12.


RE: ERA III - Berserker - 17.12.2023 18:08

Hi, gamemaster. Done. Installed Delphi 12. Do you know if it still supports console compiler?


RE: ERA III - gamemaster - 17.12.2023 23:25

Thanks.

I guess that D12 support command line compiler, but I never used it.
Always seemed too complicated for my needs Sm
I know that Delphi community edition do not support command line compiling.

If you can provide more details, where and why you need it, maybe we can do same trough ide.


RE: ERA III - Archer30 - 19.12.2023 19:02

Bug report:
Possible to attract an invalid number of troops with Succubus's ability.

Image: WfLkt2v.png
As you see from the screenshot, there is a phantom stack of fire messages in the Succubus dlg. If you drag this stack into the army, then this could happen:
Image: mwPntQ8.png
(The quantity of Fire Messager is 0)

This issue can be reproduced in raw era with a low level of Succubus.

Save game for testing


RE: ERA III - gamemaster - 19.12.2023 21:37

Can not reproduce bug with latest 2.949 build and era 3.6.9.
I tried put messengers in various slots. Also, tried it with D12 era build and with original era build.
Always same result, 3 messengers in right position. Seems that it works fine.

Can you try it again, after you restarted game and load it.
Without exit game there is always chance to gave some memory corruptions left from previous game.
If it is case then bug is much harder to locate.


RE: ERA III - Archer30 - 19.12.2023 22:29

gamemaster, hi! To produce, it's simple, just click on the 4th slot (as my screenshot shows) and see if it's highlighted. If it does, you will be able to get this phantom stack and mess up the battle.

I can 100% reproduce with my save game and in a new game. Basically if the attracted stack number is 0 (=original number of the stack times a percentage), it becomes invisible like in my screenshot.


RE: ERA III - gamemaster - 20.12.2023 12:02

Oh, my bad. didn't saw yellow rectangle on image Sm
I reproduced bug. It is as you described. I also took old 3.3.7 era version to check. Same bug is present there.


RE: ERA III - Berserker - 20.12.2023 13:54

Perhaps, in these slots WoG or game set type to the first creature type and number to 0. The correct way is the say type to -1 for empty slots.


RE: ERA III - gamemaster - 20.12.2023 14:00

I think that problem is with dividing units into slots.
In Archers example there are 4x15 messengers. And succubus is lvl1 wit 5% charming.
Succubus will steal 3 messengers. Because there is 4 enemies 3 messengers would be divided in 4 slots. And we get 1+1+1+0.
Solution would be to not place unit in slot if its count is less then 1.

Any idea where this charming math is done? In era, h3era, custom scripts ?

ps: Slot with 0 units function normally as messenger unit do. Can be joined, moved or swapped...


RE: ERA III - Berserker - 21.12.2023 00:14

wog sources
npc.cpp

NPCAttack0

Seem like there:
Code:
void NPCAttack0(_MonArr_ *G2B_MArrA,_MonArr_ *G2B_MArrD,_Hero_ *G2B_HrA,_Hero_ *G2B_HrD)
{
  #include "templ.h"
  int  i,yes,pers,Mt[7],MnS[7],MnD[7];
  NPC *npc;
//  if(IsThis(G2B_HrA->Owner)!=0) StoreFired(-1,0,0,0);
  NPCsa[0].Init();
  NPCsa[1].Init();
  do{
    if(G2B_HrA==0) break;
    npc=&NPCs[G2B_HrA->Number];
    if(npc->Type!=3) break; // Inferno
    if(npc->Used<=0) break;
    if(npc->Dead==1) break;
    if(G2B_HrD!=0) break; // не нейтральный стек
    pers=npc->Level/2+5; if(pers>20) pers=20;
    for(i=0;i<7;i++){ Mt[i]=G2B_MArrD->Ct[i]; }
    yes=RemoveCreature(G2B_MArrD->Ct,G2B_MArrD->Cn,MnS,MnD,pers); // pers домножен на 100
    if(yes==0) break;
    if(IsThis(G2B_HrA->Owner)!=0){
      Message(ITxt(9*3+6*6*4+1,1,&NPCTexts),1);
      CrChangeDialog(G2B_HrA,Mt[0],MnD[0],Mt[1],MnD[1],Mt[2],MnD[2],
                Mt[3],MnD[3],Mt[4],MnD[4],Mt[5],MnD[5],Mt[6],MnD[6]);
    }else{
      AddCreature(G2B_MArrA->Ct,G2B_MArrA->Cn,Mt,MnD);
    }
    for(i=0;i<7;i++){ G2B_MArrD->Cn[i]=MnS[i]; if(MnS[i]<=0) G2B_MArrD->Ct[i]=-1; }
  }while(0);
  do{
    if(G2B_HrD==0) break;
    npc=&NPCs[G2B_HrD->Number];
    if(npc->Type!=3) break; // Inferno
    if(npc->Used<=0) break;
    if(npc->Dead==1) break;
    if(G2B_HrA!=0) break; // не нейтральный стек
    pers=npc->Level/2+5; if(pers>20) pers=20;
    for(i=0;i<7;i++){ Mt[i]=G2B_MArrA->Ct[i]; }
    yes=RemoveCreature(G2B_MArrA->Ct,G2B_MArrA->Cn,MnS,MnD,pers); // pers домножен на 100
    if(yes==0) break;
    if(IsThis(G2B_HrD->Owner)!=0){
      Message(ITxt(9*3+6*6*4+1,1,&NPCTexts),1);
      CrChangeDialog(G2B_HrD,Mt[0],MnD[0],Mt[1],MnD[1],Mt[2],MnD[2],
                Mt[3],MnD[3],Mt[4],MnD[4],Mt[5],MnD[5],Mt[6],MnD[6]);
    }else{
      AddCreature(G2B_MArrD->Ct,G2B_MArrD->Cn,Mt,MnD);
    }
    for(i=0;i<7;i++){ G2B_MArrA->Cn[i]=MnS[i]; if(MnS[i]<=0) G2B_MArrA->Ct[i]=-1; }
  }while(0);
  RETURNV
}



RE: ERA III - Archer30 - 21.12.2023 03:35

Quick code to fix by Hawaiing:



RE: ERA III - igrik - 21.12.2023 10:56

(19.12.2023 19:02)Archer30 Wrote:  Bug report:
Possible to attract an invalid number of troops with Succubus's ability.
As you see from the screenshot, there is a phantom stack of fire messages in the Succubus dlg. If you drag this stack into the army, then this could happen:
(The quantity of Fire Messager is 0)

This issue can be reproduced in raw era with a low level of Succubus.

Save game for testing
Archer30, I don't have this problem. I don't use the HoMM3 ERA Launcher Edition. My game version 3.9.5
Look for the problem in your scripts or plugins.
Because by your decision you have created a crutch on top of your own mistake


RE: ERA III - Berserker - 21.12.2023 16:39

igrik, ты точно щёлкал по пустому жёлтому слоту №4 при том же количестве элементалей на карте?


RE: ERA III - igrik - 21.12.2023 18:22

Berserker, ну ты чего туда же? Чисто технически слот №4 не может быть пустым.

UPD: но исследовав проблему поглубже - да, согласен. Это недочёт ВОГа, причём во всех версиях.
Archer30, fixed on game bug fixes extended plugin.


RE: ERA III - Archer30 - 21.12.2023 21:11

Berserker, igrik, thanks Thank_you


RE: ERA III - Valery - 25.12.2023 00:30

Bersy, I have a strange bug, mod manager in Era 395 you made for me, it skips the .pac files when compressing. I tried 10 times, same issue. I had to use previous Era version to pack the map


RE: ERA III - Berserker - 25.12.2023 00:39

Valery, I will report to SyDr, Mod Manager author. I took it from the latest Era Launcher. Probably, SyDr didn't notice the bug in his last releases.


RE: ERA III - Berserker - 27.12.2023 23:58

https://dropmefiles.com/NHhrt

Code:
Version 3.9.7 (12/2023)
------------------------
[+] Added support for arrays and primitive types in language json files, because they are often used as config files. Numbers are converted to strings, booleans are converted to "0" and "1", null values are ignored (the same, as key-value pair didn't exist at all). Arrays are treated as objects with monotonically increasing string keys ("0", "1", "2").

  Example json:

  {
    "creatures": [
      {
        "id": 2000
      },

      {
        "id":       150,
        "name":     "SuperRobot",
        "isGod":    true,
        "power":    77.345,
        "copyFrom": null
      }
    ]
  }

  Example script:

  !?FU(OnAfterErmInstructions);
  !!IF:M^%T(creatures.0.id) %T(creatures.1.id) %T(creatures.1.name) %T(creatures.1.isGod) %T(creatures.1.power) %T(creatures.1.copyFrom)^;

[-] Fixed bug: png resources where cached forever, causing visual glitches in mods like Random Wallpaper.
[-] Fixed bug: battle obstacles placement differed from SoD.


Version 3.9.6 (12/2023)
------------------------
[+] Added support for multiple language files in a single mod. Json files from Lang\[Language] directory have priority over files in Lang directory root. Current language is stored in heroes3.ini in "Era" section under "Language" key and defaults to "en".

It's recommended to keep any mod main language data in root "Lang" directory and alternative localizations in appropriate subdirectories (en, pl, ru, fr).

[+] Added new exported function to era.dll:
  // Changes current language code in memory without altering ini files or reloading already loaded data
  SetLanguage (NewLanguage: pchar): TDwordBool; stdcall;

  // Reloads all json files from "Lang" directory and current language subdirectory.
  ReloadLanguageData; stdcall;

[-] Fixed "SN:H" command and "OnAdvMapTileHint" event behavior. No hint is applied and no event is generated if tile is not visible by current player.


Коротко: баг с расстановкой объектов на поле боя исправлен, баг со случайными изображениями для интерфейса исправлен, json-конфиги стали удобнее.


RE: ERA III - gamemaster - 28.12.2023 14:19

Here is updated era-modern to 3.9.7 version


RE: ERA III - Berserker - 28.12.2023 14:35

Thanks. I think we should try to use era-modern dll in Era Assembly by daemon_n to test its stability.


RE: ERA III - gamemaster - 28.12.2023 15:05

Agree with Bersy.
I did a lot tastings locally, but real test would be mass-test.

I would propose to have both dll versions for some time.
Let modern-era dlls be default. Then include script to replace modern-era with original and vice versa.


RE: ERA III - Berserker - 28.12.2023 16:49

Ok, we'll try )


RE: ERA III - Archer30 - 29.12.2023 08:44

Hi, Berserker, it looks like OnGameLeave no longer works on exiting the game during battle. Not sure when the compatibility was broken between HD and era, but it's happening.
Can this be possibly improved?

Script for testing:



RE: ERA III - daemon_n - 29.12.2023 14:03

Archer30, we have also game bug fixes extended plugin 102


RE: ERA III - Berserker - 29.12.2023 15:55

I think it's some HD mod issue. Did you try with a bit older HD-mod version?


RE: ERA III - Archer30 - 29.12.2023 22:14

Well, I picked five versions from here to test, from HD 5.1 to 5.4, and none of them worked.


RE: ERA III - Berserker - 30.12.2023 01:04

Archer30, I wrote to Baratorch about the issue.


RE: ERA III - Berserker - 30.12.2023 01:11

Latest update:
https://dropmefiles.com/CP4lA


RE: ERA III - Archer30 - 30.12.2023 04:16

Thanks! 148 Is ERA 4 the next one or 3.9.10?


RE: ERA III - Berserker - 30.12.2023 15:50

3.9.10 )))))


RE: ERA III - hippocamus - 01.01.2024 22:44

Приветствую!
Подскажите, как запустить редактор карт, чтобы он подключил контент из некоторых модов?


RE: ERA III - Berserker - 01.01.2024 23:35

привет, Гиппо. Редакторы карт для Эра патченные и грузят eramap.dll автоматически, а там подгразка lod/pac из модов.


RE: ERA III - Valery - 04.01.2024 05:24

Berserker, how can I revert IF:D dialogs to work with 3.95?


They don't show anymore now (look corrupted). Is because of new fonts or?


RE: ERA III - Berserker - 05.01.2024 03:13

Val, I corrected Atlantis a bit.
Try to start with this one:
https://dropmefiles.com/BAS1e


RE: ERA III - Valery - 05.01.2024 04:33

Bad

That was the very first version, much updated since. Here is the one updated in 2015

https://drive.google.com/file/d/1oBg4jup3KjzfIqt8_71l1vHgPkmMabKU/view?usp=drive_link

Where there is MP (sounds) fix (which was for Era 2 but doesn't work with 3.95)


Just tell me what you did, so I can fix all if possible. I see you changed the syntax for functions call, however they worked, my problem were the dialog boxes displaying gifs, and they still don't work.

@Edit : I found the problem, is HD mod, no longer compatible with IF:D dialogs using gifs. Ok, so I can disable HD mod, however can I have a fix for MP receiver so they do'nt display error at game start, please? The one you gave me years ago isn't working anymore... However sound is working ok, is only that errors popup. I can block them with
but that will block also possible code errors to fix later, so not sure what to do.

Also, is there a way to erm set the hero movement at slowest rate at game start?


RE: ERA III - Berserker - 05.01.2024 16:13

MP receiver and trigger were sources of random crashes for old time, thus, they were rewritten.

Code:
[+] MP trigger and receivers were fully remade. Old documentation is not applicable now. New implementation is fully
    thread-safe. From now heroes3.ini setting "UseOnlyOneCpuCore" is 0 by default, allowing running HD mod in CPU-heavy modes.
    Please note, that it's better to remove all ID3 tags from mp3 in order to avoid strange game issues.

    Documentation:

    !?MP; Trigger occurs whenever game or ERM/Lua calls ChangeMp3Theme function.
    ; Here function parameters may be changed via !!MP:S, function default reaction enabled/disabled via !!MP:R

    !!MP:C?z[xx]; Get name of current theme without mp3 extension in lower case.
    ; Receiver may be called any time. Example result: 'dirt'.

    !!MP:P[theme name]/[Don't track position = 0/1]/[Loop = 0/1]; Calls ChangedMp3Theme function and generates !?MP event.
    ; Theme name is mp3 file name without extension.
    ; If 'Don't track position' is true (1), track playing is begun from start after resuming from pause.
    ; Otherwise position is remembered and restored on resume.
    ; 'Loop' controls automatical theme replay after end. 'Don't track position' must be set to 0 in order for looping to work.
    ; ---------------------
    ; Please, note, that final parameters are fully ignored if theme with the same name is being played currently.
    ; You may need to pause current theme before starting another one to force playing from start or without loops.
    Example: !!MP:P^cstletown^/0/1; start playing looped Castle theme

    !!MP:P0/[0 - pause, 1 - resume]; Pauses or resumes current theme
    Example:
    !!MP:P0/0; Silence, please, important event will occur now

    !!MP:S[theme name]/[Don't track position = 0/1]/[Loop = 0/1]; Get/change parameters for !?MP trigger.
    Examples:
    !?MP;
    !!MP:S?z2/d/0; Make all themes non-looped

    !?MP;
    !!MP:S^mainmenu^/0/1; Play SoD main menu theme during the whole gameplay process

    !!MP:R[get/set: Enable default reaction = 0/1]; Command allows to disable theme changing at all
    ; Can be used to disallow music changing for some time
    Example:
    !?MP;
    !!MP:R0; Don't switch current theme at all


I could basically enhance your version of 2015 year and send you erm for further fixes.
In Era 3+ it's safier and easier for reading to use named functions, not numeric.

!?FU(atl_TeleportHeroToPlanet); is much better then !?FU90000;

Should I use the link above?


RE: ERA III - Valery - 05.01.2024 17:35

Thanks, don't do it because I am testing right now, code is sloppy (2009 made !) but is at least working, a full rewrite of functions will require several tests...

I can't find in your MP changes how to load a file from a folder, like we had before

What means "Make all themes non-looped" ?

Thanks for hero movement code.


RE: ERA III - Berserker - 05.01.2024 18:51


It means, that example code makes all mp3 themes non-loopable. They just stop playing after reaching end. It's just an example of the third MP:S parameter usage.

Just upload your current atlantis.erm file and I will reupload it today with a few automatical replacements.


RE: ERA III - Valery - 05.01.2024 19:03

https://drive.google.com/file/d/1INSqISCIqBo0XlqP3J40foNue1LQmFpc/view?usp=drive_link

There is still old command to revert to MP, both on save and load game (delete now?). The only thing giving errors on start (but works in game) is the MP lines. However there are many of them, as initially I wanted specific music in specific places....


RE: ERA III - Berserker - 05.01.2024 19:14

Try this one: https://dropmefiles.com/P2jSn

!!MP:S is replaced with SN:R (redirect resource)


RE: ERA III - Valery - 05.01.2024 19:33

Ok, thanks, starting test again


RE: ERA III - Valery - 05.01.2024 19:55

!!UN:C6916012/4/0;

This code make the hero move frame by frame then the game freezes, thats really very slow 148


RE: ERA III - Berserker - 05.01.2024 22:07

Maybe 1 should be minimal )))


RE: ERA III - Archer30 - 06.01.2024 03:20

Not quite sure whether this should be considered as an ERA bug, but UN:I for placing a town works perfectly except the towns are allowed to have banned spells (banned from map editor) appearing in mage guilds.


I can fix this in erm, like checking every spell in mage guilds and see if it's banned - but I believe it would be even better to be done in ERA, no mod maker should worry about this matter anymore.

Edit: nvm, it seems UN:I for placing town avoids banned spells correctly.

____


And there is a question about IP:D. As I see, we always want to have our functions executing in every PC in the network, thus IP:D-1 is 99.99% of the case. This command seems to be somehow useless. Is that true?


RE: ERA III - Berserker - 06.01.2024 05:01

I'm definitely not planning to modify ERM commands. To my mind, these things (like object setup after creation) should be implemented on a library (Lua, ERM) level.

If you play with 7 players on Lan or virtual Lan, you definitely not need to receive in-battle sync commands. You also do not want to receive private messages and staff like that. D-1 is really easy, but if you transfer 1 MB data, why waste 8 MB traffic if it will be used only by one PC?


RE: ERA III - Archer30 - 06.01.2024 05:24

So basically the rule is that

On Adv map:
IP:D-1

On combat screen:
IP:D(defender)

right?
Well yes I agree that there are still some situations you want to set IP:D to a specific value like sending msg. That's just way too rare, hah

_____________


Question:
Is it possible to have some sort of settings in a mod that overrides the language setting in heroes3.ini?

I am asking this because I have been used to switching language between Chn and Eng by enabling/disabling the Chinese localization mod. Later on we are going to create mods with multiple languages inside and thus it's no longer possible only change list.txt, we also have to change heroes3.ini - this is not the most convenient way. Ideally, I hope that when I enable Era Chn mod, the language is set to Chn regardless of whatever is in heroes3.ini.


RE: ERA III - Berserker - 06.01.2024 14:45

Yep, D-1 on adv map and D(defender) in battle.

daemon_n is working on language selector control in in-game options, which will modify heroes3.ini automatically.


RE: ERA III - Archer30 - 07.01.2024 00:55

Thanks!

Is it correct that for the same json key in different mods, the one that would be used is determined by mod priority in list.txt? Filenames of json don't matter?

Is there a way for the json key from a mod with a lower priority to override the same json key from a mod with a higher priority?


RE: ERA III - Berserker - 07.01.2024 01:13

Filenames matter only for cases, where multiple json files in a single mod have the same key (alphabetical priority). Mod priority from list.txt determines the primary order of loading.

Quote:Is there a way for the json key from a mod with a lower priority to override the same json key from a mod with a higher priority?
The only way to do it is when higher priority mod has default language in Lang directory itself and lower priority mode has Lang\[current language]\*.json files.

The order of file loading is:

1) Lang\[current language]\*.json from all mods by priority
2) Lang\*.json from all mods by priority

Thus if lower priority mod has Lang\cn\texts.json, its keys will beat higher priority Lang\default_texts.json


RE: ERA III - Archer30 - 07.01.2024 03:08

Thanks a lot!


RE: ERA III - Berserker - 07.01.2024 19:04

Valery, I was able to pack mod into exe using Mod Manager from 3.9.5 Compat assembly without any issues. Sydr (soft author) also wrote, that there was no any subtle changes. Maybe it's some issue with pac file name (spaces?).

Archer30, welcome.


RE: ERA III - Archer30 - 08.01.2024 18:15

For some reason, a syntax doesn't work as expected:

Script for adding suffix to monster names

The problem: {~%(colourStr)} isn't recognized. The colour were not applied to the names of monsters. If I replace {~%(colourStr)} with actual colour, like {~Crimson}, it could work.

Did I get something wrong? Possible to have this improved?


RE: ERA III - Berserker - 08.01.2024 18:43

Didn't test, the original code looks valid, maybe I miss something.


RE: ERA III - Archer30 - 08.01.2024 18:46

Berserker, it also doesn't work Rolleyes


RE: ERA III - Berserker - 08.01.2024 23:21

This code worked:
You should debug all values using IF:M probably.


RE: ERA III - Archer30 - 09.01.2024 00:30

Berserker, thanks a lot...there was an extra question mark before "I" in my script. Now everything works!


RE: ERA III - Berserker - 09.01.2024 00:46

Great Ab


RE: ERA III - Archer30 - 09.01.2024 01:03

We have two reports in the Discord community and I hope you can review them sometime.

- VR:R keep generating the same number in certain conditions
Report: https://discord.com/channels/665742159307341827/1194021180659732621
In short: In my script ...\Mods\Era Scripts Eng\Data\s\option 788 - hardcore heroes.erm - FU(ES_788_Rebirth), there are a few VR:R generating random numbers to determine a hero's new specialty after he/she's killed. Yet with the new random mechanism update after ERA 3.9.6, these VR:R seem to generate the same numbers (see the video in the thread, heroes are getting the same specialties). If we revert to ERA 3.9.6, everything seems fine again.
Is there any condition that could make VR:R generate the same numbers in the new ERA?

- Pacifist (Astral Spirit's ability) can merge the same type of troops into one stack.
Report: https://discord.com/channels/665742159307341827/1190698572463747202
I suppose this is because the number in each stack overflows (exceeding INT16).


RE: ERA III - Berserker - 09.01.2024 01:27

Does VR:R issue occure in online PvP battle?


RE: ERA III - Archer30 - 09.01.2024 02:15

Berserker, in my script, those VR:R occur OnAfterBattleUniversal. I checked the owner here to know whether the heroes were killed and what specialty they should be given if they did.
Tests were performed in single player battles.


RE: ERA III - Berserker - 09.01.2024 12:52

All VR:R keep to be the same in this trigger, right?


RE: ERA III - Archer30 - 09.01.2024 15:32

Yes. There are a few VR:R under this trigger and all of them generate the same set of numbers every time OnAfterBattleUniversal event triggers


RE: ERA III - Berserker - 09.01.2024 15:37

Maybe it's sod behavior related to level-up? Sod seed pseudo random number generator (PRNG) with fixed value before battle and before level up.
Is the value the same for all battles?


RE: ERA III - Archer30 - 09.01.2024 16:17

I don't think it's SoD behaviour because reverting to 3.9.6 solves all.

Values aren't the same for all the battles, but they become the same after several battles in a new game, as the video shows


RE: ERA III - Berserker - 09.01.2024 19:58

Yep, do you 3.9.9 dll to recheck this bug?


RE: ERA III - Archer30 - 10.01.2024 01:10

I did. it was the same problem in ERA 3.9.9
I don't have 3.9.8 and 3.9.7 DLL to test


RE: ERA III - Berserker - 10.01.2024 01:36

Ok, thanks, will try to investigate the issue (heroes3.ini, Debug.Destination=Console, Debug.Rng=2).


RE: ERA III - Archer30 - 10.01.2024 02:31

Thanks. I wonder if this can be optimised.

I use this script to show the battle log in the very first moment after entering the battlefield. I made an auto-casting spell when entering the battlefield, spell animations and battle log would be shown OnBattlefieldVisible:
It works ok except when the tactic phase occurs. When you check, there is no battle log in the record after the tactic phase ends.
It makes scripting inconvenient - I have to put my MM:S in !?FU(OnBattleRound) instead, like

Any suggestion? Is there a better timing to use MM:S + play spell animation before the tactics phase?
Or is there something can be improved from ERA?


RE: ERA III - Berserker - 10.01.2024 23:33

Prbably, the game simply clears the log after tactics phase useless logs. You can create new event like




RE: ERA III - Archer30 - 11.01.2024 13:34

Thanks!

We don't tweak balance often, but I feel like this is something important:
The calculation of gems provided by Diamond Dragons is a bit ridiculous. Unlike Crystal Dragons, which only count as FALSE/TRUE for every player, Diamond Dragon provides one gem to every hero's owner. This means if you have 2 heroes having Diamond Dragons in the troops, you will have 2 gems/day.
Address: 00755AF7

I feel like it should be like Crystal Dragons' calculation - max one gem/player/day. Otherwise, that brings too many advantages, and players have to worry about the distribution of Diamond Dragons among heroes to get the max gem production, which is also something tedious.


RE: ERA III - Berserker - 11.01.2024 14:29

I agree. I would disable original code via patch and wrote own bonus implementation. Maybe, diamonds after battle or diamonds per each killed dragon. There are many variants to implement.


RE: ERA III - Archer30 - 11.01.2024 15:48

Well, any nerf is welcome. The current implementation brings too many advantages if distributing Diamond Dragons to different heroes.

Another thought about the balance of Diamond Dragons is its stack exp ability.
It has a never-working SE ability from WoG: 100% to Deflect 0-50% physical damage until igrik/daemon_n fixed and let it work again in game bug fixes extended.dll last month.
The fix brings a problem. From what I can see, the stats of Diamond Dragons are balanced considering this Deflect ability not working. Now since the Deflect ability works again, Diamond Dragon in full stack exp has become way too stronger than the other level 8s. I have done some tests in battle and with no doubt Diamond Dragons is the strongest. This is not good because they are much worse in 0 stack exp competition. The growth of strength is a bit inconsistent. It doesn't make sense that stack exp changes everything of this creature.

My suggestion: Reduce the chance of Deflect from 100% to 30% or so (Reference: Hell Hydras have 50% chance to block 50% damage on Rank 10). Having to watch the animation of Deflect each time Diamond Dragons gets hit is torture. A lower chance to trigger the ability would just fit.


RE: ERA III - Berserker - 11.01.2024 23:56

I agree.


RE: ERA III - Archer30 - 16.01.2024 07:58

Bug report:
On Town Screen, moving a hero from visiting to garrison reset all the Warlord's Banners of his/her troops to HP bonus.


RE: ERA III - gamemaster - 17.01.2024 14:57

@Berserker

Minor issue.

We should align parameter type 'VersionLine' in 'ReportPluginVersion' method. In GameExt.pas type is string and in Extern.pas it is pchar.
Exported version use pchar and it is already used in few plugins.
Maybe we can use explicit cast in GameExt to avoid confusion and keep parameter types as pchar.

https://github.com/ethernidee/era/blob/3c7f91013059e60603ac075d1105313d37a3b488/GameExt.pas#L156
https://github.com/ethernidee/era/blob/3c7f91013059e60603ac075d1105313d37a3b488/Extern.pas#L242


RE: ERA III - Berserker - 17.01.2024 16:25

gamemaster, all exported functions use pchar (const char*) type for string. Automatic conversion is performed by Delphi when passing pchar to functions, expecting AnsiString/WideString, etc. I see no issue here. Am I wrong?

procedure ShowMessage (Mes: pchar); stdcall;
function Ask (Question: pchar): TDwordBool; stdcall;


RE: ERA III - gamemaster - 17.01.2024 18:30

I did not check other exported methods. If same principle is used at other places then it is ok to leave it as-is.
There is no issue with current implementation.


RE: ERA III - Berserker - 10.04.2024 17:53

gamemaster, Delphi 12 rules. Will be used for 4.x releases.
--------------
Нарыл макет расширенного диалога радиокнопок, который хотели реализовать. Для памяти:
Image: image.png
https://dropmefiles.com/IgdED

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


RE: ERA III - igrik - 10.04.2024 23:26

Исходник, когда-то написанного кода под этот макеет. По факту, 70% работы уже сделано) Но я уже наврят-ли буду этим заниматься. Так что при желании - любой может продолжить

Code:
#define _H3API_PATCHER_X86_
#include "../../Headers/H3API.hpp"
#include "era.h"
#include "era dialogs.h"

using namespace h3;
using namespace NH3Dlg;
using namespace EraDlg;

#define FUN

Patcher* _P;
PatcherInstance* _PI;

//CHAR myString[1024];
//#define MyString (PCHAR)myString

const char* CHECKBOX_DEF = "checkbox.def";
const char* RADIOBTN_DEF = "radiobttn.def";

#define RGB_FRAME_COLOR 0x78D4E8

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
/*
* Макет диалога выбора.
* Предполагается постраничная навигация, переход на страницы влево/вправо,
* если пункты не вместились в одну страницу, опциональный переход наверх
* (содержание или уровень выше в помощи, например), опциональная кнопка отмены.

* Шрифт 15 пикс, поддержка картинок через разметку Эры вида {~>....} до 44 пикс (реально и до 50 пикс).

* Один экран — до 8 пунктов.
* Щелчок по любому пространству между разделителями активирует пункт.
* Помещаются все слоты героя или 8 уровней жилищ города.
* Вмещаются дефы артефактов и трёхстрочные тексты пунктов/заголовка

* По клавишам 1-8 можно выбрать любой пункт (для галочек вкл/выкл).
* Стрелки влево, вправо, вверх активируют соответствующие кнопки. Enter/ESC тоже.
* Шрифт medfont.fnt или times08r.fnt. Пока нет поддержки нормальных шрифтов фиксированных размеров.
* Если подтвердим макет, напишу тогда программную спецификацию: структуру инициализации и нужные функции для экспорта.

* CTRL клавишу отслеживаем при щелчках по кнопкам или текущей позиции в постраничной навигации.
* CTRL + Лево будет на первую,
* CTRL + право — на последнюю.

* Home - первая страница,
* End — последняя.
* Вверх — на уровень вверх.
* "A" — выделить все, или, если все уже выделены, снять выделение со всех (в режиме галочек)
*/

// создание процесса диалога
INT32 __stdcall igrikDlgProc(H3Dlg* dlg, H3Msg* msg)
{  
    if(msg->IsLeftDown() && msg->flags == H3Msg::MessageFlag::MF_Null && msg->item_id >= 10 && msg->item_id <= 18)
    {
        H3DlgDefButton* button = (H3DlgDefButton*)dlg->GetH3DlgItem(msg->item_id +10);

        if (button)
            button->Press(msg);
    }


    if (msg->IsRightClick())
    {
        sprintf(MyString, "itemID: %d", msg->item_id);
        F_MsgBox(MyString, 4);
    }

    return dlg->DefaultProc(msg);
}


INT32 __stdcall showSelectDialog(TSelectDlgConfig* dlgConfig)
{
    ////////////////////////////////////
    //
    // базовые координаты и параметры диалога
    //
    ////////////////////////////////////
    INT32 width = 440;
    INT32 height = 548;

    INT32 startX = 24;
    INT32 startY = 88;

    INT32 deltaY = 50;    
    INT32 itemWidth = width - (startX*2);

    H3Dlg dlg(width, height, -1, -1, FALSE, igrikDlgProc);

    
    /////////////////////////////////////////////////////////
    //
    // дополнительные элементы: ОК, ОТМЕНА и другие элементы
    //
    ////////////////////////////////////////////////////////

    // заголовок (id: 3)
    dlg.CreateText(startX, 22, itemWidth, 62, dlgConfig->caption, Text::MEDIUM, TextColor::REGULARY, 3, TextAlignment::MiddleCenter, 0);
    // dlg.CreateFrame(dlg.GetH3DlgItem(3), RGB_FRAME_COLOR, 100, 1);

    // кнопка навигации влево (id: 4)
    if ( dlgConfig->flags & TSelectDlgFlags::SELECT_DLG_LEFT_BTN )
        dlg.CreateButton(width/2 -72, height -52, 44, 44, 4, "ADAG.DEF", 15, 40, 0, NH3VKey::H3VK_LEFT);
    // кнопка навигации враво (id: 5)
    if ( dlgConfig->flags & TSelectDlgFlags::SELECT_DLG_RIGHT_BTN )
        dlg.CreateButton(width/2 +28, height -52, 44, 44, 5, "ADAG.DEF", 11, 36, 0, NH3VKey::H3VK_RIGHT);  
    // кнопка навигации вверх (id: 6)
    if ( dlgConfig->flags & TSelectDlgFlags::SELECT_DLG_UP_BTN )
        dlg.CreateButton(width/2 -22, height -52, 44, 44, 6, "ADAG.DEF", 9, 34, 0, NH3VKey::H3VK_UP);

    // текст отображения страниц "1/3" (id: 9)
    if ( dlgConfig->flags & TSelectDlgFlags::SELECT_DLG_PAGE_NAV ) {
        sprintf(MyString, "%d/%d", dlgConfig->page, dlgConfig->numPages);
        dlg.CreateText(width -60, height -48, 40, 30, MyString, Text::SMALL, TextColor::REGULAR, 9, TextAlignment::MiddleCenter, 0);
    }
    // Cancel-рамка (id: 30626) и Cancel-кнопка (id: 30726)
    if ( dlgConfig->flags & TSelectDlgFlags::SELECT_DLG_CANCEL_BTN )
        dlg.CreateCancelButton(width -70 -64, height -52);
    // Ok-рамка (id: 30625) и Ok-кнопка (id: 30725)
    if (dlgConfig->flags & TSelectDlgFlags::SELECT_DLG_REQUIRE_ITEM )
         dlg.CreateOKButton(60, height -52)->Disable();
    else dlg.CreateOKButton(60, height -52);

    /////////////////////////////////////////////////////////
    //
    // тексты      (id: 10...18)
    // кнопки      (id: 20...28)
    // разделители (id: 0)
    //
    ////////////////////////////////////////////////////////

    dlg.CreateLineSeparator(startX-1, startY -1, itemWidth);
    dlg.CreateLineSeparatorYellow(startX, startY, itemWidth);

    for (int i = 0; i < dlgConfig->numItems; i++)
    {            
        dlg.CreateLineSeparator(startX-1, deltaY*(i+1) +startY -1, itemWidth);
        dlg.CreateLineSeparatorYellow(startX, deltaY*(i+1) +startY, itemWidth);

        sprintf(MyString, "{~>un44.def:%d valign=middle} itemCaptions[%d]: Each is null-terminated string.", 250+i, i);
        dlg.CreateText(50, deltaY*i + startY , itemWidth -26, deltaY, MyString,
            Text::SMALL, TextColor::REGULAR, 10+i, TextAlignment::MiddleLeft, 0);

        // dlg.CreateFrame(50, deltaY*i + startY, itemWidth -26, deltaY, 0xFFD700);
        H3DlgDefButton* b = dlg.CreateButton(startX, deltaY*i +startY + 18, 16, 16, /* id */ 20+i, Assets::RADIOBTN_DEF, 0, 1, 0, 2+i);
    }

    // стартуем диалог (после выполнения уничтожается автоматически)
    dlg.Start();

    return 1;
}


/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////
#ifdef FUN

void ShowNewDialog()
{

    // создаём структуру диалога
    TSelectDlgConfig* dlgConfig = new TSelectDlgConfig;

    dlgConfig->caption = "Выберите монстра, которого вы ненавидели с детства, которого не любила Ваша мама, Ваш брат и Ваша собака. Выберите его и принесите в жертву Одину.";
    dlgConfig->isMultiple = false;
    dlgConfig->flags = 31;
    dlgConfig->numItems = 8;

    dlgConfig->page = 1;
    dlgConfig->numPages = 8;

    //dlgConfig->itemCaptions[0] = "text: itemCaptions[0]";    
    //dlgConfig->itemStates[0] = 1;

    showSelectDialog(dlgConfig);
    
    // очищаем выделенную память ...
    delete dlgConfig;
}


INT32 __stdcall Y_AdvMgr_KeyDown(HiHook* h, H3AdventureManager* advMgr, H3Msg* msg, INT32 x, INT32 y, INT32 ptrIsHuman)
{
    INT32 result = THISCALL_5(INT32, h->GetDefaultFunc(), advMgr, msg, x, y, ptrIsHuman);
    if (result)
    {
        switch(msg->subtype)
        {
            case NH3VKey::H3VK_5:
                // F_sprintf("count: %d \n type: %d", mon->count, mon->type);
                // F_MessageBox("Start TSelectDlgResult");
                    ShowNewDialog();
                break;

            default:
                break;
        }
    }
    return result;
}

INT32 __stdcall Y_DlgMainMenu_Proc(HiHook* hook, H3Msg* msg)
{
    if ( msg->IsKeyDown())
    {
        if ( msg->subtype == NH3VKey::H3VK_T )
        {
            F_VideoPause();
            ShowNewDialog();
            F_VideoContinue();
        }
    }
    return THISCALL_1(INT32, hook->GetDefaultFunc(), msg);
}

#endif FUN

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////

void HooksInit()
{
#ifdef FUN
    // нажатие клавиши на карте приключений
    _PI->WriteHiHook(0x4FBDA0, SPLICE_, EXTENDED_, THISCALL_, Y_DlgMainMenu_Proc);
    _PI->WriteHiHook(0x4089DC, CALL_, EXTENDED_, THISCALL_, Y_AdvMgr_KeyDown);
#endif FUN
}

/////////////////////////////////////////////////////////////////////////////////////
/////////////////////////////////////////////////////////////////////////////////////

const char* PLUGIN_NAME = "era dialogs";

BOOL APIENTRY DllMain(HMODULE hModule, DWORD  ul_reason_for_call, LPVOID lpReserved)
{
    static BOOL pluginOn = FALSE;
    switch (ul_reason_for_call)
    {
        case DLL_PROCESS_ATTACH:
        if (!pluginOn)
        {
            _P = GetPatcher();
            _PI = _P->CreateInstance(PLUGIN_NAME);

            HooksInit();
        }
        break;

    case DLL_THREAD_ATTACH:
    case DLL_THREAD_DETACH:
    case DLL_PROCESS_DETACH:
        break;
    }
    return TRUE;
}

Скрин (Click to View)



RE: ERA III - Berserker - 11.04.2024 05:20

igrik, отлично, спасибо! )

А клавиши нельзя в обработчике событий диалога ловить? Обязательно для каждого диалога делать новый перехват?


RE: ERA III - igrik - 11.04.2024 05:42

(11.04.2024 05:20)Berserker Wrote:  А клавиши нельзя в обработчике событий диалога ловить? Обязательно для каждого диалога делать новый перехват?
Так они в обработчике событий диалога и описаны (чтобы при нажатии на линии с текстом, отрабатывало нажатие чекбоксов/радиобаттонов). Где ты увидел перехват? Или я не понял сути твоего вопроса.


RE: ERA III - Berserker - 11.04.2024 10:31

Quote:void HooksInit()
{
#ifdef FUN
    // нажатие клавиши на карте приключений
    _PI->WriteHiHook(0x4FBDA0, SPLICE_, EXTENDED_, THISCALL_, Y_DlgMainMenu_Proc);
    _PI->WriteHiHook(0x4089DC, CALL_, EXTENDED_, THISCALL_, Y_AdvMgr_KeyDown);
#endif FUN
}



RE: ERA III - igrik - 11.04.2024 10:55

Так это тестовый запуск диалога на время написания/создания. События же в Эре ещё пока такого нет, для запуска и инициализации диалога, а тестировать как-то да надо.
В нормальном режиме нужно будет твоё событие для вызова. И конфигурационная настройка тоже твоя)))

А запуск, я ожидал, что будет происходить как-то так:
Code:
extern "C" __declspec(dllexport) int ShowSelectDialog(TSelectDlgConfig* dlgConfig);
Но не мне уже этим заниматься))


RE: ERA III - gamemaster - 11.04.2024 13:18

(10.04.2024 17:53)Berserker Wrote:  gamemaster, Delphi 12 rules. Will be used for 4.x releases.

Dance3 Nice.
Maybe Archer30 can add modern era to Heroes3 Launcher for beta testing.
It would be good idea to have bat file to switch between original and modern era dlls in case that problem occur.
More peoples can test it and find potential port problems that way. That will provide more reliable base for 4.x releases.

Berserker, if you have any new code for 3.x push it to git so I can include it into port.


RE: ERA III - Berserker - 12.04.2024 05:22

gamemaster, IP:S/M commands are on approach. I'll update git as new release is ready. Btw, seems like VFS have problems with Wine, need to install and debug on spare time.

I think you can just send updated dlls to daemon_n on discord, so that he used them in Launcher without switcher.


RE: ERA III - Berserker - 12.04.2024 07:24

gamemaster, updated VFS on github. Single character bug. The fix restores Wine's functionality and ExaGear, probably.


RE: ERA III - gamemaster - 12.04.2024 14:40

Nice to see new functionality coming. I hope you soon start with 4.x Sm

Ported Vfs change to modern era. Now era and vfs is up to date with original git.

Should we include "Chinese_Rainbow_Plugin" into modern era repository or keep it separate?


RE: ERA III - Berserker - 12.04.2024 15:51

Actually we can extract it, it was just an easies way to keep it up to date and sources non abandoned. Seems like Chinese players use nowadays another plugin. Archer will probably explain this part better.


RE: ERA III - Archer30 - 12.04.2024 19:40

Quote:Seems like Chinese players use nowadays another plugin.
wogcn developed by gu7979gu is the only Chinese language plugin being used in ERA. There's another C++-based plugin being developed for H3 in general, but the author doesn't show strong interest in extending the support to ERA.


RE: ERA III - Berserker - 13.04.2024 03:56

Archer30, thanks.


RE: ERA III - Archer30 - 19.04.2024 04:56

Is there a way to show erm error in multiplayer games?

What is the best way to pass an array to the opponent's side in battle?
It doesn't seem affectedStacksList can be safely passed to the side (FU:P worked, but FU:D didn't)


RE: ERA III - Berserker - 19.04.2024 08:19

Archer30, I'm already finishing IP:M/S commands support for named vars and dynamic arrays synchronization. But you'll have to use global variable for that purpose with TEMP storage (non-trigger local at least) for this purpose.

ERM error can be triggered using !!SN:F^ShowErmError^, or calling remote function, calling ShowErmError.


RE: ERA III - Archer30 - 19.04.2024 09:32

Is this what it should look like?
Erm error report is still not behaving correctly. It flashes quickly on the screen and gone.
Changing the value type of M_TEMP array didn't help. I think the error still comes from missing array items.

_______


I ended up putting the whole array forming process in FU:D and it worked.


RE: ERA III - Berserker - 19.04.2024 14:10

Yep.
!!SN:F^ShowErmError^/^Everything is wrong, everything, close the game, please^;


RE: ERA III - Archer30 - 19.04.2024 21:12

Berserker, wait, but I mean if there is a way to unhide erm error in MP games.
Because it seems any IF:M type of dialogue is quickly resolved and disappears in MP battles for some reason


RE: ERA III - Berserker - 20.04.2024 07:48

It's done intentionally I suppose. To be able to react on network events immediately.


RE: ERA III - Archer30 - 20.04.2024 08:37

Yeah, but that makes debugging much much more complicated


RE: ERA III - Berserker - 20.04.2024 17:17

On adventure map and in battle IF:M usually works well as I recall. Needs rechecking, though.


RE: ERA III - Archer30 - 23.04.2024 21:16

Quote:On adventure map and in battle IF:M usually works well as I recall. Needs rechecking, though.
IF:M still shows in MP battle, but erm errors (like variables not specify types) don't
_______

Flag 999 doesn't work as expected, lol (only not expected, didn't say it's not reasonable).

Here's my script for Magog/Liches not shooting in an area when holding Ctrl.

The script works ok, but I found flag 999 doesn't work as expected in my testing.
I think it should be True if the interacting player is the same as the player currently acting (aka i^battle_owner_%(side)^, side = current side). However, it seems &999 only checks if OW:C?y1/?y2 y1 = y2.
This means using &999 on the battlefield is most likely not getting the desirable result. The defending player's interaction will never set flag 999 = TRUE.

The alternative check
seems working fine


RE: ERA III - Archer30 - 23.04.2024 22:28

It seems FU:S always returns as Set if the function is called by FU:D




RE: ERA III - Berserker - 24.04.2024 13:54

!!FU:D does not support GET syntax (return parameters).

Quote: !!OW:C?(player:y)/?(interactPlayer:y);
    !!FU&i^battle_owner_%i(battle_current_side)^<>(interactPlayer):E;
We can move this check to EEF for all battle clicks. And make new global variable for easier events filtering.


RE: ERA III - Archer30 - 25.04.2024 12:11

Could be good, not sure about the timing to set though. Mouse hint + mouse click?


RE: ERA III - Berserker - 25.04.2024 15:30

Right. Those two events will be enough.
What's about i^battle_isThisPcActive^?


RE: ERA III - Archer30 - 26.04.2024 02:50

Sounds great


RE: ERA III - Berserker - 26.04.2024 05:07

Just modify stdlib then




RE: ERA III - Archer30 - 26.04.2024 10:59

Maybe this?
Assumes that mouse click will have the same result with mouse hint wait it won't


RE: ERA III - Berserker - 26.04.2024 15:38

Nope, click is click, hint is hint. You can add to both events to be able to differentiate hints for active and non-active player.


RE: ERA III - Archer30 - 28.04.2024 02:29

Added i^battle_isThisPcActive^ to EEF


RE: ERA III - Berserker - 28.04.2024 06:55

Archer30, great. Now it will be much easier to add check. Will add to Era log too.

What's about hotseat? Seems like we should check game type for network gaming or at least add check for hotseat too.

hotseat, battle against AI => true if non-AI active
hotseat, human vs human => always true
single player => true if non-AI active
network battle => true if this PC player active


RE: ERA III - Berserker - 28.04.2024 07:07

Code:
[+] Added the following global variables to Era Erm Framework:

  i^battle_isThisPcActive^: bool. Used in battle hint and battle click events to allow GUI interaction or display action hint for active GUI user.
                                  Single player, Hot seat => TRUE if active side is human
                                  Multiplayer => TRUE if active side is this PC human



RE: ERA III - Archer30 - 28.04.2024 07:38

Logic looks great. Script is ready?


RE: ERA III - Berserker - 28.04.2024 07:43

Will send you soon updated EEF.


RE: ERA III - Archer30 - 18.05.2024 19:16

I propose to add a new function to be added in EEF.

A simple function to check if a monster is disabled in most events like a random monster encounter in Souting II events.
The default monsters to be disabled are those that should never appear in the hero army slots plus emissaries.
The function result can be modified by mod makers. They can define their disabled monsters, usually some boss creatures that should not appear elsewhere.
This function can help build mod compatibilities. For example, to disable a new monster added by typhon to appear in all those WoG Scripts events, we only need to change the result here, and then it applies everywhere.



RE: ERA III - XEPOMAHT - 18.05.2024 20:26

(18.05.2024 19:16)Archer30 Wrote:  This function can help build mod compatibilities. For example, to disable a new monster added by typhon to appear in all those WoG Scripts events, we only need to change the result here, and then it applies everywhere.

Привязка к номерам монстров - чудовищные костыли. Так ещё и плюс к несовместимости с ERA+ заработаете с помощью ERM. Почему не можете посмотреть в коде игры содовский способ проверки генерации случайного монстра?

Игра проверяет мин. и макс. количество монстров на карте и если там нули, то монстр не генерируется. Так же точно можно проверять генерируемость монстра с помощью ERM.


RE: ERA III - Berserker - 19.05.2024 02:18

Archer30, I agree with Heromant, that universal checking of MinAdvMap and MaxAdvMap values is better (if commanders and emissaries have proper zero values)
I would call the function something like MonsterIsAdvMapGeneratable.


RE: ERA III - Archer30 - 19.05.2024 02:32

The function is meant to be used by different scripts/mods so we don't have to deal with checking again and again.

And you can initiate the fancy check in this function as well.

It only gives a standard so everyone can use the same function to check. If the function returns the positive (disabling) result, it means one of the mod components doesn't want a monster to appear in most events, and thus other scripts can respect the result here.

___

Well, assuming all those monsters we don't want to use have the correct MinAdvMap and MaxAdvMap values, I think my proposal is abundant. We have a handful of mods, I will try to go through each of them and see if they are correct.

____

Well, just rethink about it, and I feel the idea of MinAdvMap and MaxAdvMap values is not perfect. There was a time I set MinAdvMap and MaxAdvMap values to 0, and then players came back and said they found it weird - when they put such a creature on the map by map editor, the quantity of it is 0 by default (when they attack it in the game).

If ERA introduces a mechanism to correct the adv stack number with <=0 to 1, I can set MinAdvMap and MaxAdvMap values to 0 without worry.

In conclusion, two ways:
- Use MinAdvMap and MaxAdvMap values as a reference, correct all the existing mods, ERA should set adv creature number at least 1
- Intorduce a function in EEF and use it to check if a monster should be ignore


RE: ERA III - Archer30 - 27.05.2024 16:44

Is there a list of era hooks placed in the game, especially for different era triggers (events)?
Somewhere from era source?


RE: ERA III - Archer30 - 04.07.2024 11:24

I reckon this would be handy:
Apart from what we have in ...\Debug, attach a most recent save game in this folder (save the last loaded save game filename in the memory beforehand, and copy the save game file to this folder when the game crashes or F11).

This can be helpful when players are not experienced in bug reporting. Sometimes when the save games are in different names (.CGM for campaigns, .GMx for single-player scenarios), this helps save the exact save game we need.

What do you think?


RE: ERA III - Berserker - 04.07.2024 21:32

Latest savegame may be not responsible for the bug if older savegame is loaded. Moreover, BattleSave plugin makes new savegame right before each battle, while it may be better to load original savegame before hero moving. Additionally, bug reports will grow in size. Do you think it will simplify bug reporting greatly without false positives?


RE: ERA III - Archer30 - 05.07.2024 09:14

Hi, I mean the "latest loaded save game" should be saved in debug folder.

When the game crashes, the latest loaded save game filename can be 2 types of values:
- Null, if there was no save game loaded in the current game, the game was started fresh.
- Latest loaded save game. This is unique to the current game. I don't see a way of false positives.

We don't need the latest save game in date.

At the moment I suffer from players being too passive on feedback. I asked them to provide 3 things when they report:
- debug folder (after crash or manually generated by F11)
- Save game to reproduce the issue
- Info on how to reproduce the issue with the given save game

If the first and second can be merged, it can potentially reduce the amount of work for players, making them more actively reporting issues.

______


Btw, there is another thing to improve the debug system.

Could you export the text "game crashes, info in debug\era" to json so it can be localised?


RE: ERA III - Berserker - 05.07.2024 17:35

Archer30, ok, I'll try to include all the changes in the next release. For new map we should save at least map name, perhaps or even map file. I'll see what can be done.


RE: ERA III - Berserker - 07.07.2024 04:43

Ввод текста в чате генерирует событие щелчка левой кнопкой мыши на карте приключений с ИД = 38. Кто-нибудь знает причину и источник этой генерации?


RE: ERA III - Berserker - 09.07.2024 16:42

Готовится к выходу версия 3.9.15 и мод на удобные читы и работу с ЕРМ в консоли.


RE: ERA III - major - 14.07.2024 19:57

Berserker, а можно попросить немного обновить ELM, если конечно не сильно заморочено?
Суть вопроса: чтобы изменение цвета {~colour} с каким-нибудь тегом игнорировало другие изменения цвета, пока не встретит свой тег {~}.

Пример, есть такая строка:
Code:
Здесь идет описание предмета с {некоторыми} функциями.

И если написать так:
Code:
{~grey}Здесь идет описание предмета с {некоторыми} функциями.{~}
то "некоторыми" все равно будет выделено другим цветом.

Хотелось бы добавить какой-нибудь тег, например
Code:
{~grey!}Здесь идет описание предмета с {некоторыми} функциями.{~}
чтобы все слова отображались одним, в данном примере серым, цветом.


RE: ERA III - Berserker - 14.07.2024 20:16

major, быстро и просто, думается, не сделать. Пользоваться тоже будут единицы. По сути, здесь нужно тебе самому написать функцию, вырезающую все теги внутри определённой строки.


RE: ERA III - major - 14.07.2024 21:50

Ок, если муторно, то конечно не надо. Просто буду держать дубликаты строк для обоих вариантов.


RE: ERA III - Berserker - 15.07.2024 01:36

По сути это аналог !important в css, и есть, где применить, просто сейчас ресурсы идут на другие задачи. 3.9.15 на подходе.


RE: ERA III - major - 27.07.2024 17:20

Berserker, как сохранить нужные данные в сейв?

Как я понял, нужны две процедуры для сохранения и чтения.
Code:
Era::RegisterHandler(Global_Vars_Save, "OnSavegameWrite"); // запись в сохранение
Era::RegisterHandler(Global_Vars_Load, "OnSavegameRead"); // чтение из сохранения

И нужно в событии записать и прочитать данные в/из секции.
Code:
_word_ town_vars[48] = { 0 };

// Запись глобальных переменных в сохранение.
void __stdcall Global_Vars_Save(Era::TEvent* e)
{
    Era::WriteSavegameSection(96, town_vars, "town_vars");
}

// Чтение глобальных переменных из сохранения.
void __stdcall Global_Vars_Load(Era::TEvent* e)
{
    Era::ReadSavegameSection(96, town_vars, "town_vars");
}

Только у меня при сохранении игра крашится. Где-то что-то не так делаю?
Code:
HOMM3 HD version: 5.4 R87
Time {   27.07.2024    17:17:25 }

GUN:  [ZZ79779073039T645247MVGZX HHW 039TY]

Exception
{
   Module:     
   Adress:      [ 0x00000000 ]
   Code:        EXCEPTION_ACCESS_VIOLATION
   Flags:       0x00000000
   Information: read of address: 0x00000000
}

Context { EAX: 0x6D3E15B0, ECX: 0x02D37428, EDX: 0x00000000, EBX: 0x0AF551A0, ESP: 0x02D3741C, EBP: 0x02D37474, ESI: 0x00000001, EDI: 0x00000004 }

Call stack
{
                           ? called from before    [ 0x00000030 ]
                           ? called from before    [ 0xCCCCCCCC ]
}



RE: ERA III - Berserker - 27.07.2024 18:43

Привет. Внешне код выглядит корректно. Тут скорее API Эры не доподключилось.

https://dropmefiles.com/NZU0r

Обязательно добавь era.cpp в проект как компилируемый модуль.


RE: ERA III - major - 27.07.2024 20:20

Игра стала крашиться при запуске. Видимо из-за того, что у меня 3.9.4. Подожду последнюю версию, потом проверю.


RE: ERA III - Berserker - 27.07.2024 23:40

Да, 3.9.4 уже давно была. А с этим обновлением?
https://dropmefiles.com/An8ut


RE: ERA III - XEPOMAHT - 28.07.2024 02:11

(27.07.2024 17:20)major Wrote:  Как я понял, нужны две процедуры для сохранения и чтения.
Code:
Era::RegisterHandler(Global_Vars_Save, "OnSavegameWrite"); // запись в сохранение
Era::RegisterHandler(Global_Vars_Load, "OnSavegameRead"); // чтение из сохранения

Запись в файл перед запаковкой в воговский участок сохранения - вызов функции 704062h
Чтение из файла после распаковки воговского участка сохранения - вызов функции 7040A7h

Естественно, очень важна последовательность чтения и записи, иначе прочитаются чужие данные либо игра вылетит при попытке прочитать молоко (или другой плагин воспримет твои записи за свои и сохранение будет испорчено), поэтому с установкой хуков на чтение и запись сохранений нужно быть крайне осторожным. Например ВоГ страхуется с помощью ключевых слов, в MoP и ERA+ подстраховки нет, т.к. авторы этих модов положили болт, а как защищены данные в событиях "OnSavegameWrite" и "OnSavegameRead" - только одному Берсеркеру известно.


RE: ERA III - major - 28.07.2024 09:57

(27.07.2024 23:40)Berserker Wrote:  Да, 3.9.4 уже давно была. А с этим обновлением?
https://dropmefiles.com/An8ut
Тоже крашится.

Там же ничего менять не надо? Подключить era.cpp вместо era.h и все?


RE: ERA III - Berserker - 28.07.2024 12:23

Quote:Запись в файл перед запаковкой в воговский участок сохранения - вызов функции 704062h
Чтение из файла после распаковки воговского участка сохранения - вызов функции 7040A7h

Естественно, очень важна последовательность чтения и записи, иначе прочитаются чужие данные либо игра вылетит при попытке прочитать молоко (или другой плагин воспримет твои записи за свои и сохранение будет испорчено), поэтому с установкой хуков на чтение и запись сохранений нужно быть крайне осторожным. Например ВоГ страхуется с помощью ключевых слов, в MoP и ERA+ подстраховки нет, т.к. авторы этих модов положили болт, а как защищены данные в событиях "OnSavegameWrite" и "OnSavegameRead" - только одному Берсеркеру известно.
Всё уже гораздо прогрессивнее лет 15. Можно писать в именованные секции по частям. Данные объединяются автоматически. Количество прочитанных байт в секции возвращается. Никакого молока и костылей. Тут скорее вопрос в API/заголовчниках.

major, era.cpp подключить к проекту как отдельно компилирующий модуль. era.h include в файле, где будешь использовать.
Вызвать Era::ConnectEra().

Скинь, если что плагин сюда.


RE: ERA III - major - 28.07.2024 16:13

Berserker, подключил era.cpp отдельным модулем, добавил в инклюд era.h, компилируется нормально, но все равно крашится при запуске.

В общем, я нашел причину вылета при сохранении. По какой-то причине его вызывает удаление всех сборных артов.
Code:
// Сборные артефакты и их состав.
int* artifact_combo_mask_list = new int[192] {
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0,
    -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0, -1, 0, 0, 0, 0, 0 };
memcpy(*(_ptr_**)0x660B6C, artifact_combo_mask_list, 768);
delete[] artifact_combo_mask_list;

То есть без этого участка кода информация сохраняется и загружается нормально.


RE: ERA III - Berserker - 28.07.2024 17:59

То есть ты создаёшь временный буфер, затем копируешь его в геройский массив, затем удаляешь?


RE: ERA III - major - 28.07.2024 18:15

Да. Наверно можно обойтись простым изменением геройского массива, но я пока ещё до этого не дошёл. Учусь, меняю, оптимизирую код.
В общем сборники я отключил по-другому, теперь события сохранения и загрузки работают нормально.