Manupulation with some building defs probably. Hard to say, according to logs and no time to debug. I doubt, that you'll face the same crash starting game without mods.
Hmmm. I doubt it is an issue related to def. Coz when you move Sandro out of the town and build Wall of knowledge, there's no Ctd. But when you visit the town with Sandro, the game crashes before displaying the knowledge gained from the building.
Could be true this issue doesn't exist if playing without mods from the start though
Berserker, я нашел баг в ERM: триггер CM4 срабатывает 2 раза подряд (либо что-то не так в реализации проверок условий). У меня прописана следующая логика:
!?CM4;
[...]
Если переменная Х не 0, вызываем функцию, иначе проводим махинации и, возможно, записываем в Х 1.
Эксперимент: делаем "правильный клик" (Х при этом 0)
Результат: Х = 1, функция вызвана
Эксперимент2: все то же самое, только добавляем "наблюдателя" ("!!IF:M^1^;" для триггера, "!!IF:M^2^;" для функции)
Результат: Х = 1, функция не вызвана
Могу прислать код.
Сомневаюсь. Проблема бы уже давно себя проявила. Код приведи, пожалуйста.
Berserker, я сам удивлен данному парадоксу

Код я прислал Вам лично
Там портянка будь-доров ).
Думаю, ты не делаешь разницы между нажатием и отжатием кнопок. Это два разных события CM4 с разными подтипами (12 и 13).
(20.02.2021 22:06)Berserker Wrote: [ -> ]Там портянка будь-доров ).
Честно говоря, я не совсем понимаю, о чем Вы... Если о качестве кода, то да, он очень сырой. Я сегодня с утра его написал, и мне предстоит еще кое-что потестировать и доработать. Это точно не финальный вариант.
Quote:Думаю, ты не делаешь разницы между нажатием и отжатием кнопок. Это два разных события CM4 с разными подтипами (12 и 13).
Да, Вы оказались правы - для каждого из событий триггер срабатывает отдельно. Я изменил проверку флага ЛКМ на проверку подтипа 12, и все заработало как надо. Ну а IF:M врезался по середине и заставлял перевести курсор на свою кнопку "ок", из-за чего не возникал эффект дублирования клика.
И о размере, и о форматировании

. Если писать на ЕРМ, то на ЕРМ 2 с именованными переменными и константами + Era Erm Framework. Пример кода выше. Получается яснее, лаконичнее и легче поддерживать. Насколько это вообще возможно с ЕРМ, конечно.
Berserker, у меня есть проработанная схема, по которой я реализую такого рода штучки - ход мысли всегда одинаков, а потому лично мне ориентироваться в таком коде очень легко. Плюс ко всему, я тщательно комментирую все важные места, то есть, всю логику можно проследить по комментариям.
Насчёт ERM 2 могу сказать так: да, классный инструмент, константы очень помогли в реализации одного спец.строения (и, вероятно, помогут где-то ещё), но тем не менее, насчёт ясности и лаконичности я не совсем с Вами согласен - код на самом деле становится самоописывающимся, но избыток наименований лично меня скорее путает, так как любое имя/название нужно дольше читать. Если использовать обычные нумерованные переменные, кода визуально будет меньше, а для не совсем очевидных вещей я специально пишу комментарии.
Вполне возможно, что некоторые вещи я действительно в будущем перепишу на чистом ERM 2, но сейчас лично для меня это менее удобно. Если вдруг Вам интересно, я могу прислать ещё пару примеров реализации своих идей на ERM 1

Berserker, спасибо за обновление! Теперь вопрос: а будет ли на Эра 3.3.5 корректно работать старый плагин на переигровку, где ещё есть поддержка триггеров 870520 и 870530?
Новые имена событий не сработают (только 870520 и 870530). Также в обновлённом плагине исправлена проблема, из-за которой я не мог пользоваться плагином вообще. Если долго не перезагружать компьютер, переполнится счётчик миллисекунд с его включения и старый плагин перестаёт реагировать на кнопку переигровки.
Рекомендую временно для сборки фикс:
999 fix old battle replay clients.erm
Berserker, can I confirm that if I want to adapt scripts to the latest BattleReplay and ERA, I only need to replace 870530 -> OnBeforeBattleReplay and 870520 -> OnBattleReplay from all scripts, right?
Archer30, right. Alternatively use can include single old scripts fix from the post above.
Berserker, thanks. This was a bit confusing. We have !?BA52 -> !?BA53 as before and after battle triggers, but when it comes to battle replay, the order becomes !?870
530 then !?870
520.

Luckily we use only letters now.
Right. I think new names are much clearer.