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

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

Posts: 16465
Post: #3901

Протестировал изменение производительности.
!!DO:P test 46 msec without heavy random number generation command.
!!DO:G 36 ьыус.
!!re takes 32 msec, showing even more speed increase with much easier and readable code!


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

Posts: 16465
Post: #3902

Версия готова для тестов: https://dropmefiles.com/VqqL8

[+] Introduced high-level fastest loops in ERM via new receivers: !!re, !!br, !!co.
   
    !!re $1[/#2/#3/#4].
    ...
    !!en:;

    $1 - loop counter var like 'i' or 'y6'.
    #2 - counter start value. Optional. Default: initial value of loop counter var.
    #3 - counter stop value. Optional. Default: initial value of loop counter var.
    #4 - step. Optional. Default: 1, if stop value is set, 0 otherwise.
   
    Repeats block of code. Only the first argument is obligatory.
    At first loop counter variable is initialized.
    Counter stop and step values are remembered for the whole loop and won't be evaluated on each iteration.
    Step determines, what value must be added to counter variable after each iteration. It also determines type of iteration stop condition.
    Positive step checks if counter > stop value. Negative step checks if counter < stop value.
   
    On !!re it's checked, if counter reached stop-value or exceeds it. If true, execution is passed to corresponding !!en block.
    On !!en counter is increased by step and if stop condition is not met, next receiver after closest !!re will be executed.
    If stop condition is not met, execution goes to the next receiver after closest !!re.

    !!br (BREAK) with optional condition immediately jumps after loop !!en receiver.
    !!co (CONTINUE) with optional condition immediately jumps to loop !!en receiver, which will be executed as usual.

    Examples:
[+] Added possibility to query syntax, that was used for particular function parameter.
    !!FU:S#1/?$2;
    #1 - argument index
    ?$2 - syntax type (0 - get, 1 - set, 2 - add)
    Add syntax is applied via 'd' prefix like FU:Pd200.

    Using this receiver scriptmakers can write functions which act the same as normal ERM commands.
    For instance, one function to get/set/add dwelling population amount.

[+] Rewritten ZvsCheckFlags routine. Now e-variables can be compared to integer variables and constants.
    All logical operations are supported for strings. Variable indexes were not checked at all, but are
    checked now.

[*] Replaced 'for' snippet in ERM editor with 're' snippet, other syntax file corrections.
[*] Maximum 16 nested IF/RE blocks are allowed.
[-] Fixed crash caused by invalid RD:M second parameter handling.


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

Posts: 2808
Post: #3903

Berserker, новая реализация циклов и сравнения переменных это агонь! 132
Давным давно её не хватало в ERM!

Также хотелось бы перенаправить функционал SN:Q -> FU:Q


game bug fixes extended.dll || My Plugins || My GitHub
03.02.2020 11:11
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #3904

Сомнительная хотелка (от человека, который пользуется практически исключительно UN:C и SN:E) - шестнадцатеричные константы.
И оператор взятия значения по указателю, да)

(я когда-нибудь вернусь в моддинг обязательно да конечно)
(This post was last modified: 03.02.2020 15:13 by feanor.)
03.02.2020 15:11
Find all posts by this user Quote this message in a reply
helgtla Offline
Moderators

Posts: 300
Post: #3905

Если возможность как-то принудительно установить громкость для избранных wav файлов?
Для чего это необходимо: дополнительное звуковое сопровождение игрока на местности (не считая музыки, так как она в некоторых моментах может прерываться другими звуковыми эффектами- разговор-приветствие квестового персонажа и т.д. оформленного в виде вставки МР3 файла, wav файл в ЭТО время продолжает звучание). Активаторами wav файлов являются объекты с "закольцованной мелодией" такие как магическая/проклятая земля, двеллинги (не участвуют в сценарии) и т.д., которые "скрыты" от игрока и недостяжимы для него (расставлены таким образом, чтобы определённые звуки сопровождали героя пока он идёт по заданному маршруту (волчий вой, карканье ворон ..), + музыка)
Пример: имеются изменённые "закольцованные треки" LOOPCURS,LOOPMAGI, и т.д. находятся в файле моймод.snd . Проблема в том, что данные файлы тихо проигрываются в самой игре (при прослушивании вне игры- звучание более чем громкое), и лишь выкручивая ползунок звука на "середина-максимум" получается требуемая игровая громкость. Для данных звуковых файлов в звуковом редакторе уже выставлена макс громкость (при дальнейшем увеличении громкости-появляется "хрипение"). Да, в самой игре многие звуки "с хрипами", но игроки как правило либо привыкли к ним и уже не замечают, либо они очень короткие и хрип теряется на общем фоне. Добавление новых "закольцованных" звуков, особенно "басовитых" с выкрученной громкостью до хрипоты-уже "бросается в глаза". Потому и хотелось бы увеличить громкость ТОЛЬКО данных (изменённых) файлов, не трогая громкость остальных.


Карта-мод: STALKER
03.02.2020 15:15
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16465
Post: #3906

Quote:Также хотелось бы перенаправить функционал SN:Q -> FU:Q
Дубль команды + deprecated на старую? В целом данная команда очень спорная, ломает все другие скрипты и зависит от порядка скриптов.

feanor, а как там H2SW поживает?

helgtla, проверял с уровнем громкости звуков на макс в настроках игры?


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

Posts: 300
Post: #3907

Berserker, я о том и говорю. Только принудительно выставив уровень громкости звуков в игре на средне-максимум получается добиться необходимой громкости изменённых звуков. Стандартно же ползунок стоит как правило на 2-й ступеньке (для большинства стандартных звуков этого мне хватает, увеличивая громкость уже можно наблюдать хрипение некоторых стандартных звуков, а некоторые излишне громкие становятся).
   Просто для закольцованных звуков есть радиус звучания (+3 клетки от источника звука , с изменением громкости, в зависимости от источника, но макс громкость(при приближении к источнику) не выше чем порог громкости (на данный момент) для звука выставленный в меню). Вот я и подумал, если для изменённых звуков стороннее увеличение громкости (в звуковом редакторе) неэффективно (качество звука ухудшается дребезжащим эффектом), то может возможно как-то принудительно выставить для ЭТИХ файлов максимальный порог во всём радиусе срабатывания и привязать этот порог в глобальному игровому максимуму для звука в игре. Желательно, чтобы имелась возможность либо указывать уровень громкости для конкретного файла, либо просто с указанием *.snd архива(пути к архиву) из которого бы файлы проигрывались с заданной (указанной с помощью скриптовой команды или как-либо ещё) громкостью.


Карта-мод: STALKER
03.02.2020 16:07
Find all posts by this user Quote this message in a reply
XEPOMAHT Offline
Moderators

Posts: 2266
Post: #3908

(03.02.2020 15:15)helgtla Wrote:  Потому и хотелось бы увеличить громкость ТОЛЬКО данных (изменённых) файлов, не трогая громкость остальных.

Не выйдет. Громкость рассчитывается одинаково для всех цикло-звуко-эффектов. Можно конечно поставить перехват на эту функцию и проверять там номер loop-а, который уходит в микширование, но это уже пахнет костылями. Намного и намного проще очистить в редакторе звук от мусора, вызывающего "хрипение", и пожать в wav на уровне оригинала (т.е. не выше 170 кб/с вроде получается нормальный звук, в оригинале жали в 90 кб/с, если скляроз не изменяет) с максимальным уровнем громкости на пороге нормализации (не спец по звукам я, но методом научного тыка пот Третьи Герои делал примерно так - пользователи MoP вроде на звуки не жаловались). И сам патч на новые loop-ы может кто-нибудь всё-таки сделает (там 2 менеджера расширить вроде бы надо будет, где-нибудь в конце года доберусь - сделаю сам для MoP/ERA+).
03.02.2020 16:15
Find all posts by this user Quote this message in a reply
igrik Offline
Administrators

Posts: 2808
Post: #3909

(03.02.2020 15:27)Berserker Wrote:  
Quote:Также хотелось бы перенаправить функционал SN:Q -> FU:Q
Дубль команды + deprecated на старую? В целом данная команда очень очень спорная
Иногда без этой команды никак.
Но обратная совместимость же, блин. Забыл... Stop


game bug fixes extended.dll || My Plugins || My GitHub
03.02.2020 16:37
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #3910

Quote:feanor, а как там H2SW поживает?
Пока никак, все заняты, в том числе и я. Так, вяло копаюсь со всем подряд.
(This post was last modified: 03.02.2020 18:40 by feanor.)
03.02.2020 18:37
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16465
Post: #3911

Image: update-sm.jpg

Version 2.9.8

Code:
[+] Introduced high-level fastest loops in ERM via new receivers: !!re, !!br, !!co.
    
    !!re $1[/#2/#3/#4].
      ...
    !!en:;

    $1 - loop counter var like 'i' or 'y6'.
    #2 - counter start value. Optional. Default: initial value of loop counter var.
    #3 - counter stop value.  Optional. Default: initial value of loop counter var.
    #4 - step.                Optional. Default: 1, if stop value is set, 0 otherwise.
    
    Repeats block of code. Only the first argument is obligatory.
    At first loop counter variable is initialized.
    Counter stop and step values are remembered for the whole loop and won't be evaluated on each iteration.
    Step determines, what value must be added to counter variable after each iteration. It also determines type of iteration stop condition.
    Positive step checks if counter > stop value. Negative step checks if counter < stop value.
    
    On !!re it's checked, if counter reached stop-value or exceeds it. If true, execution is passed to corresponding !!en block.
    On !!en counter is increased by step and if stop condition is not met, next receiver after closest !!re will be executed.
    If stop condition is not met, execution goes to the next receiver after closest !!re.

    !!br (BREAK) with optional condition immediately jumps after loop !!en receiver.
    !!co (CONTINUE) with optional condition immediately jumps to loop !!en receiver, which will be executed as usual.

    Examples:

    ; Endless loop of annoying messages:
    !!re i:;
      !!IF:M^Donate, please!^;
    !!en:;

    ; Clear current hero army
    !!re i/0/6:;
      !!HE-1:C0/i/-1/0;
    !!en:;

    ; Display 10, 8, 6, 4, 2 (1 will not be displayed, same as 0)
    !!re i/10/1/-2:;
      !!IF:M^%Vi^;
    !!en:;

    ; Display number of the first hero empty slot, if it's found
    !!re i/0/6:;
      !!HE-1:C0/i/?t/?k;
      
      !!if|t=-1/k=0:;
        !!IF:M^Free slot number is %Vi^;
        !!br:;
      !!en:;
    !!en:;

    !!IF&i>6:M^No free slot was found^;

[+] Added possibility to query syntax, that was used for particular function parameter.
    !!FU:S#1/?$2;
    #1  - argument index
    ?$2 - syntax type (0 - get, 1 - set, 2 - add)
    Add syntax is applied via 'd' prefix like FU:Pd200.

    Using this receiver scriptmakers can write functions which act the same as normal ERM commands.
    For instance, one function to get/set/add dwelling population amount.

[+] Rewritten ZvsCheckFlags routine. Now e-variables can be compared to integer variables and constants.
    All logical operations are supported for strings. Variable indexes were not checked at all, but are
    checked now.

[+] Adapted wonderful PA and QU receivers by gamecreator with Pandora and Seer Hut Quests API.
    From now these receivers are officially part of Era. See Help\Erm Help directory for details.
    Be sure to delete "pandora's api.era", "receiver pa.era", "receiver qu.era" from old mod packages.

[+] WoG scripts were extractd to a separate mod "WoG Scripts". Some fixes by igrik/Algor were applied.
[+] Included updated TxtEdit and MMArchive by GrayFace.
[*] Replaced 'for' snippet in ERM editor with 're' snippet, other syntax file corrections.
[*] Maximum 16 nested IF/RE blocks are allowed.
[-] Fixed crash caused by invalid RD:M second parameter handling.

Скачать


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

Posts: 16465
Post: #3912

Image: e29aa1.png Вышло обновление HoMM 3 ERA
Текущая версия 2.9.8

Image: f09f9383.png Что нового ?

Image: e2ad90.png В языке скриптов ЕРМ стало просто писать быстрые циклы (повторяющийся код). Очень просто и наглядно.
Image: e2ad90.png Стало возможным писать универсальные функции. Например, одна функция можно как вернуть число монстров в жилище, так и установить/увеличить их число.
Image: e2ad90.png Полностью заменён код проверки условий команд. Раньше нельзя было сравнивать вещественные числа с константами, не было проверок безопасности. Сейчас много чего можно и всё есть.
Image: e2ad90.png Когда-то форумчанин gamecreator написал прекрасные плагины для работы с Ящиками Пандоры и Хижинами Провидца через ЕРМ. Они были слегка адаптированы и включены в сборку Эры вместе с документацией.
Image: e2ad90.png ВоГ 3.58-скрипты переехали в отдельный мод "WoG Scripts", поставляемый в установщике. Теперь данный мод можно выключить и даже удалить. Ядро игры, движок ЕРМ и многие другие моды продолжат работать.
Image: e2ad90.png Обновлены утилиты от @grayface (Сергей Роженко): TxtEdit и MMArchive.
Image: e2ad90.png Небольшие изменения в ЕРМ редакторе и один исправленный вылет.

Большинство нововведений используется в моде «Расширенные Жилища». Он на подходе Image: e29884.png

Скачать: https://mods.hmm35.ru/Era%20Latest.exe


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

Posts: 2808
Post: #3913

(04.02.2020 04:19)Berserker Wrote:  Image: e29aa1.png Вышло обновление HoMM 3 ERA
Текущая версия 2.9.8
Image: e2ad90.png ВоГ 3.58-скрипты переехали в отдельный мод "WoG Scripts", поставляемый в установщике. Теперь данный мод можно выключить и даже удалить. Ядро игры, движок ЕРМ и многие другие моды продолжат работать.
Давно пора. Как по мне - это правильное решение.
Дополнительно давно стоило бы перенести все картинки из папки Data\s в папку Data\s\pic, дабы не захламлять папку скриптов (в сборке я это сделал с самого начала). Благо там править 2 скрипта.


game bug fixes extended.dll || My Plugins || My GitHub
04.02.2020 11:08
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16465
Post: #3914

Era 2.9.8 critical update
[-] Fixed occasional savegames data corruption.

igrik, у professornova руки развязаны ;-)
Ты прав, нужно было сделать давно.


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

Posts: 16465
Post: #3915

ЕРМ полон сюрпризов. Неприятных. Вопрос знатокам, что выведет код?

!!VRi:S0 +37;
!!IF:M^%Vi^;


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