(06.09.2023 09:16)XEPOMAHT Wrote: [ -> ] (06.09.2023 06:55)Barin Wrote: [ -> ]В чём проблема?
На этом моменте играть дальше невозможно. Окно ошибки так и будет вылазить вместо диалога. Но если полностью выйти из игры - загрузиться и продолжить с того же момента, то диалог как обычно срабатывает.
Твоя проблема в старой версии библиотеки zvslib1.dll. Используй современную платформу ERA, где с помощью плагина wog_native_dialogs.era воговские диалоги выводятся средствами движка самой игры, а не zvslib1.dll.
Да, до сих пор делаю мод на Эре 2.46. Сегодня займусь переносом.
Быть может уйдёт ещё одна давняя проблема: некоторые видеоролики (заставки перед кампаниями) созданные через Smacker Tools - в игре буквально рассыпались и приводили к вылету. А если делал такой ролик без последовательности кадров, т.е 1 картинка как в классических кампаниях - всё работает. Возможно тоже что-то связано с устаревшими библиотеками.
Спасибо!
Code:
class CrExpBon{
static struct CrExpBonStr{
struct {
unsigned Act : 1; // есть/нет
unsigned _un : 31;
} Fl;
char Type; // тип спецспособности
char Mod; // модификатор типа
// char *Descr; // указатель на описание
Byte Lvls[11]; // бонус на уровнях
}Body[MAXCREXPAB][20],Dummy[20];
static struct CrExpBonBFStartStat{
char fA,fD,fH,fm,fM,fS,fO,fP,fR;
int aA,aD,aH,am,aM,aS,aO,aP,aR;
} BFStat[BFNUM];
/// ниже методы...
}
Поле "модификатор типа" может иметь значение >127, например, в самом файле "crexpbon.txt" мы имеем строку:
Code:
151 L #200 0 5 10 15 20 25 30 35 40 45 50 Diamond Dragon: Deflect 100% chance 5%/Rank
где 200 идёт в char Mod.
Т.е. значение > 127 нивелирует способность полностью
Либо ставить лоухук на абилку и проверку значения по адресу 0x71C7AB, либо патчить тип данных в двумерном массиве опыта существ CrExpBon 0x847D98[256][20] - честно, не знаю, как меняется тип данных в exe, так что предложил это. Вероятно, есть решение более элементарное и корректное.
Либо понять, что asm правит миром машин

и
меняем movsx на movzx по адресам:
0071C7A8
0071C7B4
0071C7D3 (ну, мало ли).
-> продолжаем искать баги WoG
по адресу 0075D483 имеем проверку возврата оригинальной ф-ции (004422B0 - int __thiscall BattleStack::GetDefenceAgainst(_BattleStack_ *this, _BattleStack_ *enemy, char includeFrenzy))
если её результат = 0
то в проверке по адресу 0075D483
совершаем прыжок на 0075D564
а там обходим оригинальный возврат ф-ции, прыгая с 0075D565 на 0075D571
Урон Древних Чудищ по копейщикам наносился без бонуса игнорирования защиты, а был даже ниже, чем обычный урон.
Code:
bin patch
0075D565 9090
Code:
с++
_PI->WriteWord(0x75D565, 0x9090);
Очень часто ловлю вылет игры, единственное что смог понять, что это происходит когда идет ход ИИ и когда он нападает на нейтралов. В чем может быть проблема, а главное как её решить?
Berserker, не совсем понял вопрос, я просто нубик не так то и давно играю в Героев) Вообще играю через Heroes Launcher, через который и установил Heroуs era)
Если это не то, то пожалуйста, задайте вопрос по другому чтоб я понял)
Я бы даже скрин ошибки закинул но совсем не понял как это сделать)
(05.02.2025 22:25)ZZIIPP Wrote: [ -> ]Berserker, не совсем понял вопрос, я просто нубик не так то и давно играю в Героев) Вообще играю через Heroes Launcher, через который и установил Heroуs era)
Если это не то, то пожалуйста, задайте вопрос по другому чтоб я понял)
Я бы даже скрин ошибки закинул но совсем не понял как это сделать)
Кажется я тоже словил этот баг, похоже появился около недели назад с последними обновлениями?
Я играю на MacBook Pro 14 M1 Pro в Parallels Windows 11.
Логи закинул в архив:
LOGS
ZZIIPP, нужно упаковать папку Debug в zip/rar и загрузить на любой файловый обменник, вроде dropmefiles.com.
На Discord-сервере есть отдельная ветка с отчётами об ошибках в сборке:
https://discord.gg/9Nkcc8sE
tinkiwinki, спасибо.
Доброго дня!
Огромнейшее спасибо вам за труды и обновления!
Поймал вот такую штуку:
на данный момент играю в WOG
запускаю через лаунчер
версия
HoMM3 HD 5.5 R42 [/align]
h3era hd.exe
суть:
играл в рандомную карту, вышел из игры. На след день зашел, оказалось, что мой капитан числится мертвым. В замке я его восстановить не могу (не предлагает).
Загружая более ранние обновления (и даже самое раннее вообще), капитан везде числится мертвым.
Вы может быть знаете, как это можно исправить?)
Заранее огромнейшее спасибо!
Выберите героя в списке, нажмите TAB и введите: CO-1:D0 E1
Затем Enter.
Доброго времени суток!
Специально зарегистрировался, ибо почти 3 года мучаюсь с проблемой зависания WOG на ходе противника (как правило, самого сильного и раскачанного героя на карте). Игра просто виснет на песочных часах, начинает резко грузиться ЦП, и из этого состояния комп выводится только посредством обрубания процесса игры через диспетчер задач. Игру, таким образом, становится невозможно доиграть.
Все началось на старых 3.58f, установленных поверх Дыхания Смерти. После долгих безуспешных попыток пошаманить со старой игрой, снес ее к чертям и поставил Эру и HD-мод (как советуют в большинстве случаев). Каким же было мое разочарование, когда я обнаружил, что и в новой игре проблема никуда не исчезла(((
Очевидно, что ИИ не может "переварить" героев с большими армиями, возможно игра виснет из-за попыток их перемещения в пространстве (посредством Двери Измерений, например, где-то даже советовали отключить ее в настройках WOG).
Сложно представить, что какая-либо проблема этой игры может быть связана с железом, но ведь много лет все работало нормально, и где-то 2,5-3 года назад начались зависания. Одну игру за это время кое-как доиграл: что-то пошаманил в самой игре, изменив ход событий, пришлось даже зайти через мультиплеер и сделать пару ходов за ИИ-противника. В остальных случаях и это не помогло.
Очень нужен хоть какой-то совет: покупать новый ноут (из-за одной игры, в моем случае, - сразу нет) или может какие-нить библиотеки DirectX обновить или другую версию игры поставить? А может существует какой-то нехитрый способ обхода ошибки через настройки WOG?
Если что, версия игры сейчас стоит: HoMM3 ERA 3.96.
Заранее огромное спасибо!
P.S. Сорри, версия игры HoMM3 ERA 3.9.26
(17.10.2025 20:15)Artyom S Wrote: [ -> ]почти 3 года мучаюсь с проблемой зависания WOG на ходе противника (как правило, самого сильного и раскачанного героя на карте). Игра просто виснет на песочных часах, начинает резко грузиться ЦП, и из этого состояния комп выводится только посредством обрубания процесса игры через диспетчер задач. Игру, таким образом, становится невозможно доиграть.
Выключите или удалите читерные воговские скрипты, которые увеличивают армии героев до немыслемых пределов, по итогу чего оценка силы армии героя уходит в минус и ИИ уже не может её оценить. Особенно заметно, когда ERM-скрипты дают по 1000 Лазурных Драконов в каждый слот - происходит полный ахтунг.
В Вашем случае, можно временно занизить значения AI-value всем монстрам в игре, тогда карту можно будет хоть как-то доиграть.
https://ibb.co/spqSxX4z
Спасибо, что откликнулись!
Вот для понимания, на скрине - герой-противник, на котором виснет игра. Это как раз тот случай, который Вы описали? А в случае отключения/удаления скриптов как будут выглядеть армии подобных героев: не будет слотов с 10к+ существ или существ 7-го уровня будет не больше тысячи?
Конкретно эту карту доигрывать мне не принципиально, тем более с искусственным урезанием армии противника уже совсем не так интересно выигрывать. Важно точно понять и устранить причину, чтобы можно было начинать следующую карту без боязни опять ее не доиграть.
(19.10.2025 15:18)Artyom S Wrote: [ -> ]Вот для понимания, на скрине - герой-противник, на котором виснет игра. Это как раз тот случай, который Вы описали? А в случае отключения/удаления скриптов как будут выглядеть армии подобных героев: не будет слотов с 10к+ существ или существ 7-го уровня будет не больше тысячи?
Армии будут такими, какими наняли. 4302+1815 "божественных" существ - явный перебор - существа скорее всего были выданы герою с помощью читов. Читерные вогоопции, дающие халяву и делающие игру нечестной, лучше всего выключать, т.к. старый игровой движок под такое просто не расситан - тот же ВоГ по-умолчанию выдаёт божественных существ только при захвате их жилища - не просто так.
(19.10.2025 15:18)Artyom S Wrote: [ -> ]Важно точно понять и устранить причину, чтобы можно было начинать следующую карту без боязни опять ее не доиграть.
Попробуйте более облегчённые версии игры (я играю в ERA+, где такого беспредела и близко нет).