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

Full Version: ERA III
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Archer30, right, outdated vfs.dll in installer. Thanks.

Quote:а глюк с обновлением как я понял, для Эры так и не исправили.
Обновлением чего?
(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.
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.
Archer30, it requires using callback function to call any functions from it to resolve that issue
Quote:в итоге команда WriteData, вызванная из ЭРЫ по какой-то причине затирает в 2 раза больший код
WriteData затирает ровно столько байт, сколько передано. Не встречал ни разу багов с ней.

Archer30, yep, messages before battle should be shown in !?BA0 trigger probably, before sending data to remote side.
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;
Происходит рассинхронизация? Кто-нибудь смотрел в режиме отладочного вывода случайных чисел в консоль?
Berserker, числа не смотрел, но рассинхрон происходит.
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.
(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).

Из несуществующих типов городов нельзя получить их прирост и тем более поставить на карту.
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
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.
(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 сразу виден тип, а тут - хрен пойми, как будто скрипт не полный).
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.
Berserker, а проверки без второго слагаемого разве разрешены в ERM2? Не знал.
Code:
!!UN&(ERM_FLAG_IS_HUMAN):R2;

или
!!UN:P73/?(enhWMIII:y);
!!PO(x)/(y)/(z)&(enhWMIII):H1 T1;
Reference URL's