Я просто в шоке. Иначе, как на баг процессора Interl Core i5 списать не могу. В одном конкретном месте команда add edx, 4 работает как, мать его, add esp, 4!
Расположи команду чуть дальше — всё ок.
https://yadi.sk/i/QaVQlE9N3iOFbw
https://yadi.sk/i/ccZBYLlVteMI5w
Просто мрак. Вместо одного регистра общего пользования, увеличивается регистр стека! Это вылеты, уязвимости, что угодно. И никогда не поймёшь, почему.
Есть идеи?
Добавление NOP между командами ними вопрос решило. Явно в процессоре ошибка.
Пересобрал дважды — пропала. Скрины остались.
(19.09.2019 10:28)igrik Wrote: [ -> ]Berserker, и хотя нумерация приведена в норму, баг вызовов остался. Более детально:
Герой с армией максимально прокачаных крестьян (опыт армий) при наличии тактики и сразу после тактической фазы призывает группу других крестьян (но должен это делать лишь с следующем раунде)
Без наличия тактической фазы такой проблемы нет.
Для уточнения: вызов всех существ от опыта армий привязан к содовским раундам баттлменеджера (строка 2445 "crexpo.cpp")
Code:
int Day=(*(int *)&((Byte *)BatMan)[0x13D6C]);
Именно поэтому баг проявляется и сейчас. Именно поэтому я и вносил фиксы в раунды битвы.
Либо перепривязывать данный вызов к BACall_Turn (*(_int_*)0x79F0BC), либо фиксить и содовские раунды. Тут уже как тебе удобнее
igrik, спасибо большое за информацию, понял, решать нужно.
Санта-Гремлины призывают стражей сразу после окончания тактики. Где-нибудь написано, когда должны призывать остальные монстры?
Berserker, если я правильно понял вопрос, то в описании навыков существ в окне опыта говорится.
(19.09.2019 13:53)Berserker Wrote: [ -> ] Где-нибудь написано, когда должны призывать остальные монстры?
Да. В диалоге опыта армий

daemon_n, igrik, понял, спасибо. Значит, в раунды 1, 5, 9 для крестьянина.
Опыт армий - это такая лажа. И сколько из-за него проблем.
Чисто риторически, сорри, вырвалось.
Я к тому, что всю Эру перелопачивать из-за одной сомнительной опции...
wessonsm, реализовано с недочётами, но даёт множество вариантов для рекомбинаций и интересных экспериментов с механикой игры, а потому активно используется.
Будем посмотреть. Я совсем забыл, как там с вылетами дела? Эра уже давно использует все ядра процессора по умолчанию.
(19.09.2019 16:53)wessonsm Wrote: [ -> ]Опыт армий - это такая лажа. И сколько из-за него проблем.
Чисто риторически, сорри, вырвалось.
Я к тому, что всю Эру перелопачивать из-за одной сомнительной опции...
Всё из-за того, что налепили кучу умений каждому юниту. И сделали дикую кашу.
Я например, если играю, то играю с опцией опыта но в дополнение к нему с опцией "Без Wog способностей от опыта"
По хорошему нужно перелопатить умения существ (от опыта), и сделать как в MoP - каждому мобу по 1й способности. В редких случаях две.
(19.09.2019 18:05)igrik Wrote: [ -> ]сделать как в MoP - каждому мобу по 1й способности. В редких случаях две.
На ЭРА+ давно уже это было сделано. Как обычно, никто этого не заметил.
(14.09.2019 01:23)Berserker Wrote: [ -> ]Что делать, если не загружен плагин era_hooker, а он нужен? Предупредить!
Как будет выглядеть данный диалог и когда? Имею ввиду, можно ли сделать его в виде уведомления при загрузке карты и с проверкой некоторых Вог-опций на ЭРМ? Веду к плагину BattleReplay от
igrik'a, о котором знают не все, когда качают сборку, а жаль. ( не включен по умолчанию, поскольку некоторые скрипты несовместимы)
Хочется как-то намекнуть игрокам при старте игры или карты, что есть такое чудо, с небольшой инструкцией по активации, но и постоянно раздражать этим уведомлением не планируется.
daemon_n, если нужно уведомить один раз, можно будет записать через SN:F^WriteStrToIni^/^package.ini^/^warnings^/^battle_replay^/^1^. А на старте карты считывать значение, если 0 и плагин не загружен, то показать предупреждение и установить 1 в файле.
понял, благодарю за ответ.
Когда-нибудь в ERA 2.8.X починится команда "sprintf(fname, "data\\artifacts\\%u.cfg",target);" ??? А то текстовые конфиги как не читались, так и по-прежнему не читаются. Пришлось опять вернуться на ERA 2.7.7., где эта команда ещё работает. Задолбал этот сотонинский Си, видимо для новых версий ЭРА придётся переписать плагин на артефакты под ассемблер (или остаться на ERA 2.7.7 навечно с её старой и проверенной временем виртуальной файловой системе, в которой не надо создавать пустую папку EraPlugins для запуска древних феаноровских плагинов).
Есть вопрос по поводу введённых/изменённых в 2.87 особенностей триггера !?MP.
Пример:
!?MP;
!!MP&v5180=1:S^название трека^/0/1;
v5180=1 переменная для запуска трека(срабатывает при активации события на карте приключений). Пока герой находится на карте, трек нормально работает(согласно описанию из 2.87 для данных команд).
При окончании проигрывания, достаточно любого действия на карте для активации повтора. Но как только наступает битва- трек доигрывает до конца и больше не закольцовывается, хотя стоит опция повтора "1" . Единственным способом вызвать повтор трека- выйти с ALT+TAB на рабочий стол и после вернуться в игру. Теперь собственно сам вопрос: можно ли как то спровоцировать повтор трека во время боя при его окончании(трека) без указанного способа(ALT+TAB-совершенно не приемлимо).