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

Full Version: ERA III
You're currently viewing a stripped down version of our content. View the full version with proper formatting.
Berserker, ну, как функции.
При инициализации таймера не писать !!TM#:S$1/$2/$3/$4;
а написать !!TM(Judgment Day):S$1/$2/$3/$4;
А потом:
!?TM(Judgment Day);
!!IF:M^It was decided to send you to Paradise^;
Здоровствуйте.
Есть проблема с ЭРА версии 3.3.7.
Отыгрываю на сборке от Панды, в режиму Верок 16 бит с разрешением 1280*720.
Суть ОЧЕНЬ часто, при долговременной игре происходят краши ХД мода при попытке загрузить ранее сделанные сохранения. Если после снова запустить клиент и загрузить это же сохранение - всё нормально грузится. Но стоит отыграть мин 15-20 (примерно, точно не засекал, т.к может и не во времени главный фактор) - при загрузке - краш.
   В логе ХД мода всегда что-то схожее :
Exception
{
    Module: ntdll.dll
    Adress: [ ntdll.dll+0x32A13 ]
    Code: EXCEPTION_ACCESS_VIOLATION
    Flags: 0x00000000
    Information: read of address: 0x06784CF2
}

   
Прикладываю архив с папкой дебаг
Debug.rar

   Пробовал сменить ХД мод на более раннюю версию (RC19), - не помогает. На версии Эра 3.3.4 - такого не происходит.
helgtla, As the crashlog diagnoses, the root of the problem is found in ntdll.dll
Никаких глобальных изменений между версиями не вижу. Нужны отчёты от других игроков. По логу ничего не указывает на код Эры.
Вылет в функции освобождения памяти одной из подфункций функции загрузки игры.

Quote:На версии Эра 3.3.4 - такого не происходит.
Как проверял?
Здравствуйте, можно ли рассчитывать что с введением фишки на 24 бит картинки можно будет сделать некоторые Defs - в виде набора 24 бит png?
Есть 32 бит HD ресурсы и программа Topaz Gigapixel AI для перегона 8 бит в лучшее качество 24 бит
H3bitmap с портретами 24 бит хотелось бы тоже
А то перегонка в 8 бит на 70% качество срубает
(28.03.2021 06:01)Berserker Wrote: [ -> ]
Quote:На версии Эра 3.3.4 - такого не происходит.
Как проверял?

   Это проверялось на той же карте, что запускалась и на Эра 3.3.4.
на предыдущей версии подобных крашей нет, на 3.3.7. Это происходит регулярно (при "долгой" игре, можно сказать, что со 100% вероятностью).

(28.03.2021 06:01)Berserker Wrote: [ -> ]Вылет в функции освобождения памяти одной из подфункций функции загрузки игры.

   А не подскажете в какой именно? Просто на карте задействованы с изменениями скрипты и из других модов (ERA Scripts Rus в частности). И там присутствуют функции, активируемые при загрузке сохранённой игры.
Может часть тех функций(скрипты из ERA Scripts Rus у меня от предыдущих версий) в 3.3.7. изменили названия/функционал и "дублируют" обновлённые, вызывая конфликт? Я про !?FU(OnAfterLoadGame) и !?FU(OnAfterErmInstructions) : может их функционал заменён другими/обновлёнными, наподобие того, как это произошло с функциями для переигровки?
Berserker, как именно именованные ф-ции переводятся в номерные? Есть ли конвертер?
в справке я ж описывал, вроде как про это...
Quote:Работает это так: как только встретили не в строке, но в ЕРМ коде скобки с текстом (…) - выделить под это (имя) номер функции или взять уже выделенный ранее, после чего вставить в код. Также, по умолчанию создаётся одноимённая SN:W-переменная со значением номера функции, выделенного для данного имени (т.е. в примере имеем y1=y2). Но при этом, соответствие имён функций и выделенных для них ID хранится вне ассоциативной памяти.
Т.е. как я понимаю, перед тем как ЕРМ передаётся в движок обработки скриптов, сама ERA все имена подменяет на свободные (по порядку) или подставляет уже занятые таким именем номера.
Номер же узнать можно, как и написано, через дублирование в SM:W по этому имени ф-ции
suftfree, замена кадров def не png с прозрачностью в ближайших планах. Сами изображения можете конвертировать.

helgtla, тестировать нужно так. В сборку с 3.3.7 копируете era.dll и DebugMaps\Era.dbgmap из сборки с 3.3.4. Что-то испортить мог код событий OnSavegameWrite. Возможно, в OnAfterLoadGame. Вылет на геройской функции освобождения памяти, значит что-то было уже ранее испорчено из указателей. Я отыграл 1,5 часа с 3.3.7 с последней сборкой Панды и Advanced Classes. Пока не подтверждаю.

daemon_n, механизм автоматический и не разглашается. Может меняться.
Опиши задачу. Ести тебе нужно хранить в переменной или передать в функцию номер функции, то просто используй имя функции для этого!
Везде, где можно использовать ЕРМ-константу, можно использовать и именованную функцию.
Только не забывайте давать уникальные префиксы функциям, чтобы с другими модами не пересекаться.
Berserker, спасибо!

Задача куда интереснее.
Использование SN:F^ExecERMcmd^/^тут номер ф-ции^;
Вот это я и сделал
Спасибо, буду конвертировать. Как понял в 24 бит
А планируется ли плагин - если изображение больше, но таких же пропорций - уменьшение до оригинала?
Можно будет Увеличить изображение Topaz-ом для улучшения качества при сжатии.
suftfree, нет.
Berserker, we had discussions about henchman carry over campaign zones. But there's one thing remaining in mystery - how does ERA manage to carry over stats of commanders?

You can try this, launch any campaign scneario, Long Live the Queen from RoE for example, fight any creature and take power stones to increase the stats of the commander, Tab + wogonering to jump to next zone and you get full commander's stats carried over - how was this done? Can we do the same for henchmen?
As far as I see in code, it should be reset and after that assigned hero exp with levelup dialogs. Myabe I miss something. And no, these structures are internal, you cannot do the same in ERM.
Ah. Too bad. The commander carryover feature is very advanced. It carries stats for heroes that need to be carried (nothing like I'm doing for henchman, just loop through all heroes and copy all)

You should be wrong with this feature. As I mention, you can try to pick up power stones that increase the stats, in another zone, you still keep the stats from stones.
Reference URL's