Current time: 25.11.2024, 05:01 Hello There, Guest! (LoginRegister)
Language: english | russian  

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

Posts: 16657
Post: #4306

Пока подбирал подсветку синтаксиса, пришёл к выводу, что нужно менять сам синтаксис работы с переменными. Ниже пример кода и подсветки. Функция добавляет отряд в гарнизон текущего города или гарнизонного героя.
https://yadi.sk/i/u0ob72jMpB-cQA
Ниже пример кусочка старой функции из моего скрипта Call to arms, а затем его современной версии:
https://yadi.sk/i/nU8z2D2HDe7vMQ


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

Posts: 610
Post: #4307

Berserker, So will the code be even easier to write? I'm glad to know that Berserker are always there to make life easier for us Sorry
(This post was last modified: 27.03.2020 07:20 by V_Maiko.)
27.03.2020 07:19
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #4308

V_Maiko, and easier to read/understand, like in ordinary programming languages.


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

Posts: 3881
Post: #4309

Berserker, напомни, не происходит ли коллизий, если в разных триггерах под одним и тем же именем объявляются переменные в первом случае - v, во втором - y?



(27.03.2020 08:27)Berserker Wrote:  V_Maiko, and easier to read/understand, like in ordinary programming languages.
Спорно. Для профессиональных программеров, возможно, более читаемо, но для многих других, когда код текста по большей части состоит из названий переменных, сама суть совершенно теряется в этой мешанине.
27.03.2020 09:56
Visit this user's website Find all posts by this user Quote this message in a reply
Algor Away
Administrators

Posts: 3881
Post: #4310

Возможно, проблема "растворения" сути кода и, как следствие, снижение восприятия в том, что команды в ЕРМ разбиты на 2 части и разнесены по строке. Будь они только в начале или просто одной не_однобуквенной_строкой, читалось бы легче:

!!VRy3:Vz2;
!!VR(dwellingType:y):V(dwellingTypeStr);
StrToInt(dwellingTypeStr,dwellingType);
(dwellingType)=StrToInt(dwellingTypeStr);
27.03.2020 10:03
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #4311

Algor, все переменные локальны, кроме v, которые тоже выделяются локально, но должны быть использованы на как можно меньшее время, чтобы другой триггер их не перезаписал.
Я долго подбирал подсветку под $...$, @...@, но выходит такая нечитаемая каша символов + необходимость постоянно префикс указывать + слишком яркий акцент на каждой сущности. Попробовал писать и понял, что неудобно. Потому прорефакторил правила имён констант, функций, переменных. Отделил объявление переменной и использование. Теперь опечатки гораздо проще находятся (ошибка при компиляции скриптов), а переименование идентификаторов происходит легче. dex.DoIt для sublime — два слова без единой индексации, dex_DoIt как функция — один. Сделал явные ограничения, что имена переменной с функцией или константой невозможно спутать ни человеку, ни компилятору.

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


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

Posts: 3881
Post: #4312

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

По читаемости, думаю, всё же будет проблема, т.к. односимвольная команда ресивера на фоне предшествующих длинных имен не будет бросаться в глаза, хоть каким цветом выделяй ее.
Но тут лучше раз увидеть. Есть скрин?
27.03.2020 20:43
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #4313

Два скрина в посте по ссылкам же. Только скрины ужасны из-за jpeg + цветая субдескретизация (chroma subsampling), портящая оттенки. Цвет переменных как сейчас цвет функций в коде. Один для всех. Команды чуть ярче стали.

Локальные переменные локальны конкретному триггеру до следующего !?.
Нельзя объявить одновременно две переменные с одним именем, но разными типами/длиной массива (но можно с одним и те же).


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

Posts: 3881
Post: #4314

Теперь все понятно, спасибо. Останусь на у в качестве локальных мне так привычнее и короче. Ну и SN:W с массивами для глобального использования.


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

Posts: 16657
Post: #4315

Смотри сам, конечно. Тут практика — критерий истины.
Такой вариант хуже читаем на мой взгляд.


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

Posts: 16657
Post: #4316

Полностью убраны ограничения на имена и кол-во *.ers файлов.


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

Posts: 16657
Post: #4317

Image: Clipboard01.png

Есть вопросы/возражения по стандартному таймеру для Эры 3.0?
era_OnEveryDay
Доступны 4 аргумента: день, день недели, флаг единократного выполнения для текущего дня, ИИ?(1/0).


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

Posts: 16657
Post: #4318

Конечный вариант на текущий день. Событие OnEveryDay, x-параметры установлены через ЕРМ.


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

Posts: 610
Post: #4319

I have no problem with new code interpretations, as long as it is compatible with old code there will be no problem for veteran modders who don't want to leave their old modalities. And most importantly, try not to lose more old mods that were wonderful, like Seer Huts, Display Events, and others that are from Valery that that are now obsolete..
(This post was last modified: 28.03.2020 07:00 by V_Maiko.)
28.03.2020 06:57
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16657
Post: #4320

Old mods are supported. New syntax is turned on by ZVSE2 signature on the first line.


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