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

Full Version: ERA II
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
ok, I know nothing about technical process, so asking 118

So, for PA and QU receivers, if the plugins are in seer huts mod, another mod having the plugins inside will conflict? Or is just a priority issue and will read only from first package?

I will also make a thread with all the additional codes, fixes and UN:C solutions I found so far; I think is time to renew that erm help which it gets quite old now.
Will read only from the first package.
You are right. Any changes to hmm35wog.pac/snd would be also welcomed, cause I'm more or less ready. Working code:
hehee, DO receiver is going to bed.
Right, it's tooo slow and was a replacement for loops lackage Sm
We can also have normal function names and normal function libraries.

I hope none of you used 95000-99999 :D
Era 2.47 alpha 2
Code:
[+] Functions can now have names. Any time you use (something) inside commands, the engine looks for appropriate SN:W-var. If it finds it, the integer value of variable will replace (something) in source code. If nothing is find, W-var is created on-the-fly and the number is automatically assigned from 95000+ range.

Example: !!FU(OnHenchmanHire); call function which maybe does not exist, but script users will be able to handle the event.
Example: !?FU(Phoenix.FindFreeSlot);

Please, don't forget that names are global. Prefix function names with mod abbreviation: (BattleLib.RessurectStack).

[+] Added labels support. Label is command ordinal number inside current trigger starting from 0. [:LabelName] defines local label. [LabelName] means replace label with command number. Labels are used with SN:G command to implement loops and conditions.

Example:
!?CM2; archangel in every slot
!!VRy1:S0;
[:loop]
!!HE-1:C0/y1/13/1;
!!VRy1:+1;
!!SN&y1<=6:G[loop];

[*] Ported igrik's code to fix SN:D in heroes meeting screen.
(02.05.2015 18:56)Berserker Wrote: [ -> ][:loop]
Посреди ЕРМ кода выглядит неуместно. SN:G?$ куда лучше.

Вообще надо мне переписывать ЕРМ поскорей, а то он выглядит всё более и более несвязно.
Это просто объявление метки. Оно схожее во всех языках, от ассемблера до Delphi и Си же )).
Code:
label xxx
:xxx
xxx:
Указанные функции реализованы через препроцессор. Во время выполнения анализ не происходит.
Ты, как я понимаю, предложил SN:G? возвращать индекс текущей команды, а прыгать уже на переменную. Такая реализация была в разы проще, но визуально это прыжки на y[n] и получение в y[n]. В такой реализации нельзя прыгать на неизвестную метку вперёд. В общем, не то.

Добавил в пост выше:
[*] Ported igrik's code to fix SN: D in heroes meeting screen.
Да я понимаю что это объявление метки.
(02.05.2015 20:00)Berserker Wrote: [ -> ]В такой реализации нельзя прыгать на неизвестную метку вперёд. В общем, не то.
Хм, и правда. Этого я не заметил. Я так понимаю, ты предлагаешь метки и как замену условиям?
Общие While, For реализуются с прыжком вперёд. Условия нет, лучше !!if-!!en, так читаемее.
(02.05.2015 19:57)gamecreator Wrote: [ -> ]
(02.05.2015 18:56)Berserker Wrote: [ -> ][:loop]
Посреди ЕРМ кода выглядит неуместно. SN:G?$ куда лучше.

Согласен.
Bers, [:loop] это фиксированная комбинация или можно использовать [:mark1], [:mark2] и пр.?
Если последнее (чего бы очень хотелось), то можно сделать однообразный ERM-овский синтаксис? Например как с if/en/el:


Команда !!SN, кстати, начинает бесить. Так же как и !!UN. И та и другая делают все подряд. Из-за этого и код становится нечитабильнее и в справку надо постоянно лазить. Может пока сильно далеко не зашло, озаботиться таки нормальными именами?
Это же касается и новых триггеров. Ты вот сам навскидку не подглядывая в Эровскую доку вспомнишь что такое !?FU77006;?

Berserker Wrote:I hope none of you used 95000-99999
После ввода loop'ов, как минимум в 90% случаях функции можно будет вообще не использовать.

Блин, все анонсированное конечно классно, но у меня самый затык с z-переменными. Их жёстко не хватает, порой даже поглядываю в некоторые расточительные wog-скрипты с целью оптимизации и высвобождения z...
(02.05.2015 21:55)Algor Wrote: [ -> ]Блин, все анонсированное конечно классно, но у меня самый затык с z-переменными. Их жёстко не хватает, порой даже поглядываю в некоторые расточительные wog-скрипты с целью оптимизации и высвобождения z...
согласен
текстовых переменных всегда в обрез было, и те Algor последние растащил )))
Berserker, а ты собираешься релизы выкладывать средствами github?
Quote:Bers, [:loop] это фиксированная комбинация или можно использовать [:mark1], [:mark2] и пр.?
Имя произвольное:
[:обход замков]

Метки можно использовать везде, например:
!!VRv2:C[дать огнещит]/[дать благословение]/[дать по морде];
А потом прыгать на метку по значению выражения, реализация ветвления, аналог если-иначе если то…

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

Quote:Команда !!SN, кстати, начинает бесить. Так же как и !!UN. И та и другая делают все подряд. Из-за этого и код становится нечитабильнее и в справку надо постоянно лазить. Может пока сильно далеко не зашло, озаботиться таки нормальными именами?
Это же касается и новых триггеров. Ты вот сам навскидку не подглядывая в Эровскую доку вспомнишь что такое !?FU77006;?
Отряд получает ход в бою, кажется. Или фаза регенерации. Абсолютно согласен. Нечитаемые события — зло. Есть гениальное решение в рамках текущего нововведения.

!?FU(OnStackRegenerate);
...

Мне нужно просто определить 15 переменных до предобработки исходного кода. Всё. Всякие CM3 — тоже ацтой, могу всем сделать синонимы, как в API Эры.

А вот касаемо команды. Что там у нас SN: D (reDraw), G (go), C (call), A (address), L (library), K (copy), M (memory), W (Var).
Я начинал делать добавление новых команд, так чтобы любой это мог делать, будь-то Эра или плагины, но не закончил. У игродела можно было бы одолжить часть наработок. Задача ясна, но не критична. Имена у событий будут, команда ещё не уровня !!UN по масштабам. А вот локализацию бы успеть добавить.

!!IF:M^%S[game start message]
%S[you have N towns]^;

Вместо муторных z-шек из ert человеческие json-файлы с парами вида ключ — значение. Я после ертификации Бесом Феникса хуже разбираюсь в коде. Не сообщения, а сплошной шифр.

Quote:Блин, все анонсированное конечно классно, но у меня самый затык с z-переменными.
Для артов и описаний? Там, где SN:W не катит?

fireman, код обновлю. А с релизами исполняемых файлов не разбирался. Думаешь, стоит?
Berserker, конечно стоит. Куда надёжнее, чем всякие сторонние файлообменники. Но в релизы как раз то, что собираешь из исходников. А сборку с эрой и кучей остального, конечно не на гитхаб.
fireman, попробую в следующий раз.
Reference URL's