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

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

Posts: 16449
Post: #3391

Делюсь новостями:

-) Перенёс, доработал и адаптировал много правок из ветки 2.55. ЕРМ скрипты из событий карт больше не грузятся, mapname.erm, mapname.cmd тоже. Баги, связанные с тем, что в памяти оставались прежние скрипты при начале новой игры или переходе между миссиями, соответственно, исчезли.

-) Движок загрузки/сохранения/экспорта скриптов свой. Больше нет ограничения на 100 скриптов (ранее те, что больше 99, сливались в один на лету).

-) Загрузка игры с тем же набором скриптов происходит почти мгновенно, ЕРМ не интерпретируется повторно.

-) Память ЕРМ увеличена до 128 МБ в пике.

-) Сильно улучшена и исправлена от багов система отчётов об ошибках как на этапе анализа ЕРМ, так и на этапе исполнения. Точные имя файла, строка и позиция, аккуратный контекст ошибки, отсутствие надоедливых двойных и тройных сообщений об ошибках, пропуск всего ресивера при ошибке в его подкоманде.

-) Производительность кода ВоГ значительно подросла. Этого удалось добиться за счёт умного зануления в исполняемом файле прологов и эпилогов функций ВоГ, в которых сохранялся отладочный мусор (потому как он Эрой не используется вообще). В результате многие простые и часто вызываемые функции сильно разгрузились.

-) Каждая карта может иметь свою папку по имени файла карты, например, Maps\Arrogance. Там может быть папка Data\s с произвольным набором ЕРМ скриптов. Эти скрипты всегда грузятся первыми, могут иметь любые имена, тоже сохраняются в файлах сохранений и даже экпортируются по F11 и перезагружаются по F12.

-) Помимо своих скриптов карта может иметь свои Lang\*.json файлы, которые так же сохраняются в файле сохранений, применяются, экспортируются, перезагружаются. Таким образом, можно распространить свою карту со скриптовыми особенностями в локализуемом формате и с поддержкой отладки.

-) Если карта — часть кампании, её имя берётся из имени файла кампании + "_" + индекс карты, начиная с нуля. Для Доброго Самаритянина это Maps\Zc2_0, Maps\Zc2_1 и т.д.
Поэтому скриптовые кампании тоже распространяются в паре h3c + папка.

-) Предупреждение о проблемах с log.txt больше не будет беспокоить Феанора.

-) Новые API Splice и HookCode доработаны, поддерживают передачу пользовательских параметров и разные соглашения о вызовах.

-) Старые сохранения загрузить не удастся, потому как ранее Воговский код по-своему сохранял и загружал скрипты. Это вынужденная мера.


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

Posts: 4333
Post: #3392

Berserker, 132

Большую часть не понял, но это и к лучшему, я думаюYes
29.06.2019 15:38
Visit this user's website Find all posts by this user Quote this message in a reply
feanor Offline

Posts: 622
Post: #3393

Quote:ЕРМ скрипты из событий карт больше не грузятся
Да елки же палки!
29.06.2019 15:41
Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16449
Post: #3394

feanor, для Валерия писал Н лет назад скрипт на PHP, экспортирующий из карты скрипты из событий в отдельные файлы. Если понадобится автоматизированная обработка, помогу.


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

Posts: 2807
Post: #3395

Berserker, шикарно. Скорость игры еще возрастёт Dance3

(29.06.2019 15:19)Berserker Wrote:  ЕРМ скрипты из событий карт больше не грузятся, mapname.erm, mapname.cmd тоже.
Возникает резонный ворос: что будет с кампаниями и авторскими картами, завязанными на ERM (у которых оный поставлялся в событиях)? Таких карт на данный момент очень много.

(29.06.2019 15:19)Berserker Wrote:  -) Загрузка игры с тем же набором скриптов происходит почти мгновенно, ЕРМ не интерпретируется повторно.
Как будет работать данная фича при тестировании ERM?
Например, я пишу небольшой скрипт, и проверяю его в разных случаях, при этом постоянно перезагружаю карту при отладке. Я изменил строку, например !!BMx1 : D?y1; на !!BMx1 : D?y2;
Как в таком случае поведёт себя интерпретатор? Примет он мои изменения в скрипте, или нет?


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

Posts: 16449
Post: #3396

Quote:Berserker, шикарно. Скорость игры еще возрастёт
А то! ^^)

Quote:Возникает резонный ворос: что будет с кампаниями и авторскими картами, завязанными на ERM (у которых оный поставлялся в событиях)? Таких карт на данный момент очень много.
Я их почти не встречаю, но верю, что много. Подойдёт сервис онлайн, куда загружает карту, скачиваешь архив с папкой со скриптами?

Quote:Как будет работать данная фича при тестировании ERM?
Если изменился порядок, размер или контрольная сумма CRC32 любого файла, то переинтерпретирует. Начинаешь новую игру — новая загрузка с диска. Но если грузится та же сохранёнка, что игралась прямо сейчас в плане набора скриптов (а это самый распространённый вариант save/load), то ЕРМ просто не трогаем. Код Эры загружаем из сохранёнки скрипты, их хэши и размеры, сравнивает со списком скриптов в памяти и принимает решение, изменилось что-либо, или нет.


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

Posts: 16449
Post: #3397

Выпуск Эры 2.8.4 задержится в связи с тем, что отключение внутрикартовых скриптов выглядит чересчур неудобным решением для пользователей. Было бы удобнее конвертировать скрипты из глобальных событий в нормальные объекты, которые компилируются (именованные функции, метки), сохраняются, экспортируются. Буду вести арботу в этой области. Спасибо всем отписавшимся.

Онлайн конвертер скоро будет дописан в любом случае, хостинг тоже арендован.


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

Posts: 16449
Post: #3398

wessonsm, многопоток на 2.8.5, там 4-5 ЕРМ команд и одно событие + правка существующих модов. Посмотрим, выйдет ли.


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

Posts: 2807
Post: #3399

(30.06.2019 14:18)Berserker Wrote:  
Quote:Возникает резонный ворос: что будет с кампаниями и авторскими картами, завязанными на ERM (у которых оный поставлялся в событиях)? Таких карт на данный момент очень много.
Я их почти не встречаю, но верю, что много. Подойдёт сервис онлайн, куда загружает карту, скачиваешь архив с папкой со скриптами?
Сервис онлайн точно подойдет.
И в любом случае файлы кампаний придется интегрировать уже готовыми в ERA, ИМХО.
Либо официально уведомить, что ERA не поддерживает кампании начиная с версии 2.8.4


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

Posts: 16449
Post: #3400

[+] Scripts from map global events are now managed by Era: they are preprocessed (named functions and labels support) and can be extracted via F11.
    They are loaded before scripts from map directory.

Если проще: старые кампании и карты будут работать. Скрипты из глобальных событий карт поддерживают именованные функции и метки, а также могут быть извлечены по F11. Баги исправлены.


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

Posts: 16449
Post: #3401

Сервис по извлечению скриптов из карты готов, но не загружен пока. На входе файл карты, на выходе zip-архив с файлом карты без рабочих скриптов (изменена сигнатура событий) + папка со скриптами, понимаемая игрой. У скриптов верные приоритеты.


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

Posts: 16449
Post: #3402

Проверить сервис по извлечению скриптов из карт для Эры 2.8.4 можно здесь. Укажите h3m карту из кампании или просто карту со скриптами. На выходе скачиваете архив со всем необходимым. В самой карте ZVSE меняется на BVSE, чтобы внутренние скрипты не дублировали извлечённые.


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

Posts: 16449
Post: #3403

Version 2.8.4
------------------------
Code:
[+] Greatly improved WoG code performance by removing functions prolog and epilog code, that was added by ZVS in debug purposes.

[+] Improved ERM errors reporting: valid file name, line and positions are displayed, as long as appropriate context. Errors reporting now
    works correctly during ERM compilation. No more double/tripple error messages. The whole receiver is skipped in case of error.

[+] Rewritten scripts loading/saving/exporting engine. Removed restriction on 100 unique ERM scripts. Previously Era used to join 99+ scripts
    into single one. A few bugs of not unloading previous map scripts were fixed. Loading saved game with the same scripts set as current one
    is now really fast and does not require ERM recompilation. It means that loading game is much faster now.

[+] ERM memory limit is extended to 128 MB. Memory is now allocated gradually as needed, saving system resources.

[+] All maps are always treated as WoG format.

[+] Scripts from map global events are now managed by Era: they are preprocessed (named functions and labels support) and can be extracted via F11
    and reapllied on F12. They are loaded before scripts from map separate directory.

[+] Each map can have its own directory in Maps. For "Arrogance.h3m" it's Maps/Arrogance. For campaign Zc2.h3c (the first map) it's Maps\Zc2_1.
    The last number is map zone index in campaign. 1 for Zone A, 2 for Zone B, etc. Custom map scripts can be put inside map directory under Data/s subpath.
    Script names can have any names, they are loaded first and do not depend on global script names. If Maps/[MapName]/Data/s/load only these scripts.txt is present,
    only those global scripts, which are written there (one name per line), will be loaded from global Data/s directory. Anyway, all map scripts will
    be loaded in the first place. Map scripts are stored in saved game, can be reloaded, extracted, can use named functions and labels.

[+] All language Lang/*.json files are loaded from map directory (ex. Maps/Arrogance/Lang/arrogance.json), stored in saved games are applied. Thus
    maps can be supplied with translatable language data.

[+] WoG Option 5 (Wogify) meaning was changed for both map start or scripts reloading via F12:
    - 0: don't load any global ERM scripts (previously - load global ERM scripts for maps with 'RANDOM MAP' like name);
    - 1, 2: always load global ERM scripts, unless map forces other value;
    - 3: load global ERM scripts, but if map has its own scripts and does not force fixed set of global scripts,
      ask user, whether to skip global scripts loading or not.

    If there exists "Maps/[MapName]/Data/s/load only these scripts.txt" file, then global scripts specified in the file are loaded without confirmation
    and WoG Option 5 is set to "2".
    If user choses to skip or load global scripts in confirmation dialog, WoG Option 5 is changed to either 0 or 2.

    Summary:
    - Backward compatibility with existing maps/scripted campaigns is preserved. They usually set !!UN:P905/0 (disable wogification), which
      disables global ERM scripts loading.
    - Because all maps are now treated as WoG Format, option 1 is the same as option 2.
    - Scripts reloading via F12 always honor the option.

[+] Scripts from WoG Campaigns were fixed and extracted to separate directories. Bug fixes applied.
New service for scripts extraction was published: https://tools.bsoft.parkingby.icu/scripts-extractor/

[+] UN:J3 command was improved. Specify ':clear:' option instead of file name to turn off all WoG Options and set Map Rules to "use selected below".

[+] Added UN:J13 command. It resets commanders, according to current WoG Options 3 and 6.

[+] Added missing descriptions for old Era events:
  !?FU77012 = !?FU(OnStackToStackDamage). Occurs when damage dealt by one stack to another stack is calculated.
  SN:X parameters:

  ATTACKER            = 0; (attacker stack)
  DEFENDER            = 1; (defender stack)
  FINAL_DAMAGE_CONST  = 2; Do not change
  FINAL_DAMAGE        = 3;
  BASIC_DAMAGE        = 4; Normal basic damage
  DAMAGE_BONUS        = 5; Damage bonus (caused by attack-defense difference, cavalry bonus or any custom bonus)
  IS_DISTANT          = 6; (0 for melee, 1 for distant)
  DISTANCE_ARG        = 7;
  IS_THEORETICAL      = 8; (0 for real damage, 1 for estimated damage)

  !?FU77013 = !?FU(OnAICalcStackAttackEffect). Occured when AI calculates the effect of attacking stack
  SN:X parameters:

  ATTACKER            = 0; (attacker stack)
  DEFENDER            = 1; (defender stack)
  EFFECT_VALUE        = 2; (final effect)
  EFFECT_VALUE_CONST  = 3; Do not change

[+] Added "fix wog exp screen.bin" memory patch by igrik. It fixes column headers display in creature experience screen.
[+] Splice and HookCode API was improved. Added support for custom extra argument and multiple calling conventions.
[*] Savegames format was changed and is not compatible with previous Era versions.
[-] Disabled "Failed to create Debug\Era\log.txt" message if several game instances are running.
[-] Fixed UN:P3 command. Enabling/disabling commanders now enables/disables commander chests too.
[-] Mapname.erm and Mapname.cmd are not loaded anymore.


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

Posts: 4333
Post: #3404

Berserker, WoW...
Как много и как быстро! Я тут хотел предложить исправленных "посланников" в файле awvattack, а то они почти все такие при нападении
Image: Messengers.png, недавно в сборке igrik'a заменил. Могу и здесь, если надо. Да и парочка т8 в оригинале вога -- те же т7.


Image: widget.png?style=banner2

Новейший Heroes 3 Launcher
07.07.2019 20:20
Visit this user's website Find all posts by this user Quote this message in a reply
Berserker Offline
Administrators

Posts: 16449
Post: #3405

Можешь загрузить изменённые файлы и коротко описать, что поменялось?


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