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.
Berserker, супер 132
daemon_n, буду ждать новую сборку 20
я короче так и не догоняю в чем прикол. Этот завис работает на любой созданной(в редакторе) карте, где у компа некра много кровавых драконов и драконов-привиденьев, которые должны превратится них же на следующий ход. Причем завис получается только когда играет комп, когда человек играет за некра - повторить завис не получается, потому что я не до конца понимаю что комп конкретно делает от чего игра падает...105
ZAR, потому что скорее всего зависает при оценке ИИ силы армии. Кровавые Драконы имеют высокое AI_Value, которое умноженное на большое кол-во монстров вызывает данное зависание.
К тому же скрипт на автоулучшение постоянно работает в холостую.
Вот такой фикс будет ограничивать от данного зависания, плюс не будет в холостую работать при неподоходящих параметрах:
daemon_n, на здоровье Ab Звук отключается в моде на момент вывода надписи, это сделано намеренно.

Quote:Объединение английских json (yona, sss, quick saves) в Lang Wog, и такой же для русификатора, чтобы переводил всё точно.
Название файлов с переводом не должны совпадать с названиями на оригинальном языке. Здесь важна не замена файла на файл, а строк из всех файлов на строки из всех файлов. При этом непереведённые строки будут оставаться на языке оригинала. Рекомендую тебе иметь yona rus.json, sss rus.json, quick saves rus.json.

igrik, с этим переполнением AIValue и FightValue засада прямо. Нужно было везде float32 использовать разработчикам.
igrik, спасибо большое за фикс!! А существа 8lvl ERM воспринимаются как 7 или 8? Чтобы заново не попался на тех же, кого уже улучшил.

Zar, Как я понял, в редакторе карт тебе надо уменьшить количество драконов на 1 минимум, чтобы ИИ имел бонус)

Berserker, так строки и имел ввиду. Объединить можно вообще в один файл, названный неважно как, а вот строки должны иметь одинаковый стартовый левый и левые названия, как я понял. Поскольку это есть вывод из !!SN:T^x.y^, где х заглавие, а у - строка для перевода.
И суть именно в наличии данных файлов только в eng и rus модах Вог, поскольку ру версия всегда будет выше енг, а вот сами моды, дающие данный текст, необязательно.
Да, для перевода можно один файл. Но я лучше сделаю три. Так моды легче разделить и дорабатывать.
Уровней вложенности в json может быть сколько угодно (сколько здравый смысл позволяет):
{
"monsters": { "important": { "by me": { "in my first mod": { "crocodile": "мой первый очень важный монстр крокодил" ...

SN:T^monsters.important.by me.in my first mod.crocodile^
Чаще всего одной группировки с аббревиатурой мода достаточно.
Berserker, можно и три, но суть не в их количестве, а в местоположении: убрать весь текст из quick saving, sec sscill scrolling и Yona (если надо), и поместить Eng в Wog/Lang, а Rus в Wog Rus/Lang.
Почему точно сделаю такое в сборке (хотя там всего 1 мод из предложенных)? Потому что во избежание неловких тасований модов ещё igrik сделал одну из важнейших корректировок в ModMananger:
Wog mod имеет приоритет (-2)
Wog Rus mod имеет приоритет (-1)
Буквально на днях видел вариант с 8 модами, половина из которых была ниже Wog mod Stop
Небезызветсный мод "Trainer" от Valery частично не работает на новой Эре, а именно повышение вторичных навыков:
Часть из них не прокликивается, но те, что повыаешь, после закрытия трейнера пропадают.
Текущие навыки берутся у выбранного героя, но всё, что выучиваешь, получает Оррин:
Вот кусок кода с вторичными навыками
В моде опечатка. Нужно !!SN:W^Val_Hero^/?y1; То есть получить героя.

!?DL&v998=550/v999>54/v999<83/v1000=13;
!!VRy2:Sv999-55; y2 stores the skill
!!SN:W^Val_Hero^/?y1;
Image: update-sm.jpg

Version 2.9.4
------------------------
[+] Improved LoadImageAsPcx16 exported function, allowing to load any png/jpg/bmp file as pcx16 resource.
    LoadImageAsPcx16 (FilePath, PcxName: pchar; Width, Height, MaxWidth, MaxHeight, ResizeAlg: integer): {OU} Heroes.PPcx16Item; stdcall;
    Now it supports size constraints (0 for none) and resizing algorithm.
    ALG_NO_RESIZE = 0, ALG_STRETCH = 1, ALG_CONTAIN = 2, ALG_DOWNSCALE = 3, ALG_UPSCALE = 4, ALG_COVER = 5, ALG_FILL = 6.
    Use ALG_STRETCH to set fixed dimensions, ALG_FILL to fill the box with tiles and ALG_DOWNSCALE for custom dialogs
    to shrink large images proportionally.

    Example of using custom jpg image in DL-dialog.
    !!SN:F^LoadImageAsPcx16^/^Data\Pics\test.jpg^/^rW3.cust.pcx^/400/300/0/0/1;
    !!VRy1:Sv1; y1 - image resource
    ...call DL dialog, where rW3.cust.pcx is used.
    !!SN:F^DecRef^/y1; free image resource

[+] Included "view mage guild without spellbook.bin" by igrik, allowing to enter magic guild without spellbook.
[*] Allowed old SN:P[n] syntax instead of Pz[n].
[*] Replaced WoG Native Dialog plugin by igrik with the one without non-dialog features.
[-] Fixed sound handling issues and appropriate sound error message.
[-] Fixed wrong flag 1000 value in triggers. Thanks to Valery (Salamandre).
[-] Fixed crash in !!RD:O and a few other RD-related issues.
[-] Fixed bug: SN:R was treated as missing command.
[-] Fixed bug: heroes could not be dismissed.
[!] battery.dll by MoP (included in Typhon too) is not supported anymore.
[!] erm_hooker.era MUST BE deleted from all mods, unless you know, what you are doing. It's a part of Era package now.
Я не знаю велись ли дискуссии на эту тему, но может в какой-нибудь версии 3.0.0 ввести какую нибудь автообновлялку? по типу того же HD мода.
Где он сам спрашивает обновится ли до новой версии, когда она доступна...
ZAR, очень много желаемых и полезных фич. Но крайне мало времени и сил на их реализацию. Если в будущем удастся сделать систему «желаемая фича» — донаты на неё, то, может быть, будет возможность реализовывать нужные многим скрипты, моды и функции разными авторами. В противном случае только в порядке самого важного на мой взгляд по движку, уж не обессудьте.
Zar, в Era проблема автообновления серьезнее чем в HD Mod, так как помимо самой эры существует много модов. В каждом версионирование ведется как получится (если вообще ведется). Причем для модов обновления так же важны, так как в них зачастую бывают баги. Еще в модах не редки конфликты за общие ресурсы (глобальные переменные, функции, ресурсные файлы, патчи скриптов), которые требуют оперативного исправления.

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

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

Также пакетные менеджеры решают проблемы создания библиотек. Сейчас в era с этим непорядок. Например, функции для корректной экипировки артефактов есть в hms-моде. Странно подключать этот мод, если тебе всего лишь нужны эти функции для своего мода. Так же плохо копировать их, так как пользователи мода могут подключить помимо твоего мода и hms-мод тоже, как результат может быть конфликт. Если же функции скопировать и переменовать, то получается дублирование кода.
Закину фича-реквест:
Предлагаю в дистрибутиве Era II разделить мод WoG на несколько. Для начала полезно выделить скрипты вогофикации в отдельный мод.

Мотивация:
Известно, что в стандартных скриптах много багов. Централизованно они не поддерживаются. В других модах пытаются исправлять баги в скриптах как могут. Например, создают erm-файл с таким же имененем и надеются, что их мод будет приоритетнее другого, где этот файл тоже имеется. Это ненадежный и негибкий способ исправления.

Разумно не пытаться исправить эти скрипты с помощью других модов, а иметь возможность просто отключить их полностью и, например, подключить другую их версию, которая поддерживается. Либо не подключать вообще.

Если так сделать, то:
1. Обратная совместимость сохранится, так как для существующих пользователей поведение не изменится.
2. Я смогу положить имеющиеся скрипты вогофикации на гитхаб. После этого сделать новый мод с инструментом для постоянного обновления скриптов с гитхаба - не хитрое дело. Это даст возможность централизовано фиксировать баги, исправлять их, рефакторить, предоставить публичный интерфейс для модописателей (например, для добавления объекта для вогофикации), дальше разделять скрипты вогофикации на отдельные моды, которые можно включать и выключать. Например, если отключен скрипт "Улучшеные боевые машины II", то разумно вообще не подключать этот скрипт, так как даже отключенные в опциях вогофикации скрипты все равно выполняются и могут вызывать баги.
Без предлагаемого фича-реквеста это сделать трудно.
professornova, один erm файл может содержать до десятков вог скриптов, честь которых будет проверять наличие (состояние) других скриптов из других erm файлов. Это просто паутина, распутывать которую долго и муторно. А если и сделать это, то для обратной совместимости придется запутывать все обратно. А что ещё неприятне, часть скриптов зашиты , если я правильно понял. По сути, вокруг них Паутина и вьется.
daemon_n,

1. Рефакторинг подразумевает под собой в том числе и распутывание. Сейчас это сделать очень трудно. Однако если это делать в одном месте и постепенно, это будет сделать проще.

2. Не очень понял про какие зашитые скрипты ты говоришь. Если про hardcoded options, то их всего 13 штук. И как раз с ними проблем нет, как и запутанности. Я здесь предлагаю выделить в отдельный мод только то, что в папке WoG\data\s (и то что используется только этими скриптами).

3. Зависимости между скриптами это тоже боль. Но боль решаемая. Предлагаю есть слона по частям и начать с выделения скриптов в отдельным мод.

4. Обратная совместимость - это сложная штука. Ее вполне можно поддерживать какое-то время.
Reference URL's