Archer30
Posts: 830
|
RoseKavalier, thank you so much for the enlightment, problem solved! I just copied the small/med/bigfont from Chinese WoG and renamed to xxxfont2.fnt, now all worked out.
Well, can't say you are wrong. but this is what HoMM 3 official Chinese versions look like. Ppl get used to this font since 20 years ago.
Latest ERA mods and scripts in development - GitHub
|
|
19.07.2020 13:38 |
|
Berserker
Posts: 15797
|
RoseKavalier, thanks, indeed! It's really not reliable way to detect tiny/med/big using first 4 bytes.
(19.07.2020 17:43)Zur13 Wrote: почему триггеры !?FU77007 и !?FU77006 из ЭРЫ срабатывают именно в таком порядке, сначала триггер фазы регенерации отряда перед получением хода, а только потом решение какой отряд будет ходить? У меня проблема в том, что триггер !?FU77007 срабатывает для одного стека, а потом я в триггере !?FU77006 меняю стек который получит ход и всё, получается что 77007 сработал для одного стека, а ходит другой стек. Внутри моего мода это половина проблемы и можно как-то костылей набросать, а вот если другой мод будет менять порядок ходов, то для моего мода это вызовет очень большие проблемы. Считаю что такое поведение в корне неверно, есть ли какой-то другой способ выполнить действия перед передачей управления определенному стеку на поле боя?
Zur13, я, если получится, гляну, почему так вышло неудобно, что регенерация до определения очерёдности идёт. Тоже столкнулся в скриптах с такой проблемой.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
20.07.2020 22:12 |
|
Berserker
Posts: 15797
|
(18.07.2020 20:54)wessonsm Wrote: Есть прекрасная опция "ErmLegacySupport" в ERA 2, но кажется, она не совсем работает так, как надо...
Я еще не проверял, но проверю.
y-переменные должны обнулятся, x-переменные должны наследоваться, и обнуляться должны только не объявленные, и только при вызове из триггера, а не из функции. При вызове из функции должны наследоваться, в !!DO должны обнуляться только в первом цикле при вызове из триггера (не из функции!!), в остальных случаях должны наследоваться...
Куча старых скриптов работает неправильно из-за этого...
[+] Improved "ErmLegacySupport" option. Negative z-variables are not local for classic FU1..FU29999. Negative z-variables are not nulled on FU1..FU29999 enter and other quirks. Old WoG scripts bug count decreased.
[+] Added "ErmLegacySupport" option in heroes3.ini. If set to 1, compatibility with old ERM scripts will be better at the cost of ~15% ERM performance decrease. Options forces local variables reset before each !?XX trigger, even in DO-loops.
Мы про Эру 2 говорим? В основном проблема в скриптах была в использовании y- и x как глобальных переменных, что в корне не верно. y- поведение возвращено только для оригинальных неименованных функций из диапазона 1..30000. Время уже уходить от старых костылей.
Скачать Герои 3 Эра и всё, что с ней связано / ERA 2.46f для старых модов
Поддержать проект
|
|
21.07.2020 12:29 |
|
wessonsm
Posts: 743
|
Berserker, да, об Эре 2.
Насчет y-переменных я понял. Они не обнулялись, потому что использовались большие номера функций типа FU123125.
Для старых модов (и не очень старых) это типичная ситуация.
Но я почему-то думал, что x-переменные тоже должны обнуляться при вызове функции из триггера не-функции. По крайней мере так было в старых версиях Эры.
Да, в основном из-за этого баги и ловлю.
(This post was last modified: 21.07.2020 20:18 by wessonsm.)
|
|
21.07.2020 20:17 |
|
Bes
Posts: 5378
|
ERM-Help Wrote:Переменные - параметры функции (x1-x16) ... данные переменные существуют лишь внутри функций (кода после триггера функции) и пропускают в функцию значения командой P (P - параметры). Если вы вызываете функцию из другой функции, любые x-переменные, которые не были установлены (как новые параметры), хранят своё старое значение в новой функции
я никогда не пробовал использовать x-переменные вне тела триггера ф-ции.
Можно использовать их и так? как глобальные? я никому не скажу, просто чтобы знать
|
|
21.07.2020 20:26 |
|
wessonsm
Posts: 743
|
(21.07.2020 20:26)Bes Wrote: я никогда не пробовал использовать x-переменные вне тела триггера ф-ции.
Можно использовать их и так? как глобальные? я никому не скажу, просто чтобы знать
Нет, как глобальные их использовать нельзя.
Я просто говорю о том, что код типа:
!?FU888;
!!IF:M^%X2^;
!?CM0;
!!FU888:P;
в старых версиях Эры (до 2.9) выдавал всегда 0, а в версиях после 2.9 может выдавать непонятно что.
|
|
21.07.2020 20:59 |
|
Berserker
Posts: 15797
|
|
21.07.2020 22:25 |
|
wessonsm
Posts: 743
|
Berserker, для меня это не так критично, я в любом случае буду переходить на ERA 3.
Но возможно, есть люди, которые хотели бы продолжать использовать вторую Эру.
|
|
21.07.2020 23:06 |
|
Bes
Posts: 5378
|
Berserker, 2,9,14 же последняя? а не 15ая
|
|
21.07.2020 23:18 |
|
Berserker
Posts: 15797
|
|
22.07.2020 02:23 |
|
Berserker
Posts: 15797
|
|
22.07.2020 16:56 |
|
Bes
Posts: 5378
|
(05.09.2016 14:44)gamecreator Wrote: Ok, I found the problem. There is a fatal flaw in the hint system, making so that no hint can be set twice. I can imagine how ZVS / sergroj / whoever else made WoG T1 managed to compile this incorrect code. A good example of why one shouldn't use outdated compilers they don't understand.
Anyhow, here is the fix (hopefully without errors, because I didn't test it):
Code:
72982C FC
729835 FC
72983B FC
729843 FC
729859 FC
72987B FC
72988F FC
Berserker, этот фикс попал в ERA ? А то я помню что Algor в этом году получал вылет из-за попытки назначить новую подсказку в диалоге, когда изначально в текстовике её не было
|
|
28.07.2020 20:21 |
|
Berserker
Posts: 15797
|
|
28.07.2020 20:24 |
|