Current time: 13.04.2024, 19:49 Hello There, Guest! (LoginRegister)
Language: english | russian  

Post Reply 
Threaded Mode | Linear Mode
ERA III
Author Message
Berserker Offline
Administrators

Posts: 16471
Post: #1141

Archer30, I never faced such a bug. Rechecked - everything is saved and restored.


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

Posts: 1104
Post: #1142

112 Strange, for some reasons I received more than one report about this. Just checked and yea it worked quite well


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 13.04.2021 00:07 by Archer30.)
13.04.2021 00:07
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16471
Post: #1143

Let they send you savegames. Only scripts can reset such settings, WoG engine works well.


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

Posts: 1348
Post: #1144

Quote:[-] Исправлен черный фон в меню «Авторы».
Ура, спасибо огромное!!! Бегу обновляться Yes


Создал новый глобальный мод: WoG Ultra Edition
13.04.2021 04:06
Find all posts by this user Quote this message in a reply
daemon_n Offline
Administrators

Posts: 4338
Post: #1145

Raistlin, то есть только это послужило причиной обновить ERA 96-copy


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
13.04.2021 04:50
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3880
Post: #1146

(13.04.2021 05:04)Berserker Wrote:  [+] Добавлена новая команда ERM VR:B. Она преобразует любое число в логическое значение (1 или 0). Любое ненулевое значение становится 1.

Пример:


Эм, Берс, а можно какой-нить другой пример, оправдывающий существование VR:B?
А то (hasGold)=(TRUE) вместо (goldAmount)>0 звучит неубедительно. И к тому же еще и возможные отрицательные значения золота не учитывает.


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
14.04.2021 22:43
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16471
Post: #1147

Скажем так, в коде на разных языках программирования приходится много раз конвертировать числовое значение в булево. Мне на ЕРМ тоже приходилось. Далее это булево значение использовать в проверках. Смысл: есть хоть какие-то флаги установлены или «не пустое», «не 0» или «не ошибка».

На ЕРМ без оператора приведения типов это делается так:


И короче никак. Если разрешены отрицательные значения, то hasSomething писать нельзя, конечно же.


Установка булевой переменной в (TRUE), если флаг присутствует. Сами логические переменные упрощают написание и понимание кода. Без них смысл проверок необходимо комментировать. В хорошем коде не нужно комментировать каждую строку. Логическое значение можно передать функциям, ожидающих только TRUE/FALSE в качестве определённого аргумента.


=>



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

Posts: 3880
Post: #1148

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).


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
15.04.2021 14:05
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16471
Post: #1149

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


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

Posts: 16471
Post: #1150

ЕРМ 2 нуждается в следующих правках:
Code:
-) Условия вида 500<>(someVar:y) должны вычисляться как результат сравнения, а не просто f[500]
-) Условия вида &(var1:y)/(var2:y) должны вычисляться как (var1)<>0/(var2)<>0
-) Условия вида &(text:z) должны вычислять как (text)<>^^


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

Posts: 3880
Post: #1151

(15.04.2021 17:57)Berserker Wrote:  Более того, я ещё и boolean как 1 в математических выражениях использую. Зная, что это 0/1. Умножаю или вычитаю.
Грязный извращенец Moral

Впрочем, спишем это на "привычки/установки в голове кодера".
Думаю, можно закрыть этот вопрос. Особенно, если внесёшь обозначенные правки Sm


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
15.04.2021 22:53
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16471
Post: #1152

Algor, готово. Заодно стало возможным использовать любое число пробельных символов между аргументами и операторами.


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

Posts: 1104
Post: #1153

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


Latest ERA mods and scripts in development - My GitHub
(This post was last modified: 16.04.2021 17:28 by Archer30.)
16.04.2021 17:24
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16471
Post: #1154

Thank you very much, my friend. I will add a fix soon.
https://dropmefiles.com/3ZB2O


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

Posts: 3880
Post: #1155

(16.04.2021 05:42)Berserker Wrote:  Algor, готово. Заодно стало возможным использовать любое число пробельных символов между аргументами и операторами.
132
хм, надо бы мне реже появляться и чаще нудеть


BattleHeroes Rus/Eng | ERA scripts (+ReMagic) Rus/Eng
16.04.2021 22:37
Visit this user's website Find all posts by this user Quote this message in a reply
« Next Oldest | Next Newest »
Post Reply 


Forum Jump:

Powered by MyBB Copyright © 2002-2024 MyBB Group