Wake of Gods Forum | Форум Во Имя Богов
ERA II - Printable Version

+- Wake of Gods Forum | Форум Во Имя Богов (http://wforum.heroes35.net)
+-- Forum: Русский Форум (/forumdisplay.php?fid=99)
+--- Forum: Моды для WoG (/forumdisplay.php?fid=104)
+---- Forum: ЭРА / ERA (/forumdisplay.php?fid=182)
+---- Thread: ERA II (/showthread.php?tid=3155)


ERA II - Berserker - 15.06.2011 20:00

Image: eralogo.png

Название: Era II + WoG 3.58f [преобразованный в мод]
Версия: 2.461
Размер: 82.6 МБ
Ссылка (ENG): Скачать
Ссылка на 2.46 (ENG): Скачать
Требования: SoD/Complete, !НЕ! WoG (в Воге будет удалена папка Data\s и 100%-ая совместимость не гарантирована)

Благодарности:
Jim Vogan - Улучшение руководства по ERM, перевод руководства по Эре на английский
solitaire345 - Улучшение руководства по ERM
Valery (Salamandre) - Тестирование
Bes, SyDr, gamecreator, baratorch, MOP и ещё десятку отличных ребят.

Русификатор: Скачать (21,5 МБ)
Благодарности: Black Phantom, Sir Four, Qwertyus.
Комментарий: Включено обновление от Qwertyus по исправлению кнопок и многочисленных элементов меню и объектов.


Концепция модов.
Мод - это набор файлов и папок, включая графику, аудио, видео, скрипты, модули, заплатки и пользовательские файлы. Эра вводит папку "Mods", в которой каждая подпапка зовётся модом и обрабатывается так, словно она является корневой папкой игры. Это значит, что файлы и папки в модах должны иметь такую же организационную структуру, как и в самой игре.

Оригинальная игра: Data
Мод: Mods\Название Моего Мода\Data

Содержимое модов.
Содержимое модов не должно меняться во время игрового процесса. Изменяемые файлы (такие как настройки, журналы, временные) следует помещать в реальные игровые папки во время установки. Несколько модов могут одновременно существовать в папке Mods, при условии, что они являются совместимыми. Каждый мод может содержать неограниченно количество игровых ресурсов (snd/vid/pac архивы в Data), которые будут подгружены автоматически.

Приоритеты.
Если в каком-либо из модов есть файл с таким же именем, как и в оригинальной игре, то он используется вместо оригинального. Если в нескольких модах имеется файл с одним и тем же именем, то используется мод с наибольшим приоритетом. Чтобы назначить приоритет моду, нужно добавить число к началу его имени, отделив число пробелом от остального текста. Чем больше число - тем больше приоритет. Например: "100 МойМод". Если приоритет не указан, то он равняется 0. В случае равных приоритетов сравниваются даты создания папок модов и наиболее "свежей" папке отдаётся предпочтение при поиске. Такой механизм гарантирует, что моды, которые устанавливаются позже, будут иметь приоритет над теми, что были установлены ранее.

Подсказка, как задать папке текущее время в качестве даты создания.
Выполните "Tools\installmod.exe" с именем мода в качестве единственного аргумента.

Оригинальные snd/vid архивы грузятся в следующем порядке:
  • heroes3.vid с CD
  • video.vid
  • h3ab_ahd.vid
  • heroes3.snd с CD
  • heroes3.snd
  • h3ab_ahd.snd

Мод ВоГ.
ВоГ теперь распространяется в качестве обычного мода и, таким образом, не заменяет игровые файлы. Большая часть воговских ресурсов расположена в архиве "Data\hmm35wog.pac". Все диалоги ВоГ читают этот архив напрямую, игнорируя другие моды. Единственный, не рекомендуемый способ, как исправить такое поведение - это импортировать новые диалоговые данные в hmm35wog.pac. ВоГ содержит исправленный деф палатки первой помощи, что должно избавить игроков от зависаний.

Дополнительные опциональные изменения:
  • Быстрая анимация в бою. Для отключения удалите файл "Data\cranim.txt".
  • Нет предбитвенных мелодий. Для отключения удалите файл "Data\wog - no prebattle music.snd".
  • Анимированные объекты Героев 3. Для отключения удалите файл "Data\wog - animated objects.pac".
  • Анимированные деревья. Для отключения удалите файл "Data\wog - animated trees.pac".
  • Украшения (препятствия) в боях. Для отключения удалите файл "Data\wog - battle decorations.pac".

Мод Yona.
Yona - это мод с открытым исходным кодом, написанный на чистом Delphi с использованием Era SDK. Его идеологией являются полная опциональность ("Data\Yona\settings.ini"), родная поддержка всех нововведений игрой, ИИ и многопользовательский код. Мод совместим с другими модами, не хранит данных в сохранениях и не изменяет ERM скрипты. Для удаления мода удалите папку "Mods\Yona".

Свойства:
Новая подсказка в журнале боя покажет в геройском стиле вероятное число убитых противников, средние значения, смертельные значения и новые способности при выбранной атаке.

Новые способности:
  • Копейщики/Алебардщики игнорируют кавалерийских бонус и наносят 200% урона кавалерии:
    • Кавалеристам
    • Чемпионам
    • Кентаврам
    • Капитанам Кентавров
    • Единорогам
    • Боевым Единорогам
    • Чёрным Рыцарям
    • Рыцарям Смерти
    • Кочевникам
    • Сильванским Кентаврам
    • Пожарам
    • Кошмарам
  • Кавалеристы / Чемпионы получают 20% бонус к урону за каждую пройденную клетку вместо оригинальных 5%. Бонус складывается с другими, например модификатором параметра "Атака" или навыка "Нападение".
  • Рыцари/Крестоносцы игнорируют 50% физического урона в состоянии обороны.
  • Урон Орков/Орков-вождей (метание топоров) зависит квадратично от расстояния до цели.
    Формула: Базовый урон * (19 - расстояние)^2 / 100.

Мод "Прокрутка вторичных навыков".
Добавляет кнопки прокрутки справа от списка вторичных навыков в окне героя, позволяя просматривать и оперировать более чем восемью навыками.


Изменения.

Переносимость.
Игра стала полностью переносимой. Все игровые настройки хранятся в файле "heroes3.ini". Родной механизм сканирования CD-дисков отключён. Эра автоматически загружает файлы ".\Heroes3\Data\heroes3.vid" и ".\Heroes3\Data\heroes3.snd" при их наличии. Если опция "LoadCD" (Загружать CD) в "heroes3.ini" установлена в 1, то Эра сканирует все CD-приводы в поисках папки "Heroes3". Если вышеописанные snd/vid архивы не найдены в игровой папке, Эра попытается подгрузить их с CD-диска при условии, что опция "LoadCD" включена.

Отладочный режим.
Для включения отладочного режима установите опцию "Debug" в 1. Файл "eralog.txt" будет автоматически создан при старте игры.

Расширяемость.
Все erm файлы (и ert файлы с такими же именами) автоматически подгружаются из папки "Data\s" при старте карты или нажатии клавиши F12. Диалог ВоГ-опций больше не проверяет наличие файлов на диске. Количество скриптов ограничено только размерами внутренней памяти. Если правильное (положительное или отрицательное) число стоит перед именем файла (например, "50 Проверка.erm"), то оно расценивается как приоритет загрузки (чем выше, тем раньше грузится скрипт). Если файл "load only these scripts.txt" (загружать только эти скрипты) существует в папке "Data\s", то только те скрипты, которые указаны в этом файле (по одному скрипту на строку), будут загружены. В этом случае порядок загрузки скриптов определяется порядком их упоминания в списке. Опция ВоГ-настроек "Alternate_Script_Location" больше не используется.

Многопользовательская игра.
  • Между двумя копиями игры на одном компьютере возможна сетевая игра, если у копий разные значения параметра "Unique System ID" в файле "heroes3.ini". Для того, чтобы сгенерировать новый ID, удалите строку с данной настройкой и запустите игру.
  • Механизм определения внешнего IP адреса был улучшен. Первый адрес не из локальной сети перемешается в начало списка адресов, возвращаемого функцией gethostbyname.

Редакторы.
Оригинальные редакторы (h3maped.exe and h3ccmped.exe) работают хорошо. ВоГ редакторы (h3wmaped.exe и h3wcmped.exe) могут нуждаться в дополнительном исправлении. Воговский редактор правильно открывает карты и загружает моды. Он также применяет все заплатки для памяти и загружает dll-библиотеки из папки EraEditor. Расширенная функциональность редактора, обеспечиваемая патчем от GrayFace требует, чтобы ресурсы были физически расположены в файлах h3sprite.lod и h3bitmap.lod. Воговский редактор кампаний не поддерживает модов. Для того, чтобы MapEdPatch (патч для редактора карт) работал с новыми ВоГ-объектами , а также чтобы заработал редактор кампаний ВоГ, картостроитель должен запустить "Tools\Fix Editor\Fix Editor.bat". Этот пакетный файл импортирует все критически данные в h3sprite.lod и h3bitmap.lod.

Поддержка пользовательских кнопок.
Стало возможным иметь пользовательские кнопки в большинстве игровых экранов. Оригинальный модуль под авторством MoP-а (Buttons.dll) был изменён и теперь является частью Эры. Пользовательские кнопки описываются в *.btn файлах, которые подгружаются из папки "Data\Buttons" при старте игры.

Помощь.
Вся документация, истории изменений, обновлённые руководства по ERM и Эре могут быть найдены в папке "Help".

Улучшения.
  • Совместимость с Windows 7 при запуске без опции "Совместимость с XP".
  • Больше нет ВоГ-инсталлятора.
  • Ускорен вызов всех воговских диалогов, в несколько раз меньше нагрузка на жёсткий диск.
  • Оптимизированы ВоГ-диалоги, значительно снижена нагрузка на процессор. Заплатка "reduce cpu load.bin" была удалена и опция HD-мода "Berserker's CPU patch" тоже должна быть выключена.
  • Запись ini-файлов через функции ERM или Эры теперь приводит к сортированному списку секций и ключей вместо бывшего хаотичного.
  • Генерация случайных карт в игре и редакторе больше не зависит от мусорных snd/vid/lod файлов из Клинка Армагеддона.
  • Игра не требует наличия родных lod-архивов в папке "Data", если все необходимые ресурсы присутствуют в других pac-архивах.
  • Добавлены синхронизированные звуки существ от GrayFace.
  • Script 98 (быстрые и умные сохранения) был переписан, теперь поддерживает опцию в ВоГ-меню, не конфликтует с чатом и совместим с другими скриптами.
  • Все вспомогательные программы были перемещены в папку "Tools", включая новые стандартные:
    lodexport, lodimport, objector.exe, repman.exe, resman.exe, installmod.exe.
  • Обновлены API и исходники.
  • F11 теперь извлекает скрипты из памяти в папку "Data\ExtractedScripts" вместо "Data\s\ExtractedScripts".
  • Удалён дублирующий код ВоГ-инициализации.
  • Исправлены баги Эры 1.9 в области PO/Доп. памяти, которые приводили к неверному размеру сохранённых игр и испорченным данным.
  • Исправлен баг Эры 1.9, при котором модули с расширение ".off" всё равно загружались.

Технические детали.

Поддержка пользовательских кнопок.
Каждый *.btn файл (чистый txt-формат) содержит строки (по одной на кнопку) в следующем формате:
[Экран кнопки];[Уникальное имя кнопки];[DEF кнопки;[X];[Y];[Ширина];[Высота];[Длинное описание];[Короткое описание],
где "Экран кнопки" может принимать одно из следующих значений:
  • Advmap (для карты приключений)
  • Town (для города)
  • Hero (для экрана героя)
  • Heroes (для экрана встречи героев)
  • Battle (для битвы)
  • Dummy (если кнопка не используется)
Каждой кнопке автоматически назначается уникальный идентификатор (ID), который можно получить через вызов stdcall функции "GetButtonID" из библиотеки Era.dll с именем кнопки в качестве единственного аргумента. Если указанное имя не было зарегистрировано, то функция вернёт -1.

Виртуальная Файловая Система (Поддержка папки "Mods").
Поддерживается следующий набор функций, работающих с именами в файловой системе:
  • CreateFileA
  • GetFileAttributesA
  • FindFirstFileA
  • FindNextFileA
  • FindClose
  • LoadLibraryA
  • DeleteFileA
  • CreateDirectoryA
  • RemoveDirectoryA
  • GetPrivateProfileStringA
  • LoadCursorFromFileA
  • PlaySoundA
  • GetCurrentDirectoryA
  • SetCurrentDirectoryA

Новое событие "OnStackToStackDamage" (!?FU77012). (При расчёте урон типа "отряд-по-отряду")
Аргументы:
  • Атакующий отряд (0..41) или -1
  • Защищающийся отряд (0..41) или -1
  • Конечный урон (НЕ МЕНЯТЬ!)
  • Конечный урон (ИЗМЕНЯЕМЫЙ)
  • Базовый урон
  • Бонус урона
  • Дальняя атака? (если не 0 или 1, то содержит мусор)
  • Расстояние (только для теоретических атак установлено)
  • Теоретическая атака? (расчёт для подсказки или ИИ)
Событие возникает, когда один отряд атакует или стреляет в другой.

Новое событие "OnAICalcStackAttackEffect" (!?FU77013). (ИИ расчитывает эффект от атаки на отряд)
Аргументы:
  • Атакующий отряд (0..41)
  • Защищающийся отряд (0..41)
  • Значение эффекта (ИЗМЕНЯЕМОЕ)
  • Значение эффекта (НЕ МЕНЯТЬ)

Новое событие "OnChat" (!?FU77014). (При чате)
Первый аргумент определяет тип события и остальные аргументы.
  • 0 (Вход в чат)
  • Запретить вход? (0..1)
  • 1 (Ввод)
  • Строка ввода
  • Действие: 0 (очистить панель), 1 (закрыть панель) или 2 (по умолчанию)
  • 2 (Выход из чата)
Разное.
  • Добавлена функция "ApiHook". Она определяет минимальный размер заплатки самостоятельно, в отличие от функции "Hook".
  • И "ApiHook" и "Hook" функции теперь возвращают новый адрес затёртого кода в режиме моста (BRIDGE), что позволяет вызывать также и оригинальные функции, минуя установленные перехватчики.
  • v1 содержит описатель библиотеки Era dll во время загрузки *.era модулей.
  • Эра автоматически вызывает функцию DisableThreadLibraryCalls для всех загружаемых *.era модулей.
  • ExecErmCmd больше не убивает игру при ошибке.
  • Событие "OnNameColors" было переименовано в "OnAfterCreateWindow"

Версия 2.3 от 10-го июня.
----------------------
Code:
[+] Добавлена поддержка отрицательных z, e, y переменных всем командам Эры.
[+] Добавлен редактор DL-диалогов от GrayFace. Программа #16 в Стартовом Меню Эры.
[+] Добавлены исправленные снежные объекты для карты приключений.
[+] Добавлены улучшенные озёра от Darkloke.
[+] Добавлена поддержка заплатки "no secondary skills limit" ("нет предела на количество вторичных навыков")
скриптам "battle academy" ("боевая академия") и "school of wizardry" (школа волшебства). Автор: majaczek.

[*] Стартовое Меню Эры теперь отображает номер текущей страницы в заголовке.
[*] В случае обнаружения дубликатов в файлах zeobjts, редактор карт вместо вылета сообщает об ошибке.
[*] Модуль "all war machines in blacksmith.dll.off" ("все машины в кузницы") устарел и был удалён.
[-] Исправлен файл avwattak.def, вызывающий редкие вылеты.


Версия 2.2 от 29-го мая.
---------------------
Code:
[+] Добавлена утилита "Стартовое Меню Эры" (Tools\Era Start Menu\start.exe). Она позволяет открывать наиболее
часто используемые запускные файлы, полезные программы и руководства через одиночные щелчки мышкой.
[+] Добавлены функции для перенаправления файлов в игровых ресурсах (fnt, pcx, txt, def, etc.). Местные перенаправления
сохраняются в файлах при записи игр на диск и применяются при загрузке. Всеобщие перенаправления воздействуют на игру до перезапуска приложения.

Era.dll
  RedirectFile        (СтароеИмя, НовоеИмя); STDCALL; // Местное перенаправление файла
  GlobalRedirectFile  (СтароеИмя, НовоеИмя); STDCALL; // Всеобщее перенаправление файла

Используйте пустой аргумент НовоеИмя, чтобы удалить перенаправление. Передайте оба аргумента пустыми, чтобы удалить
все перенаправления.

[+] Добавлена поддержка для сборок объектов для карт. Вместо включения всего zeobjts.txt в сборку создайте новый txt файл, содержащий лишь добавленные объекты, и поместите его под уникальными именем в папку "Mods\YourMod\Data\Objects".
  Пример:
    Mods\YourMod\Data\Objects\сборка новых объектов.txt

[+] Реализовано перенаправление блоков памяти. Модулям Эры, расширяющим оригинальные структуры игры, следует регистрировать каждое перемещение, используя следующую функцию:
  "RedirectMemoryBlock (СтарыйАдрес, РазмерБлока, НовыйАдрес)".
Чтобы получить реальный адрес блока памяти, вызовите функцию "GetRealAddr (СтарыйАдрес)". Команда UN:C была изменена и
теперь автоматически работает с перенаправлениями, так что отсутствует необходимость в ручном вызове GetRealAddr из ERM.

[+] Добавлена поддержка китайского загрузчика. {~color}...{~} преобразуется в {...} до передачи текста
китайскому обработчику.

[+] Добавлена опция "CPUPatch" ("Заплатка на загрузку процессора") в heroes3.ini в связи с редкими жалобами по этой
функции (замедлялась реакция интерфейса).

[+] Добавлены Копейщик, Орк, Дендроид-Солдат и метки пути из проекта HotA.
[+] Добавлен альтернативный редактор шрифтов. Авторы: forum.gamevn.com.
[+] Добавлена утилита Autoit3 (Tools\Autoit\autoit.exe) и shortcut.bat ("создание ярлыков") для инсталляторов.
[+] Добавлена серия исправленных файлов от Bes в hmm35wog.pac.
[+] Добавлен файл apply.bat ("применить") для BinMagic. Аргументы: [Заплатка], [Файл, к которому применить].

[*] cranim.txt был переделан с нуля для более плавной анимации и перемещён в отдельный мод с названием
"Fast Battle Animation" ("Быстрая анимация в бою"). Мод также содержит изначально долгие звуковые файлы, которые
были укорочены.

[*] Заплатка от Jim Vogan для отображения первичных навыков за 99 была изменена. Теперь предел составляет: +127.
[*] Ошибки в файлах *.btn теперь не ведут к вылетам, а вместо этого генерируют уведомительные сообщения.
[*] Era SDK для Паскаля был изменён для лучшей совместимости с компилятором FreePascal. Автор: AVS.
[*] В SDK добавлена функция SaveIni, так как все операции записи в ини кэшируются..
[*] Улучшена поддержка функции FindClose. Больше не будет висячих описателей, созданных FindFirstW.

[-] Журналирование больше не потребляет памяти.
[-] Исправлен баг с сохранением ини-файлов. ERM команды обновляли значения только в памяти.
[-] Исправлена порча отрицательных y-переменных, вызываемая движком Эры.
[-] Исправлены 4 скрипта WoG 3.58f. Авторы: Jim Vogan, SyDr.
[-] Исправлен файл zmess00.txt из оригинальной сборки WoG.
[-] Исправлен баг Эры в команде HE:A3.


Версия 2.1 от 2-го апреля.
----------------------
Code:
[+] Добавлен обновлённый деф катапульты от Валерия. Исправляет вылеты при использовании катапульты
в битве в роли машины войны.

[+] Добавлены исправленные анимированные и обычные WoG-объекты от totkotoriy.
[+] Добавлено "Управление Заплатками" от SyDr. "Tools\Plugins Manager".
[+] Добавлено "Управление Модами" от SyDr. "Tools\Mods Manager".
[+] Исправлен урон башен (бонусы защиты, окаменения и воздушного щита).
"Mods\WoG\EraPlugins\AfterWoG\fix towers damage.bin".

[+] Добавлена заплатка на отображение значений первичных навыков больше 99 от Jim Vogan.
"Mods\WoG\EraPlugins\AfterWoG\display primary skills over 99.bin".
[+] Добавлены 2 функции Эры для проверки присутствия модулей/заплаток:
  FUNCTION PluginExists (Имя: СТРОКА): ЛОГИЧЕСКОЕ; STDCALL; // Присутствует ли модуль
  FUNCTION PatchExists  (Имя: СТРОКА): ЛОГИЧЕСКОЕ; STDCALL; // Присутствует ли заплатка
  
  Пример:
    !!SN:L^era.dll^/?y1 Ay1/^PluginExists^/?y2 Ey2/1/^yona^;
    !!IF&v1=0:M^Заплатка "yona" не загружена!^;

[*] Заплатка "no real time trigger" ("выкл. событие реального времени") теперь отключена по умолчанию.
[*] Мод прокрутки вторичных навыков теперь прокручивает навыки до верхнего предела при выходе из Экрана Героя.
[*] Эра не будет загружать модули и заплатки с размерами <= 4.
[-] Исправлены ошибки в списке событий. SDK/API/Исходники Эры были обновлены.

http://heroescommunity.com/viewthread.php3?TID=37208&PID=1185006#focus


ERA I.9 - Berserker - 15.06.2011 22:40

-) Минимум изменений в исполняемом файле на жёстком диске. Два необходимых патча применяются: отмена CRC-проверок и загрузка era.dll. Все остальные изменения вносятся подгружаемыми модулями (плагинами) и динамическими заплатками.
Статус: готово.

-) Не всегда удобно применять заплатки после выполнения стартового вог-кода. То же самое касается и плагинов. Кроме того, подгрузка библиотек, создание потоков и прочие важны вещи в DllMain зачастую приводят к багам и сбоям, что описано в официальной документации. Следовательно и Эра и её плагины должны инициализироваться уже после загрузки библиотек.

Решение:
Эра загружает плагины до выполнения ВоГ-кода и извещает о событии OnBeforeWoG. После установки ВоГ-заплаток генерируется событие OnAfterWoG. Патчи расположены в двух папках Before/After+WoG. Таким образом сохраняется частичная совместимость со старыми плагинами, если они не вносят изменения в те части кода, которые модифицирует код ВоГа.
Статус: готово.

-) Система плагинов ранее представляла собой просто механизм автоподгрузки библиотек. Теперь каждый плагин получает извещение о каждом новом событии Эры, если экспортирован соответствующий обработчик в формате "OnXXX". Более того, каждый плагин может сам генерировать события и устанавливать для них данные. Эра также использует внутримодульную рассылку сообщений, что унифицирует её дальнейшее развитие. Новые модули просто подписываются на получение определённых событий подобно плагинам.

Статус: готово.

-) Многие плагины устанавливают свои перехватчики кода. Традиционно оправданный подход: низкоуровневый перехватчик на ассемблере, являющийся переходником к высокоуровневой функции. Этот переходник может быть сгенерирован автоматически. Требования к идеальному переходнику:
  • Высокоуровневая функция получает один параметр - контекст:
    Code:
    PHookHandlerArgs = ^THookHandlerArgs;
    THookHandlerArgs = PACKED RECORD
      EDI, ESI, EBP, ESP, EBX, EDX, ECX, EAX: INTEGER;
      RetAddr: POINTER;
    END; // .RECORD THookHandlerArgs
  • Регистры и адрес возврата могут быть изменены. Функция возвращает флаг EXEC_DEF_CODE? (выполнять ли затёртый код).
Итоговая реализация функции перехватчика поддерживает как традиционные перехваты простым call/jmp методом с затиранием NOP-ами мусора, так и новый универсальный перехватчик типа "Мост".

Статус: готово.


RE: ERA. II - Berserker - 15.06.2011 23:00

-) Отладка ЕРМ долгое время была головной болью: постоянные перезагрузки карты после внесения изменений сильно понижали КПД скриптописца. DEE позволяет изменять скрипты в памяти, после чего необходимо произвести сохранение и загрузку, чтобы изменение вступили в силу. Это тоже несколько неудобно и невозможно, если нельзя покидать экран боя, например.

Решение:
Функция ReloadErm перезагружает все скрипты и ert-файлы, проводит повторную компиляцию ЕРМ. Поскольку вызывать из ЕРМ такую функцию нельзя, планируется повесить её на клавишу F12. Из известных ограничений: в карте не должно быть встроенных скриптов или ЕРМ-скрипта с именем карты в папке Maps. Картоделам рекомендуется выкладывать карты в установочных пакетах с полноценными Data\s скриптами.

Статус: готово, но необходима привязка к клавише позже.

-) Разработчикам DL-диалогов тоже приходится несладко. А всё потому, что однажды загруженные txt-файлы кэшируются. Более того, у каждого ресурса есть счётчик ссылок. Код ВоГа при каждой необходимости вызывает функцию загрузки, но никогда не освобождает ресурс. Таким образом счётчик ссылок лишь растёт.

Решение:
Функция силовой отгрузки тхт-файла с игнорированием счётчика ссылок. В этом случае выполнение DL:N приведёт к подгрузке файла с диска заново.

Статус: готово.

-) Можно ли разработать полноценный плагин, без доступа к богатой коллекции ЕРМ-функций? Вряд ли. До текущего дня имелось два решения. Первое использовано в ВоГ 3.59 - клонированная функция FindErm натравляется на строку. Наглядный минус - функция крайне тяжеловесна. Второй вариант - использование плагина ExecErm с хранением команд ЕРМ в скрипте и вызовом их по номеру. Из преимуществ - быстрота вызова. Из минусов - необходимость иметь эти команды в файле и следить за верностью порядковых номеров.

Решение:
Функция ExecErmCmd призвана выполнить команду ЕРМ в урезанном формате: без условий и типа команды. Пример: "HEv1/v2/v3:C0/0/-1/?v4;". Компиляция производится собственными средствами, что даёт выигрыш в скорости по сравнении с полновесным ЕРМ-вариантом. С другой стороны, каждый вызов команды кэшируется в быстром ассоциативном массиве. Последующий вызов приведёт к выполнению готовых данных из кэша. Размер кэша ограничен 16384 командами, после чего кэш очищается. Ограничение искусственное и введено с целью не дать занять слишком много оперативной памяти в случае использования уникальных команд в цикле: "!!VRv1:S1; !!VRv1:S2...".

Ограничения: не работает GE/CЕ команды, привязанные к карте. Их поддержка требует некоторого усложнения в силу того, что ЕРМ запоминает указатели на структуры этих событий.

Статус: готово.


RE: ERA II - Berserker - 23.06.2011 16:13

-) Функции из библиотеки zvslib1.dll для работы с ini-файлами известны своей медлительностью. На это есть несколько причин:
  • Потенциально невысокая скорость лексического анализа файла
  • Полные считывание и анализ файла при каждом запросе.
  • Запись служебной информации отдельной операцией при каждом запросе.
Решение:
Все функции перехвачены. Реализация, включая анализ содержимого, своя. Файл кэшируется и все операции по чтению работают с быстрым ассоциативным массивом в памяти. Запись сохраняет файл без служебной информации, но происходит всегда, так как нет гарантии, что игра завершится без сбоев, а данные должны быть сохранены.

Статус: готово.

-) Скорость загрузки игры до показа стартового видео крайне велика и обычно составляет 4 или более секунд. После профилировки выяснилось, что время уходит на код работы с CD, где чётко прописаны задержки в 3 секунды после неудачного вызова функций проверки.

Решение:
Поскольку большинство играют без CD, написан патч для памяти, в результате чего загрузка происходит почти мгновенно.

Статус: готово.

-) Использование более высоких разрешений, чем 800х600 проблематично из-за того, что центрирование DL-диалогов в WoG 3.58 использует константы 800 и 600 и, как следствие, работает неправильно.

Решение:
Перехватчики установки констант получают настоящие размеры клиентской области окна и подменяют ими значения констант.

Статус: готово.


RE: ERA II - Berserker - 26.06.2011 00:26

-) Реализация цветных текстов впервые появилась в ЭРЕ 1.5. Однако даже последняя версия обладает существенными недостатками:
  • Нет защиты от ошибок в коде цвета.
  • Необходимо указывать уже переведённый 16-битный цвет вместо привычного 32-битного.
  • Нет строковых синонимов для основных цветов. То есть нельзя писать {red} (красный).
  • Приходится вручную включать опцию цветных диалогов или предварять текст символом "~".
  • Невозможно смешивать цветной текст и обычный.
  • Закрывающий тег не учитывает накопленных открытых и возвращает текст к белому, хотя должен возвращать к предыдущему цвету.
Решение:
Исправить все указанные недостатки, сделав автоматическую обработку цветного текста в любых диалогах игры. С целью полной совместимостью со стандартным оформлением через {...} новые теги имеют вид "{~шестнадцатеричный код или название цвета}...{~}". Поддерживается определение новых синонимов цветов или переопределение старых через специальное АПИ. По умолчанию зарегистрированы 147 названий общепринятых цветов. Поддерживаются DL-диалоги.

Статус: готово.

Демонстрация:



RE: ERA II - Berserker - 29.06.2011 21:17

   Перенос закончен. В релиз 1.9 входят вышеуказанные особенности при сохранении полной совместимости с версией 1.8 за исключением цветных текстов (они стали лучше).
   F12 выполняет функцию перезагрузки erm/ert и повторной компиляции на лету.


RE: ERA II - hippocamus - 29.06.2011 22:07

Ждём версии 2!!! Нужны плагины до загрузки игры!


RE: ERA II - Berserker - 29.06.2011 23:35

hippocamus, уже в 1.9 плагины с расширением *.era полностью под написанное в первом посте этой темы попадают.


RE: ERA II - Berserker - 01.07.2011 04:35

Осторожно, пол метра трафика! Spiteful



RE: ERA II - Sav - 01.07.2011 10:47

Здорово. Это будет в новой Эре?


RE: ERA II - FallenAngel - 01.07.2011 11:00

А что там с координатами кнопочек в левом нижнем углу?


RE: ERA II - gamecreator - 01.07.2011 12:12

Всегда мечтал о показе урона. При подсчете сколько убьет учитываются неполные хп цели?


RE: ERA II - Berserker - 01.07.2011 14:20

Quote:Здорово. Это будет в новой Эре?
Да, в 1.9, которую готовлю к релизу.

Quote:А что там с координатами кнопочек в левом нижнем углу?
Это из-за Феникса, не обращайте внимания.

Quote:Всегда мечтал о показе урона. При подсчете сколько убьет учитываются неполные хп цели?
Конечно. Код на скорую руку:
Code:
!?MM;
!!SN:X?y1/?y2/?y3/?y4;
!!FU&y2=-1:E;
!!BMy2:H?y5 L?y6 N?y7;
!!VRy8:Sy5-y6;
!!VRy9:Sy3:y5;
!!VRy10:Sy3%y5;
!!VRy9&y10>=y8:+1;
!!VRy11:Sy4:y5;
!!VRy12:Sy4%y5;
!!VRy11&y12>=y8:+1;
!!VRy13:Sy5*y7-y6;
!!VRy9&y9>y7:Sy7;
!!VRy11&y11>y7:Sy7;
!!IF:V2/0;
!!IF&y9=y11:V2/1;
!!IF:V3/0;
!!IF&y9=y7:V3/1;
!!VRz2:S^%Y3-%Y4^;
!!VRz2&y3=y4:S^%Y3^;
!!if&3:;
  !!VRz1:S^Damage: %Z2. {~Yellow}FATALITY{~}^;
!!el:;
  !!VRz1:S^Damage: %Z2. Kills: {~Yellow}%Y9-%Y11{~}^;
  !!VRz1&2:S^Damage: %Z2. Kills: {~Yellow}%Y9{~}^;
!!en:;
!!MM:Mz1;



RE: ERA II - Berserker - 01.07.2011 16:37

-) Глобальные параметры событий есть зло. Сделаем локальные! Отныне Эра экспортирует две функции SaveEventParams и RestoreEventParams, между которыми должны находится установка параметров события (для SN:X) и генерация ЕРМ события. Все стандартные события уже локальны, так что бояться порчи SN:X параметров больше не нужно.
-) Надоело искать самый свежий сейв при запуске игры вручную? Эра находит и выделяет его за вас. Так что: L-S-Enter и продолжаем играть.
-) Люди жалуются на ошибки в скриптах? Допрос не приносит успеха? Скачайте сейв, нажмите F11 и все скрипты из него у вас в Data\s\ExtractedScripts! А F12 на лету подгрузит скрипты из Data\s и проведёт перекомпиляцию ЕРМ. Продолжайте играть с обновлёнными скриптами!


RE: ERA II - feanor - 01.07.2011 18:02

Quote:Нужны плагины до загрузки игры!
Как раз из-за этой радости придется оставлять 1.8. Если грузить плагин до загрузки воговских патчей, то дллки на артефакты и существа пролетают со свистом.


RE: ERA II - Berserker - 01.07.2011 18:18

   Плагины можно писать в старом и новом стиле. Совместимость сохраняется. Старые грузятся как раньше и имеют расширение *.dll. Новые грузятся до ВоГа и могут экспортировать функции с именами событий, на которые они хотят подписаться (так как выполнять код в DllMain идеологически неверно). В функции OnBeforeWoG меняем до вога, а в функции OnAfterWoG - после.
   Новые плагины сами могут генерировать события. Например, сообщение из чата. Плагин вызывает FireEvent('OnChatMsg', адрес данных, размер данных) и все, кто экспортирует функцию "OnChatMsg" смогут обработать событие.


RE: ERA II - feanor - 01.07.2011 20:13

Quote: все, кто экспортирует функцию "OnChatMsg" смогут обработать событие.
Особо регистрировать не надо?

Какие будут события?
Хотелось бы, конечно, увидеть реализацию всех триггеров ВоГа (:


RE: ERA II - Berserker - 01.07.2011 20:29

   Если бы писалась 2.0 с потерей совместимости, то все события Эры 1.8 + новые, а так только OnBeforeWoG/OnAfterWoG + те, что будут добавляться плагинами для других плагинов. Вызов прост: имя события, адрес, где лежат параметры и размер параметров в байтах (могут быть NIL|NULL, 0).
   Особо регистрировать не надо, но нужно экспортировать функцию чётко по имени. С сишными компиляторами нужны пляски с бубном в виде EXTERN "C" + своего def-файла (получилось на DevC++), чтобы функция не получила префиксов, постфиксов или чего похуже. С паскалем проще. Там пишешь exports MyFunc и спишь спокойно.
Quote:Хотелось бы, конечно, увидеть реализацию всех триггеров ВоГа (:

   Есть ЕРМ. 1 скрипт в виде множества !?xx перенаправит триггеры на dll, а та может вещать события для всех плагинов.
   Да, ЕРМ из dll использовать легко.
Code:
ExecErmCmd('IF:Lz1;');

   Для СИ/СИ++
Code:
void* Cmd = AllocEraStr('IF:Lz1;');
ExecErmCmd(Cmd);
FreeEraStr(Cmd);



ERA II - Berserker - 01.07.2011 21:15

Блин, хайрез портит цвета. То ли он неправильно переводит 16-битный цвет, то ли просто использует 32-битный.


RE: ERA II - feanor - 01.07.2011 21:16

Quote: Есть ЕРМ.
Вогификация отключаема (я, в частности, зачастую играю без неё). Собственно, из-за этого я не люблю гибриды типа "библиотеки+скрипты"
Quote:Да, ЕРМ из dll использовать легко.
Читал. Правда, смутило кэширование - значит ли это, что выполнение, скажем, команды типа !!HE111:I?y1 будет возвращать один и тот же результат (ну, по крайней мере, до очистки кэша) независимо от реального количества маны?


RE: ERA II - Berserker - 01.07.2011 21:45

Quote:Вогификация отключаема (я, в частности, зачастую играю без неё). Собственно, из-за этого я не люблю гибриды типа "библиотеки+скрипты"
Отключать на платформе скрипты неразумно (проще удалить все ненужные или стандартные), они такое же средство расширения игры, как и плагины. При этом скрипты хранятся в сейве, легче меняются и уже давно применяются.

Quote:Читал. Правда, смутило кэширование - значит ли это, что выполнение, скажем, команды типа !!HE111:I?y1 будет возвращать один и тот же результат (ну, по крайней мере, до очистки кэша) независимо от реального количества маны?
Кэш в плане того, что команда уже скомпилирована и не нужен повторный синтаксический анализ.


RE: ERA II - feanor - 01.07.2011 22:04

Quote:Отключать на платформе скрипты неразумно (проще удалить все ненужные или стандартные), они такое же средство расширения игры, как и плагины. При этом скрипты хранятся в сейве, легче меняются и уже давно применяются.
Ну, я неразумен (:

Впрочем, вроде нашел б/м приемлемую альтернативу:
хук на 0074C816 - вызов функции по номеру;
взятие номера из [27C1950]
сравнение с зарезервированными номерами.

Заодно и вызов длл из скриптов облегчить можно.
Правда таймер реального времени такая гадость..

Quote:Кэш в плане того, что команда уже скомпилирована и не нужен повторный синтаксический анализ.
ага, понятно


RE: ERA II - Berserker - 02.07.2011 00:11

Quote:Впрочем, вроде нашел б/м приемлемую альтернативу:
Угу, перехват ProcessErm. Единственная рутина - полноценный перехват должен ещё параметры для каждого события вытаскивать, хотя их можно и через ЕРМ получить, в принципе.

Quote:Правда таймер реального времени такая гадость..
Для отладки Sm


RE: ERA II - feanor - 02.07.2011 00:47

Quote:Для отладки
Просто если транслировать каждый его вызов - это ж ппц будет.

Quote:полноценный перехват должен ещё параметры для каждого события вытаскивать
Какие параметры? В ресиверах же нет параметров. Или речь о том, чтоб сообщать, мол, не просто вызван триггер AE, а еще и v998/999 передавать в параметрах для функции?


RE: ERA II - Berserker - 02.07.2011 01:26

Для любого события есть много параметров. У щелчка мышкой это CM:IFS (место щелчка, нажатые кнопки, статус кнопок, включена ли стандартная реакция) и другие. Но их можно получить через динамическое выполнение ЕРМ, так что не проблема. А таймер реального времени не так и страшен, ведь он кратен секундам.


RE: ERA II - gamecreator - 02.07.2011 01:43

(01.07.2011 21:15)Berserker Wrote:  Блин, хайрез портит цвета. То ли он неправильно переводит 16-битный цвет, то ли просто использует 32-битный.
32-битный.


RE: ERA II - Berserker - 02.07.2011 13:37

Да нет, цвет заносится в два байта при обработке, значит конвертация на лету. Такое ощущение, что схалтурили и, поскольку цветов текста было всего три, прописали жёстко.


RE: ERA II - Berserker - 03.07.2011 01:20

По хайрезу был не прав. Бараторч подсказал решение. Изменение масок цвета позволяет игре полноценно воспринимать формат r5g6b5.


RE: ERA II - gamecreator - 03.07.2011 01:24

Т.е. в оригинальных героях 5-5-5-1, а в хайрезе 5-6-5?


RE: ERA II - Berserker - 03.07.2011 01:28

Есть три переменные, в которых содержатся маски цветов. Стандартные маски 5-5-5, а хайрезовы: 5-6-5. Решение - установить режим 5-6-5 и не париться.


RE: ERA II - hippocamus - 03.07.2011 01:50

(03.07.2011 01:20)Berserker Wrote:  r5g6b5.

Я думал, этот формат уже канул в небытие...


RE: ERA II - Berserker - 03.07.2011 03:13

Да нет. Если цвет 16-битный, то возникает вопрос, каким цветам дать биты. Можну поровну, тогда один из битов пропадает. А можно зелёному на 1 больше, ведь зелёный глаз человека воспринимает сильнее.


RE: ERA II - Berserker - 03.07.2011 18:55

   Упс. Просто подмена масок ничего не даёт. Поэтому сделал оперативную проверку режима и соответственно динамический выбор функции преобразования цвета. Заодно и событие "OnNameColors" родилось.
   Задумался о предложении Феанора. Ведь написать скрипт чисто в dll действительно удобно. Так что буду копать в область вещания событий в стиле: "!?CM2".
   Ну и по ходу пишу утилиту для работы с бинарными патчами. Перегон туда-обратно, оптимизация (после того, как увидел бинарники мора Sm ) и редактирование тегов.


RE: ERA II - Berserker - 03.07.2011 19:06

В таком случае придётся ради сохранения скорости перейти к регистрации обработчиков событий. RegisterEventHandler(Name, Handler);


RE: ERA II - Berserker - 05.07.2011 17:57

Пример скрипта, реализованного полностью через DLL:
Code:
BEGIN
  GameExt.RegisterHandler(TestScript, 'OnHeroScreenMouseClick');
END.

Image: original.png


RE: ERA II - FallenAngel - 06.07.2011 09:52

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


RE: ERA II - hippocamus - 06.07.2011 12:02

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


RE: ERA II - Berserker - 06.07.2011 15:16

   Можно обернуть многие ЕРМ команды в высокоуровневые функции, чтобы работать без прямого доступа к ЕРМ-переменным.


RE: ERA II - feanor - 07.07.2011 19:16

Хорошо..теперь можно уменьшить количество костылей.
Заодно будет забава: нечего делать - пиши хедер к героям (:


RE: ERA II - Berserker - 08.07.2011 02:40

-) Известно, что если хотя бы один плагин пишет свои данные в сохранёнку, то меняется формат файла, появляется несовместимость с другими плагинами, разными версиями одного плагина, разными версиями тех. платформ и т.д. А писать данные хочется, ведь вести учёт ЕРМ переменным универсально невозможно.

Решение:
Эра больше не пишет ничего сырыми данными (ранее - опции), а также предоставляет АПИ для записи/чтения в сохранение в раздел с определённым именем/ключом:
Code:
PROCEDURE WriteSavegameSection (DataSize: INTEGER; {n} Data: POINTER; CONST SectionName: STRING); STDCALL;
FUNCTION ReadSavegameSection (DataSize: INTEGER; {n} Dest: POINTER; CONST SectionName: STRING): INTEGER; STDCALL;
Соответственно поддерживается запись и чтение кусками. Так что авторы разных модов/плагинов должны лишь обеспокоиться уникальными именами для своих разделов. Совпадения маловероятны и несложно правятся.

Статус: готово.


RE: ERA II - NoldI-LoRdEs - 10.07.2011 16:48

Просто отличные улучшения!А разработка сей замечательной вещи на финишной прямой или будут еще добавляться функции?


RE: ERA II - Berserker - 10.07.2011 16:54

Уже закончена предварительно. Дело за 1-2 утилитами, инсталлятором, справочником и тестированием.


RE: ERA II - etoprostoya - 10.07.2011 18:39

Без справочника и пары туториалов по утилитам и новым возможностям будет не гуд. А за тестированием дело не станет.


RE: ERA II - MaGoth - 10.07.2011 18:58

Думаю что смог бы помочь с версткой справочника, главное чтобы было что верстать... 118


RE: ERA II - Berserker - 10.07.2011 19:17

Спасибо, возможно воспользуюсь предложением.
etoprostoya, понял 118


RE: ERA II - Berserker - 10.07.2011 20:02

Создал текстовый файл заплатки на разницу между heroes3hd и h3te, тестируя программу BinMagic. Бараторч умеет защищать вещи (200 кб):



RE: ERA II - feanor - 12.07.2011 16:47

А можно разделить папки дллок и патчей?


RE: ERA II - Berserker - 12.07.2011 17:37

Были разделены в 2.0, но это бы нарушило совместимость с 1.8х. Поэтому остались в одной. Старые заплатки. Новые ищутся в EraPlugins\BeforeWoG и EraPlugins\AfterWoG, то есть разделение по времени применения.


RE: ERA II - MOP - 12.07.2011 20:33

(03.07.2011 18:55)Berserker Wrote:     Ну и по ходу пишу утилиту для работы с бинарными патчами. Перегон туда-обратно, оптимизация (после того, как увидел бинарники мора Sm ) и редактирование тегов.
Для бинарников для памяти - не знаю, сколь важно, для exe - почти без разницы. У меня самый большой бинарник экзешника весит 113 Кб и включает 9764 патча. И ничего - с помощью батника BinGen.exe сначала генерит патчи, потом ExeBuilder.exe патчит экзешник, и всё это вкупе с остальными 114-ю немаленькими бинарниками... за секунду.
А сразу к BinGen.exe прилепить оптимизатор не выйдет? Исходники того тоже потеряны?


RE: ERA II - Berserker - 12.07.2011 20:44

Исходники есть в твоей поставке эры. BinGen.pas.

Для исполняемого файла, конечно, не важно, а вот для памяти значение имеют:
-) Последовательность применения заплаток. Чтобы процессору не приходилось каждый раз обновлять кэш, пока мы скачем то по верхним, то по нижним адресам.
-) Множество отдельных вызовов функции WriteAtCode для пары байт не так эффективно, как вызов единожды для всего смежного блока. Поэтому оптимизатор объединяет смежные блоки.

Quote:А сразу к BinGen.exe прилепить оптимизатор не выйдет? Исходники того тоже потеряны?
Я уже третий день добиваю BinMagic. Функционал шире, тоже консольная. Зацени, например:
Code:
BinMagic.exe
    Cmd=ConvertPatch
    SourcePatch="C:\Patches\*.bin"
    ResultPatch="D:\JoinedPatch.txt"
    PatchFor=File
    AddrConverter=WoG.dll
    Optimize
"Возьми-ка двоичные заплатки из папки, объедини, преобразуй адреса для применения к файлу (часть заплаток может быть для памяти), оптимизируй и сохрани в виде форматированного исходника."


RE: ERA II - Berserker - 13.07.2011 04:21

Узнать, что именно бараторч меняет в исполняемом файле жёстко:
Code:
BinMagic.exe ^
    Cmd=MakePatch ^
    OrigFile="c:\Phoenix\Phoenix III.5.exe" ^
    ModifiedFile="c:\Phoenix\Phoenix III.5.exe_HD.exe" ^
    ResultPatchType=Text ^
    ResultPatch="c:\Phoenix\Bara.doc" ^
    PatchFor=Memory ^
    AddrConverter=WoG ^
    Optimize ^
pause

Результат:

Code:
; Applies to = Memory
; Generator  = BinMagic
00495590 C20400609C68AD55490090FF15FCA163009D6168FCF96700E9262B0600486952657A2E646C6C00
004F80CE E9C0D4F9FF



RE: ERA II - Berserker - 13.07.2011 04:57

Помощь:
Code:
>> Command line syntax: Key1 Arg1Name=Arg1Value "Arg 2 Name"="Arg 2 Value" Key2
>> Keys differ from arguments in that they don't have values

TYPES
  TPatchType  = (Text, Binary, Autodetect); DEFAULT "Autodetect";
  >> Autodetect bases on file extension (txt - for Text, other - for Binary)


ARGUMENTS
  Cmd             = (ConvertPatch, MakePatch, ApplyPatch); COMMAND;
  SourcePatch     = [Path to source patch. If mask is specified then all found patches are joined into single one];
  >> Example: "C:\Program Files\Patches\r*.txt"
  SourcePatchType = TPatchType;
  ResultPatch     = [Path to result patch file];
  >> Example: "D:\Res.bin"
  ResultPatchType = TPatchType;
  OrigFile        = [Path to the original file];
  ModifiedFile    = [Path to the modified version of original file];
  Patch           = [Path to the single patch];
  ApplyTo         = [Path to file to which the patch will be apply to];
  ToleranceDist   =
  [
    If the distance between two closest patches is less or equal to this value,
    the whole range of bytes will be treated as changed part.
    Example: abxc => 12x3. [12]x[3] => [12x3]
  ]; DEFAULT "7";


OPTIONS
  PatchFor      = (Memory, File); REQUIRES AddrConverter;
  AddrConverter =
  [
    Path to dynamic library which implements the following interface.
    <<
    SetPatchDomain (Domain: INTEGER(0 - File, 1 - Memory)); STDCALL;
    ConvertAddr (OrigAddr: INTEGER): INTEGER; STDCALL;
    >>
  ]; DEFAULT "DefaultAddrConverter.dll";


COMMANDS
  ConvertPatch  (SourcePatch, SourcePatchType, ResultPatch, ResultPatchType);
  MakePatch     (OrigFile, NewFile, ResultPatch, ResultPatchType, ToleranceDist);
  ApplyPatch    (Patch, PatchType, ApplyTo);


KEYS
  Optimize  = [Performs sorting patch blocks by addresses in ascending order and joins sequential blocks];
  StripTags = [Removes all tags from text patch];


EXAMPLES
  BinMagic.exe
    Cmd=MakePatch
    OrigFile="C:\First.exe"
    NewFile="C:\Second.exe"
    ResultPatch="C:\FirstToSecond.txt"
    ResultPatchType=Text
    PatchFor=Memory

  BinMagic.exe
    Cmd=ConvertPatch
    SourcePatch="C:\Patches\*.bin"
    ResultPatch="D:\JoinedPatch.txt"
    PatchFor=File
    AddrConverter=WoG.dll
    Optimize

Версия для тестирования:
ptth://wogarchive.ru/BinMagic%20v1.0%20Private.%20Prerelease.%20wforum.heroes35.net.rar


RE: ERA II - NoldI-LoRdEs - 13.07.2011 09:18

Ошибка в ссылке есть,вы 4 букву с 1-ой перепутали.
//Это для защиты от поисковиков


RE: ERA II - gamecreator - 13.07.2011 10:43

что-то я не понял что такое ToleranceDist


RE: ERA II - MOP - 13.07.2011 13:02

(12.07.2011 20:44)Berserker Wrote:  Исходники есть в твоей поставке эры. BinGen.pas.
Нет, нету. Только исходники Angel.dll
(12.07.2011 20:44)Berserker Wrote:  Для исполняемого файла, конечно, не важно, а вот для памяти значение имеют:
-) Последовательность применения заплаток. Чтобы процессору не приходилось каждый раз обновлять кэш, пока мы скачем то по верхним, то по нижним адресам.
-) Множество отдельных вызовов функции WriteAtCode для пары байт не так эффективно, как вызов единожды для всего смежного блока. Поэтому оптимизатор объединяет смежные блоки.
Так и думал.

(12.07.2011 20:44)Berserker Wrote:  Зацени, например:
Code:
BinMagic.exe
    Cmd=ConvertPatch
    SourcePatch="C:\Patches\*.bin"
    ResultPatch="D:\JoinedPatch.txt"
    PatchFor=File
    AddrConverter=WoG.dll
    Optimize
"Возьми-ка двоичные заплатки из папки, объедини, преобразуй адреса для применения к файлу (часть заплаток может быть для памяти), оптимизируй и сохрани в виде форматированного исходника."
Ага, киллэмолльно. 109

Вроде новая ЭРА пишется на Паскале, как и прежняя? Если да, и исходники будут иметь ту же форму - более или менее ОК. А иначе... Просто мне 1.8-то пришлось попилить в нескольких местах:
1. сменить место паре хуков (регенерация Троллей и вопрос о загрузке игры),
2. ввести поддержку фаст- и w-переменных,
3. убрать триггер на встречу героев (не работает при встрече через Врата Подземного Мира и наверняка в Монолитах) и сделать свой,
4. изменить путь к плагинам и самой Angel.dll,
5. ...было что-то.


RE: ERA II - hippocamus - 13.07.2011 13:55

Эх, МОР, зачем ты это делаешь?
Не модифицируя Эру нельзя было это заплатками исправить?
Это ведь выльется в несовместимость твоего мода с большинством остальных.


RE: ERA II - Berserker - 13.07.2011 15:33

BinGen

Quote:Ага, киллэмолльно.
Аки Маяковски )

Quote:Вроде новая ЭРА пишется на Паскале, как и прежняя? Если да, и исходники будут иметь ту же форму - более или менее ОК. А иначе...
Вот тут-то и нет. Я ближе к лету закончил первую версию своей полторагодней работы, в ходе которой я уже давно перешёл на Delphi и наработал свою систему модулей с довольно богатыми возможностями. Именно поэтому я так налево и направо использую списки, ассоциативные массивы, генерацию строк по шаблонам...Код гораздо более высокого уровня (да и стиль у меня ужесточился с момента релиза 1.5).

Однако при попытке сделать среднее из 1.8 и 2.0 с целью сохранить совместимость, я пришёл ко многим трудностям переноса кода из Virtual Pascal, поэтому отдельно поправил Эру 1.8, а новую библиотеку включил полностью вторым файлом.

Если хочешь, пока ещё есть время до релиза, можем объединить усилия по наведению совместимости:
1) Если у тебя есть лучший вариант, напиши, я исправлю.
2) Добавлю.
3) Нужен этот свой триггер.
4) Тут папка старая, ибо совместимость, а Angel.dll и Era.dll должны находиться в корне.
5) Вспоминай.

Касаемо исполняемого файла, то нужен 1 жёстко прошитый патч (загрузка Era.dll), а всё остальное через динамические заплатки или как там тебе удобнее.

Естественно, перенос имеет ещё несколько тонкостей. Например, новые события должны вызывать SaveEventParams ... RestoreEventParams вокруг генерации ЕРМ триггера, чтобы тот имел свою копию параметров !!SN:X (все события Angel.dll - Era.dll так и поступают теперь). Это значит, что вызов триггера из триггера безопасен.

Что ещё я вчера наметил, после очередного бага, связанного с событием от клавиатуры, так это сохранение y-переменных для всех событий вога, а не только для функций, вызванных через FU:P/DO:P. Потому что предполагается, что y-переменные другие события испортить не могут, а они уверенно их портят.

Quote:что-то я не понял что такое ToleranceDist
Расстояние терпимости:
abxd => 12x4.
По идее, "x" не поменялась, а значит не должна быть включена в патч:
[12]x[4], но скорее всего она просто случайно совпала с оригиналом или ты не хочешь плодить кучу мини-патчей с большим размером из-за накладных данных, поэтому ты говоришь, что расстояние в 1 символ между двумя изменениями терпимо и его тоже нужно записать в изменения. В итоге патч будет включать весь блок: [12x4]. Значение по умолчанию - 7 - наиболее эффективно с точки зрения экономии места в файле. Ведь каждый мини-патч съедает ещё 8 байт на адрес и размер.


RE: ERA II - gamecreator - 13.07.2011 16:10

(13.07.2011 15:33)Berserker Wrote:  По идее, "x" не поменялась, а значит не должна быть включена в патч
все, понял. это при генерации файла различий между двумя ехе


RE: ERA II - feanor - 13.07.2011 17:12

Quote:Это ведь выльется в несовместимость твоего мода с большинством остальных.
Дак, каг бе, таковой и так не будет. Вот в одной папке МоР и что-то-там еще уживаться вроде смогут


RE: ERA II - Berserker - 13.07.2011 19:12

Просто, учитывая возможности Эры 1.9 в плане, наконец, развязанных рук у плагинов, не хотелось бы видеть МОР в будущем на старой версии, хотя мастер, имхо, зря пошёл дорогой необратимости. Проще было раньше согласовать.


RE: ERA II - Berserker - 13.07.2011 23:57

Добавил 7 однобуквенных комбинаций для распространённых цветов. Триггеры сохраняют y-переменные, что уменьшает кол-во конфликтов и ошибок в скриптах.


RE: ERA II - hippocamus - 14.07.2011 00:04

"Однобуквенная комбинация" - звучит грозно! Sm


RE: ERA II - gamecreator - 14.07.2011 00:33

а почему только 7, а не 8?


RE: ERA II - Berserker - 14.07.2011 00:38

Code:
    NamedColors['r']                                        :=    NamedColors['Red'];
    NamedColors['g']                                        :=    NamedColors['Green'];
    NamedColors['b']                                        :=    NamedColors['Blue'];
    NamedColors['y']                                        :=    NamedColors['Yellow'];
    NamedColors['w']                                        :=    NamedColors['White'];
    NamedColors['o']                                        :=    NamedColors['Orange'];
    NamedColors['p']                                        :=    NamedColors['Purple'];


hippocamus, правильнее: однобуквенные синонимы цветов Sm


RE: ERA II - hippocamus - 14.07.2011 00:41

NamedColors['a'] := NamedColors['Aqua'];

!!! Пожалуйста!


RE: ERA II - gamecreator - 14.07.2011 00:47

а я-то думал пресловутые RGBWCMYK


RE: ERA II - etoprostoya - 14.07.2011 01:32

Лучше вместо "Aqua" - "Cyan".


RE: ERA II - feanor - 14.07.2011 01:56

Вспомнилось из счастливого детства..
Можно ли не грузить плагины/патчи, чьи имена начинаются со, скажем, знака подчеркивания ("_")?


RE: ERA II - Berserker - 14.07.2011 04:16

Quote:NamedColors['a'] := NamedColors['Aqua'];
!!! Пожалуйста!
Так это, никто же не запрещает плагинам регистрировать имена и переопределять имеющиеся в событии OnNameColors. Так что, Cyan или Aqua?

Quote:а я-то думал пресловутые RGBWCMYK
K = black = 0. А ноль и кодом удобно: {~0}

feanor, а не проще ли им расширение менять батником? Потому что очень уж специфично выходит. Не люблю перегрузку символами, где можно сделать явно.

Продолжаем игру на 1.9, всё стабильно. Начал делать переходники для Паскаля и СИ++ под гордым названием SDK. Обнаружил пару проблем в BinMagic, постараюсь решить. Пару патчей сделал.


RE: ERA II - MATRASUS - 14.07.2011 09:22

Когда планируете выкладывать на вогархив? На сколько % завершена работа над 1.9?


RE: ERA II - etoprostoya - 14.07.2011 10:45

Боже мой, и здесь эти вопросы.

Берсеркер, нужно организовать утечку альфы!


RE: ERA II - hippocamus - 14.07.2011 13:29

Конечно Aqua. На тёмном фоне героев Cyan будет смотреться очень блекло.


RE: ERA II - gamecreator - 14.07.2011 14:13

hippocamus, учитывая, что aqua=cyan, этопростоон тебя нагло троллит


RE: ERA II - Berserker - 14.07.2011 14:47

Угу. Я думал, вы спорите, какую из букв использовать: "a" or "c".

Quote:Когда планируете выкладывать на вогархив? На сколько % завершена работа над 1.9?
Когда будет готова. Над тех. частью на 90-95%, в зависимости от того, успеет Мор появиться, или нет.


RE: ERA II - Berserker - 14.07.2011 17:06

Кстати, исходники EVME у меня есть, но они были написаны в самом начале деятельности, а потому состоят сплошь и рядом из редкостного говнокода и копипасты на 1437 строк, не включая вспомогательных модулей. Под Virtual Pascal.


RE: ERA II - Berserker - 14.07.2011 17:54

Добавил поддержку w, f..t переменных для команд SN:X.


RE: ERA II - Sav - 14.07.2011 20:46

Можно ли будет в одном плагине сделать часть кода выполняющуюся перед воговским и часть - после? Важно, что в этом плагине хранится большой объём данных, которые должны быть доступны в обеих частях кода.


RE: ERA II - Berserker - 14.07.2011 21:00

Конечно можно. Назначить два обработчика: OnBeforeWoG, OnAfterWoG.
Сейчас пишу SDK для Virtual Pascal / Delphi, заодно баг один поправил.


RE: ERA II - Sav - 14.07.2011 21:59

В общем, я сделал плагин подгрузки lod`ов, указанных в параметрах командной строки. Только для него нужна Era 1.9, т. к. правится воговский код.
Если мне сегодня на пальцах объяснить, как сделать плагин для Эры 1.9, я выложу готовый вариант. В противном случае - только через месяц.


RE: ERA II - Berserker - 14.07.2011 22:14

Вот тебе пальцы: multiupload.com/C93Z8CTWCG
Регистрируешь две процедуры: OnBeforeWoG и OnAfterWoG с одноимёнными событиями.


RE: ERA II - Berserker - 14.07.2011 22:20

И exe феникса для запуска: http://www.multiupload.com/7FLSY20DUH
Готовый плагин кидай в EraPlugins с расширением .era
Плагин проверен на Virtual Pascal и Delphi.


RE: ERA II - hippocamus - 14.07.2011 22:29

Я так понимаю, релиза Эры 1.9 не будет, ввиду того, что готовится выпуск Эры 2, в которой всё реализовано достойнее?


RE: ERA II - Berserker - 14.07.2011 22:39

Да нет, будет релиз 1.9, а на 2.0 времени нет, да и несовместимость вряд ли многим бы понравилась. Вторая версия писалась с нуля на Delphi и идёт библиотекой Era.dll. Объединение версий 1.8 + 2.0 дало 1.9 и с совместимостью со всем старым (есть нюансы) и с поддержкой новых патчей/плагинов.


RE: ERA II - Sav - 14.07.2011 23:07

Грубо говоря, вот такой код:
Code:
USES Era;

PROCEDURE OnBeforeWoG(Event: PEvent); STDCALL;
BEGIN

END;

BEGIN
RegisterHandler(OnBeforeWoG, 'OnBeforeWoG');
END.
Вызывает:
"Приложению не удалось запуститься, поскольку .dll не был найден. Повторная установка приложения может исправить проблему."

Что я делаю не так?


RE: ERA II - Berserker - 14.07.2011 23:08

Для компиляции нажми Build, а не Make или Compile.
И запускай с ехе Феникса.


RE: ERA II - Sav - 14.07.2011 23:15

Спасибо, теперь работает. Сейчас раскидаю ресурсы по 12-ти lod`ам, проведу последний тест и выложу.


RE: ERA II - Berserker - 14.07.2011 23:22

Ок. Исходники не забудь, если там не много рутины, можно будет сделать автоподгрузку всех лодов из папки.


RE: ERA II - Sav - 14.07.2011 23:44

Ссылка удалена. Далее в теме исправленная версия.

Параметры писать в таком формате: /X.lod. Параметров должно быть не меньше 2-ух и эти лоды должны существовать (не знаю, почему, раньше, когда я менял воговский код в процессе выполнения, всё было нормально. Сейчас попробую разобраться, но не факт что успею, поэтому выкладываю сырой вариант).


RE: ERA II - Berserker - 14.07.2011 23:48

Спасибо!


RE: ERA II - Sav - 15.07.2011 00:05

В общем, найти ошибку мне не удалось, вернусь к этому через месяц. Но, в общем, если всё сделать правильно, оно всё равно работает. Sm

Да, и ещё по-идее без параметров грузятся только H3bitmap.lod и H3sprite.lod, все остальные не грузятся. Правда, в связи с вышеуказанными багами я не могу сказать точно, что там на самом деле происходит. Sm


RE: ERA II - hippocamus - 15.07.2011 00:23

(14.07.2011 23:22)Berserker Wrote:     если там не много рутины, можно будет сделать автоподгрузку всех лодов из папки.
лучше тогда сделать ещё один вариант этого плагина - как кому нравится.
потому что я как раз хотел держать все лоды в Data а грузить по мере необходимости. Так я могу одним батником грузить русскую версию, другим - турнирную, третим - с новыми объектами, а четвёртым - даже без паззлов кампании, для большей скорости и экономии памяти.
Что ж их, каждый раз переименовывать?


RE: ERA II - Berserker - 15.07.2011 00:32

Да, но переименовывать батником. То же самое с плагинами и патчами. Сменить расширение = включить/отключить.


RE: ERA II - Sav - 15.07.2011 00:44

Подгрузить все lod'ы из папки Data можно легко, надо просто вместо анализа параметров анализировать имена файлов этой папки (даже ничего ассемблерного редактировать не надо). А насчёт других папок - не знаю, мой плагин не оперирует путём к lod'у, только его именем. Игра сама ищет эти lod'ы, только ли в Data или нет - не знаю.


RE: ERA II - hippocamus - 15.07.2011 00:52

По идее в Data и в ..\Data
По крайней мере так делают Хроники.


RE: ERA II - Sav - 15.07.2011 12:02

Внезапно сейчас у меня оказалось немного свободного времени и я исправил баг. Он, естественно, оказался идиотским: я закомментировал PUSH в одном месте и забыл об этом.

Ссылка удалена. Далее в теме действительно рабочая версия.

В общем, если запустить игру без параметров, подгрузятся только H3bitmap.lod и H3sprite.lod. H3ab_spr.lod, H3ab_bmp.lod, H3psprit.lod, H3pbitma.lod, H3pab_bm.lod, H3pab_sp.lod, H3wog.lod и H3custom.lod не подгружаются! Чтобы подгрузить их, их нужно указать в параметрах командной строки.

Параметр должен начинаться знаком "/" (который, естественно, не входит в имя lod`а). Иначе сами Герои будут ругаться: дескать, есть параметр "/S0" - отключение звука, параметр "/I0" - отключение интро, а что вы там понаписали, я не знаю и вырубаюсь нафиг.

Параметры нечувствительны к регистру. Если параметр не кончается на .lod или является "/.lod", он игнорируется. Параметр должен быть не длиннее 255 символов. Если параметр указывает на "H3bitmap.lod", "H3sprite.lod" или на тот же lod, на который указывал один из предыдущих параметров, он (этот, а не предыдущий Sm) игнорируется. Если уже не проигнорировано 62 параметра, все остальные игнорируются (т. е. всего можно подгрузить 64 lod`а, но за вычетом двух обязательных - 62). lod`ы подгружаются в таком порядке: "H3bitmap.lod", "H3sprite.lod", дополнительные lod`ы в порядке указывающих на них параметров. Указанные в параметрах lod`ы могут не существовать, всё будет работать нормально. Ну и, естественно, нет ограничения снизу на количество параметров, их можно не указывать совсем.

Ну, вроде, всё расписал. Могу уезжать с чистой совестью. Sm

UPD: Ах, да ещё плагин нельзя переименовывать, т. к. в его коде используется его имя. В принципе, ничего страшного не должно случиться, но всё равно не стоит.


RE: ERA II - hippocamus - 15.07.2011 12:18

Спасибо, Сав! Всё по высшему разряду!


RE: ERA II - Kocmodecaht - 15.07.2011 13:17

ЧТо уже вышла эра 1.9?


RE: ERA II - Sav - 15.07.2011 13:22

Ещё нет, но уже вышел плагин под неё. Sm


RE: ERA II - Berserker - 15.07.2011 13:24

Молодец! Всё, обязательно нужно сделать сервис спасибо.


RE: ERA II - Kocmodecaht - 15.07.2011 13:49

Вы отлично выпускаете эру я думаю она будет замечательной)))


RE: ERA II - Berserker - 15.07.2011 13:52

Благодарю.


RE: ERA II - Berserker - 15.07.2011 14:40

Sav, ты не против, если я покопаю в сторону автоподгрузки лодов в Эре? Чтобы авторы смело свои лоды распространяли. Вдобавок, тут ещё очерёдность загрузки и некоторые нюансы, которые неплохо бы стандартизировать.


RE: ERA II - Sav - 15.07.2011 16:09

Не против.
Если что, мой плагин работает так:

Сначала происходит анализ параметров, имена подгружаемых lod'ов записываются в спец. отведённую область памяти.

Потом выполняется воговский код, отвечающий за инициализацию h3wog.lod и h3custom.lod (точно не знаю, что там, но без неё lod'ы не подгружаются как следует, напр. если в h3ab_spr.lod запихать что-нибудь, оно не подгрузится просто так), только вместо них инициализируются все lod'ы из параметров.

Потом выполняется код, в котором ссылки на имена lod'ов записываются в определённую область памяти размером в 400 байт на lod (точно знаю, что туда же потом запишется путь к lod'у и ещё какая-то информация). Соответственно, с плагином вместо стандартных lod'ов записываются два обязательных + все из командной строки, а область памяти выделена в виде переменной в плагине и ссылки на неё перенаправлены на переменную в плагине.

Ну и во всех остальных местах (всего штук 40) опять же ссылки на эту область памяти перенаправлены на переменную плагина.

Вообще многие вещи найдены экспериментальным путём, поэтому я не могу с уверенностью говорить о том, что происходит в применяемых к именам lod'ов функциям.


RE: ERA II - Berserker - 15.07.2011 16:25

У меня есть возможность сравнить с реализацией от ZVS, но он перехватывает пару основных функций, а ты фактически таблицу переносишь. Нужно будет убедиться, что все обращения к ней учтены.
Ещё раз спасибо за работу!


RE: ERA II - hippocamus - 15.07.2011 17:30

С очерёдностью как раз проще - в каком порядке они перечисляются, в таком и подгрузятся.
А вот если делать загрузку всех из Data - там возможны конфликты, да. В таком случае лучше делать ini, если ты считаешь, что перечислять - напряжно.


RE: ERA II - Kocmodecaht - 15.07.2011 20:28

Берсеркер будут ли новые города в ере? 1.9? и еще я тебя спросить хотел можно ли скачать с интернета вог 3.59 там написано на одном сайте то что он типо вышел скачивайте я подозреваю что там вирус вышел ли поправде вог 3.59?


RE: ERA II - Kocmodecaht - 15.07.2011 20:37

Берсеркер дай ссыль на город кремль если он вышел или на город рощу если он тоже вышел

Заранее спасибо)


RE: ERA II - Berserker - 15.07.2011 20:57

Нет. Нет.

Плагин на С++
Code:
#include <windows.h>
#include "Era.cpp"
    
#define ADV_MAP   37
#define CTRL_LMB  4
#define LMB_PUSH  12
#define ERROR_SET 1

_stdcall void OnAdventureMapLeftMouseClick (PEvent Event)
{
  ExecErmCmd("CM:I?y1 F?y2 S?y3;");
  if ((y[1] == ADV_MAP) && (y[2] == CTRL_LMB) && (y[3] == LMB_PUSH))
  {
    ExecErmCmd("CM:R0 P?y1/?y2/?y3;");
    ExecErmCmd("UN:Ey1/y2/y3;");
    if (f[1])
    {
      ExecErmCmd("UN:Oy1/y2/y3/1;");
      ExecErmCmd("IF:L^{~red}Object was deleted!{~}^;");
    }
  }
}

extern "C" __declspec(dllexport) BOOL APIENTRY DllMain (HINSTANCE hInst, DWORD reason, LPVOID lpReserved)
{
  if (reason == DLL_PROCESS_ATTACH)
  {
    DisableThreadLibraryCalls(hInst);
    ConnectEra();
    RegisterHandler(OnAdventureMapLeftMouseClick, "OnAdventureMapLeftMouseClick");
  }
  return TRUE;
};



RE: ERA II - Berserker - 15.07.2011 21:31

Глянул подгрузку лодов в Иде. Всё понятно. Своя таблица вместо отдельных адресов и замена xref на конкретные лоды смещениями в таблице. Просто и надёжно.


RE: ERA II - Berserker - 15.07.2011 22:04

Почти все смещения можно изменить подменой адреса. Перехватчики не нужны там.


RE: ERA II - feanor - 16.07.2011 01:52

Вот есть функции, которые возвращают double (соответственно, не в eax, а в st0). Результат их выполнения через SN:E и v1 не получить ведь - можно это поправить?

Вариант правки - расширить второй параметр в SN:E (4 - pascal, возвращающий дабл, 5 - такой же stdcall ,..)


RE: ERA II - Berserker - 16.07.2011 04:02

Как оказалось, Сав несколько переусложнил задачу. К счастью, ЗВС уже внёс более 50 правок, корректирую смещения на новую таблицу архивов (размер: 100) и индексов (по типам лодов). Таким образом задача гораздо проще, чем кажется и основной код не связан с Героями. Завёл целый модуль, но набралось только 88 строк )
В общем со второго раза запустилась автозагрузка, тестирую.

Quote:Вот есть функции, которые возвращают double (соответственно, не в eax, а в st0). Результат их выполнения через SN:E и v1 не получить ведь - можно это поправить?
Вариант правки - расширить второй параметр в SN:E (4 - pascal, возвращающий дабл, 5 - такой же stdcall ,..)
Что ж это за функции? В Винапи есть примеры? Первый раз слышу о возврате через регистры сопроцессора. Может быть EAX:EDX?
Вариант приемлимый.


RE: ERA II - Berserker - 16.07.2011 04:27

Всё хорошо. Добавил проверку на нормальное расширение файла и на его тип (нельзя загрузить каталог, будет ошибка менеджера ресурсов). Файлы сортируются по имени. Чтобы грузиться позже, нужно лишь иметь имя нужное. Ограничений на длину имён нет.

Саву и ZVS идёт +.


RE: ERA II - feanor - 16.07.2011 07:30

Quote:Что ж это за функции?
Да хотя бы героевские функции типа double __thiscall sub_4E3F40(int this, char a2) - определение процентовки некромантии.

Правда, как плавающую 64-битную точку через v1 возвращать? Только если писать в v1:v2 и предоставлять переходники типа "вернуть значение, умноженное на n и округленное до целого".

Quote:Первый раз слышу о возврате через регистры сопроцессора.
http://progclub.ru/?p=1596


RE: ERA II - Berserker - 16.07.2011 14:52

Я могу возвращать её обрезанной до single в e1.
Либо в e1:e2. Ну и тут же вопрос, а как такие параметры типа double/extended/word/whatsoever использовать самому в командах?


RE: ERA II - feanor - 16.07.2011 15:02

Quote:Я могу возвращать её обрезанной до single
а как, кстати, отличать, когда возвращается сингл, а когда - дабл?


RE: ERA II - etoprostoya - 16.07.2011 17:42

Мне кажется, что в Героях используется исключительно 32-бит float. Просто не вижу причин для использования двойной точности.
Да и ERM работает, насколько я знаю, только с числами с плавающей точкой одинарной точности.

Пока не доказано обратное, можно считать, что сингл. Sm


RE: ERA II - Berserker - 16.07.2011 18:02

Да, ЕРМ с Single работает. Уже понял, что double значительно отличается от single, а значит авто-определения быть не может. Так что если кто точно скажет, с каким форматом работает игра, мне будет проще.

FLD [DWORD EBP-4]
Функция некромансии возвращает single.


RE: ERA II - baratorch - 16.07.2011 18:24

Quote:в Героях используется исключительно 32-бит float
ничего опровергающего это утверждение в коде игры не встречал.


RE: ERA II - etoprostoya - 16.07.2011 18:37

Сопроцессор меняет float и double при вызове функции uint32 _control87(uint32 new, uint32 mask). Думаю, Ида её легко найдёт и вызовов этой функции будет мало - один, скорее всего.
Проверить можно с помощью uint32 _status87(void). Результат по маске _MCW_PC и сравнить с нужным битом (53 бита - double, 24 бита - float)
Code:
#define _MCW_PC         0x00030000              /* Precision Control */
#define _PC_64          0x00000000              /*    64 bits */
#define _PC_53          0x00010000              /*    53 bits */
#define _PC_24          0x00020000              /*    24 bits */



RE: ERA II - Berserker - 16.07.2011 19:08

etoprostoya, поясни пожалуйста фразу "Сопроцессор меняет float и double". Пользовательский код указывает размерность того, что кладём в регистры. В сопроцессоре можно точность установить насильно, но ведь плагинам и некоторым функциям это может сильно не понравится. Главное, что геройский код использует single-ы.


RE: ERA II - etoprostoya - 16.07.2011 20:13

Сопроцессор обрабатывает 80-битные числа с плавающей запятой. Не важно, вводишь ты 32-битный float или 64-битный double - это только на входе и выходе.
Если плагин будет использовать 64-битные double (хотя не вижу в этом смысла), то перед их использованием необходимо будет вызывать _control87(_PC_53, _MCW_PC), а после испоьзования _control87(_PC_24, _MCW_PC). Чтобы геройский код работал по-прежнему. Не при инициализации и деинициализации (attach, detach), а в той же функции, где идёт обработка чисел с плавающей запятой.
Я, конечно, это не проверял, но так, по-моему, должно быть.

Вообще, рекомендую в плагинах использовать SSE и SSE2, которые поддерживаются с 2000 года всеми процессорами и Виндами не младше 2000 (насчёт Линукса не знаю - их много). Это поможет избежать путаницы, да и в разы проще.


RE: ERA II - Berserker - 16.07.2011 20:35

Да ну! ПустьTWord-ы и обрабатывает, как по умолчанию. Никаких драконовских установок в контрольное слово не нужно. Его вообще менять не нужно. Куча библиотек на это не расчитана. Герои сами выбирают, в каком формате данные класти и грузить (fld, fst). Поэтому в Эру нужно просто добавить обработку e-переменных и 4 новых соглашения о вызове с типом возврата: single.


RE: ERA II - etoprostoya - 16.07.2011 21:18

Ну, это понятно, просто вопрос был об использовании double. Вот я и описал, как его использовать ВНУТРИ плагина. Кто его знает, может кто захочет заняться высокоточными астрологическими расчётами =) вместо банальных недель монстров.


RE: ERA II - hippocamus - 16.07.2011 23:07

Без проблем прикручу астрокалендарь. Но ведь это не Земля... Там и планеты другие.


RE: ERA II - Berserker - 17.07.2011 04:16

Что сделал. Доработал SDK для Паскаля и СИ++. Добавил обработку e-переменных Эрой. Добавил ещё 4 соглашения, когда результат с плавающей запятой помещается в e1. Добавил функцию GetGameState, чтобы знать, в каком мы меню (важно для событий клавиатуры). Собираюсь ещё разрешить клавишные события для плагинов везде, что позволит вызывать диалоги и вообще полноценно работать ещё без загрузки карты. Ну и для ЕРМ модуль ля работы с памятью.
Думаю над форматом руководства. Буду искать добровольца для перевода на английский. Обычно Драколич спасает + помощь Valery/Jim.


RE: ERA II - feanor - 17.07.2011 10:17

Quote: Вот я и описал, как его использовать ВНУТРИ плагина.
Внутри плагина обычный сишный/паскалевский код. О том, что там у FPU - пусть у компилятора ядро болит.


RE: ERA II - etoprostoya - 17.07.2011 10:44

Паскалевский код, наверняка, будет такой, что будет только инициализация FPU для работы с double, а деинициализации не будет и весь код Героев не будет работать либо с момента подключения плагина (attach) либо с момента первого вызова функций плагина. Но это надо проверять.


RE: ERA II - baratorch - 17.07.2011 12:11

дык если даже и так, асм вставкой деинициализации в плагине решится проблема.


RE: ERA II - etoprostoya - 17.07.2011 12:17

Ну, феанор, например, не собирается делать никаких ассемблерных вставок.

Я, по-прежнему не думаю, что кому-то понадобится использовать double в своих плагинах. Нужно просто предупредить, что двойную точность использовать не рекомендуется - этого хватит.

Точнее, двойную точность в FPU. SSE2 и более поздние использовать-то можно. Правда, упоминание об этом может только запутать Sm


RE: ERA II - hippocamus - 17.07.2011 12:36

Единственное, где я использовал плавающие числа в ERM - это было определение клеток, попадающих и не попадающих в круг определённого радиуса.
Другое применение даже придумать трудНО, чтоб это было не за уши притянуто...


RE: ERA II - Berserker - 17.07.2011 17:17

etoprostoya, по-моему ты что-то абсолютно не то говоришь. Герои не меняют точность вычислений (контрольное слово сопроцессора). Никак. И поэтому плагин может использовать 10-байтовые extended-ы или 8-байтовые double-ы смело.


RE: ERA II - Berserker - 17.07.2011 17:49

Возвратил real, возвратил double из плагина, ничего страшного.


RE: ERA II - etoprostoya - 17.07.2011 18:10

Вот первый попавшийся пример:
Code:
0061FA1E:   fnstcw   word ptr [esp+34h]; сохраняет предыдущее состояние
  0061FA22:   mov       eax,dword ptr [esp+34h];
  0061FA26:   or          eax,300h; ставит точность 80-бит
  0061FA2B:   mov       dword ptr [esp+38h],eax;
  0061FA2F:   fldcw     word ptr [esp+38h]; загружает контрольное слово с новой точностью
  0061FA33:   fmul       qword ptr ds:[006901ACh]; умножение с высокой точностью
  0061FA39:   fldcw      word ptr [esp+34h]; загружает предыдущее состояние.
А ты говоришь, не меняет контрольное слово) Да там несколько десятков мест, где оно изменяется - но в основном это, похоже, контроль ошибок и округления.

P.S. Кстати, портировал плагин Семёна в MSVC 2008. Но пока ещё практически не тестил.


RE: ERA II - Berserker - 17.07.2011 18:15

Подожди-ка. В приведённом коде всё по правилам - если хочешь менять контрольное слово, то сохрани и восстанови. Для всего внешнего мира слово не меняется! Поэтому никак на точность это не влияет.

Добавил поддержку длинных команд: !!SN:Av2/z2/?v3 Ev3/4;


RE: ERA II - feanor - 17.07.2011 18:39

Quote:P.S. Кстати, портировал плагин Семёна в MSVC 2008. Но пока ещё практически не тестил.
Когда начнешь свои плагины писать? (:


RE: ERA II - etoprostoya - 17.07.2011 18:44

Quote:Когда начнешь свои плагины писать? (:
Я есё не умею свои.


RE: ERA II - Kocmodecaht - 18.07.2011 10:55

бЕРСЕРКЕр

когда выйдет герои 3.59 и когда выйдет эра 1.9 мне главное они нужны когда они выйдут?132


RE: ERA II - FallenAngel - 18.07.2011 11:29

Gigi В полку прибыло.


RE: ERA II - etoprostoya - 18.07.2011 11:57

Надо пускать в эту тему по пропускам)


RE: ERA II - Berserker - 18.07.2011 14:11

Kocmodecaht, одному Богу известно...


RE: ERA II - MaGoth - 18.07.2011 14:37

Berserker,
Quote:...Думаю над форматом руководства ...
*pdf и *chm рулят и педалят. Ab
Первый формат сложнее для реализации но многое можно реализовать. Второй, проще и нагляднее, но не все можно сделать (ограничения компиляции).

Лучше всего *chm использовать, имхо.
И как писал уже ранее, могу помочь с версткой руководства в любом из этих форматов. 118


RE: ERA II - feanor - 18.07.2011 14:41

/me недоумевает - зачем Коцмодецахту эра 1.9?

Quote: Буду искать добровольца для перевода на английский.
На НС спроси.
Quote:Ну и для ЕРМ модуль ля работы с памятью.
Аналоги memcpy/malloc/mfree?
Чувствую, документации будет мнооого..


RE: ERA II - Berserker - 18.07.2011 15:29

Quote:*pdf и *chm рулят и педалят.
Так что лучше наверное html, а с педалями он превратится в chm )

Quote:Аналоги memcpy/malloc/mfree?
В ЕРМ больше всего достаёт привязанность к индексам и невозможность выделять временные массивы чисел и строк, в том числе и для работы с функциями/апи.


RE: ERA II - Berserker - 18.07.2011 16:14

Устанавливаю флаг ВОГа на этапе запуска игры, чтобы поддерживались ЕРМ команды из плагинов. Событие клавиатуры уже работает для плагинов в любых меню, а для ЕРМ только в игровых.


RE: ERA II - MOP - 18.07.2011 18:19

hippocamus Wrote:Это ведь выльется в несовместимость твоего мода с большинством остальных.
Да какая совместимость? Кодовая? Не было её и не будет никогда. Если два мода настолько глубоки по вносимым изменениям в геймплей, что могут по моральному праву называться модами – они уже несовместимы. Никто не соединит ХотУ и ВОГ 3.59, Феникс с Реквизитом, TPM с WT, MoP c ЧУ… А если совместит – выйдет нестабильная и дисбалансная безвкусица. Я уже не говорю о том, что даже моды, делающиеся под ВОГ, сами с ним частично несовместимы, а часть опций ВОГа несовместима с другими.
Файлово-папочная совместимость? О ней заботятся чуть больше – она хоть достижима. Её-то я и соблюдаю.
Всё, что делают люди, всегда определяется их характером, а характеры у всех разные. Жёсткие диски теперь вмещают терабайты. Так что будем, как и прежде, устанавливать всё в отдельные папки, запускать разные экзешники и играть то в одно, то в другое, нервно кусая пальцы в детском капризе желания собрать все яйца в одну корзину.
Berserker Wrote:1) Если у тебя есть лучший вариант, напиши, я исправлю.
Дело не в лучшести. Регенерацию я превращал в таблицу, а во втором случае просто сдвигал код.
Berserker Wrote:3) Нужен этот свой триггер.
У меня настолько всё индивидуально, что лучше в общих чертах.
4A2470 – тру-функция встречи героев. Параметры её вызова я описывал в Инженерном Анализе. Зная параметры, можно достать в ней номера героев.
Функция ветвится на несколько хвостов. Чтобы сделать универсальный пост-триггер, я закрутил все хвосты в один и поставил триггер на этот хвост. А как ты собираешься – твоё дело.
Berserker Wrote:4) Тут папка старая, ибо совместимость, а Angel.dll и Era.dll должны находиться в корне.
Вот я и изменил
Berserker Wrote:1 жёстко прошитый патч
Вместо корневого каталога – Data\MoP\LIB.
Berserker Wrote:не хотелось бы видеть МОР в будущем на старой версии
Скорее всего, так и будет. Ведь какая разница, сколько изменений будет вносить ERA в экзешник? Хуки ведь всё равно будет ставить. А у меня в том месте может быть даже не изменённый код, а вообще левая наработка или отсутствие кода.
По крайней мере, программка для бин-файлов подойдёт.
Berserker Wrote:Проще было раньше согласовать.
Как и с кем можно согласовать десятки тысяч изменений в экзешнике? Можешь заценить - http://zalil.ru/31436918 Видите, я даже не боюсь утечек – ведь там никто, кроме меня, не разберётся. Естественная защита exe в виде невообразимой запутанности кода. Sm
Я наплевал на совместимость, как на призрачное суеверие, коим она для меня до сих пор является. И это сразу развязало руки. Пожалел ли я об этом хоть раз? Нет, ибо не родилось пока чего-то такого очень мне нужного, но несовместимого с модом, а для многих вещей у меня альтернативная реализация. Есть разве что предчувствие недовольства людей, уже привыкших к HD-моду.


Просто идея
Единожды в моде я применил такое:
1. Накодил в Олли функцию. При этом все вызовы функций экзешника в ней написал относительно, как в длл (не call функция, а mov eax, адрес функции; call eax). Прыжки – если касаются этой же функции, то прямые, если в экзешник – тоже относительные. В общем, всё ясно.
2. Потом скопировал машинный код этой функции в файл и сохранил.
3. Загрузил файл в игре, получил адрес буфера, выполнил функцию по этому адресу, освободил буфер с файлом.

В чём смысл и польза? Даже длл, которая занимается всего лишь тем, что экспортирует одну маленькую процедуру, обычно весит несколько килобайт, ибо несёт в себе много системного барахла. Чтобы выполнить из неё процедуру, нужно узнать ID библиотеки, потом ID процедуры. А в таком вот файле – ни единого ненужного байта, это чисто файл-функция, и его ID – это и есть адрес процедуры.
Вот если бы такие файлы можно было создавать легко, без Олли, и так же легко править их исходники…


RE: ERA II - baratorch - 18.07.2011 21:45

Quote:Как и с кем можно согласовать десятки тысяч изменений в экзешнике? Можешь заценить - http://zalil.ru/31436918 Видите, я даже не боюсь утечек – ведь там никто, кроме меня, не разберётся.
)) какая же это утечка, что мы с этим ехе будем делать?) что с ним вообще можно сделать?)
Quote:Естественная защита exe в виде невообразимой запутанности кода.
на самом деле в этом нет ничего хорошего. Ты конечно монстровый реверсер и ассемблерщик, но ведь такой код очень сложно отлаживать и менять в будущем.

В своей платформе ХД 3 я готовлю практически полное отсутствие асма в коде непосредственных изменений и дополнений игры (хочу реализовать дизасм, чтобы не париться о затираемом хуками коде, и хукать только вызовы функций, используя только передаваемые им параметры - при этом мы получим самую лучшую кодовую совместимость).
Но даже сейчас последний код в хд выглядит очень неплохо. Вот кусок нововведеиня: "пригласить героя в таверне":

Code:
_Dlg_* THISHOOK hook_TavernDlgCreate(_int32_ x, _int32_ y)
{
    _Dlg_* this_; SET_THIS(this_);
    _ptr_ DlgStaticText_Create = 0x5BC6A0;

    THISCALL_3(TavernDlgCreate_default, this_, x, y);


    if ((!o_NetworkGame) && o_GameType != GAMETYPE_HOTSEAT)
    {

        UpdateHeroesAvailabilityList(0);

        //////if (invited_hero_index == -1)
            this_->AddInitItem(b_DlgStaticPcx8_Create(214, 427, 48, 32, 400, "HPSRAND4.PCX", 2048));
        //////else
        //////    this_->AddInitItem(b_DlgStaticPcx8_Create(214, 427, 48, 32, 400, o_HeroInfo[inviteable_heroes[invited_hero_index]].hps_name, 2048));

        this_->AddInitItem(b_DlgButton_Create(201, 431, 11, 24, 401, "ADOPLFA.DEF", 0, 1, 0, 0, 2));
        this_->AddInitItem(b_DlgButton_Create(264, 431, 11, 24, 402, "ADOPRTA.DEF", 0, 1, 0, 0, 2));
        this_->AddInitItem((_DlgItem_*)THISCALL_12(DlgStaticText_Create, o_New(0x50), 121, 427, 74, 32, HD::txt_ini->GetTxtValue(4), "smalfont.fnt", 1, 0, 5, 0, 8));
    }

    return this_;
}

Code:
_int32_ THISHOOK hook_TavernProc(_EventMsg_* msg)
{
    _Dlg_* this_; SET_THIS(this_);
    _int32_ r;


    if (msg->type == HM_MOUSEOVER)
    {
        r = (_int32_)THISCALL_2(TavernProc_default, this_, msg);
        
        if ((!o_NetworkGame) && o_GameType != GAMETYPE_HOTSEAT)
        {
            switch (msg->item_id)
            {
            case 400:
            case 401:
            case 402:
                if (invited_hero_index != -1)
                {
                    sprintf(o_TextBuffer, o_GENRLTXT_TXT->GetString(16),
                        (char*)o_Game->GetHero(inviteable_heroes[invited_hero_index])->name,
                        (char*)o_Game->GetHero(inviteable_heroes[invited_hero_index])->Get_className());
                    r = n_DrawToTavernStatusBar(this_, o_TextBuffer);
                }
            }
        }

        // fix tavern statusbar
        o_WndMan->DrawRect(this_->x, this_->y, this_->x + this_->width, this_->y + this_->height);
        return r;
    }


    if ((!o_NetworkGame) && o_GameType != GAMETYPE_HOTSEAT)
    {
        if (msg->type == HDM_MOUSEWHEEL)
        {
            if (msg->subtype < 0)
                msg->item_id = 401;
            else
                msg->item_id = 402;
            msg->type = HM_MOUSEBUTTON;
            msg->subtype = MB_LBUTTONCLICK;
        }


        if (msg->type == HM_MOUSEBUTTON)
        {
            _DlgStaticPcx8_* hero_hps = (_DlgStaticPcx8_*)this_->GetItem(400);

            if ((msg->subtype == MB_LBUTTONDOWN) ||
                (msg->subtype == MB_RBUTTONDOWN) ||
                (msg->subtype == MB_LBUTTONCLICK))
            {
                switch (msg->item_id)
                {
                case 5:
                case 6:
                    UpdateHeroesAvailabilityList(msg->item_id - 5);
                    hero_hps->pcx8->DerefOrDelete();
                    hero_hps->pcx8 = o_LoadPcx8("HPSRAND4.PCX");
                    n_DrawToTavernStatusBar(this_, " ");
                    break;
                }
            }
                
            if (msg->subtype == MB_LBUTTONCLICK)
            {
                switch (msg->item_id)
                {
                case 401:
                    invited_hero_index--;
                    if (invited_hero_index < -1)
                        invited_hero_index = inviteable_heroes_count-1;
                    break;

                case 402:
                    invited_hero_index++;
                    if (invited_hero_index >= inviteable_heroes_count)
                        invited_hero_index = -1;
                    break;
                }

                switch (msg->item_id)
                {
                case 401:
                case 402:

                    hero_hps->pcx8->DerefOrDelete();
                    if (invited_hero_index == -1)
                    {
                        hero_hps->pcx8 = o_LoadPcx8("HPSRAND4.PCX");
                        n_DrawToTavernStatusBar(this_, " ");
                    }
                    else
                    {
                        ////invited_hero_id = inviteable_heroes[invited_hero_index];
                        hero_hps->pcx8 = o_LoadPcx8(o_HeroInfo[inviteable_heroes[invited_hero_index]].hps_name);
                        sprintf(o_TextBuffer, o_GENRLTXT_TXT->GetString(16),
                            (char*)o_Game->GetHero(inviteable_heroes[invited_hero_index])->name,
                            (char*)o_Game->GetHero(inviteable_heroes[invited_hero_index])->Get_className());
                        n_DrawToTavernStatusBar(this_, o_TextBuffer);
                    }
                    hero_hps->Draw();
                    o_WndMan->DrawRect(this_->x, this_->y, this_->x + this_->width, this_->y + this_->height);
                    return 1;
                }

            }
        }
    }
    return (_int32_)THISCALL_2(TavernProc_default, this_, msg);
}
Даже некомментированный код выглядит вполне читаемым.

Вот мне например понадобилось для окна гильдии магов сдвинуть все элементы вниз на 22 пикс кроме статусбара, добавить панель-заголовок и скорректировать неправильное в оригинале положение кнопки Ок на 1 пикс.
Code:
_Dlg_* THISHOOK hook_MagicGuildDlgCreate()
{
    _Dlg_* this_; SET_THIS(this_);
    _ptr_ ColorizePalette16 = 0x6003E0;

    THISCALL_1(MagicGuildDlgCreate_default, this_);
    _DlgItem_* item;
    this_->GetItem(1)->y += 22;
    for (int id = 4; id <= 65; id++)
    {
        item = this_->GetItem(id);
        if (item != NULL)
            item->y += 22;
    }
    this_->GetItem(30720)->x += 1;
    _DlgStaticPcx8_* title;
    this_->AddInitItem(title = b_DlgStaticPcx8_Create(0, 0, 800, 23, 400, "HD_THBCS.PCX", 2048));
    FASTCALL_2(ColorizePalette16, title->pcx8->palette16.colors, o_Game->GetMeID());
    this_->AddInitItem((_DlgItem_*)THISCALL_12(0x5BC6A0, o_New(0x50), 0, 0, 800, 23, o_TCOMMAND_TXT->GetString(14) , "bigfont.fnt", 1, 0, 5, 0, 8));

    return this_;
}
даже не представляю во сколько раз по трудовремязатратам превзошла бы это
реализация на асме, размещая код внутри экзешника


Quote:В чём смысл и польза? Даже длл, которая занимается всего лишь тем, что экспортирует одну маленькую процедуру, обычно весит несколько килобайт, ибо несёт в себе много системного барахла. Чтобы выполнить из неё процедуру, нужно узнать ID библиотеки, потом ID процедуры. А в таком вот файле – ни единого ненужного байта, это чисто файл-функция, и его ID – это и есть адрес процедуры.
   Вот если бы такие файлы можно было создавать легко, без Олли, и так же легко править их исходники…
зачем, если
Quote:Жёсткие диски теперь вмещают терабайты.



RE: ERA II - hippocamus - 18.07.2011 22:52

Quote:Жёсткие диски теперь вмещают терабайты.
Супер! Сделал его! Gigi96128
Если честно, Моп, нужно смотреть на будущее.
Ну вот выйдет ХотА. Которая пока представляет из себя только 10-й город. Если у тебя ест ьсовместимость - играем в Моп с 10 городами, иначе - с 9-ю.
Добавим 11-й, 12-й города - ты будешь сидеть с 9-ю, но гордый.
Мы тебе несомненно разрешим добавить эти города в мод - но тебе придётся изобретать велосипед. Вместо того, чтобы воспользоваться совместимостью с де-факто стандартом Эрой, ты будешь утверждать, что совместимость тебе не нужна. И окажется, что твой мод в стороне... Wog3.59 будет совместим с Эрой, хотя бы потому, что Эра подстроится под него, сохранив старые совместимости, или незначительно их модифицировав.
Не говорю ничего насчёт ТПМ, потому что не знаю их политики.


RE: ERA II - feanor - 18.07.2011 23:17

Quote:Ну вот выйдет ХотА.
Ну вот это, издеваться не надо.

Quote:Вместо того, чтобы воспользоваться совместимостью с де-факто стандартом Эрой, ты будешь утверждать, что совместимость тебе не нужна.
А причем тут совместимость с хотой?

Quote:Wog3.59 будет совместим с Эрой
правда?


RE: ERA II - hippocamus - 18.07.2011 23:42

1. Ну, я же в вас верю! Sm
2. У Хоты будет 100% совместимость с Эрой - править экзешник мы не будем. Уж если что - попросим поправить Эру Sm
3. Что такое Эра? Хуки на экзешник, позволяющие расширять его функции. Сомневаешься, что под 3.59 будет приспособлена новая версия Эры?


RE: ERA II - feanor - 18.07.2011 23:45

Тут проблема в чем. Хота выходит неведомо когда, стандарты на неё неведомы (да и менялись радикально уже минимум два раза, с каждым новым кодером, угу) и равняться на неё глупо - делать дело надо сейчас. Это раз.

Два - действительно крупные моды будут несовместимы между собой всегда. Особенно из-за текущей ситуации с моддингом героев. Нет, если кому-то будет не лень сделать большой и толстый MDK - можно будет и задуматься о совместимости хотя бы половины модов - но это фентези.

Quote:2. У Хоты будет 100% совместимость с Эрой - править экзешник мы не будем. Уж если что - попросим поправить Эру
Кажется, имеется некоторое непонимание. Если плагин yet_another_gemstone_name.dll совместим с Эрой, плагин yet_another_metal_song_name.dll совместим с Эрой и плагин hota.dll совместим с Эрой - это совершенно не значит, что они будут совместимы друг с другом.

Quote:3. Что такое Эра? Хуки на экзешник, позволяющие расширять его функции. Сомневаешься, что под 3.59 будет приспособлена новая версия Эры?
Я уверен, что все мало-мальски крупные плагины под ней просто не пойдут.


RE: ERA II - etoprostoya - 19.07.2011 00:01

Хук на хук не приходится. Если ХотА строится на Эре, то это значит, что она будет полна хуков и плагины, использующие те же хуки не будут с ней совместимы. Новые герои - хуки на геройские массивы и функции - несовместимость с геройскими классами феанора, новые двеллы - несовместимость с новыми двеллингами МоПа, новые монстры - несовместимость с феаноровским (или дьяконовским чистым) плагином. И т.д.
Надеюсь, я правильно понимаю?


RE: ERA II - feanor - 19.07.2011 00:32

Угу. К примеру, в длл из альфы даже банальное получение указателя на другую структуру героя ([699538] + 21620 + 492*n) не работает.
Перенесли массив структур - все, альфа ТоЕ курит, прототип Форджа курит, не исключено, что курят MoP и НD-мод.


RE: ERA II - Berserker - 19.07.2011 00:44

Quote:Да какая совместимость? Кодовая? Не было её и не будет никогда.
Если бы соблюдалась модульная структура нововведений и сам исполняемый файл бы практически не менялся (ТЕ), то совместимость бы была, но если уже проделан большой объём работы, то естественно, смысла нет критиковать решение. Эра 1.9 будет полностью открыта в плане исходников. Так уж получилось, что то, что ты правил, всё ещё на Virtual Pascal, так что повторные правки под твой вкус труда не составят. А новый функционал через вторую библиотеку. Поэтому единственная проблема - это пути.

Quote:Видите, я даже не боюсь утечек
А чего боятся утечек, если наоброт решённые проблемы помогли бы другим людям не изобретать велосипед? Не все могут позволить себе пару лет посвятить игре.

Quote:Есть разве что предчувствие недовольства людей, уже привыкших к HD-моду.
Да, HD это действительно для многих уже становится стандартом, но что говорить, в хороший мод и на 800х600 будут играть.

Quote:Просто идея
Бараторч верно ниже отписался. В двух словах - экономия на спичках. Но если вдруг интересует, то в первых версиях dll для Феникса (это даже не Эра 1.0) я был поглощён наноассемблером (http://mrhx.clan.su/publ/1-1-0-3). Там ровно то, что тебе нужно.

baratorch, у меня тоже в похожем стиле:
Code:
FUNCTION Hook_LoadLods (Context: Core.PHookHandlerArgs): LONGBOOL; STDCALL;
CONST
  H3BITMAP_LOD  = 'h3bitmap.lod';
  H3SPRITE_LOD  = 'h3sprite.lod';
  H3BITMAP_IND  = 0;
  H3SPRITE_IND  = 1;
  BASE_LOD_IND  = 2;

VAR
{O} Locator:  Files.TFileLocator;
{O} FileInfo: Files.TFileItemInfo;
    FileName: STRING;
    LodInd:   INTEGER;
    i:        INTEGER;
  
BEGIN
  Locator   :=  Files.TFileLocator.Create;
  FileInfo  :=  NIL;
  // * * * * * //
  Locator.DirPath :=  'Data';
  Locator.InitSearch('*.*');
  WHILE Locator.NotEnd DO BEGIN
    FileName  :=  Locator.GetNextItem(CFiles.TItemInfo(FileInfo));
    IF
      (SysUtils.AnsiLowerCase(SysUtils.ExtractFileExt(FileName)) = '.lod')  AND
      (((FileInfo.Data.dwFileAttributes) AND Windows.FILE_ATTRIBUTE_DIRECTORY) = 0)
    THEN BEGIN
      LodList.Add(FileName);
    END; // .IF
    SysUtils.FreeAndNil(FileInfo);    
  END; // .WHILE
  Locator.FinitSearch;
  Heroes.LoadLod(H3BITMAP_LOD, @ZvsLodTable[H3BITMAP_IND]);
  Heroes.LoadLod(H3SPRITE_LOD, @ZvsLodTable[H3SPRITE_IND]);
  IF LodList.Find(H3BITMAP_LOD, LodInd) THEN BEGIN
    LodList.Delete(LodInd);
  END; // .IF
  IF LodList.Find(H3SPRITE_LOD, LodInd) THEN BEGIN
    LodList.Delete(LodInd);
  END; // .IF
  LodInd  :=  BASE_LOD_IND;
  FOR i:=0 TO Math.Min(LodList.Count - 1, HIGH(TLodTable) - BASE_LOD_IND) DO BEGIN
    ZvsAddLodToList(LodInd);
    Heroes.LoadLod(LodList[i], @ZvsLodTable[LodInd]);
    INC(LodInd);
  END; // .FOR
  Context.RetAddr :=  Ptr($559408);
  RESULT          :=  NOT Core.EXEC_DEF_CODE;
  // * * * * * //
  SysUtils.FreeAndNil(Locator);
END; // .FUNCTION Hook_LoadLods

Феанор, этопростоя. Если два разных модуля или направления реализуют одно и то же, то исключается наименьший по функционалу. Если структуру героев расширил один плагин, то второй не нужен. Лично я пишу в расчёте на классические моды, а уже потенциальный пользователь плагинов (как тот же Феникс) отбирает для себя набор нужных и совместимых.

Есть однин ключевой вопрос. Оттого, что изменение готовой игры всегда сопряжено с указанными проблемами, не следует факт, что не нужно никаких соглашений или шагов для максимизации совместимости вообще. Если вдруг к какой-то игре каждое дополнение станет несовместимо с остальными, то среда вымрет. Нет прогресса. Велосипед изобретается каждый раз с нуля.


RE: ERA II - Berserker - 19.07.2011 21:00

Сделал команды Эры локальными, так чтобы можно было вызвать команду, которая вызовет команду, которая вызовет команду...
Добавил поддержку строковых констант в командах:
Code:
!!SN:L^angel.dll^/?v2 Av2/^ResetEra^/?v3 Ev3/0;
Работаю над M-командами для дополнительной памяти.
Ещё узнал пренеприятнейшие известия и пошёл искать артефакт дух уныния до вечера.


RE: ERA II - Allah - 21.07.2011 20:58

CRACK! RETAIL! FULL! FREE!
Era 1.9 alpha. CRACKED BY ALLAH


RE: ERA II - Zenofex - 22.07.2011 00:48

Отличная шутка, Берс.


RE: ERA II - MOP - 22.07.2011 05:03

Не знаю, что вы тут, ребята, обсуждаете, но это был не я.Gigi
(18.07.2011 21:45)baratorch Wrote:  )) какая же это утечка, что мы с этим ехе будем делать?) что с ним вообще можно сделать?)
Посмотреть реализацию некоторых вещей, о которых я трепался у себя на форуме. Скажем, если я сказал, что номер Воздушного Шара такой-то, можно тупо пошарить по экзешнику в поиске такого dwordа и найти интересности. Gigi
(18.07.2011 21:45)baratorch Wrote:  на самом деле в этом нет ничего хорошего. Ты конечно монстровый реверсер и ассемблерщик, но ведь такой код очень сложно отлаживать и менять в будущем.
Я запиливаю только то, что не вызывает у меня сомнений относительно будущей правки. То, что может потом исчезнуть - в длл, бинарниках для памяти или ещё как-нибудь.
(18.07.2011 21:45)baratorch Wrote:  В своей платформе ХД 3 я готовлю практически полное отсутствие асма в коде непосредственных изменений и дополнений игры
Я знаю только асм, так что ничего не могу сказать.
Я не люблю длл-ки. Делал их, а всё равно не люблю. Не люблю, когда функцию нужно вызывать относительно (пара лишних байт, ага). Не люблю, когда код висит хрен знает где и чтобы добраться до функции, вложенной в кучу других, и посмотреть, верно ли скомпилирован код, нужно каждый раз лазить через всё, во что вложено. Код их выглядит ужасно. Гарантии стабильности тоже нет.
(18.07.2011 21:45)baratorch Wrote:  зачем, если
Quote:Жёсткие диски теперь вмещают терабайты.
Диски-то вмещают. А вот у меня интернет платный и дыра в бюджете. Даже сигареты не на свои деньги курю.
Сказали бы просто - сложно реализовать. Я и сам так думал.

hippocamus Wrote:Если у тебя ест ьсовместимость - играем в Моп с 10 городами, иначе - с 9-ю.
Новый город - это попса. А я митол люблю.
Я вообще думаю, что всего один новый артефакт - лучше, чем сотня городов. Новый город - дорогая по всем параметрам безделушка, делаемая людьми чисто из желания похвастаться, что они смогли это сделать.
Berserker Wrote:Так уж получилось, что то, что ты правил, всё ещё на Virtual Pascal, так что повторные правки под твой вкус труда не составят.
Если желаешь помочь, то мог бы дать в личку исходники, компилятор и, ещё лучше, список хуков. Если проблематично - ничего, не обижусь. С горем пополам могу и в готовой длл поменять адреса хуков. Такая я проныра. Gigi


RE: ERA II - Berserker - 22.07.2011 05:11

Quote:Если желаешь помочь, то мог бы дать в личку исходники, компилятор и, ещё лучше, список хуков. Если проблематично - ничего, не обижусь. С горем пополам могу и в готовой длл поменять адреса хуков. Такая я проныра.
Нефинальные исходники могу кинуть. Те, что для делфи, потребуют скачать компилятор в 40 МБ (Free Pascal). Или подождать сперва финальную версию?

P.S Исправил баг ЕРМ команды CA:B3.


RE: ERA II - MOP - 22.07.2011 05:13

Подожду.
Можно тогда только список хуков с указанием типа (call, jump). Пропатчу прямо длл.
40 мегов для меня многовато.


RE: ERA II - Berserker - 22.07.2011 15:14

Добавился новый тип автоматически генерируемого переходника (Bridge). Все хуки найти легко, ибо они через экспортируемую функцию Hook. В отладчике Era.Hook. В общем я в релиз включу и исходники, и бинарники.

Да, собираюсь также глянуть DL:E и сделать всем нормальный ввод. Есть намётки? (ещё не смотрел).


RE: ERA II - feanor - 22.07.2011 17:20

Очередные две хотелки.

Можно событие, аналогичное запуску инструкций (!#) ?
Для автоматического перегона ERM-скриптов в длл-ки

И событие на запуск функции с определенным номером?
Ну тут чисто понты, шоб можно было к дллкам не через !!SN:LAE обращаться, а через !!FU:P


RE: ERA II - Berserker - 22.07.2011 19:10

Я не советую вообще использовать инструкции. Есть нормальный триггер после них: !?PI, а в Эре только его и использую. А инструкции это недоделанный пережиток прошлого прямо во время анализа ЕРМ кода. Б-р-р-р...

Quote:И событие на запуск функции с определенным номером?
"OnErmFunction X" и так работает Sm, глянь Triggers.txt

Добил команду K (получение длины строки, копирование памяти, установка получение отдельных символов строки), убрал старый триггер на встречу героев, заменив двумя новыми. Посмотрел немного DL:E. Бараторч по ходу и так сделал русский язык, а дальше копать уже неохота. Пора закругляться, перечитывать код и готовить руководство.


RE: ERA II - MOP - 24.07.2011 13:13

Самые древние команды ERM - самые неоптимизированные. И среди них, наверное, самая важная - !!HE. Не слишком изучал, но, по-моему, там чем дальше буква к концу алфавита - тем тормознее ресейвер. Просто команда не собрана, как поздние, в свитч. Цикл получения/изменения всех специализаций (маленький, героев ведь всего 156) очень тормозит. Требуется либо оптимизация (тогда выгирают и старые скрипты), либо новая реализация.


RE: ERA II - Berserker - 24.07.2011 19:12

Не выходит открыть диалог встречи героев в городе. После него всё падает.


RE: ERA II - gamecreator - 24.07.2011 19:16

а жаль, было бы очень полезно.


RE: ERA II - Berserker - 27.07.2011 23:32

~0.5 MB отформатированных исходников: zalil.ru/31476755
Эра 1.81
Эра 1.9
BinMagic 1.0
Evme 1.0


RE: ERA II - MOP - 29.07.2011 09:18

(22.07.2011 19:10)Berserker Wrote:  Я не советую вообще использовать инструкции. Есть нормальный триггер после них: !?PI, а в Эре только его и использую. А инструкции это недоделанный пережиток прошлого прямо во время анализа ЕРМ кода. Б-р-р-р...
Не так быстро. Скажем, запретить артефакты так, чтобы они вообще на карте не валялись, ты можешь только инструкцией. То же с заклинаниями. И это далеко не всё.
По поводу триггера. В Battery.dll процедура Reset_Table как раз выполняется перед воговской инструкцией. Будет ли там работать триггер - надо проверить.


RE: ERA II - Berserker - 29.07.2011 18:31

Исправил два бага и добавил событие для инструкций.


RE: ERA II - baratorch - 01.08.2011 18:30

(30.07.2011 17:25)Berserker Wrote:  Это указано в документации к Эре будет. Нереально определить, кто открыл последний диалог и выполняется сейчас ЕРМ из-за игрового события или из-за логики плагина.

Quote:<< Импорт/экспорт скриптов из загруженной игры >>
    Нажатие клавиши F12 приводит к загрузке скриптов script[00..99] из папки "Data\s" с их повторной перекомпиляцией. Ход игры не нарушается при условии, что в момент нажатия клавиши не был открыт ни один ЕРМ диалог. Данная функция позволяет крайне эффективно проводить отладку скриптов и оперативно подгружать их новые версии в уже имеющиеся сохранения.
    !! Внимание !! Нельзя применять F12, если в карте имеются встроенные скрипты. Создателям сложных и интересных карт рекомендуется распространение их с автономными скриптами, устанавливаемыми в папку "Data\s".

Тогда я бы сделал доступным [F12] только при запущенной игре с аргументом командной строки /DEBUG (например).
Все-таки нехорошо, когда есть такая опасная для игры и совершенно не нужная геймеру кнопка.

п.с. в хд 3 я уберу хд-эшный функционал с [f12]


RE: ERA II - Berserker - 01.08.2011 18:31

baratorch, исправил уже. Согласен, нехорошо. Теперь отслеживаю ЕРМ Sm


RE: ERA II - hippocamus - 02.08.2011 14:18

Можно повесить например на какую-нибудь дикую комбинацию, вроде Alt-H-F12 или ScrollLock-Esc-2
Чтобы никто случайно не нажал.


RE: ERA II - feanor - 02.08.2011 15:30

Можно в меню окна.


RE: ERA II - Berserker - 09.08.2011 05:42

   Эра стала поддерживать строки-константы в командах. Это хорошо. Но не поддерживались стандартные способы вставки переменных в строки: %V, W, E... Это плохо.
Вывод: теперь поддерживаются.
   Но этого мало. Буквально на днях у нас с Бесом зашла речь о том, чтобы сделать для каждого героя улучшенную настройку автобитвы: с разрешением магии и без. "Бес, как обычно, что-нибудь найдёт" - подумал я. "И где мне найти свободную w-переменную?" - подумал Бес. И действительно. Выделять память на каждый чих, как у Мора (1000 переменных на героя, статические) нерационально, вести контроль индексам неудобно. Спасла бы ассоциативная память. Аки глобальные именованные переменные. Сказано - сделано.
   Но постойте. А что хранить будут переменные? Хранить будут числовое и строкове значение. Работать можно и с тем и с другим. Если оба станут 0/пусто, то переменная не будет сохранена в файле. Если взять значение несуществующей переменной, то вернётся 0/пусто, что для подавляющего большинства значений очень удобно.



RE: ERA II - Berserker - 11.08.2011 00:27

   Хотсит. Надоело при старте/загрузке вбивать руками два имени игрока, да и кнопка без этого неактивна. Решение: берём имя игрока, по нему генерируем два, заполняем автоматически поля и делаем кнопку активной. Готово.
Image: original.jpg


RE: ERA II - Sav - 11.08.2011 23:23

Berserker Wrote:Как оказалось, Сав несколько переусложнил задачу. К счастью, ЗВС уже внёс более 50 правок, корректирую смещения на новую таблицу архивов (размер: 100) и индексов (по типам лодов).

Я знаю. Я только не знал о размере таблицы и её статичности (вообще не представляю, как я мог об этом достоверно узнать), поэтому решил для надёжности завести свою. Насчёт индексов (если мы об одном и том же): они, вроде, не по типам лодов, а просто являются порядковыми номерами подгружаемых лодов.


RE: ERA II - Berserker - 11.08.2011 23:42

Нет, именно типы лодов. ZVS в своей AddToList добавляет новые лоды во все три игровых типа:
// 1 def
// 2 txt,pic
// 3 wav
А традиционно разные лоды к разным типам. h3sprite = def, h3bitmap = txt, pcx. Осталось лишь проверить, берётся ли из лодов звук.

>> Исправил HE:A. Нет больше проблем с (y-) переменными. Но поскольку они не поддерживаются в новых событиях, а y+ наоборот теперь поддерживаются везде, то рекомендуются последние.


RE: ERA II - Berserker - 12.08.2011 23:37

Code:
:
    - [dl buttons fix.bin], автор: Berserker.
    Кнопки в DL-диалогах теперь понимают параметр "флаги", являющийся скан-кодом клавиши, к которой привязывается кнопка. Кроме того, кнопки больше не закрывают диалог автоматически и реагируют на события нажатия (12) и отжатия (14).
    - [fix erm ss a command.bin], автор: Berserker.
    Исправляет баг в команде ЕРМ SS:A, которая приводила к смене не краткого названия заклинания, а полного.
    - [fix erm ca b2 command.bin], автор: Berserker.
    Исправляет команду CA:B2, которая кроме разрушения строения также отстраивала все необходимые для него постройки.



RE: ERA II - Sav - 14.08.2011 16:35

Berserker Wrote:Нет, именно типы лодов. ZVS в своей AddToList добавляет новые лоды во все три игровых типа:
// 1 def
// 2 txt,pic
// 3 wav
А традиционно разные лоды к разным типам. h3sprite = def, h3bitmap = txt, pcx. Осталось лишь проверить, берётся ли из лодов звук.
Об этих индексах и типах я ничего не знал.


Я говорил про эти индексы, передающиеся аргументами sub_75605B:
.text:007015F8 push 4
.text:00701615 push 5


А внутри sub_75605B этот параметр сравнивается с 0 и 64:
.text:00756077 cmp [ebp+arg_0], 0
.text:0075607B jl short loc_756083
.text:0075607D cmp [ebp+arg_0], 64h
.text:00756081 jl short loc_7560A1

И, если он не в их промежутке, вызывается некая функция, одним из параметров которой является указатель на строку "Incorrect LOD index to add".
.text:00756083 loc_756083: ; CODE XREF: sub_75605B+20j
.text:00756083 push offset aIncorrectLodIn ; "Incorrect LOD index to add"
.text:00756088 push 45h
.text:0075608A push 13h
.text:0075608C call sub_71248A



RE: ERA II - Berserker - 14.08.2011 17:10

Ты говоришь про парадметры Lod::AddToIndex. Я понял. Но это несколько не то...


RE: ERA II - Sav - 14.08.2011 19:02

Как оказалось, месяц назад я-таки не исправил баг в своём плагине (необходимость подгрузки минимум двух доп. lod`ов и обязательное существование второго из них). ХЗ, почему мне показалось, что исправил.

Так или иначе, сейчас я поработал над этим.

Оказывается, там (по-видимому, "там" - это воговские данные) есть 12 таблиц, в 8 из которых в функции sub_75605B добавляется номер lod`а. Изначально там хранятся некоторые номера lod`ов, в частности №3 - H3ab_spr.lod. Он, как оказалось, подгружается, если есть. Поэтому отсутствие №3 в таблице для путей к lod`ам и наличие его в одной из тех таблиц порождает баг при < 2 доп. lod`ов. А повтор №3 в таблице при >= 2 параметрах, видимо, порождает баг с необходимостью существования файла.
Я обнулил эти таблицы до воговского кода, а так же "приравнял" H3bitmap.lod и H3sprite.lod ко всем другим - они теперь точно так же, в общем порядке, подгружаются (с добавлением во все 6 таблиц и т. д.)

Теперь игра запускается при отсутствии параметров или единственном параметре, lod`ы не обязаны существовать. А ещё можно переименовать H3bitmap.lod и H3sprite.lod в, скажем, 1.lod и 2.lod и игра заработает, если ввести параметры "/1.lod /2.lod". Sm

Так же я убрал все перенаправления на свою таблицу путей к lod`ам и почистил код от мусора.

UPD: расширил ограничение на кол-во подгружаемых lod`ов до 100.

Плагин с исходником:
Ссылка удалена. Далее в теме новая версия.


RE: ERA II - gamecreator - 15.08.2011 01:03

64h=100, т.е. лод можно добавить только под номером от 0 до 99, это и проверяется.


RE: ERA II - Sav - 15.08.2011 02:09

Спасибо, я как-то об этом совсем не подумал.
Так и ограничил в плагине 64-мя. Sm


RE: ERA II - Berserker - 15.08.2011 03:53

http://www.multiupload.com/Q9RJ3J2N5C
исправление smalfont.fnt, буква "Я" не заставляет весь остальной текст исчезнуть.


RE: ERA II - Berserker - 15.08.2011 04:59

  • Исправлен баг удаления артефактов HE:A3 - не менялся счётчик количества артефактов в рюкзаке. В Фениксе обходились ручной правкой.
  • DL:C больше не закрывает всю иерархию диалогов. Только текущий.
  • HE:A# теперь устанавливает флаг 1 в качестве успеха, то есть если артефакт был дан (было свободное место). Ранее этот процесс никак не контролировался.
  • Выяснена проблема с русской буквой "Я" - файл smalfont.fnt, отступ слева - 255 вместо 0.
  • Благодаря Маготу почти готов справочник в chm - красочный и удобный.
  • Нужно несколько добровольцев-энтузиастов для нелёгкой задачи методичной проверки работы каждой фичи, о которой сказано в руководстве. Работа не малая, но поскольку ничего кроме 1.9 в ближайшем и неближайшем будущем не предвидится, то хочется иметь стабильную основу.



RE: ERA II - etoprostoya - 15.08.2011 09:49

(15.08.2011 03:53)Berserker Wrote:  http://www.multiupload.com/Q9RJ3J2N5C
исправление smalfont.fnt, буква "Я" не заставляет весь остальной текст исчезнуть.
А ведь то же самое было и с буквой "Ж". У меня иногда так пропадал текст "Жажда крови" из книги заклинаний.

(15.08.2011 04:59)Berserker Wrote:  Нужно несколько добровольцев-энтузиастов для нелёгкой задачи методичной проверки работы каждой фичи, о которой сказано в руководстве. Работа не малая, но поскольку ничего кроме 1.9 в ближайшем и неближайшем будущем не предвидится, то хочется иметь стабильную основу.
Я готов, только нужно учесть, что со скриптами я не очень дружу Sm Какие-нибудь другие фишки потестю, с SDK, плагинами и их созданием, например.


RE: ERA II - Sav - 15.08.2011 10:53

Berserker Wrote:Нужно несколько добровольцев-энтузиастов для нелёгкой задачи методичной проверки работы каждой фичи, о которой сказано в руководстве. Работа не малая, но поскольку ничего кроме 1.9 в ближайшем и неближайшем будущем не предвидится, то хочется иметь стабильную основу.
Могу.


RE: ERA II - feanor - 15.08.2011 13:49

Quote:Работа не малая, но поскольку ничего кроме 1.9 в ближайшем и неближайшем будущем не предвидится, то хочется иметь стабильную основу.
Могу.


RE: ERA II - Berserker - 15.08.2011 17:43

Quote:А ведь то же самое было и с буквой "Ж". У меня иногда так пропадал текст "Жажда крови" из книги заклинаний.
Только в calli10r.fnt обнаружил для Ж два отступа: -1, -1, когда для остальных в основном -1, 0. Но сам исчезновения "Ж" не помню.

Quote:Я готов, только нужно учесть, что со скриптами я не очень дружу Image: sm.gif Какие-нибудь другие фишки потестю, с SDK, плагинами и их созданием, например.
Quote:Могу.
Quote:Могу.
Спасибо. В ближайшее время постараюсь подготовить сборку. Возможно, уже сегодня.


RE: ERA II - baratorch - 15.08.2011 20:37

Quote:
Quote:http://www.multiupload.com/Q9RJ3J2N5C
   исправление smalfont.fnt, буква "Я" не заставляет весь остальной текст исчезнуть.
А ведь то же самое было и с буквой "Ж". У меня иногда так пропадал текст "Жажда крови" из книги заклинаний.
Quote:Только в calli10r.fnt обнаружил для Ж два отступа: -1, -1, когда для остальных в основном -1, 0. Но сам исчезновения "Ж" не помню.
отрицательные отступы в шрифтах, не будут портить текст, если применить патч:
WriteByte(0x4B5347, 0xEB); WriteByte(0x4B53E3, 0xEB); недавно только накопал исправление этого бага, хотя давно хотел. С этим патчем и с Бука-СоД шрифтами "Яма василиска", "Жажда крови" и прочее будет отображаться нормально.
Кстати используя отрицательные отступы при создании шрифта, можно при той же плотности достичь большей читаемости.


RE: ERA II - Berserker - 15.08.2011 21:03

Вай, бара, где же ты был раньше? Я сделаю ещё патч от твоего имени в финале тогда.


RE: ERA II - Berserker - 15.08.2011 23:23

Ссылка для тестирования: bers.heroes35.net/Era%201.9%20Rus.exe
Ставить на: чистый вог (рус) или Эру (менее предпочтительно).
Запускать с ярлыка на столе или через h3Era.exe.
Справочник в папке Help.
Tools\Era - исходники всех мастей для программистов.

Интересуют как положительные, так и отрицательные результаты по любому нововведению, в том числе двоичным заплаткам.


RE: ERA II - FallenAngel - 16.08.2011 11:04

Berserker, так тестирование открытое?! С радостью помогу, если что-нибудь найду)

Upd. На 2-х экземплярах вога (один с эрой 1.8, второй - чистый) проверял. С обоими проблема: нажимаю на "показать все доступные сценарии" и ...

Image: 48cb1c7faebd927836f0d9d7b267b4ae.png

Там же можно увидеть отсутствие кнопки "Настройки WoG".

WOGCRASHLOG (Click to View)
Запустил сразу после того, как установил эру (ничего не менял\ставил).


RE: ERA II - feanor - 16.08.2011 15:23

Quote:Upd. На 2-х экземплярах вога (один с эрой 1.8, второй - чистый) проверял. С обоими проблема: нажимаю на "показать все доступные сценарии" и ...
Подтверждаю. Ставил, впрочем, на не самую чистую копию Эры

При запуске из-под отладчика (Olly 2.00) - ошибка по 0045DE8F


RE: ERA II - Berserker - 16.08.2011 18:44

http://zalil.ru/31563380
Для тех, у кого вылет, попробуйте.

Al_Mualim, Try to delete plugin when the game is running. Nothing = key code is displayed?


RE: ERA II - Berserker - 16.08.2011 19:44

FallenAngel, feanor, непонятно, как могла пропасть нарисованная кнопка вога.


RE: ERA II - Berserker - 16.08.2011 19:49

Al_Mualim, upload compiled plugin please.


RE: ERA II - Sav - 16.08.2011 19:51

У меня установившаяся (на чистый рус. вог) версия вылетала сразу же при запуске, с новой dll нормально.


RE: ERA II - feanor - 16.08.2011 19:59

Ага, просмотр карт работает (как при создании, так и при загрузке), запуск под отладчиком - тоже.


RE: ERA II - Berserker - 16.08.2011 20:06

Проблема в модуле Lodman как раз. Я просто выключил обработчик. Можете списки своих лодов привести? И хотя бы в теории, почему кнопки нарисованной от вога не было...


RE: ERA II - Berserker - 16.08.2011 20:13

Sav, feanor, у вас какие операционные системы?

Попробуйте: http://zalil.ru/31563782


Excuse me - Al_Mualim - 16.08.2011 20:48

Sorry for corrupting the thread, I copy it to the wrong EraPlugins directory147 Now it works perfectly132

P.S.: Bers, have you patch for ExeBuilder which ads era.dll to exe?


RE: ERA II - Berserker - 16.08.2011 20:58

Quote:Sorry for corrupting the thread, I copy it to the wrong EraPlugins directoryImage: 147.gif Now it works perfectly
Much better, I'm really glad.

Quote:P.S.: Bers, have you patch for ExeBuilder which ads era.dll to exe?
My approach is not to use ExeBuilder anymore, cause its patching system is not portable and flexible. You can generate the patch via BinMagic comparing TE.exe and h3era.exe. h3era.exe = TE.exe + load era.dll


RE: ERA II - Sav - 16.08.2011 21:05

Berserker Wrote:Sav, feanor, у вас какие операционные системы?
У меня Windows XP SP3.


RE: ERA II - Berserker - 16.08.2011 21:11

А феникс 3.6+ работает? Можешь привести список лодов в дате?
А с этой dll: http://zalil.ru/31563782 ?


RE: ERA II - Sav - 16.08.2011 21:19

Значит так. С изначальной dll или dll из поста 200 герои не запускаются (вернее мнгновенно вылетают). С dll из поста 194 запускаются нормально. Если я кладу мой плагин подгрузки lod`ов в EraPlugins, всё работает в любом случае. Видимо, проблема в автоподгрузке lod`ов (мой плагин обнуляет таблицы подгружаемых lod`ов во время инициализации).
lod`ы в Data: H3bitmap.lod, H3sprite.lod, H3ab_bmp.lod, H3ab_spr.lod, H3abp_bm.lod, H3abp_sp.lod.

Феникс работает.

С dll из поста 204 то же самое, что и с изначальной или из поста 200.


RE: ERA II - Berserker - 16.08.2011 21:30

Большое спасибо.


RE: ERA II - Sav - 17.08.2011 00:13

Добавил в плагин Lods проверку на существование файла (она же включает в себя проверку на директорию).
Полагаю, это последняя версия плагина (больше не буду тут оффтопить Sm), так что добавил в архив что-то типа описания.
Где-то там более новая версия: http://wforum.heroes35.net/showthread.php?tid=536&pid=65539#pid65539.


RE: ERA II - Berserker - 17.08.2011 00:40

На вог-архив залей, укажи с пометкой для Эры 1.81-.


RE: ERA II - feanor - 17.08.2011 00:49

Quote:Sav, feanor, у вас какие операционные системы?
WinXP SP2

Список лодов:
Code:
h3.lod__
H3ab_bmp.lod
H3ab_spr.lod
H3bitmap.lod
h3custom.lod
h3custom.lod Backup <dir>
h3pbitma.lod
H3sprite.lod
H3sprite.lod Backup <dir>
h3toe.lod_
h3wog.lod
h3wog.lod_
h3wog.lod___
H3wog.lod Backup <dir>
_h3custom.lod_

С длл из 200ого или 204ого поста не работает - не запускается вообще, оля говорит, что вылет в том же 0045DE8F.

Quote:И хотя бы в теории, почему кнопки нарисованной от вога не было...
Не успела отрисоваться. Там много что не успевало.


RE: ERA II - Berserker - 17.08.2011 00:52

Понял, спасибо, постараюсь разобраться. А пока можно использовать ту dll, что не вылетает. Там нет только автоподгрузки лодов.


RE: ERA II - etoprostoya - 17.08.2011 01:17

(17.08.2011 00:49)feanor Wrote:  
Quote:И хотя бы в теории, почему кнопки нарисованной от вога не было...
Не успела отрисоваться.

Это как? Она же всегда нарисована, прямо на картинке, без помощи чего-либо.


RE: ERA II - Berserker - 17.08.2011 01:23

Я эти таблички не обнулял, но у меня крушений не было, как я не издевался над лодами и сколько бы не создавал.

Code:
LodTypes::_Table LodTypes::Table[4][3]={
  {{2,Seq[0][0]},{2,Seq[0][1]},{2,Seq[0][2]}},
  {{3,Seq[1][0]},{3,Seq[1][1]},{3,Seq[1][2]}},
  {{1,Seq[2][0]},{1,Seq[2][1]},{2,Seq[2][2]}},
  {{2,Seq[3][0]},{2,Seq[3][1]},{2,Seq[3][2]}}
};
// 1 def
// 2 txt,pic
// 3 wav
int LodTypes::Seq[4][3][100]={
  {{5,1},{4,0},{1,0}},
  {{7,3,1},{6,2,0},{2,1,0}},
  {{1},{0},{1,0}},
  {{1,3},{0,2},{1,0}}
};

Попробую приводить в дественный вид.
Сав, грузить h3sprite/bitmap нужно первыми, чтобы остальные лоды имели больший приоритет и потому, что в воге есть места, где вещи ищутся именно в этих лодах.


RE: ERA II - Berserker - 17.08.2011 02:48

Кажется, разобрался. 4 версии игры, 3 типа лодов: def/txt-pcx/wav условно. Версия игры СоД - 2. 3 ставится после при наличии одного из проверяемых файлов. Соответственно таблица 4х3, где каждая клеткая содержит кол-во лодов данного типа и указатель на массив индексов лодов в глобальной таблице. Новые лоды заносятся сразу во все три типа всех версий игры.

79F040 - LastInd
79EFE0 - LodTypes


RE: ERA II - Berserker - 17.08.2011 03:11

Поправка, новые лоды не во все типы заносятся, wav нет. Не знаю, ошибка в коде или ещё какая-то причина.


RE: ERA II - Berserker - 17.08.2011 03:34

http://zalil.ru/31565523
Включил снова модуль лодов, добавил обнуление их стартовых количеств по типам, два главных лода игры получают самый низкий приоритет загрузки, но не являются обязательными (на страх и риск), имёна приводятся к нижнему регистру в сортированном списке, а значит B.lod будет загружен после a.lod.


RE: ERA II - feanor - 17.08.2011 09:18

Нет. Все равно отсутствие видимой загрузки.
Если занопить загрузку cmpmusic.txt - дойдет до выбора карты, где и рухнет с вышеупомянутыми симптомами.


RE: ERA II - Sav - 17.08.2011 10:10

Berserker Wrote:Сав, грузить h3sprite/bitmap нужно первыми, чтобы остальные лоды имели больший приоритет и потому, что в воге есть места, где вещи ищутся именно в этих лодах.
Ну, я в плагине так и делаю (если они существуют). Или это к чему-то друому относится?

Berserker Wrote:Поправка, новые лоды не во все типы заносятся, wav нет. Не знаю, ошибка в коде или ещё какая-то причина.
Вроде как специально. По крайней мере в ассемблерном виде сделанные для этого приспособления выглядит слишком громозкими, чтобы быть ошибкой. Sm


RE: ERA II - Sav - 17.08.2011 14:38

С dll из поста 215 такая фигня: если в Data есть H3bitmap.lod и/или H3sprite.lod, то игра будет ругаться на отсутствие различных ресурсов (каких - зависит от наличия других lod`ов). Если их оба переименовать и оставить в Data, всё работает.

P. S. Вроде как залил плагин на вогархив, слабо понял, куда и как ставить пометку, вставил в описание, в общем, сами отредактируете (там же премодерация?)


RE: ERA II - Sav - 17.08.2011 15:35

В общем, тестирую на версии dll без автоподгрузки lod`ов.


Так вот, второй красный - почему-то чёрный. Закономерность установить не удалось: с некоторыми цветами всё нормально, некоторые изменяются (по-разному).


RE: ERA II - etoprostoya - 17.08.2011 15:38

Подтвердил - http://wogarchive.ru/file.php?id=161


RE: ERA II - Sav - 17.08.2011 15:48

По поводу автозаполнения имён в хотсите:
В H3 всегда можно было сохранить имя первого игрока (чтобы оно вставлялось автоматически). Для этого надо: Новая игра - Одиночная игра - Показать дополнительные опции - щёлкнуть по имени игрока рядом с флагом и изменить его. Изменённый вариант будет заменять "Player 1" или "Игрок 1".
Изменил таким образом имя на Sav. Автозаполнение после этого выдало: "Sav 1" и "Sav 2". Sm


RE: ERA II - Sav - 17.08.2011 16:52

В справочнике:

Подразумевается !!SN:A же?

Первый пример как-то не в тему.


RE: ERA II - etoprostoya - 17.08.2011 17:05

Quote:Соглашение о вызове:
   - 0 (PASCAL)
   - 1 (CDECL или STDCALL)
Ну вот, а меня всё убеждают, что cdecl и stdcall - разные вещи. Sm


RE: ERA II - gamecreator - 17.08.2011 17:07

разные, просто в Эре сделано вместе (зачем - Берс его знает Sm)


RE: ERA II - Berserker - 17.08.2011 17:09

Quote:Ну вот, а меня всё убеждают, что cdecl и stdcall - разные вещи.
Они и есть разные. Эра запоминает указатель стёка до и восстанавливает после вызова.


RE: ERA II - etoprostoya - 17.08.2011 17:27

Ну, в общем-то я и сам знаю, что это разные соглашения. Sm Но сколько ни компилировал, cdecl и stdcall в коде ведут себя взаимозаменяемо. Возможно, это особенность майкрософтского компилятора (в настройках по умолчанию или постоянно), возможно ещё что-то.


RE: ERA II - gamecreator - 17.08.2011 19:00

взаимозаменяемы только thiscall и stdcall, остальные все разные. наверно ты вызывал их из той же программы, поэтому ничего и не заметил.


RE: ERA II - feanor - 17.08.2011 19:13

Quote:взаимозаменяемы только thiscall и stdcall
только в одном направлении же: вызов stdcall'ой функции как thiscall'овской запишет ненужный this в ecx, а наоборот - не передаст уже нужный this в ecx.
Аналогично, можно thiscall'овскую функцию можно вызывать как fastcall'овскую, ручками передав this и зaписав фигню во второй параметр, но не наоборот.

Если пишу фигню - скажите, я, походу, траванулся



RE: ERA II - Berserker - 17.08.2011 19:30

Ошибка оказалось гораздо банальнее - в числовой переменной.


RE: ERA II - Berserker - 17.08.2011 21:19

Исправил (вроде бы) проблему лодов, ужесточил контроль над двумя основными, добавил правильную их регистрацию (h3bitmap и h3sprite.lod имеют конкретные типы, так что нечего их дёргать по каждому файлу). Проверил у себя - больше ошибка ненайденных файлов не появляется.

Исправил ошибку, указанную Савом, с цветным текстом.

http://zalil.ru/31568900


RE: ERA II - Sav - 17.08.2011 21:25

А со звуковыми файлами в lod`ах всё-таки не вышло?

С новой dll не запускается, если есть какие-либо lod`ы, кроме H3bitmap.lod и H3sprite.lod. Если только они - всё нормально.

С цветами стало нормально.


RE: ERA II - Berserker - 17.08.2011 21:36

Там своя таблица по ходу, и не лодов, а snd. Индексы назначить можно, но будет страшно ругаться постоянно, ибо реально только один snd загружен - Heroes3.snd.

http://zalil.ru/31569012


RE: ERA II - etoprostoya - 17.08.2011 21:55

Хм, задумал переделать некоторых существ из польской Рощи.
Если я весь установочный пакет Рощи переделаю и создам H3GroveO.lod (O - Original), а потом переделанных существ упакую в H3GroveM.lod (M - my). То какие файлы будут читаться из этих лодов и в каком порядке, а какие не будут читаться вообще (например, скрипты), чтобы их туда и не ложить? Нужно создавать не H3GroveM.lod, а H3GroveR.lod, чтобы грузился сначала H3GroveO.lod, а потом мой лод, если следовать алфавиту?


RE: ERA II - Berserker - 17.08.2011 22:06

Скрипты будут грузиться из Data\s по-любому. Имена лодов будут приведены в нижний регистр и загружены в алфавитном порядке. Поэтому рекомендую:
Groove.lod, GrooveExt.lod или что-то в этом духе. Ну и любой новый лод имеет приоритет перед стандартными.


RE: ERA II - Sav - 17.08.2011 22:07

etoprostoya Wrote:То какие файлы будут читаться из этих лодов и в каком порядке, а какие не будут читаться вообще (например, скрипты), чтобы их туда и не ложить?
Будут читаться все файлы, которые по-умолчанию присутствуют в H3bitmap.lod и H3sprite.lod. Т. е. : fnt, h3c, ifr, pal, pcx, txt, xmi, def, msg, msk.

etoprostoya Wrote:Нужно создавать не H3GroveM.lod, а H3GroveR.lod, чтобы грузился сначала H3GroveO.lod, а потом мой лод, если следовать алфавиту?
Я бы в подобной ситуации назвал lod`ы 0H3GroveO.lod и 1H3GroveM.lod.

Кстати, Берс, а ты убрал подгрузку H3wog.lod и H3custom.lod? А то двойная их подрузка может привести к багам.


RE: ERA II - Berserker - 17.08.2011 22:12

Quote:Кстати, Берс, а ты убрал подгрузку H3wog.lod и H3custom.lod? А то двойная их подрузка может привести к багам.
Конечно. Попробуй последнюю ссылку.


RE: ERA II - etoprostoya - 17.08.2011 22:13

Quote:Скрипты будут грузиться из Data\s по-любому.
Поскольку лоды начинают грузиться раньше скриптов (я так полагаю, могу и ошибаться), то можно ведь сделать так, чтобы и скрипты грузились из лодов? Насколько трудно будет сделать такое? Ведь так можно было бы для модмейкеров во многих случаях обойтись распространением одного лишь лода, а не вог-файла, который заменяет уже имеющиеся скрипты. А так, удалил или сменил расширение того же Grove.lod и продолжай себе играть в оригинальный вог-эру с Крепостью, а потом опять сменил расширение на lod и играй в Рощу.

(17.08.2011 22:07)Sav Wrote:  
etoprostoya Wrote:То какие файлы будут читаться из этих лодов и в каком порядке, а какие не будут читаться вообще (например, скрипты), чтобы их туда и не ложить?
Будут читаться все файлы, которые по-умолчанию присутствуют в H3bitmap.lod и H3sprite.lod. Т. е. : fnt, h3c, ifr, pal, pcx, txt, xmi, def, msg, msk.
Расширить этот список на ert и erm, например, будет сложно?


RE: ERA II - Berserker - 17.08.2011 22:18

Не выйдет. Например, сейчас пишу прогу для установки новых объектов в z[e]objects.txt. Решили с Валерием, что только в дате место подобным текстовикам. snd тоже никто не расширил (если Саву интересно, дам наводку). Поэтому всё ещё есть вещи, которые устанавливаются не простым копированием. Если я не ошибаюсь, скрипты можно хранить в лоде, но те, что в файлах, пока имеют приоритет.


RE: ERA II - Sav - 17.08.2011 22:38

Berserker Wrote:Конечно. Попробуй последнюю ссылку.
Да, увидел. Только если в Data есть lod`ы кроме основных - вылет по адресу 61846Eh. Кстати, интересное замечание: я посмотрел, длины всех 4-х таблиц звукового типа в этот момент равны нулю. Ты случайно не обнуляешь их там?

Berserker Wrote:если Саву интересно, дам наводку
Интересно. Sm


RE: ERA II - Berserker - 17.08.2011 22:39

Обнулял. Сейчас скомпилирую без обнуления.

http://178.124.101.230:81/Era.dll


RE: ERA II - gamecreator - 17.08.2011 22:41

(17.08.2011 19:13)feanor Wrote:  только в одном направлении же: вызов stdcall'ой функции как thiscall'овской запишет ненужный this в ecx, а наоборот - не передаст уже нужный this в ecx.
Аналогично, можно thiscall'овскую функцию можно вызывать как fastcall'овскую, ручками передав this и зaписав фигню во второй параметр, но не наоборот.
что-то я запутался окончательно


RE: ERA II - Sav - 17.08.2011 22:42

Berserker Wrote:Обнулял. Сейчас скомпилирую без обнуления.

То же самое, только нулю они не равны. Значит дело не в этом.


RE: ERA II - Berserker - 17.08.2011 22:44

Единственное место, где идёт поиск snd-архивов, это:
{0x55C438+3,DS(&LodTypes::Table[0][2]),4}.
Адрес уже перенаправлен на ЗВС-ову таблицу типов архивов. А вот ниже по коду поиск индексов лодов идёт не в таблице лодов, а в своей. Туда же грузятся и snd-файлы, опять-таки в статическую область. Поставь хук на чтение heroes3.snd, найдёшь. Очевидно, нужно проделать ту же операцию, что и с оригинальной таблицей: расширить и поменять ссылки + вызвать загрузку snd-файлов. Что-то помнится, что там вручную файл считывался, но не уверен.

Sav, можешь скачать hfs и расшарить свою папку с игрой?


RE: ERA II - Sav - 17.08.2011 22:56

Насчёт snd спасибо, попробую.

Berserker Wrote:Sav, можешь скачать hfs и расшарить свою папку с игрой?
Да, сейчас.


RE: ERA II - Sav - 17.08.2011 23:08

Нафиг ссылку.
У меня роутер и, похоже, HFS видит только внутренний IP компа. Чтобы подключить модем напрямую, надо его перенастраивать. Есть какой-нибудь более простой вариант?


RE: ERA II - Berserker - 17.08.2011 23:10

Более простого пока не знаю. Остаётся загадкой, почему у тебя работает Феникс.
У меня есть последнее дикое предположение - сперва добавлять лод в таблицу типов, потом грузить.


RE: ERA II - Sav - 17.08.2011 23:44

В общем, ладно, если у других будет всё нормально, я буду искать проблему у себя. Модем быстренько нормально перенастроить не вышло (это всегда у меня тратит не меньше часа Sm).

Я где-то на неделю выбываю из тестирования. Если потом оно будет ещё актуально, продолжу.

Из того, что я смотрел, хорошо работает: загрузка и выгрузка скриптов по F11 и F12, исправления HE:A, теперь цветной текст, команда SN:L.


RE: ERA II - Berserker - 17.08.2011 23:53

Спасибо.


RE: ERA II - Berserker - 18.08.2011 03:38

Феанор, остался ты. Баг определённо нужно поймать. Тупая магия какая-то.


RE: ERA II - gamecreator - 18.08.2011 13:20

(17.08.2011 23:08)Sav Wrote:  Есть какой-нибудь более простой вариант?
выбрать нужный ип-адрес в меню


RE: ERA II - Berserker - 18.08.2011 18:44

Феанор, у тебя последний вариант работает?


RE: ERA II - FallenAngel - 18.08.2011 20:09

Berserker, ну, раз у меня с ним проблема показала себя одинаково, могу ответить за него, только вот последний - это какой именно?


RE: ERA II - Berserker - 18.08.2011 20:17

http://zalil.ru/31573573


RE: ERA II - FallenAngel - 18.08.2011 21:19

Berserker, нет. Опять не отрисовывается кнопка настроек вога и все остальное, как в первый раз.


RE: ERA II - etoprostoya - 18.08.2011 21:22

А обычный ВоГ нормально показывает, кнопка "отрисовывается"?


RE: ERA II - FallenAngel - 18.08.2011 21:26

etoprostoya, да.


RE: ERA II - Berserker - 18.08.2011 21:35

FallenAngel, Твой инет позволяет залить архив твоего вога? Можно без музыки, доп. прог.


RE: ERA II - Berserker - 18.08.2011 21:44

h3bitmap.lod\GSelPop1.bmp, кнопка нарисованная. Может быть папка EraPlugins содержит фигню?
Простой способ проверить: оставить только EraPlugins\BeforeWoG


RE: ERA II - FallenAngel - 18.08.2011 21:47

Berserker, могу залить, но завтра. Тем не менее, не вижу смысла, т.к. эра у меня на чистом и на измененном проявляет себя одинаково. "Чистый вог" - Платина (без патчей), all in one 3.58f и русификатор rubeta358f.zip вместе с русификатором биографий командиров. Если все же настаиваешь на то, чтобы выложил, так и напиши.


RE: ERA II - Berserker - 18.08.2011 21:51

Угу, потому что у меня СОД. Если вдруг я запущу и тоже будет ошибка, то я смогу по крайней мере её отладить.
Такое ощущение, что в платине изменённая чуть система лодов и h3sprite/bitmap уже не главные.


RE: ERA II - FallenAngel - 18.08.2011 21:56

Berserker, удалил все, кроме BeforeWoG (хотя своего ничего не добавлял) и все заработало. Даже не удивлюсь, если где-то тут было написано, что это все нужно было после установки удалить х)


RE: ERA II - etoprostoya - 18.08.2011 21:57

FallenAngel, посмотри у себя в h3bitmap.lod\GSelPop1.pcx, на нём нарисована кнопка вог-опций?
Если нарисована, то потом "дефрагментируй свой h3bitmap.lod вот этой программкой http://zalil.ru/31573903 (нужно просто открыть лод, а потом нажать "make". Если после этого ничего не изменится, то есть h3era.exe не будет показывать кнопку вог-опций, а h3wog.exe будет, то это точно проблема Эры.

(18.08.2011 21:56)FallenAngel Wrote:  Berserker, удалил все, кроме BeforeWoG (хотя своего ничего не добавлял) и все заработало.

Как обычно, проблема решается просто)


RE: ERA II - FallenAngel - 18.08.2011 22:01

etoprostoya, в в h3bitmap.lod\GSelPop1.pcx кнопка есть, но Эра грузила GSelPop1.pcx из h3ab_bmp.lod, который с платиной устанавливается.


RE: ERA II - Sav - 18.08.2011 22:02

У меня тоже SoD, если что. Но у меня и ошибка другая.

Если что, я ставил так:
1. База: RoE + AB + SoD (в одну папку в таком порядке, все русские версии).
2. WoG 3.58f (файл allinone_358f.exe из темы "Общая информация об игре").
3. Global Rus Patch (версия 1.2, кажется, последняя).
4. Собственно, Эра.

Выложить или проверить что-то не могу, но, может быть, это описание поможет.


RE: ERA II - FallenAngel - 18.08.2011 22:03

Так что, чистить плагины, которые входили в установочный пакет, и правда нужно было после установки эры?


RE: ERA II - etoprostoya - 18.08.2011 22:18

Я думаю, проблема в том, что у меня H3ab_bmp.lod, H3ab_spr.lod и H3ab_ahd.snd занимают по одному байту. Если эти лоды содержат что-то, то это что-то грузится после h3sprite и h3bitmap, а нужно наоборот. Хотя, может быть, я проблему не так понял. Объясните тогда, а заодно и сами разберётесь)


RE: ERA II - FallenAngel - 18.08.2011 22:24

etoprostoya, у платины H3ab_bmp.lod, H3ab_spr.lod и H3ab_ahd.snd содержат все то, что содержат те же файлы в AB. Т.е. почти все то, что есть в H3ab_bmp.lod, H3ab_spr.lod есть в h3sprite и h3bitmap. Подтвердят все владельцы платины.

А инсталлятор вога с ними ничего не делает, то бишь тот же GSelPop1.pcx в H3ab_bmp.lod после установки вога не меняется. А эра грузит его после h3bitmap.lod. Проблема довольно ясна) Можно попробовать заменить их на однобайтовые. И попробовать со всем, что в EraPlugins запустить.


RE: ERA II - FallenAngel - 18.08.2011 22:36

Сделал все то, что я сказал выше, и опять успех. Значит, если я правильно понял, что-то в EraPlugins заставляло эру грузить лоды в ином порядке. Чего-то, кроме файлов из установочного пакета там не было.


RE: ERA II - Sav - 18.08.2011 22:47

По-видимому, сделать однобайтовыми = удалить. У меня при удалении их всё тоже работало.


RE: ERA II - feanor - 18.08.2011 23:10

(18.08.2011 20:17)Berserker Wrote:  http://zalil.ru/31573573
Не запускается вообще.


RE: ERA II - FallenAngel - 18.08.2011 23:34

feanor, ну вот и подтверждение)
Sav, разве? Их наличие должно быть для создания рандомных карт и выбора конфлюкса.


RE: ERA II - Sav - 18.08.2011 23:44

Это, видимо, искусственное ограничение с отдельной проверкой, к тому же убранное в ВоГе. Я говорю о значении для подгрузки lod'а.


RE: ERA II - Berserker - 19.08.2011 00:12

Блин, понял! В ваших лодах другие текстовики, имеющие приоритет над тем, что в стандартных. И эти текстовики запрашивают что-то нехорошее. Но почему всё становится ок, если убрать плагины = хз, нужно копать. Если FallenAngel будет так добр и завтра зальёт всю папку, то я попытаюсь капитально разобраться в этом вопросе. Но одно уже ясно - приоритет системных лодов должен быть строгим, хотя выпусков игр был ведь много...
И всем большое спасибо за помощь, а тоя уже не первый день нервничаю.


RE: ERA II - FallenAngel - 19.08.2011 00:12

Sav, ну, по крайней мере у меня эра 1.9 без них не может делать рандомные карты и выбирать конфлюкс.

Berserker, тебе с эрой закинуть?


RE: ERA II - feanor - 19.08.2011 00:13

Quote:В ваших лодах другие текстовики, имеющие приоритет над тем, что в стандартных. И эти текстовики запрашивают что-то нехорошее. Но почему всё становится ок, если убрать плагины = хз, нужно копать.
эмм..снес все плагины, снес h3wog & h3custom - один фиг не запускается


RE: ERA II - Berserker - 19.08.2011 00:14

Quote:к тому же убранное в ВоГе
Не убранное.


RE: ERA II - FallenAngel - 19.08.2011 00:20

Berserker, тебе с эрой закинуть?

х) поздно отредактировал пост



RE: ERA II - etoprostoya - 19.08.2011 00:45

Кидай всё, кроме, может быть, "Maps" и "MP3".


RE: ERA II - Berserker - 19.08.2011 01:02

Да, полностью как ты запускал в начале в детородном виде. Я всегда ставлю сразу СОД, поэтому лодов от других версий, кроме однобайтовых, нет.


RE: ERA II - FallenAngel - 19.08.2011 01:17

Ах, да. Я совсем забыл, что я еще на "Чистый ВоГ" поставил:
1) обновление динамических библиотек;
2) h3wog.exe пропатчен 32bit патчем
3) video full.wog + extra bf.wog;
4) и, конечно патч редактора карт.
(клянусь, ничего больше Fie)

Чистый ВоГ таки ЧИСТЕЙШИЙ ВоГ Rolleyes.

Абсолютно уверен, что ничего из этого не вызовет подозрений по поводу несовместимости с эрой.


RE: ERA II - Berserker - 19.08.2011 01:24

Да, это вряд ли.

Пока думаю, раз ехе содовский, то первоначальный порядок системных лодов будет как в соде, а все новые уже с большим приоритетом.


RE: ERA II - FallenAngel - 19.08.2011 11:11

Berserker, лови.


RE: ERA II - Berserker - 19.08.2011 18:55

Большое спасибо!


RE: ERA II - Berserker - 20.08.2011 01:14

Что выяснил. Плагины, как и предполагалось, ни на что не влияют. Источник сбоев - армагеддонский lod, перекрывающий основной. Кроме того стало ясно, что в редакторе также нужно расширять таблицу лодов. На вскидку:

Code:
5aa8c8[b8] - lodtypes
5aa880 - ?
5a9c00 - pointer to the lod's table
5a9c04 - 0?
Одно проще - это централизованный указатель на таблицу. А вот на типы лодов разные ссылки, но в сумме где-то 12-15 явных, что приемлемо.

К какому решению я пришёл. Поскольку герои могут ставиться версионно, одно на другое, то в дате может скопиться много опасных лодов с кривыми текстовиками. Эти лоды будут приняты за пользовательские, загружены с большим приоритетом и...Сами знаете, в кого полетят какашки.

Следовательно решение простое:
1) Строго сохранять приоритет загружаемых Содом лодов.
2) Новые лоды подружать с другим расширением (.pac).
3) По возможности добавить в редактор точно такой же алгоритм.

Ну и если кто точно найдёт всё, что связано с snd-файлами, то можно и подгрузку snd, но это на перспективу.


RE: ERA II - hippocamus - 21.08.2011 01:32

Лучше создать текстовик со списком подгружаемых лодов. Они там будут в нужном порядке, а ненужные можно закомментить.
Но - не понимаю, почему не устраивает способ, реализованный Савом - перечислять их в коммандной строке?, тогда каждый мод будет представлен просто отдельным батником.


RE: ERA II - Berserker - 21.08.2011 01:59

Супер, а два мода? А три? А два + удаление третьего?
Я же сказал, конфликтов больше нет, новые лоды имеют расширение pac. А кто хочет пусть мучается с командной строкой, обновляет батники, стандартизирует их (иначе как уживаться лодам с разным содержимым от разных авторов?)


RE: ERA II - feanor - 21.08.2011 02:30

Quote:Лучше создать текстовик со списком подгружаемых лодов. Они там будут в нужном порядке, а ненужные можно закомментить.
Ересь-ересь-ересь. Сколько с zeobjcts.txt мучений было?
Quote:Но - не понимаю, почему не устраивает способ, реализованный Савом - перечислять их в коммандной строке?
А запуск экзешника, сталбыть, обламывается?
____
Вообще, идеальный (и слабореалистичный) вариант: мод есть одиночный файл, кладущийся в некую папку. Настройка осуществляется внутри игры с помощью унифицированного интерфейса. Причем шоб этот файл по структуре, натурально, был проще jar-архива.

Менее идеальный, но более реализуемый: мод - набор отдельных файлов, которые не изменяют уже существующие файлы. Настройка - либо через конфиг, который, во-первых, не склонен ронять игру по лишним пробелам, а во-вторых - очевиден и редактируется блокнотом, либо через конфигуратор, либо через опять же внутриигровой гуй.

А от веселых идей с бинарными конфигами и параметрами командной строки отучает чтение НС - там таааакие кадры попадаются..


RE: ERA II - Berserker - 21.08.2011 03:05

Слабореалистичный, ибо железный подход во многом применяется и Героями и ЗВС. Статичные массивы, общие текстовые конфиги, подгрузка конкретных файлов в конкретные места (те же скрипты 00..99) и т.д.
К сожалению Bad


RE: ERA II - Sav - 21.08.2011 11:36

hippocamus, мой плагин отключает автоподгрузку, так что те, кому он удобнее, могут спокойно им пользоваться.

Berserker Wrote:Я же сказал, конфликтов больше нет, новые лоды имеют расширение pak.
Так pac или pak? И я так и не понял, чем это так необходимо. Ведь все подгружаемые по-умолчанию lod'ы известны поимённо. С другой стороны, плохого в этом нет. Правда, мне придётся изменить свой плагин, чтобы он тоже грузил pac(k)'и.

И ещё вот что. Сортировка в алфавитном порядке - такой же рандом при lod'ах разных модов, ибо никто не знает, как назовёт другой. Правда, лучше предложить ничего не могу. Просто иногда, при фиксированном наборе модов, пользователю может быть проще один раз написать батник, чем переименовывать lod'ы при каждом обновлении.

feanor Wrote:А запуск экзешника, сталбыть, обламывается?
В каком смысле?


RE: ERA II - Berserker - 21.08.2011 16:12

pac, исправил Rolleyes

Quote:И я так и не понял, чем это так необходимо. Ведь все подгружаемые по-умолчанию lod'ы известны поимённо.
Неизвестны. Какое-нибудь золотое, серебрянное или просто пользовательское собрание вполне может иметь незагружаемый Содом, но вредоносный лод. Это может быть локализация или какой-нибудь урезанный вариант, но с расширением lod. Понять, в чём ошибка, как доказал кастрированный файл клинка армагеддона, весьма сложно.

Quote:Сортировка в алфавитном порядке - такой же рандом при lod'ах разных модов, ибо никто не знает, как назовёт другой.
Во-первых, не рандом. Можно даже батником переименовать имеющиеся лоды в циферные варианты. Во-вторых, операции с файловой системой - самое простое, что доступно пользователю: удалить, скопировать, переименовать.

Можно сделать консольную прогу в инсталляторе, которая построет список паков и сгенерирует автоматический префикс выше/ниже приоритетом. Это то, что распространяется на всех и может быть автоматизированно. Батники же нужно стандартизировать (ты с командной строки запускаешь? Я с run.bat, а он с go.bat...) и вручную редактировать даже если нет конфликта между архивами. Такой подход напоминает мне установку порядка для заплаток и модулей: тоже через списки и тоже вручную. Бррр...

Quote:Просто иногда...
То иногда, а то для всех )

Все большое спасибо за помощь, Саву в том числе и за плагин.


RE: ERA II - Sav - 21.08.2011 16:37

Berserker Wrote:То иногда, а то для всех )
Я понимаю. Я просто пытаюсь показать, что мой плагин может быть полезен не только своим исходником. Sm


RE: ERA II - feanor - 26.08.2011 05:01

Давно хотел написать еще..в SDK лучше избегать имен переменных типа x и y - вместо них юзать что-то типа xvar и yvar.


RE: ERA II - Berserker - 26.08.2011 05:51

Для СИ++ только. Ок.


RE: ERA I.9 - Berserker - 27.08.2011 18:35

Вышел русский релиз версии 1.9. Подробности в первом сообщении.


RE: ERA I.9 - Berserker - 28.08.2011 01:54

XXL PO Fix
Модуль позволяет играть со скриптами, использующими ERM команду PO.


RE: ERA I.9 - Berserker - 28.08.2011 03:51

Вдруг кто захочет оптимизировать, вот исходник:
Code:
LIBRARY Po;
USES Windows, SysUtils, Era;

CONST
  SECOND_DIM_SIZE   = 256 * 2 * 4;
  SECOND_DIM_SIZE2  = 256 * 2 * 16;
  SQUARES_SIZE      = 256 * 256 * 2 * 4;
  SQUARES2_SIZE     = 256 * 256 * 2 * 16;

TYPE
  PSquare = ^TSquare;
  TSquare = INTEGER;
  
  PSquare2  = ^TSquare2;
  TSquare2  = PACKED ARRAY [0..3] OF INTEGER;
  
  PPOINTER  = ^POINTER;


CONST
  ErmSquare:  ^PSquare  = Ptr($27C9678);
  ErmSquare2: ^PSquare2 = Ptr($9A48A0);


VAR
  Squares:  PACKED ARRAY [0..255, 0..255, 0..1] OF TSquare;
  Squares2: PACKED ARRAY [0..255, 0..255, 0..1] OF TSquare2;


PROCEDURE OnAfterWoG (Event: Era.PEvent); STDCALL;
BEGIN
  // Patch Squares
  PPOINTER($73644C)^  :=  @Squares;
  PPOINTER($73BB32)^  :=  @Squares;
  PPOINTER($73BE35)^  :=  @Squares;
  PPOINTER($75118F)^  :=  @Squares;
  PPOINTER($751975)^  :=  @Squares;
  PPOINTER($752B68)^  :=  @Squares;
  PPOINTER($752B87)^  :=  @Squares;
  PPOINTER($752BA0)^  :=  @Squares;
  PPOINTER($752BBF)^  :=  @Squares;
  PPOINTER($752BD8)^  :=  @Squares;
  PPOINTER($752BF6)^  :=  @Squares;
  PPOINTER($752C0F)^  :=  @Squares;
  PPOINTER($752C2E)^  :=  @Squares;
  PPOINTER($752C47)^  :=  @Squares;
  PPOINTER($752C66)^  :=  @Squares;
  // Patch Squares2
  PPOINTER($73BB51)^  :=  @Squares2;
  PPOINTER($751582)^  :=  @Squares2;
  PPOINTER($752472)^  :=  @Squares2;
  PPOINTER($752FA4)^  :=  @Squares2;
  // Patch calculating Squares addresses
  PINTEGER($736442)^  :=  SECOND_DIM_SIZE;
  PINTEGER($73BB28)^  :=  SECOND_DIM_SIZE;
  PINTEGER($73BE2B)^  :=  SECOND_DIM_SIZE;
  PINTEGER($75118A)^  :=  SQUARES_SIZE;
  PINTEGER($751970)^  :=  SQUARES_SIZE;
  PINTEGER($752B5E)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752B7D)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752B96)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752BB5)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752BCE)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752BEC)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752C05)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752C24)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752C3D)^  :=  SECOND_DIM_SIZE;
  PINTEGER($752C5C)^  :=  SECOND_DIM_SIZE;
  // Patch calculating Squares2 addresses
  PINTEGER($73BB44)^  :=  SECOND_DIM_SIZE2;
  PINTEGER($75157D)^  :=  SQUARES2_SIZE;
  PINTEGER($75246D)^  :=  SQUARES2_SIZE;
  PINTEGER($752FBD)^  :=  SQUARES2_SIZE;
  // Fix cycles
  PINTEGER($752B14)^  :=  256;
  PINTEGER($752B33)^  :=  256;
END; // .PROCEDURE OnAfterWoG

BEGIN
  Era.RegisterHandler(OnAfterWoG, 'OnAfterWoG');
END.



RE: ERA I.9 - Sav - 28.08.2011 22:37

FallenAngel Wrote:Sav, ну, по крайней мере у меня эра 1.9 без них не может делать рандомные карты и выбирать конфлюкс.
Berserker Wrote:
Quote:к тому же убранное в ВоГе
Не убранное.
http://dl.dropbox.com/u/21241104/Differents/Ab-notfiles.zip Beee


RE: ERA I.9 - Berserker - 28.08.2011 23:37

Сав перешёл на си++? )


RE: ERA I.9 - Sav - 29.08.2011 00:17

Да мне всегда c-подобные языки больше нравились.

Так-то я и паскаль и c знаю одинаково хреново, поэтому писал на том, для чего был пример (плагин MoP'a для палатки).

Теперь вроде как появилась возможность перейти на c++. Правда, с этим дурацким тамошним ассемблером не знаю, стоит ли. Sm


RE: ERA I.9 - AKuHAK - 29.08.2011 00:26

Кстати вопрос snd и vid архивы пока нельзя подгружать в виде pak'ов?


RE: ERA I.9 - Sav - 29.08.2011 00:38

Пока нет.


RE: ERA I.9 - etoprostoya - 29.08.2011 00:42

(29.08.2011 00:17)Sav Wrote:  Теперь вроде как появилась возможность перейти на c++. Правда, с этим дурацким тамошним ассемблером не знаю, стоит ли. Sm

Причём у меня на MSVC твой на код ассемблере, скорее всего, не пойдёт даже переделанный, а нужно будет отдельный асмовский файл создавать.


RE: ERA I.9 - feanor - 29.08.2011 06:12

Юзай MSVS.
Там асм поприличней.
Или директиву .intel_syntax noprefix для гцц-шных асмов.


RE: ERA I.9 - baratorch - 29.08.2011 08:59

Quote: asm("mov $3, %eax");
а че такое $3, и зачем перед еах - % ?
я какбэ и в msvs достаточно с асмом поработал и тут недавно masm32 и fasm скачал, попрактиковался. но процитированный код меня пугает.

Quote:Причём у меня на MSVC твой на код ассемблере, скорее всего, не пойдёт даже переделанный, а нужно будет отдельный асмовский файл создавать.
с помощью __asm _emit и макросов в ms vc++ можно же реализовать любую недоступную инструкцию


RE: ERA I.9 - Sav - 29.08.2011 10:00

baratorch Wrote:а че такое $3, и зачем перед еах - % ?
я какбэ и в msvs достаточно с асмом поработал и тут недавно masm32 и fasm скачал, попрактиковался. но процитированный код меня пугает.

Это Dev c++ и at&t ассемблер.
$3 - константа, % - потому что такой синтаксис, а самое кошмарное то, что в mov первый операнд записывается во второй, а не наоборот. Меня этот код тоже пугает, если честно. Sm


RE: ERA I.9 - feanor - 29.08.2011 10:21

Quote:
   с помощью __asm _emit и макросов в ms vc++ можно же реализовать любую недоступную инструкцию
проблема не в инструкциях, проблема в синтаксисе. АТ-шный отличается сильно.

Quote:Меня этот код тоже пугает, если честно.
дык.

Code:
int __attribute__((naked)) NewLuckCode() asm("new_luck");

asm
(
    ".intel_syntax noprefix\n" // use intel syntax

    "new_luck:                              \n"
        "xor eax, eax                       \n"
        "mov ecx, edi                       \n"
            "loop_1:                        \n"
        "cmp dword ptr ds:[ecx], 0x2D       \n"
        "je calc_bonuses_1                  \n"
        "inc eax                            \n"
        "add ecx, 0x8                       \n"
        "cmp eax, 0x13                      \n"
        "jl loop_1                          \n"
        "mov ecx, dword ptr ds:[0x660b68]   \n"
        "mov eax, dword ptr ds:[ecx+0x5D8]  \n"
        "cmp eax, -1                        \n"
        "je art_2                           \n"
        "lea edx, [eax*2+eax]               \n"
        "mov eax, dword ptr ds:[0x660B6C]   \n"
        "mov ecx, dword ptr ds:[edx*8+eax]  \n"
        "push ecx                           \n"
        "mov ecx, esi                       \n"
        "mov eax, 0x4d9460                  \n"
        "call eax                           \n"
        "test al, al                        \n"
        "je art_2                           \n"
            "calc_bonuses_1:                \n"
        "inc dword ptr ss:[ebp+0x0C]        \n"

            "art_2:                         \n"
        "xor eax, eax                       \n"
        "mov ecx, edi                       \n"
            "loop_2:                        \n"
        "cmp dword ptr ds:[ecx], 163        \n"
        "je calc_bonuses_2                  \n"
        "inc eax                            \n"
        "add ecx, 0x8                       \n"
        "cmp eax, 0x13                      \n"
        "jl loop_2                          \n"
        "mov ecx, dword ptr ds:[0x660b68]   \n"
        "mov eax, dword ptr ds:[ecx+0x5D8]  \n"
        "cmp eax, -1                        \n"
        "je art_3                           \n"
        "lea edx, [eax*2+eax]               \n"
        "mov eax, dword ptr ds:[0x660B6C]   \n"
        "mov ecx, dword ptr ds:[edx*8+eax]  \n"
        "push ecx                           \n"
        "mov ecx, esi                       \n"
        "mov eax, 0x4d9460                  \n"
        "call eax                           \n"
        "test al, al                        \n"
        "je art_3                           \n"
            "calc_bonuses_2:                \n"
        "add dword ptr ss:[ebp+0x0C],-2     \n"



            "art_3:"
            "ret_section:                   \n"
        "mov eax, 0x4E3AC7                  \n"
        "jmp eax                            \n"
    ".att_syntax noprefix\n" // reset AT&T syntax or there will be errors
);



RE: ERA I.9 - Sav - 29.08.2011 11:02

Понятно, спасибо.

А что означают __attribute__((naked)) и asm("new_luck") в объявлении функции?


RE: ERA I.9 - baratorch - 29.08.2011 12:19

__attribute__((naked)) это как в msvc++ __declspec(naked) ?
- очевидно означает объявление "голой" функции, то есть скомпилированная она будет без всяких такм push ebp mov ebp, esp ... вначале и ... retn в конце.

я вот вижу не только асм кривой в гсс... зочем такое извращение как двойные скобки после __attribute__?

кстати здесь на форуме отдельная тема по программированию есть, а то офф. пошел..

вопрос: без asm("new_luck") и ... "new_luck:
голая функция работать не будет что ли?


RE: ERA I.9 - baratorch - 29.08.2011 13:34

вообще я бы заменил

void SkipChecking()
{
   asm("mov $3, %eax");
   asm("mov %eax, 0x67F554");
}

на

void SkipChecking()
{
   *(DWORD*)0x67F554 = 3;
}

а используя и HOOKTYPE_BRIDGE можно решить в плагине абсолютно любую задачу, не используя ассемблер вообще.


RE: ERA I.9 - Sav - 29.08.2011 19:05

baratorch Wrote:вопрос: без asm("new_luck") и ... "new_luck:
голая функция работать не будет что ли?
У меня не заработало.

baratorch Wrote:__attribute__((naked)) это как в msvc++ __declspec(naked) ?
- очевидно означает объявление "голой" функции, то есть скомпилированная она будет без всяких такм push ebp mov ebp, esp ... вначале и ... retn в конце.
У меня одинаково заработало и __attribute__((naked)), и __declspec(naked) (причём компилятор обычно выдавал warning`и, что nacked проигнорировано, но всё было нормально).

baratorch Wrote:void SkipChecking()
{
    *(DWORD*)0x67F554 = 3;
}
Да, пожалуй, в данном случае лучше без ассемблера.

Вот обновлённая (UPD: и ещё раз обновлённая) версия. Как оказалось, прошлая избавляла от необходимости существования только экзешника AB: lod`ы, snd и vid считались существующими и должны были быть открыты (иначе - ошибка). С snd и vid-файлами я разобрался (вместо ошибки просто пропускаю открытие), а с lod`ами всё сложнее. Но, с другой стороны, если подгружать только конкретные lod`ы (например с плагином lods через параметры), ошибки с lod`ами и не будет.

Кстати, если в исходнике HOOKTYPE_CALL заменить на HOOKTYPE_BRIDGE (только это одно изменение), работать это не будет. Bridge требует каких-то дополнительных специальных телодвижений?


RE: ERA I.9 - Berserker - 29.08.2011 21:18

Для моста нужно:
Code:
__stdcall LONGBOOL Sav (PHookHandlerArgs Context)
{
  // Поменяем регистры:
  Context->EAX = 777;
  // Адрес возврата тоже сменим
  Context->RetAddr = 0;
  // Ну и выполним затёртый код, 0 - не выполнять
  return 1
}

Я в своё время понял, что лучше пустые лоды для случайных карт держать. Например, убирал проверки, а в меню просмотра случайных карт (список) шли вылеты на некорректных датах. Даты и сейчас там какие-то абсолютно стрёмные, но в случае нормальных лодов вылетов нет.


RE: ERA I.9 - Sav - 30.08.2011 00:10

Насчёт моста понятно, спасибо.

Berserker Wrote:Я в своё время понял, что лучше пустые лоды для случайных карт держать. Например, убирал проверки, а в меню просмотра случайных карт (список) шли вылеты на некорректных датах. Даты и сейчас там какие-то абсолютно стрёмные, но в случае нормальных лодов вылетов нет.
Создал несколько случайных карт, ни разу не было вылета в списке (AB-ские lod`ы убрал и в коде вообще не подгружал), хотя даты действительно стрёмные. Эти вылеты непостоянно случались?


RE: ERA I.9 - Berserker - 30.08.2011 00:17

Постоянно. У меня даже есть патч, убирающий получение дат. Но раз у тебя не вылетает, то хорошо.


RE: ERA I.9 - Sav - 30.08.2011 19:25

Последняя версия.
Всё работает без всех файлов AB: экзешника, lod`ов, snd, vid без дополнительных плагинов. Вылетов в списке случайных карт не замечено.

От lod`ов избавился просто: убрал их номера из таблиц подгрузки для версии 3. Это чисто теоретически не очень хорошо в плане совместимости, но совместимо со всем, что существует сейчас на том направлении. Sm Только если у кого-то такая кривая версия, что в H3ab_bmp.lod или H3ab_spr.lod хранятся файлы, которые необходимо подгрузить, с плагином у них вообще ничего не заработает, даже при наличии этих lod`ов (ибо их подгрузка в нём срезана практически начисто). Sm


RE: ERA I.9 - Berserker - 30.08.2011 21:23

Глянул Арсенал, код едва ли поддаётся изменениям. В Фениксе сделаем тогда DL-диалог, скорее всего.


RE: ERA I.9 - Berserker - 30.08.2011 21:33

Обновление: Эра 1.91
Размер: 169 KB.
Ссылка: MultiUpload
Описание:
Code:
[Era 1.91 - 30.08.2011]
+) Эра полностью поддерживает ert-строки в командах (z[>1000]).
+) Встроена поддержка карт любого размера для команды PO.
-) Не очищалась дополнительная память SN:M/W при старте карты.



RE: ERA I.9 - Sav - 31.08.2011 21:56

А lod`ы теперь подгружаются после OnAfterWoG что ли?
Только сейчас обратил внимание, это вообще-то делает плагин lods (вернее ту его версию, которую я ещё не выкладывал Sm) несовместимым с автоподгрузкой, но я могу это обойти (и, скорее всего, это обойдётся автоматически, т. к. я собираюсь переносить таблицы в dll и расширять их для vid`ов).


RE: ERA I.9 - Sav - 01.09.2011 21:04

Глянул в исходники Эры, понял, что прав.


RE: ERA I.9 - etoprostoya - 06.09.2011 20:12

В порядке изучения изученных внутренностей ВоГа сделал плагин, позволяющий загружать тексты из любых папок. Прописал путь к папке с текстом перевода игры в ини-файле и играй в переведённую игру, изменил расширение у плагина - играй с текстами, что в лодах или в Data.
http://zalil.ru/31657771


RE: ERA I.9 - Berserker - 06.09.2011 20:26

В своё время народ не принял попытку ресурсы (кроме дефов) перевести на Data\Era\расширение. Data\Era\.erm, Data\Era\.txt.

Code:
{$IFDEF ERA2}
// Патчим GetBitmap816
General.HookCode(Ptr($55AA9A), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetBitmap16
General.HookCode(Ptr($55AE96), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetPalette
General.HookCode(Ptr($55B2BC), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetFont
General.HookCode(Ptr($55BB27), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetText
General.HookCode(Ptr($55BDE7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим GetSample
General.HookCode(Ptr($55C61F), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим OpenFile для GetSample
General.HookCode(Ptr($604881), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6);
General.HookCode(Ptr($604403), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6);
General.HookCode(Ptr($604A17), @AsmHook_OpenFile, General.C_HOOKTYPE_CALL, 6);
// Патчим GetSpreadsheet
General.HookCode(Ptr($55C0B7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
// Патчим ссылки на Data\s
Patch.Opcode:=$68;
Patch.Addr:=@General.ErmPath[1];
General.WriteAtCode(Ptr($72C2EB), @Patch, 5);
General.WriteAtCode(Ptr($773EB9), @Patch, 5);
General.WriteAtCode(Ptr($777E6F), @Patch, 5);
Patch.Addr:=@General.ErtPath[1];
General.WriteAtCode(Ptr($72C34C), @Patch, 5);
Patch.Addr:=@General.ErsPath[1];
General.WriteAtCode(Ptr($7B3800), @Patch.Addr, 4);
{$ENDIF}



RE: ERA I.9 - etoprostoya - 06.09.2011 20:38

Quote:General.HookCode(Ptr($55BDE7), @AsmHook_OpenResource, General.C_HOOKTYPE_CALL, 5);
Я делал хук на 55BDE1, то есть подменял только путь к файлу. Но, в принципе, это одно и то же.

А вообще, вначале, я хотел сделать загрузку текстовиков из архива, но пока не разобрался, где игра читает файлы не из файла, а уже из буфера. А то приходилось бы сначала вытаскивать файл во временный файл, чтобы игра его читала. Лучше же читать уже из буфера - не нужно лишней работы с диском.

Спасибо за адреса, будем посмотреть Sm


RE: ERA I.9 - etoprostoya - 06.09.2011 23:06

Хм, а если будет подгрузка текстов
, а в перспективе и прочего, на что Берсеркер тут указал хуки,
из рар-архива (понятно, что на самом деле любого архива, для которого можно найти не слишком сложное API), то это будет пользоваться спросом? При этом остаётся проблема редактора карт, который не поймёт всех этих усилий Ab


RE: ERA I.9 - Berserker - 07.09.2011 18:45

Нужно искать аналоги в редакторе, а подгрузка - дело неплохое. В идеале ведь лоды не нужны.


RE: ERA I.9 - AKuHAK - 09.09.2011 00:03

Такой вот глупый вопрос - а читы в Эре есть? Sm Просто для отладки иногда нужно мгновенно пройти карту.


RE: ERA I.9 - Sav - 09.09.2011 00:25

Вроде должны остаться воговские читы.


RE: ERA I.9 - Berserker - 09.09.2011 01:21

Воговские читы работают, если не запрещены в вог-опциях.


RE: ERA I.9 - etoprostoya - 09.09.2011 19:53

http://zalil.ru/31673353
Загрузка текстов из "textlod.ZIP". Пока работает только с костылём в виде "dummy.txt" в папке Data, но он не читается и его содержимое не важно, только проверяется его существование и размер, который должен быть не меньше, чем у самого большого загружаемого текстового файла.


RE: ERA I.9 - Berserker - 09.09.2011 20:25

Неплохо! Но что-то костылей много. Нужно и размер подменять на лету.


RE: ERA I.9 - etoprostoya - 09.09.2011 21:00

Можно, только у меня потом почему-то игра не запускалась. Причину так и не нашёл, поэтому так и оставил пока. Потом надеюсь доделать.

Quote:Но что-то костылей много.
Один костыль только. Sm Если бы я использовал для этих целей любой другой файл из папки Data, то никто бы и не заметил Sm


RE: ERA I.9 - Zenofex - 13.09.2011 17:05

Берс, а новую версию инсталятора "Все-в-одном" будешь с Эрой 1.91 делать?


RE: ERA I.9 - Berserker - 13.09.2011 18:29

Не скоро, наверное.


RE: ERA I.9 - Sav - 20.09.2011 22:25

MSVC отказался компилировать SDK Эры в представленном виде.
Ничего сверхъестественного изменять не пришлось, мелочи, но, может, сэкономлю кому-нибудь время:



RE: ERA II - Ganymed - 21.09.2011 19:10

(22.07.2011 05:03)MOP Wrote:  Новый город - это попса. А я митол люблю.
Я вообще думаю, что всего один новый артефакт - лучше, чем сотня городов. Новый город - дорогая по всем параметрам безделушка, делаемая людьми чисто из желания похвастаться, что они смогли это сделать.

Посмеялся от души)))
MOP - новый город, это как симфония в музыке, иными словами - крупная форма, требующая максимального творческого напряжения и соединяющая в себе различные формы и стилистические направления. Это, своего рода, диссертация. А артефакт - ну, пьеса в свободной форме, которую можно сочинить левой ногой, только восставши ото сна.
При всем моем глубоком уважении к тебе, в данном случае ты категорически не прав. Хотя, конечно, тебя можно понять: еще ни одного города не вышло так, чтобы можно было спокойно поиграть и увидеть своими глазами всю мощь и глубину творческой мысли.

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


RE: ERA I.9 - AKuHAK - 23.09.2011 17:39

Внимание! Ексебилдер не учитывает стандартное смещение в 400000. В итоге экзешник разбухает до 7 мегов и разумеется не запускается.


RE: ERA I.9 - Berserker - 23.09.2011 18:09

Quote:стандартное смещение в 400000
Оно не стандартное, а указывается при компиляции. Кроме того загрузчик может загрузить и по другому адресу, если есть таблица перемещений. ExeBuilder работает с адресами в файле - то есть смещениями.

Если у вас текстовик для памяти, превратите его в патч для файла, используя BinMagic. Там включён преобразователь адресов, который разруливает как сод, так и вог-части.


RE: ERA I.9 - AKuHAK - 23.09.2011 20:40

А теперь понятно. Ещё вопрос resman умеет извлекать файлы или работает только как упаковщик?


RE: ERA I.9 - Berserker - 23.09.2011 21:24

Умеет и извлекать.


RE: ERA I.9 - AKuHAK - 24.09.2011 00:01

Code:
resman.exe vid d:\temp\new\test.vid packfile losegame.smk
resman.exe vid d:\temp\new\test.vid unpackfile losegame.smk

   и где здесь ошибка? Первая строка отрабатывает на ура, вторая вхолостую.


RE: ERA I.9 - etoprostoya - 24.09.2011 01:49

Да, тоже потестил распаковку - ни один из вариантов (unpackfile, unpackfiles, unpackall; для snd, vid) не работает.


RE: ERA I.9 - Berserker - 24.09.2011 18:45

Виноват, в своё время МоР сказал, что импорта хватит, я и бросил. А новую версию так и не доделал.


RE: ERA II - MATRASUS - 26.09.2011 22:58

(01.07.2011 04:35)Berserker Wrote:  Осторожно, пол метра трафика! Spiteful

Как заставить работать данный функционал? Помню, были разговоры о мануале, он готов?


RE: ERA I.9 - Berserker - 26.09.2011 23:24

Руководство готово и включено в версию 1.9. Help\Era manual.chm.
Функционал - это расширенный триггер подсказки, а расчёт урона нужно производить в скриптах.

Попробуйте такой скрипт:




RE: ERA I.9 - MATRASUS - 26.09.2011 23:48

Благодарю за развернутый ответ


RE: ERA I.9 - solitaire345 - 10.10.2011 09:22

Sav, which version of MSVC are you using? I tried to compile it with VisualC++ 6.0 and got the following output:
I guess my compiler is just too old..


RE: ERA I.9 - etoprostoya - 10.10.2011 10:38

solitaire345, try to define NOALIGN to nothing:
Code:
#define NOALIGN
and compile sources with /Zp1

About typedef. Try to change all of them from
Code:
typedef NOALIGN struct TTxtFile
{
    char Dummy[0x18];
    int RefCount;
    /* Dummy */
};
typedef TTxtFile* PTxtFile;
to
Code:
typedef NOALIGN struct TTxtFile
{
    char Dummy[0x18];
    int RefCount;
    /* Dummy */
} TTxtFile, *PTxtFile;



RE: ERA I.9 - Sav - 11.10.2011 22:05

solitaire345 Wrote:Sav, which version of MSVC are you using?
If I`m not too late... Sm Microsoft Visual C++ 2008 Express.


RE: ERA I.9 - totkotoriy - 19.10.2011 13:29

Я не знаю, сюда - не сюда, но напишу сюда: нашел глюк в плагине RandomMapEraser - при переигрывании случайной карты все объекты остаются такие же, начальные герои не появляются и ресурсы остаются от прошлой игры...
И еще один глюк с плагином Arsenal, при покупке героя в таверне у него имеется копия боевой машины...
Товарищи плагиноделы, Вы совсем не тестируете свои произведения? (а потом спрашивают почему моды годами делаются Sm)
Очень надеюсь, что глюки исправят, арсенал сильно полезная штука.


RE: ERA I.9 - MOP - 19.10.2011 16:27

Нет у меня такого глюка. Да и не знаю, как он может произойти. Возможно, сторонние плагины виноваты.
Если что - я тестировал все свои длл. Подопытный кролик моих тестов - TPM. Sm


RE: ERA I.9 - totkotoriy - 19.10.2011 17:27

(19.10.2011 16:27)MOP Wrote:  Нет у меня такого глюка. Да и не знаю, как он может произойти. Возможно, сторонние плагины виноваты.
Если что - я тестировал все свои длл. Подопытный кролик моих тестов - TPM. Sm
У меня точно есть и точно из-за него - проверял... хз


RE: ERA I.9 - totkotoriy - 19.10.2011 18:39

(19.10.2011 16:27)MOP Wrote:  Нет у меня такого глюка. Да и не знаю, как он может произойти. Возможно, сторонние плагины виноваты.
Если что - я тестировал все свои длл. Подопытный кролик моих тестов - TPM. Sm
Точно! Извиняюсь за клевету, это только вместе с плагином 6-ой слот происходит.... че теперь только делать?... оба плагина нужны Bad


RE: ERA I.9 - Berserker - 19.10.2011 19:21

Quote:Я не знаю, сюда - не сюда, но напишу сюда: нашел глюк в плагине RandomMapEraser - при переигрывании случайной карты все объекты остаются такие же, начальные герои не появляются и ресурсы остаются от прошлой игры...
А как иначе? Карта-то уже удалена.


RE: ERA I.91 - Sav - 30.10.2011 21:26

В zvslib1.dll ресурсы из lod`ов подгружаются нестандартным путём, видимо, без использования таблиц индексов lod`ов. Поэтому, например, в окне опыта существа иконка существа всегда грузится из H3sprite.lod, вне зависимости от наличия TWCRPORT.DEF в других lod`ах (естественно, проблема есть как при автоподгрузке, так и при подгрузке из командной строки).

О проблеме уже некоторое время назад сообщил Dead, но как с этим правильно поступить я не знаю. 105


RE: ERA I.91 - Berserker - 30.10.2011 21:51

В исходниках ЕРМ тоже загрузка прямая из h3sprite.lod есть.


RE: ERA I.91 - Sav - 31.10.2011 01:09

Хм, ну, надо, наверное, это как-то решать. В Эре можно же получить адрес начала уже подгруженной dll или её функции?


RE: ERA I.91 - Berserker - 31.10.2011 18:59

Адрес начала DLL? Это как, Image Base?


RE: ERA I.91 - Sav - 31.10.2011 20:27

Я не знаю, что такое Image Base, а имею ввиду то место, где начинается информация, связанная с dll, чтобы можно было ставить хуки в её код, независимо от того, где для него было выделено место в памяти.


RE: ERA I.91 - Berserker - 31.10.2011 22:48

Можно получить описатель dll, который также является адресом загрузки образа в оперативную память (хоть может и не являться - зависит от внутренной кухни ОС). Но всё равно не пойму, к чему это. Нужен плагин, который заменит топорный воговский код в проблемных местах на общие функции поиска файлов в лоде и загрузки из них.


RE: ERA I.91 - Sav - 31.10.2011 23:18

Ну так для этого нужно править и код zvslib1.dll, разве нет?


RE: ERA I.91 - Berserker - 31.10.2011 23:45

Я понял о чём ты. GetModuleHandle("zvslib1.dll") вернёт дескриптор и по совместительству адрес загрузки DLL. Далее прибавляем смещение до функции и патчим.


RE: ERA I.91 - Sav - 31.10.2011 23:49

Ага, спасибо.


RE: ERA I.91 - totkotoriy - 01.11.2011 07:12

Спасибо за ЭРУ - это великолепно!
Поставил 1.9 на 1.8 все работает, только подскажите плиз, какие скрипты обновляются если ставить на 1.8 или только заголовки правятся в скриптах, или вообще по скриптам изменений нет?
И еще:
Почему мне кажется, что использование альфа канала стало меньше нагружать систему? Это мне действительно кажется или что-то могло повлиять на это? (По-моему мне даже больше денег начали занимать в банке после обновления Sm)
Новая система подгрузки заплаток очень нравиться...она очень будет полезна тем, кто плохо умеет пользоваться всем этим (например мне), и отпадут лишние манипуляции с exe файлом, можно быстро будет посмотреть на результат изменений... наверное поэтому не работали некоторые патчи, я их пытался на 1.8 поставить через ExeBuilder, хотя по идее должны были заработать.


RE: ERA I.91 - Berserker - 01.11.2011 16:06

Quote:Спасибо за ЭРУ - это великолепно!
Спасибо.

Quote:Поставил 1.9 на 1.8 все работает, только подскажите плиз, какие скрипты обновляются если ставить на 1.8 или только заголовки правятся в скриптах, или вообще по скриптам изменений нет?
Скрипты те же. Правятся ошибки синтаксиса wog 3.58 вроде "!!!" или "!!EF".

Quote:Почему мне кажется, что использование альфа канала стало меньше нагружать систему? Это мне действительно кажется или что-то могло повлиять на это? (По-моему мне даже больше денег начали занимать в банке после обновления Image: sm.gif)
По поводу альфа-канала. Наверное, это просто субъективное ощущение. А вот с банком беда. Не используйте Enter при заёме. Старые воговские скрипты не знают о событии Клавиатура и потому могут не рассчитывать на изменение v1 между вызовами диалога.

Quote:Новая система подгрузки заплаток очень нравиться...она очень будет полезна тем, кто плохо умеет пользоваться всем этим (например мне), и отпадут лишние манипуляции с exe файлом, можно быстро будет посмотреть на результат изменений... наверное поэтому не работали некоторые патчи, я их пытался на 1.8 поставить через ExeBuilder, хотя по идее должны были заработать.
Согласен. На это и был расчёт. Ядро максимально разгружено. Пользователю ничего не навязывается.


RE: ERA I.91 - totkotoriy - 01.11.2011 19:37

Не... про банк это я так... пошутил, вроде всё нормально работает.
Нравиться ещё, что загружаться сразу стало, хотя использую альфа длл с 10 мб картинок. Давно хотел поставить этот патч, да никак не получалось.
И надеюсь, что ЭРА 1.9 будет стабильнее (Я не говорю, что 1.8 была нестабильная, я надеюсь, что патчи спасут от некоторых воговских недоработок)
Вообщим так держать! И помните, что модеры всего мира надеются на ваше творение.


RE: ERA I.91 - Berserker - 01.11.2011 21:06

Quote:Нравиться ещё, что загружаться сразу стало
Это патч nocd, отключает проверку. В следующих релизах верну свой вариант. Моровский больше и рубит платину.

Rolleyes


RE: ERA I.91 - MATRASUS - 19.11.2011 14:32

При загрузке карты The empire of the World III выдает ошибку, в 1.81 работает. В чем может быть проблема?
http://narod.ru/disk/31817954001/the_empire_of_the_world_3_581.zip.html
http://narod.ru/disk/31817962001/WOGCRASHLOG.TXT.html


RE: ERA I.91 - Berserker - 19.11.2011 15:54

Мы с Валерием кажется нащупали одну ошибку в реализации PO в 1.91, нужно немного времени, чтобы её проанализировать. Заранее извиняюсь за неудобства.


RE: ERA I.91 - MATRASUS - 19.11.2011 15:58

А что сие значит? Где прочитать про это PO?


RE: ERA I.91 - Berserker - 19.11.2011 16:03

PO - ЕРМ команда для сохранения данных по каждой клетке карты. В Эре 1.91 встроена поддержка карт нестандартного размера. Очевидно, где-то закралась ошибка.


RE: ERA I.91 - Valery - 19.11.2011 19:44

TEWIII is a map made in 2008. I started the map on ERA 1.91 and works correctly (except the usual ERA message about !!!!-long time ago did not know about-)

Can't be PO issue, map is 144x144. Load a save from the moment when you get error, here it works...


RE: ERA I.91 - MATRASUS - 19.11.2011 21:10

Попробовал запустить карту на 1.91 без русификации. Действительно сработало, правда при загрузке дали почитать кусок скрипта)


RE: ERA I.91 - Valery - 19.11.2011 21:44

I updated the map for ERA, removed one "!" which caused error message
Download


RE: ERA I.91 - MATRASUS - 19.11.2011 22:14

Many thanks, Valery!


RE: ERA I.91 - Berserker - 20.11.2011 19:48

Критическое исправление Эры:
http://wikisend.com/download/291790/Era.rar
http://www.multiupload.com/F04W9SOBJT


RE: ERA I.91 - Sav - 20.11.2011 19:58

PO исправлен? Или что-то ещё?


RE: ERA I.91 - Berserker - 20.11.2011 21:09

По какой-то чёрной магии в релиз попала dll, которая не сохраняет PO вообще. Ещё не сохраняла.


RE: ERA I.91 - Berserker - 01.12.2011 20:47

Era 1.92 beta 2 обновление dll + первый релиз будущего мода "Yona":

Quote:[+] Новое событие "Расчёт урона отряда по отряду"
[+] Копейщики/Алебардщики наносят 200% урона следующим монстрам:
  • Кавалеристам
  • Чемпионам
  • Кентаврам
  • Капитанам кентавров
  • Единорогам
  • Боевым единорогам
  • Чёрным рыцарям
  • Рыцарям смерти
  • Кочевникам
  • Сильванским кентаврам
При этом ИИ адекватно воспринимает этот урон в расчётах и журнал битвы адекватно его отображает.

http://www.multiupload.com/08G9JTN2AA
http://wikisend.com/download/197534/Era 1.92 beta 2 + Yona mod.rar

В будущем будут добавлены и пожары/кошмары в список.


RE: ERA I.91 - etoprostoya - 01.12.2011 22:42

Что за "Yona mod"?


RE: ERA I.91 - Berserker - 01.12.2011 22:50

Мод с целью дать каждому стандартному существу по одной дополнительной уникальной и не очень стратегической способности. ИИ должен в той или иной степени использовать способности.


RE: ERA I.91 - etoprostoya - 01.12.2011 22:58

О, интересно, особенно с учётом ИИ. Sm


RE: ERA I.91 - Sav - 01.12.2011 23:20

Berserker Wrote:не очень стратегической способности.
Это значит "простой", "слабой", "редко применяемой" или "не оказывающей особого влияния на решение тактических задач и не создающей новых тактических задач"?


RE: ERA I.91 - Berserker - 01.12.2011 23:29

"уникальной и не очень уникальной"


RE: ERA I.91 - Berserker - 03.12.2011 19:16

Название: Yona
Требования: Эра 1.91+
Версия: 2
Описание:

Quote:[+] Копейщики/Алебардщики наносят 200% урона следующим монстрам:
  • Кавалеристам
  • Чемпионам
  • Кентаврам
  • Капитанам кентавров
  • Единорогам
  • Боевым единорогам
  • Чёрным рыцарям
  • Рыцарям смерти
  • Кочевникам
  • Сильванским кентаврам
  • Пожарам
  • Кошмарам
[+] Урон Кавалеристов/Чемпионов растёт на 15% за клетку вместо стандартных 4%.
[-] Исправлены баги предыдущей версии.

[!] ИИ использует все нововведения.
[!] Правильное отображение урона в журнале боя.
[!] Нет нужды начинать игру заново.

Ссылки:


RE: ERA I.91 - Sav - 03.12.2011 20:59

Berserker Wrote:Урон Кавалеристов/Чемпионов растёт на 15% за клетку вместо стандартных 4%.
Вот это очень правильно, имхо. 132 Хотя я бы не мелочился - дал бы процентов 50. Sm
А как ИИ это использует? Он при рассчёте урона проводит все действия, нужные для его нанесени что ли?


RE: ERA I.91 - Berserker - 03.12.2011 22:18

ИИ рассчитывает три урона: минимальный, максимальный, средний. Во всех трёх в событии мод корректирует урон до базового (убирает геройский бонус) и превращает в новый. Дальше уже ИИ смотрит потери и т.д.


RE: ERA I.91 - Berserker - 04.12.2011 00:30

Название: Yona
Требования: Эра 1.91+
Версия: 3
Описание:

Quote:[+] Копейщики/Алебардщики наносят 200% урона следующим монстрам:
  • Кавалеристам
  • Чемпионам
  • Кентаврам
  • Капитанам кентавров
  • Единорогам
  • Боевым единорогам
  • Чёрным рыцарям
  • Рыцарям смерти
  • Кочевникам
  • Сильванским кентаврам
  • Пожарам
  • Кошмарам
[+] Урон Кавалеристов/Чемпионов растёт на 15% за клетку вместо стандартных 4%.
[+] Мечники/Крестоносцы игнорируют 50% физического урона в состоянии обороны.
[+] Урон Орков/Орков-вождей (метание топоров) зависит квадратично от расстояния до цели.
Формула: Базовый урон * (19 - Расстояние)^2 / 100%.

[!] ИИ использует все нововведения.
[!] Правильное отображение урона в журнале боя.
[!] Нет нужды начинать игру заново.

Ссылки:
http://wikisend.com/download/109548/Yona%20v3.rar
http://www.multiupload.com/ZV89IDT4AG


RE: ERA I.91 - GrayFace - 07.12.2011 02:44

(31.10.2011 23:18)Sav Wrote:  Ну так для этого нужно править и код zvslib1.dll, разве нет?
ВоГ на старте загружает функции из zvslib и др. Достаточно изменить переменную, в которую он грузит функцию из zvslib на свою функцию.


RE: ERA I.91 - Al_Mualim - 10.12.2011 18:02

Era Manual Wrote:FUNCTION LoadTxt (Name: PCHAR): {n} PTxtFile; STDCALL; Loads a text table used by game.
How can I read from that txt table?


RE: ERA I.91 - Berserker - 10.12.2011 19:09

Then u better use ready ZVS functions:

Code:
int LoadTXT (char* name, TxtFile* tf)
777030

void UnloadTXT (TxtFile* tf)
7770B5

char* ITxt (int StrNum, int ItemNum, TxtFile* tf)
77710B



RE: ERA I.91 - barlog - 29.12.2011 05:19

А всвязи с чем после установки новой Эры при запуске каждой карты может выскакивать множество окошек с непонятным текстом? Толи какие-то скрипты, толи ошибки, мне это непонятно.
Image: shot11.jpg


RE: ERA I.91 - Berserker - 29.12.2011 15:16

Да у вас установка не прошла успешно. Запустите fixscripts.bat из корневой папки.


RE: ERA I.91 - Berserker - 10.01.2012 20:21

Постепенно близится вторая версия к тестированию. На данный момент успешно подгружаются пользовательские vid-файлы и осуществляется быстрый поиск по их содержимому (1 ассоциативный массив). Идёт работа над последним частично виртуализированным компонентом - snd.


RE: ERA I.91 - Berserker - 12.01.2012 18:51

Поддержка snd-архивов завершена.


RE: ERA I.91 - Prayer - 13.01.2012 05:28

Berserker
Quote:Не используйте отрицательные y-переменные. Они не сохраняются в новых событиях. Вместо них везде используйте положительные y-переменные.
Если не ошибаюсь, это было справедливо и для Эры 1,8... Приходилось переделывать пару воговских скриптов для корректной работы.

Quote:repman Data\s\script28.erm !!UF !!IF
repman Data\s\script28.erm !!! ""
В исходном 28 скрипте не нашел ни !!! ни !!UF.

Никак не могу разобраться в работе BinMagic... Вы уж простите за мою недалекость. Хелп там совсем не для нубов. А хотелось бы иметь все бинарники, чтобы можно было пропатчить exe. Может скинете одним архивом или напишите как это сделать с помощью BinMagic поподробней.

И еще про Yona...
Quote:Мод с целью дать каждому стандартному существу по одной дополнительной уникальной и не очень стратегической способности.
Это чисто ваш мод? Вы с кем то обсуждаете эти способности или сами придумываете? На чем основываетесь? Может создать ветку где будем обсуждать и предлагать вам идеи для этого мода... К примеру 15% для кавалерийского бонуса ИМХО многовато...


RE: ERA I.91 - Berserker - 13.01.2012 21:58

Quote:В исходном 28 скрипте не нашел ни !!! ни !!UF.
В 3.58f без обновления есть.

Quote:Никак не могу разобраться в работе BinMagic... Вы уж простите за мою недалекость. Хелп там совсем не для нубов.
Это вы простите. Там помощь в виде импровизированного PASCAL-синтаксиса объявления типов и констант) Вы хотели бы нужные заплатки для памяти превратить в заплатки для файла и применить к ехе через ExeBuilder?

Тогда через командную строку или пакетный файл выполните из каталога BinMagic: binary.bat "путь к txt-заплатке". На выходе будет [Заплатка].bin


RE: ERA I.91 - Berserker - 14.01.2012 00:00

Проверил сетевую игру - всё хорошо. Исправил ошибку с определением текущей папки игры.


RE: ERA I.91 - Berserker - 14.01.2012 00:49

Quote:Это чисто ваш мод? Вы с кем то обсуждаете эти способности или сами придумываете? На чем основываетесь? Может создать ветку где будем обсуждать и предлагать вам идеи для этого мода... К примеру 15% для кавалерийского бонуса ИМХО многовато...
Да, сугубо мой. На мой взгляд оценивать баланс можно было бы только после того, как все существа получат способности. Но сейчас я больше им не занимаюсь. Поругались.


RE: ERA I.91 - Sav - 14.01.2012 01:46

С кем поругались?


RE: ERA I.91 - Berserker - 14.01.2012 04:08

С игрой. Нужно было нормально создать деф на поле боя и работать с ним, как с элементом (менять картинку и статус). В итоге я решил, что трудозатраты на всю эту двоичную кухню превосходят порог полезности.


RE: ERA I.91 - Prayer - 16.01.2012 12:38

(13.01.2012 21:58)Berserker Wrote:  Вы хотели бы нужные заплатки для памяти превратить в заплатки для файла и применить к ехе через ExeBuilder?
Именно этого я бы и хотел.
Quote:Тогда через командную строку или пакетный файл выполните из каталога BinMagic: binary.bat "путь к txt-заплатке". На выходе будет [Заплатка].bin
Дак а где взять txt? В EraPlugins только bin'ы... Или ими можно напрямую через ExeBuilder? Они ведь для памяти, а не для файла?


RE: ERA I.91 - Berserker - 16.01.2012 16:27

Понял.
Нужно все bin-файлы поместить в одну папку с binmagic, там создать батник и запустить:

Code:
@echo off
BinMagic.exe ^
    Cmd=ConvertPatch ^
    SourcePatch=*.bin ^
    ResultPatch="ОбъединённыйПатч.bin" ^
    PatchFor=File
На выходе получите ОбъединённыйПатч.bin, пригодный для использования в ExeBuilder.


RE: ERA I.91 - Berserker - 16.01.2012 16:36

[+] Отвязана генерация случайных карт от файлов клинка армагеддона. Суть в подмене версии после загрузки ресурсов.

[+] Улучшено определение внешнего IP для игры по сети. По умолчанию игра и directx используют первый адрес из списка, полученного обратным поиском IP по имени хоста. Эра, в случае если первый IP вероятнее всего локальный (192.х.х.х, 10.х.х.х) пытается найти первый внешний и меняет адреса местами. Мне помогло, проверили с etoprostoya до и после.

[+] ВоГ окончательно перекочевал в собственные ресурсы и папку Mods\WoG. Работа над сборкой продолжается.


RE: ERA I.91 - igrik - 16.01.2012 17:58

Berserker, "Не используйте отрицательные y-переменные. Они не сохраняются в новых событиях. Вместо них везде используйте положительные y-переменные." т.е. мне (для правильного перехода с WOG 3.58f на ERA 1.9) необходимо во всех скриптах изменить, например y-5 на у5?


RE: ERA I.91 - Berserker - 16.01.2012 18:32

Если вы одновременно y5 не использовали, то желательно.


RE: ERA I.91 - Prayer - 17.01.2012 05:57

Почему не отключите проверку на sptraits.txt h3blade.exe?


RE: ERA I.91 - Berserker - 17.01.2012 13:44

h3blade.exe уже с версии 2 не нужен, а sptraits.txt обязательно нужен и с версии 2 включён в вог.


RE: ERA I.91 - Berserker - 17.01.2012 23:03

В Эре 1.9 в BinMagic неверный DefaultAddressConverter.dll для вога.


RE: ERA I.91 - Berserker - 18.01.2012 01:04

Примерный список нововведений для версии II:

[+] Virtual file system introduces new way of modding in Heroes. Every folder in "Mods" is treated as root game folder (including subfolders hierarchy) so that Mods virtual paths always have priority over the native ones except for the operations of creating/deleting files/directories. Each mod can have implicitly specified priority (see ##Priorities## for details).
    The key idea is that contents of a mod is static. All files, which are subjects to change during game process should be placed into real folders. Mods should be installed/uninstalled simply by copying/deletion. That's why wog installer was finally removed from the package.
   
    >> Technical note. The following file system functions working with names are supported:
    CreateFileA,
    GetFileAttributesA,
    FindFirstFileA,
    FindNextFileA,
    FindClose,
    LoadLibraryA,
    DeleteFileA,
    CreateDirectoryA,
    RemoveDirectoryA,
    GetPrivateProfileStringA,
    LoadCursorFromFileA,
    GetCurrentDirectoryA,
    SetCurrentDirectoryA
   
    >> Example of simple mod replacing main menu music:
    Heroes3\Mods\Example mod\Mp3\mainmenuwog.mp3

[+] Added custom snd/vid support. All snd/vid archives are automatically loaded from Data folder.
[+] snd/vid/pac archives now support priorities system. See ##Priorities## for more information.

[+] The game became fully portable. All settings are now kept in heroes3.ini file.
    A network game can take place at one PC between two game copies (in different folders) if they have different "Unique System ID" in heroes3.ini. To generate the ID, just erase the whole settings line and run the game.

[+] External IP address detection mechanism was improved. If the address is considered to be local (192.x.x.x or 10.x.x.x) then the first one out of this range (which is proposed by gethostbyname function) is selected.

[+] The editor is now fully erafied, supports new virtual system, pacs and EraEditor folder (works the same as EraPlugins folder)
[+] Speeded-up calling all wog dialogs, several times lower HDD load.
[+] All dialogs, included those from zvslib1.dll do not load CPU now. "reduce cpu load.bin" patch was removed and HD-mod "Berserker's CPU patch" option should be turned off.
[+] Writing ini files using ERM or Era functions now always result in sorted list of sections and keys in file.
[+] Random maps generation is no longer dependant on garbage snd/vid/lod files from Armageddon Blade.

[+] Added event "OnStackToStackDamage" (!?FU77012) with the following arguments:
    Attacker stack or -1, Defender stack or -1, Final damage (DONT CHANGE!), Final damage (CHANGEABLE),
    Basic damage, Damage bonus, Is distant? (if not 0 or 1 then garbage), Distance (only for theoretical attacks),
    Is theoretical? (means hint or AI calculation)

    The event occurs when one stack attacks/shoots at another one.
   
[+] Added event "OnAICalcStackAttackEffect" (!?FU77013) with the following arguments:
    Attacker stack, Defender stack, Effect value (CHANGEABLE), Effect value (DONT CHANGE)

    The event occurs when AI evaluates effect of attacking one stack with another one.

[+] Included better fonts with proper cyrrilic support.
[+] Added synchronized creature sounds by GrayFace.
[+] Script 98 (quick and smart savings) was rewritten, now supports option in wog menu and is variables-safe.

[+] All tools were moved to Tools folder, included new standard ones:
    lodexport, lodimport, objector.exe, repman.exe, resman.exe

[+] Updated API and sources.
[+] Added "ApiCall" function. It finds out patch size automatically in compared to "Hook" procedure.
[+] v1 keeps Era address when plugin is being loaded.
[+] Era automatically calls DisableThreadLibraryCalls for all loaded plugins.
[-] Removed duplicated WoG initialization code.
[-] Fixed Era 1.9 PO/Memory bugs which led to invalid savegames data and size.

##Priorities##
The priority of file/mod is a valid number separated from file/mod name with one or more spaces. If no priority is specified, it is assumed to be 0. In case of two files/mods names clashing, the one with the most recent creation time is selected.


RE: ERA I.91 - AKuHAK - 18.01.2012 02:14

Ждём-ждём... Как только выйдет сразу перекомпилирую свой мод Хроник Героев.


RE: ERA I.91 - etoprostoya - 18.01.2012 12:41

Остаётся только подготовить редактор карт для такой структуры папок Sm


RE: ERA I.91 - Berserker - 18.01.2012 15:12

Quote:[+] The editor is now fully erafied, supports new virtual system, pacs and EraEditor folder (works the same as EraPlugins folder)
Патч Сержа включён.


RE: ERA I.91 - etoprostoya - 18.01.2012 15:47

Что-то я и не заметил этого.
Тогда вообще конфетка.


RE: ERA I.91 - Prayer - 19.01.2012 12:59

(16.01.2012 16:27)Berserker Wrote:  Понял.
Нужно все bin-файлы поместить в одну папку с binmagic, там создать батник и запустить:

Code:
@echo off
BinMagic.exe ^
    Cmd=ConvertPatch ^
    SourcePatch=*.bin ^
    ResultPatch="ОбъединённыйПатч.bin" ^
    PatchFor=File
На выходе получите ОбъединённыйПатч.bin, пригодный для использования в ExeBuilder.
Не получилось. На выходе получается екзешник большего размера. При запуске глюки...


RE: ERA I.91 - etoprostoya - 19.01.2012 13:47

Prayer, покажи патч. Это уже не в первый раз, когда экзешник после патча увеличивается. Видимо, адреса смещены.


RE: ERA I.91 - Sav - 19.01.2012 14:16

Там есть правка памяти и файла. Если правка для памяти, то экзешник увеличивается, т. к. такие правки приспособлены для подключения в виде плагинов.


RE: ERA I.91 - Berserker - 19.01.2012 18:32

http://wikisend.com/download/546204/ExeBuilder.rar
Экспериментируйте.


RE: ERA I.91 - Berserker - 19.01.2012 19:10

Всем желающим поучаствовать в бета-тестировании посвящается: Эра II.0 beta 1, 70 МБ
Это английский выпуск, но с поддержкой кириллических шрифтов. Руководство можно найти в папке Mods\Help\Era manual. Там же файл Era II Changes.txt с описанием изменений.
Установку нужно проверить на SoD, Полном собрании и ещё чем-нибудь интересном.


RE: ERA I.91 - Prayer - 19.01.2012 19:53

(19.01.2012 18:32)Berserker Wrote:  http://wikisend.com/download/546204/ExeBuilder.rar
Экспериментируйте.
Спасибо, попрбуем!!!
(19.01.2012 19:10)Berserker Wrote:  Установку нужно проверить на SoD, Полном собрании и ещё чем-нибудь интересном.
А на WoG?


RE: ERA I.91 - Berserker - 19.01.2012 20:30

Нельзя.


RE: ERA I.91 - AKuHAK - 19.01.2012 23:03

Редактор кампаний просит файл zcempedtr.txt

Эра вылетает при попытке выбрать любой пункт в любом списке )) ни Альянсы настроить, ни в воговские кампании поиграть нельзя. Проверял на русском полном собрании.


RE: ERA I.91 - Berserker - 19.01.2012 23:20

Спасибо. Качаю полное собрание, на HC такой же результат. У меня только сод был. Ну а редактор компаний не менялся, чтобы он работал, нужно будет временно вернуть игровые лоды в родную папку Data.


RE: ERA I.91 - Berserker - 20.01.2012 00:24

Windows XP, одноядерный процессор, полёт нормальный.
Блин, что же там с семёркой Bad


RE: ERA I.91 - Berserker - 20.01.2012 00:31

Попробуйте папку Mods\Game в Mods\-999 Game переименовать. И ещё. Процессор двухядерный? bat-file запускался? Ошибок при установке не было?


RE: ERA I.91 - Zenofex - 20.01.2012 00:31

Да, косячит на семере. Только у меня при выборе пунктов не вылетает, а наглухо виснет.


RE: ERA I.91 - Berserker - 20.01.2012 00:36

На английском форуме тоже писали, что виснет. Самое ужасное, что приходит на ум - проблема с критическими секциями. Похоже, придётся мне качать и ставить её на виртуалку. Ещё бы получить подтверждения от других, что в ХР всё ок.


RE: ERA I.91 - AKuHAK - 20.01.2012 01:23

(20.01.2012 00:31)Berserker Wrote:  Попробуйте папку Mods\Game в Mods\-999 Game переименовать. И ещё. Процессор двухядерный? bat-file запускался? Ошибок при установке не было?

Никаких ошибок (батник-то совсем простенький). + ещё игра не видит кампании клинка Армаггедона (и картинки к ним), если он засунут внутрь другого лода. Также виснет бой если правой кликнуть по существу 2 раза (выскакивает какая-то табличка там какие стаки записаны).
windows seven 2 ядра

На ХР полёт нормальный - разве что в чате нельзя писать букву s ))


RE: ERA I.91 - igrik - 27.01.2012 12:12

В хрюше на двухъядерном атлоне всё окей 166


RE: ERA I.91 - Berserker - 27.01.2012 16:27

Quote:На ХР полёт нормальный - разве что в чате нельзя писать букву s ))
Quote:В хрюше на двухъядерном атлоне всё окей
Угу. Спасибо. С чатом надо как-нибудь бы найти его флаг и проверять в скрипте сохранения. Провёл пересмотр/доработку кода, сейчас коренным образом перерабатываю виртуализатор, добавил журналирование, так что надеюсь семёрку рано или поздно добить.


RE: ERA I.91 - Berserker - 27.01.2012 17:49

Quote:+ ещё игра не видит кампании клинка Армаггедона (и картинки к ним), если он засунут внутрь другого лода.
Можно спросить, как проводился тест и какие результаты были раньше?


RE: ERA I.91 - AKuHAK - 27.01.2012 21:57

Устанавливал на русское полное - не видит h3ab_bmp.lod (это как минимум)


RE: ERA I.91 - AKuHAK - 28.01.2012 14:09

(27.01.2012 21:57)AKuHAK Wrote:  Устанавливал на русское полное - не видит h3ab_bmp.lod (на хр и на семерке)(это как минимум)
Только в семёрке:
1) при клике правой по юниту, если потом опять кликнуть правой по движущемуся дефу, то игра замораживается и в лог пишется ошибка
Code:
<Utils.cpp; ExtractDEF; line 515>    Problems at LOD opening. File name "d:\Games\Heroes of Might and Magic\h3new\\Data\hmm35wog.pac".
2) ну и разумеется не работают списки (но ошибки не пишутся) - вог опции виснут намертво, выбор командира виснет намертво, смена любого имени виснет намертво...

3) Не видит также виды и снд с бонусного диска (а вот это уже для меня лично критично) - ДАЖЕ если отключить все эти носд и ремувэксепротэкшн


RE: ERA I.91 - Berserker - 28.01.2012 16:35

Понял, спасибо, работаю над проблемой. Диалоги виснут из-за перехваченной PlaySoundA, а вот по поводу бонусов нужен совет. Дело в том, что содовский ехе 8 стандартных лодов грузит, среди нет этих самых бонусных. Поэтому другие лоды и в 1.91 по идее не должны были быть подгружены. Попробуйте, пожалуйста, переименовать их в *.pac/*.snd и кинуть в Data. Загрузится ли игра. Просто я понятия не имею, какие у них должны быть имена и приоритеты загрузки.


RE: ERA I.91 - AKuHAK - 28.01.2012 18:26

Я знаю одно - в предыдущем релизе Эры диск подхватывался. Структура диска - 2 файла
Code:
Сдром:\Heroes3\Data\heroes3.snd и Сдром:\Heroes3\Data\heroes3.vid

   при выключённой опции носд (nocd load speedup.bin.off).

Теперь по поводу армагеддонских лодов. Тестировал h3ab_bmp.lod в виде лода не виден ни в одной из папок, в виде pac виден везде. Это относится как к папке модс так и к обычной папке дата. С видами и сндами проблем не наблюдается (кроме диска, упомянутого выше)

На быструю руку сварганил уже один мод. http://rghost.ru/36176824. Патч заменяющий воговские кампании на Дыхание смерти.


RE: ERA I.91 - Sav - 28.01.2012 18:53

AKuHAK Wrote:Теперь по поводу армагеддонских лодов. Тестировал h3ab_bmp.lod в виде лода не виден ни в одной из папок, в виде pac виден везде. Это относится как к папке модс так и к обычной папке дата.
Это не проблема, а логически верное поведение игры. Просто следует из ресурсов AB вытащить нужное (а его немного-то), распихать по по подгружаемым архивам и добавить в отдельную подпапку папки Mods. И лучшн сделать это прямо в сборке Эры.

У дисковых snd и vid самые высокие приоритеты загрузки. Думаю, их надо обрабатывать специально (не через стандартные индекы), ставя приоритетненее стандартных архивов и менен приоритетными, чем новые.


RE: ERA I.91 - Berserker - 28.01.2012 19:09

Quote:Сдром:\Heroes3\Data\heroes3.snd и Сдром:\Heroes3\Data\heroes3.vid
Понял. Эти подтягиваются, просто теперь только из папки Data. Стоит ли городить поиск по CD/DVD устройствам отдельно?

Quote:Тестировал h3ab_bmp.lod в виде лода не виден ни в одной из папок
Странно, должен грузиться из Data, но я, конечно, перепроверю.

Quote:На быструю руку сварганил уже один мод
Отличная работа!


RE: ERA I.91 - AKuHAK - 28.01.2012 19:54

(28.01.2012 19:09)Berserker Wrote:  
Quote:Сдром:\Heroes3\Data\heroes3.snd и Сдром:\Heroes3\Data\heroes3.vid
Понял. Эти подтягиваются, просто теперь только из папки Data. Стоит ли городить поиск по CD/DVD устройствам отдельно?
стоит, стоит - у меня эти архивы занимают 600 мегабайт и мне их проще хранить на компакт-диске, а не на жёстком. Можно как-нибудь модифицировать плагин nocd load speedup.bin.off, чтобы он при отключении проверки заодно отключал поиск этих сндов и видов. А то сейчас даже непонятно зачем он нужен, игра ведёт себя одинаково при его включении или отключении. Хотя конечно, если сложно это, то можно и не делать или по крайней мере сперва исправить более критичные баги Ab А с другой стороны игра сейчас подхватывает вообще любые снд и виды из папок Дата, так что можно выкинуть эти архивы вообще из списков (если конечно с приоритетами ничего не будет путаться)

Кстати я немного запутался в приоритетах - поправьте меня если я не прав.
Оригинальная игра:
Видео и звуки:
  • сперва подхватывается архивы с диска вставленного в сдром
  • затем подхватываются Heroes3.snd и VIDEO.VID из игровой паки Дата
  • затем подхватываются H3ab_ahd.snd и H3ab_ahd.vid (правда звуковой архив не полностью подхватывается, хотя должен)
Лоды:
  • сперва подхватываются просто файлы, лежащие в папке Дата и папке Мапс
  • h3abp_sp.lod
  • h3abp_bm.lod
  • h3psprit.lod
  • h3pbitma.lod
  • h3ab_spr.lod
  • h3ab_bmp.lod
  • h3sprite.lod
  • h3bitmap.lod
    затем идут вот эти 8 лодов из папки дата
Теперь по поводу эры. Любой мод должен иметь более высокий приоритет, чем обычные игровые файлы. Значит:
  • Папка mods\название мода при чём между собой моды сортируются по алфавиту (или всё-таки по дате создания?)
  • Папка mods\wog
  • Диск с игровыми архивами (я уж не знаю как их сортировать, если их несколько)
  • Папка mods\ġame
  • Оригинальная папка
Внутри папок файлы сортируются так:
  • подхватываются pac
  • подхватываются файлы, лежащие в папке Дата и папке Мапс
  • h3abp_sp.lod
  • h3abp_bm.lod
  • h3psprit.lod
  • h3pbitma.lod
  • h3ab_spr.lod
  • h3ab_bmp.lod
  • h3sprite.lod
  • h3bitmap.lod
    затем идут вот эти 8 лодов из папки дата



RE: ERA I.91 - Berserker - 28.01.2012 20:08

Quote:А то сейчас даже непонятно зачем он нужен, игра ведёт себя одинаково при его включении или отключении.
Раньше без него загрузка на 3-6 секунд дольше в связи с проверкой сидирома. А сейчас вы правы, кажется он вообще не нужен.

Оригинальная игра:
Видео и звуки:
  • сперва подхватывается архивы с диска вставленного в сдром
    Тут не уверен. Скорее наоборот, только если в основных ресурсах файлов нужных нет.
  • затем подхватываются Heroes3.snd и VIDEO.VID из игровой паки Дата
  • затем подхватываются H3ab_ahd.snd и H3ab_ahd.vid (правда звуковой архив не полностью подхватывается, хотя должен)
Лоды:
  • сперва подхватываются просто файлы, лежащие в папке Дата и папке Мапс
    При указанном порядке игра будет вылетать. h3sprite.lod и h3bitmap.lod имеют наивысший приоритет - в них содовские текстовики и новая графика.
  • h3abp_sp.lod
  • h3abp_bm.lod
  • h3psprit.lod
  • h3pbitma.lod
  • h3ab_spr.lod
  • h3ab_bmp.lod
  • h3sprite.lod
  • h3bitmap.lod
    затем идут вот эти 8 лодов из папки дата
Теперь по поводу эры. Любой мод должен иметь более высокий приоритет, чем обычные игровые файлы. Значит:
  • Папка mods\название мода при чём между собой моды сортируются по алфавиту (или всё-таки по дате создания?)
    Между собой по Приоритету (1) и Дате создания (2) папки. "100 WoG" - это папка с приоритетом 100. Если приоритет не указан, то он равен 0 и далее идёт сравнение по дате создания.
  • Папка mods\wog
  • Диск с игровыми архивами (я уж не знаю как их сортировать, если их несколько)
    Этого пока нет. На деле у сего архаизма много проблем. Как вариант видится дополнительный параметр пути в ini-настройках с альтернативной папкой Data.
  • Папка mods\ġame
  • Оригинальная папка
Внутри папок файлы сортируются так:
  • подхватываются pac
    Угу, при чём между собой конкурируют по Приоритету (1) и Дате создания (2).
  • подхватываются файлы, лежащие в папке Дата и папке Мапс
  • h3abp_sp.lod
  • h3abp_bm.lod
  • h3psprit.lod
  • h3pbitma.lod
  • h3ab_spr.lod
  • h3ab_bmp.lod
  • h3sprite.lod
  • h3bitmap.lod
    Только sprite/bitmap выше приоритет, как уже указывалось.
    затем идут вот эти 8 лодов из папки дата



RE: ERA I.91 - AKuHAK - 28.01.2012 20:18

Только sprite/bitmap выше приоритет, как уже указывалось. а ну да я действительно препутал порядок ))
сперва подхватывается архивы с диска вставленного в сдром
Тут не уверен. Скорее наоборот, только если в основных ресурсах файлов нужных нет.
проверил - точно самым первым идёт диск.


RE: ERA I.91 - Berserker - 28.01.2012 20:35

Спасибо, учту.


RE: ERA I.91 - Berserker - 29.01.2012 20:11

Переписал код виртуализатора. Добился стабильной работы в Windows 7 (ура!) при запуске с правами администратора и без режима совместимости. Исправил кое-какие старые и новые баги. Решил проблему с h3ab_bmp.lod и ей подобными. Теперь если стандартные лоды есть, они грузятся, если нет, то удаляются из списка. Таким образом наличие стандартных лодов вообще не обязательно (достаточно одного оптимизированного pac), при этом карты случайные генерируются. Осталось помимо 100500 заметок решить проблему с патчем для редактора.

По поводу дисков. Было решено, что их поддержка устарела. Код проверки дисков замедляет запуск игры на 3-6 секунд в идеале (8 на виртуальной машине), содержимое дисков сводится к одному-двум игровым архивам, что в эпоху операционных систем на 2.5 гб просто несерьёзно. Кроме того, в данном выпуске совершён полный переход на переносной вариант: ни реестра, ни внешних привязок к папкам/путям, ни зависимости от дисков. Я понимаю, что кому-то такое решение может быть не очень удобным, но решаться проблема должна локально другим путём - созданием ссылок в файловой системе на общий архив.


RE: ERA I.91 - Berserker - 29.01.2012 20:25

Проверил мод AKuHAK'a, всё работает, но нет анимации при наведении на миссию в экране кампании. Так и должно быть? Ставил на complete английский.

Обновление беты: http://wikisend.com/download/970326/Era%20II.rar

Если добавить секцию в heroes.ini, можно лицезреть подноготную виртуализатора:

[Era]
Debug=1
Debug.Destination=Console
Debug.VFS=1


RE: ERA I.91 - etoprostoya - 29.01.2012 20:27

Portable Heroes of Might and Magic. PHoMM. Где-то я уже слышал это имя Sm


RE: ERA I.91 - Sav - 29.01.2012 20:32

Berserker Wrote:Проверил мод AKuHAK'a, всё работает, но нет анимации при наведении на миссию в экране кампании. Так и должно быть? Ставил на complete английский.
Видимо, в Воге она отключена, а мод этого не исправляет.

И кнопка с содовским фоном на воговском странно смотрится.


RE: ERA I.91 - Berserker - 29.01.2012 20:51

Но терпимо, согласись.


RE: ERA I.91 - Sav - 29.01.2012 21:01

Не знаю, я-то обычно не придаю этому большого значения. Тем более, что вообще редко залезаю в меню кампаний. Но для полноты картины не помешало бы её перерисовать.


RE: ERA I.91 - AKuHAK - 30.01.2012 03:44

(29.01.2012 20:32)Sav Wrote:  
Berserker Wrote:Проверил мод AKuHAK'a, всё работает, но нет анимации при наведении на миссию в экране кампании. Так и должно быть? Ставил на complete английский.
Видимо, в Воге она отключена, а мод этого не исправляет.

И кнопка с содовским фоном на воговском странно смотрится.
это лайт версия - все видео и звуковые файлы я не добавлял - под нож также случайно пошли и эти мини превьюшки (как никак тоже видео)96 завтра добавлю.
По поводу кнопки - эта кнопка ещё нормально смотрится - пробовал многие другие вообще ужас. Тут ведь нельзя использовать альфа канал из-за того что нужно анимировать свечение при нажатой кнопке и приходится обязательно использовать фон. А я не настолько большой фанат фотошопа, чтобы этим заниматься.
По поводу дисков - учтём. В принципе мне лично это добавит лишь чуток неудобств при создании моей следующей антологии, а так вполне терпимо (мне приходится сохранять как совместимость со старыми версиями, так и с новыми). Сперва heroes1 Tournament Edition убрали привязку от диска - из-за чего приходится изощрятся с проигрыванием озвучки. Теперь вот эра тоже.


RE: ERA I.91 - Berserker - 30.01.2012 03:47

AKuHAK, а в каком формате идёт онтология?


RE: ERA I.91 - Sav - 30.01.2012 09:38

AKuHAK Wrote:это лайт версия - все видео и звуковые файлы я не добавлял - под нож также случайно пошли и эти мини превьюшки (как никак тоже видео) завтра добавлю.
Но они же есть в оригинальных содовских ресурсах. Ну, во всяком случае, у меня точно есть. Мне кажется, они всё-таки отключены кодом Вога.


RE: ERA I.91 - Berserker - 30.01.2012 16:55

Вот-вот.


RE: ERA I.91 - Sav - 30.01.2012 20:32

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


RE: ERA I.91 - Berserker - 30.01.2012 20:42

Нет. А стоит ли усложнение результата? Ведь перенес папки сделает тоже самое даже через батник.
C:\Heroes\Mods\Test => C:\Heroes\Off\Test.


RE: ERA I.91 - Sav - 30.01.2012 22:16

Так уж устроен интерфейс файловых менеджеров, что для переименования в них нужно меньше телодвижений, чем для перемещения. Для переименования не нужно использовать доролнительную панель/окно, не нужно менять нахождение в старой и использовать буфер обмена, не нужно править полный путь. Ну и батники писать тоже нет никакого желания.


RE: ERA I.91 - gamecreator - 30.01.2012 22:19

в папку включенных модов:
Code:
move /-Y %1 ..\off\
в папку выключенных модов:
Code:
move /-Y %1 ..\mods\



RE: ERA I.91 - Sav - 30.01.2012 22:53

Ну и что? Переименовать всё равно проще, даже чем запустить такой батник с параметром. А без параметра будут батники мусором валяться.


RE: ERA I.91 - Berserker - 30.01.2012 23:12

Исправил проблему с редактором.


RE: ERA I.91 - gamecreator - 30.01.2012 23:20

(30.01.2012 22:53)Sav Wrote:  Переименовать всё равно проще, даже чем запустить такой батник с параметром.
ну если для тебя даже проще нажать ф2 и ввести новое имя, чем один раз двинуть мышкой, то я сдаюсь


RE: ERA I.91 - Sav - 30.01.2012 23:24

Батник с параметром - это ещё и ввод в командную строку. А без - будет валяться куча батников, если их хотя бы 4 - надо ещё не запутаться, какой нажать. Sm


RE: ERA I.91 - Berserker - 30.01.2012 23:26

Имхо не очень правильно, ведь подобное ограничение должно будет эхом отразиться на поддержке редактором, сторонними утилитами (как им определять активные моды проще всего?) и знании пользователя об особенностях имён.


RE: ERA I.91 - gamecreator - 30.01.2012 23:30

(30.01.2012 23:24)Sav Wrote:  Батник с параметром - это ещё и ввод в командную строку.
тебе мало перетащить файл или папку на батник чтоли? зачем тебе командная строка?


RE: ERA I.91 - AKuHAK - 31.01.2012 00:16

Вот пофиксил - действительно в экзешнике были затёрты. Я так думаю - может просто взять русский пак от Бараторча и закинуть в лоды.
http://rghost.ru/36234448


RE: ERA I.91 - Berserker - 31.01.2012 01:49

Если бы только в ехе затёрты, зачем пришлось видео класть?


RE: ERA I.91 - AKuHAK - 31.01.2012 02:43

(31.01.2012 01:49)Berserker Wrote:  Если бы только в ехе затёрты, зачем пришлось видео класть?
на всякий случай )) по идее достаточно одного плагина и карт, а виды и паки только на всякий случай. Кстати такой вопрос - там никаких наработок нету по добавлении экранов кампаний?


RE: ERA I.91 - Berserker - 31.01.2012 02:47

У меня точно нет.


RE: ERA I.91 - Sav - 31.01.2012 09:49

Berserker Wrote:Имхо не очень правильно, ведь подобное ограничение должно будет эхом отразиться на поддержке редактором, сторонними утилитами (как им определять активные моды проще всего?) и знании пользователя об особенностях имён.
Это должен быть всего лишь маленький префикс. Например, 2 нижних подчёркивания. Или даже одно. Вряд ли много тех, кто захочет называть так моды.
В редакторе просто учитывать ограничение. Сторонние утилиты должны учитывать его в зависимости от своей направленности - это же несложно. Просто надо особенность документировать, написать в мануале на видном месте.
Ну, в общем, дело твоё. Если не сделаешь - буду по старинке переименовать lod'в/pac'и или удалять dll, хуже-то всё равно не стало. Sm

gamecreator Wrote:тебе мало перетащить файл или папку на батник чтоли? зачем тебе командная строка?
Не знал о таком. Sm Но всё равно у перемещения есть неудобства, например, необходимость использования 2 панелей/окон, чтобы видеть и все включённые, и все отключённые моды одновременно.


RE: ERA I.91 - Berserker - 31.01.2012 21:10

Исправил новые баги, в том числе 1.81. Добавил поддержку чата. Можно не прерываясь печатать там ЕРМ команды, например. Выполняются на лету.


RE: ERA I.91 - Berserker - 31.01.2012 21:33

Как-то так:




RE: ERA I.91 - Sav - 31.01.2012 21:38

Забавное использование. Sm Мне никогда бы не пришло в голову написать исполнитель erm на erm. Sm


RE: ERA I.91 - Berserker - 31.01.2012 21:44

Можно свою систему читов или быстрых команд сделать. Как душа пожелает.
Вот я думаю, может отрубить событие клавиш для чата?


RE: ERA I.91 - gamecreator - 31.01.2012 23:29

(31.01.2012 09:49)Sav Wrote:  Но всё равно у перемещения есть неудобства, например, необходимость использования 2 панелей/окон, чтобы видеть и все включённые, и все отключённые моды одновременно.
как насчет такого: оба батника лежат в off и все моды тоже там, а в mods они копируются.
включение:
Code:
@echo off
cd /D "%~dp0"
:next
    if "%~1"=="" goto end
    set isdir=false
    for /F "eol=-" %%i in ('echo %~a1') do set isdir=true
    if "%isdir%"=="true" xcopy %1 "..\Mods\%~n1" /E /H /Y /G /R /I /K
    else xcopy %1 "..\Mods\" /H /Y /G /R /K
    for /F "delims=] tokens=1*" %%i in ("%~nx1") do set rest=%%j
    if "%rest%"==""    goto selnext
        ren %1 "%rest%"
        ren "..\Mods\%~nx1" "%rest%"
    :selnext
    shift /1
    goto next
:end
выключение:
Code:
@echo off
cd /D "%~dp0"
:next
    if "%~1"=="" goto end
    set command=del /F
    for /F "eol=-" %%i in ('echo %~a1') do set command=rd /S
    %command% /Q "..\Mods\%~nx1"
    ren %1 "[UNUSED]%~nx1"
    shift /1
    goto next
:end



RE: ERA I.91 - gamecreator - 31.01.2012 23:56

обновил тексты. теперь даже видно какие моды предположительно выключены: в начале имени у них будет [UNUSED]


RE: ERA I.91 - Sav - 01.02.2012 00:35

Копируется же дольше. Впрочем, для маленьких модов это не важно. Спасибо, попробую на практике.

Berserker Wrote:Вот я думаю, может отрубить событие клавиш для чата?
Думаю, стоит. Как и для любого ввода текста. Это всё же отдельная законченная вещь, а то, что для неё требуются нажатия на клавиши - не более, чем недоразумение. Sm


RE: ERA I.91 - Berserker - 01.02.2012 00:44

Sav, тоже так думал, начал делать и понял, что бы не прав. В событии чата ЕРМ может вызвать диалог, которому нужно перехватывать клавиши, а мы их запретили.


RE: ERA I.91 - Sav - 01.02.2012 01:12

На время события разрешить. Хотя, тут, на самом деле не всё так просто, если действительно качественно реализовывать: в событии может быть ввод текста, во время него может произойти ещё какое-нибудь событие и т. д., т. е. ещё на время любого события надо запоминать, был ли это ввод текста, и после события восстанавливать запомненное.

С другой стороны, вполне адекватным выглядит вариант переложения ответственности на пользователя-разработчика. Тогда неплохо бы в событие нажатия клавиши передавать параметр - идёт сейчас ввод текста (или просто чат) или нет.


RE: ERA I.91 - Berserker - 01.02.2012 01:25

По старинке:



RE: ERA I.91 - AKuHAK - 01.02.2012 14:02

Вот Плагин к Эре, который помимо возвращения Содовских ресурсов также возвращает весь интерфейс на место. Да и вообще было бы неплохо все названия унифицировать как для вога, так и для обычных героев(или это плохая идея?).
http://rghost.ru/36286862
Список замен (Click to View)



RE: ERA I.91 - Berserker - 01.02.2012 18:21

Видео в главном меню (In The Wake Of Gods) осталось. Там крест такой крутится.


RE: ERA I.91 - AKuHAK - 01.02.2012 23:22

http://rghost.ru/36289877 - новая версия Хроник Героев для Эры без видео и звуков (4.5Mb). Поправил плагин - см. выше в сообщении.


RE: ERA I.91 - Berserker - 01.02.2012 23:51

Возврат интерфейса ок, а вот на Complete хроники вообще не пашут + всё исковеркано. У вас точно всё ок?

Если lod поменять на pac уже лучше, но интерфейс, конечно, жесть выходит.


RE: ERA I.91 - AKuHAK - 02.02.2012 00:11

(01.02.2012 23:51)Berserker Wrote:  Возврат интерфейса ок, а вот на Complete хроники вообще не пашут + всё исковеркано. У вас точно всё ок?

Если lod поменять на pac уже лучше, но интерфейс, конечно, жесть выходит.
да с лодом я лажанулся )) но всё остальное так и задумано - к сожалению нельзя изменить интерфейс только на одном экране кампании не задев другие. Зато теперь отлично видно сколько ресурсов используется сразу всеми экранами )) Я потому и спрашивал про наработки с экраном кампаний - теперь когда есть кампании Вога, Хроник, а в будущем и Хоты (да и к Форджу уже понаписано кажись) хотелось бы иметь возможность хоть какого-то расширения.
Если есть какие-то иные предложения с удовольствием выслушаю.


RE: ERA I.91 - Berserker - 02.02.2012 00:16

А текст при наведении так и должен где-то справа внизу частями показываться?


RE: ERA I.91 - AKuHAK - 02.02.2012 00:49

(02.02.2012 00:16)Berserker Wrote:  А текст при наведении так и должен где-то справа внизу частями показываться?
147 даа это входило в список багов предыдущей версии - просто текст всплывающий перед кампаниями нельзя сдвинуть за экран (число берётся по модулю), а если его убрать, то он исчезнет со всех кампаний (хмм хотя всё равно в другие играть будет нереально). Поэтому я его сдвинул в правый нижний пиксель. А заменять текстовики я считаю дурным тоном, добро бы только названия кампаний менялись так ведь там ещё куча другой информации, которая скачет от перевода к переводу.
http://rghost.ru/36289877 - те же хроники только лод в пак переименован.


Внимание - баг ЭРЫ кажется (перепроверьте у кого семёрка). МП3 темы на семёрке проигрываются али нет?


RE: ERA I.91 - Berserker - 02.02.2012 13:11

Подтверждаю на семёрке и на хр.


RE: ERA I.91 - Berserker - 02.02.2012 14:33

Баг выловлен и зверски уничтожен. Граждане, это ППЦ. MSDN говорит, что функция FindFirstFileA возвращает описатель поиска в случае успеха и -1 в случае провала, где -1 - это зарезервированное значение "НЕВЕРНЫЙ ОПИСАТЕЛЬ". mss.dll ищет драйвер для музыки (*.asi) и при -1 ИЛИ 0 считает, что произошла ошибка. Кто дал авторам библиотеки право считать 0 неверным описателем - хз.


RE: ERA I.91 - Berserker - 03.02.2012 22:53

Помедитировал я над 500 МБ роликов из Complete и просьбой Валерия и AKuHAK иметь возможность играть одновременно и в ВоГ и в оригинал с одной папки, а также над тем, что по словам того же Валерия он для юридической безопасности диск постоянно держит в CD-ROM-е, я пришёл к выводу, что ресурсы грузить надо. Поэтому:

1) nocd внедряется на уровне Эры и неотключаем.
2) Загрузчик ресурсов Эры, в случае, если в настройках указано LoadCD, проводит поиск среди всех устройств класса CD-ROM в системе и останавливается на первом, в котором есть папка Heroes3.
3) Загрузчик ресурсов предпочтёт загрузить файл из Игра\Heroes3, и лишь в случае отсутствия ресурса полезет смотреть опцию CD и грузить с него.
4) Возможно, на одну из клавиш будет назначено меню опций Эры. Пока что опции две: отладочный режим и загрузка CD.

К данному моменту Эра II бета 2 практически готова и чуток проверена на SoD/Complete, XP/Win7. Работает музыка, редактор, ресурсы. Куча проблем и ошибок исправлено. Упрощена система приоритетов, добавлена программа installmod для регистрации модов, сделан батник для патча для редактора карт, который частично устраняет проблему редактирования/создания вог карт. MapEdPatch грузит файлы прямо из h3sprite/h3bitmap, игнорируя встроенные функции, а следовательно, никогда не видит файлов модов (хотя их видит редактор).


RE: ERA I.91 - AKuHAK - 03.02.2012 23:27

О замечательные новости )) Добавлю ещё один небольшой баг в копилочку. Опция Show Intro при выставлении в 0 напрочь отключает все предварительные ролики, а выставленная в один - включает 2 ролика (AZVS и NWCLogo). Хотелось бы чтобы при Show Intro = 1, включалось три ролика (как в оригинальной игре): AZVS, NWCLogo и H3Intro. Всё равно при отсутствии любого из роликов никакого ужаса не произойдёт.


RE: ERA I.91 - Berserker - 03.02.2012 23:32

Фича в том, что это не Эра. Изменён механизм загрузки значений, но не их интерпретация.


RE: ERA I.91 - AKuHAK - 04.02.2012 01:37

Продолжаю выкладывать переработанные моды для второй Эры (надеюсь механизм расположения модов не изменится).
New Interface Mod - WiP 13.05.2011 (15 Мб)


RE: ERA I.91 - Berserker - 04.02.2012 01:51

Да куда уж меняться, пишу английский журнал изменений.
Вау, попробую, наконец-то. Не ставил модов, чтобы рабочую папку не портить.


RE: ERA I.91 - Berserker - 04.02.2012 01:59

Единственное что. После распаковки запускайте Tools\installmod "название папки мода". Тогда у папки будет самая современная дата создания и она получит приоритет.
Поправка: если инсталлятор и так папку создаёт со свежей датой, то не нужно.

Странно, у меня только часть интерфейса заменилась.

P.S Кажется проблема в Эре, поправлю.


RE: ERA I.91 - AKuHAK - 04.02.2012 02:15

(04.02.2012 01:59)Berserker Wrote:  Странно, у меня только часть интерфейса заменилась.

P.S Кажется проблема в Эре, поправлю.
на первой бете всё пучком Ab заменился весь интерфейс


RE: ERA I.91 - Berserker - 04.02.2012 02:27

Меню настройки карты (новая игра) не менялось в моде? У меня эта часть от оригинальной игры.


RE: ERA I.91 - AKuHAK - 04.02.2012 03:02

(04.02.2012 02:27)Berserker Wrote:  Меню настройки карты (новая игра) не менялось в моде? У меня эта часть от оригинальной игры.
надо отключить мой мод, который возвращает интерфейс к первоначальному значению. У меня лично всё отображается. В меню настроек карты поменялась подложка и всё.


RE: ERA I.91 - Berserker - 04.02.2012 03:39

Да нет у меня того мода. Можно снимок настройки карты увидеть? И ещё, зачем в NIM папка Data\data с портретами? Кажется нужно было их просто в NIM\Data.


RE: ERA I.91 - totkotoriy - 04.02.2012 04:34

почему-то начиная с ERA 1.9 экраны в некоторых местах некорректно рисуются, например при старте и окончании игры начинает заранее рисоваться следующий экран Image: 1.jpg


RE: ERA I.91 - FallenAngel - 04.02.2012 10:58

totkotoriy, попробуй поотключать плагины, такие как nocd speedup и другие. К сожалению, сейчас возможности нет проверить у себя, но что-то подобное, кажется, встречал. Хотя, наверное, Berserker, как прочитает, найдет решение.


RE: ERA I.91 - AKuHAK - 04.02.2012 15:21

Image: af20be633379t.jpg
Да с портретами я немного того. Закинул их в лод с перерисованным Оплотом, для простоты удаления.
New Interface Mod

Выкладываю ещё один мод - Новый Людской Замок от Bisik.

И сразу же мини-баг - в новомодной фиче стак экспириенс показывается старая картинка существа. Это и в моде нового интерфейса так.

totkotoriy, у меня такие глюки только при использовании хд мода возникают.


RE: ERA I.91 - Berserker - 04.02.2012 15:55

totkotoriy, перепроверил. Не подтверждаю.

AKuHAK, NIM грохает редактор (в частности, патч Сержа) и (после исправления) содержит файлы портретов в Data, что неправильно, ибо файлы в Data имеют приоритет над любыми архивами. И вот ещё. Стоило ли дробить мод на 4 архива? Может слить всё в один? Или на крайняк Оплот отдельно.

Quote:И сразу же мини-баг - в новомодной фиче стак экспириенс показывается старая картинка существа. Это и в моде нового интерфейса так.
Все воговские диалоги черпают файлы прямиком из Mods\WoG\hmm35wog.pac. Так что для замены картинок в диалогах нужно ещё импортировать туда, а это уже чревато невозможность удаления.


RE: ERA II - Berserker - 04.02.2012 16:07

Quote:Новый Людской Замок от Bisik.
Вступаю в бой: cannot find sprite resource """"
Выстрел арбалетчика - вылет.
Кажется, там или патчится 3.58 в скрипте или ехе нужен патченный.


RE: ERA II - Marmot - 04.02.2012 16:56

А изображение девушки откуда скопипащено, если не секрет? 118 Может, стоило бы плавно затемнить нижнюю часть рисунка, чтобы надпись не была видна?


RE: ERA II - FallenAngel - 04.02.2012 17:15

Marmot, там внизу лого NIM'а. Это хд-мод его так.


RE: ERA II - Berserker - 04.02.2012 17:27

totkotoriy, а видео с драконом у тебя есть? По ходу нет.


RE: ERA II - AKuHAK - 04.02.2012 18:38

Berserker, ничего не содержит - в новой версий никаких файлов портретов в дата - всё в паках. Сперва надо удалить старую версию. Я создал 4 архива потому, что в оригинальном моде было 4 архива. Мне-то всё равно и насколько я понял - игре тоже, так что я и оставил их в виде 4 частей. Так что изображение девушки неизвестно откуда )) мод делал не я.

Значит людской замок не пойдёт. Ну и ладно.

По поводу редактора карт - честно говоря не совсем понимаю зачем редактору карт читать все лоды, что есть в модах. По моему достаточно взять блекфантомовскую портативную версию, пропатчить для генерации мегабольших карт и отучить гадить в реестре. И всё - никаких блужданий по папкам.

Вот русификатор http://rghost.ru/36337105


RE: ERA II - Sav - 04.02.2012 19:00

Если мод добавляет новые объекты и пр. элементы, редактор должен их видеть.


RE: ERA II - Berserker - 04.02.2012 19:03

Era II

Mods concept.
Mod is a set of files and folders, including graphics, audio, video, scripts, plugins, patches and custom files. Era introduces "Mods" folder where each folder is called a mod and treated as game root directory. It means that files and folders in mods should be arranged in the same way as in the root directory.

Original: Data
Mod way: Mods\My Mod\Data

Mod contents.
The contents of mods are not supposed to be modified at run-time. All files which are subjects to be modified at run-time (like settings, logs, temporary files) should be placed in real game folders during installation. Several mods can exist in Mods folder at the same time providing they are compatible. Every mod can have unlimited number of in-game resources (snd/vid/pac archives in Data) which will be automatically loaded.

Priorities.
If any mod has file with the same name as in original game, the file from mod is used instead of original one. If several mods have file with the same name, then mod with the highest priority is used. To assign a priority to mod, add a number to the beginning of its name, separated from the text by space(s). The higher number is, the higher the priority is. Example: "100 MyMod". If no priority is specified, it's assumed to be 0. In case of equal priority, the creation time of mods folders is checked and the newest folder is preferred during file search. This mechanism guarantees that mods installed later will have priority over older ones.

Register mod hint.
To register mod as the newest one executes "Tools\installmod.exe" with mod folder name as the only argument.

WoG Mod.
WoG is now distributed as regular mod and thus does not change any game resources. Most of WoG resources are located in "Data\hmm35wog.pac". All WoG dialogs read directly this archive and ignore other mods. The only not recommended way to fix it is to import new data inhmm35wog.pac. WoG contains fixed first aid tent def which ensures no game freezing.

Additional optional modifications:
  • Fast battle animation. To disable it delete file "Data\cranim.txt".
  • No pre-battle music. To disable it delete file "Data\wog - noprebattle music.snd".
  • Animated Heroes 3 objects. To disable it delete file "Data\wog -animated objects.pac".
  • Animated trees. To disable it delete file "Data\wog - animatedtrees.pac".
  • Battle decorations. To disable it delete file "Data\wog - battledecorations.pac".

Yona Mod.
Yona is an open-source mod written in pure Delphi using Era SDK. Its ideology is total optionality ("Data\Yona\settings.ini"), native support of all new features by game, AI and multiplayer code. It's pretty compatible with other mods, does not store anything in saves and does not modify ERM scripts. To delete the mod, delete "Mods\Yona" folder.

Features:
New battle log hint in heroes' style describing possible kill count, average values, fatality values and new abilities used in attack.

New abilities:
  • Pikeman / Halberdier ignores cavalry bonus and inflicts 200% damage to cavalry:
    • Cavaliers
    • Champions
    • Centaurs
    • Captains Centaurs
    • Unicorns
    • Battle Unicorns
    • Black Knights
    • Death Knights
    • Nomads
    • Sylvan centaurs
    • Hell Steeds
    • Nightmares
  • Cavaliers / Champions get 20% damage bonus per hex instead of the original 5%. Bonus accumulates with other bonuses like attack modifier, offense skill and so on.
  • Swordsmen / Crusaders ignore 50% of physical damage in a state of defense.
  • Damage of Orcs / Orc-chieftains (throwing axes) depends quadratically on the distance to the target.
    Formula: Base damage * (19 - distance) ^ 2 / 100.

Changes.

Portability.
The game became fully portable. All game settings are stored in "heroes3.ini" file. Default CD scanning mechanism is turned off. Era automatically loads files ".\Heroes3\Data\heroes3.vid" and ".\Heroes3\Data\heroes3.snd" if any. If "LoadCD" option in "heroes3.ini" is set to 1, Era scans all CD drives seeking for "Heroes3" folder. If above mentioned snd/vid archives are not found in the game folder, Era will try to load them from CD, providing the "LoadCD" option is on.

Debug mode.
To enable debug mode set option "Debug" to 1. The file "eralog.txt" will be automatically recreated at game start.

Multiplayer.
  • A network game can take place at one PC between two game copies (in different folders) if they have different "Unique System ID" in "heroes3.ini". To generate the ID, just erase the whole settings line and run the game.
  • External IP address detection mechanism was improved. The first non-local address is moved in the first position of the list returned by gethostbyname function.
Editors.
Original editors (h3maped.exe and h3ccmped.exe) work fine. WoG editors (h3wmaped.exe and h3wcmped.exe) may require special fix. WoG map editor correctly opens maps and loads mods. It also applies all memory patches and loads dlls from EraEditor folder. Extended editor functionality provided by GrayFace editor patch requires resources to be located in h3sprite.lod and h3bitmap.lod. WoG campaign editor does not support mods. To enable MapEdPatch functionality for new WoG objects and to enable WoG campaign editor mapmaker can run "Tools\FixEditor\Fix Editor.bat". This will import all crucial data inh3sprite.lod and h3bitmap.lod.

Help.
All documentation, changelogs, updated ERM and Era manuals can be found in the "Help" folder.

Tweaks.
  • Windows 7 compatibility when running without "XP compatibility" option.
  • No WoG installer anymore.
  • Sped up calling all wog dialogs, several times lower HDD load.
  • Optimized WoG dialogs HDD and CPU load. "reduce cpu load.bin" patch was removed and HD-mod "Berserker's CPU patch" option should be turned off.
  • Writing ini files using ERM or Era functions now always result in sorted list of sections and keys in file.
  • Random maps generation in game/editor is no longer dependent on garbage snd/vid/lod files from Armageddon Blade.
  • Game does not require native lods in "Data" folder if necessary resources are found in other pacs.
  • Added synchronized creature sounds by GrayFace.
  • Script 98 (quick and smart savings) was rewritten, now supports option in WoG menu, does not conflict with chat and is variables-safe.
  • All tools were moved to Tools folder, included new standard ones:
    lodexport, lodimport, objector.exe, repman.exe, resman.exe, installmod.exe.
  • Updated API and sources.
  • F11 now extracts scripts from memory to "Data\ExtractedScripts" folder instead of "Data\s\ExtractedScripts".
  • Removed duplicated WoG initialization code.
  • Fixed Era 1.9 PO/Memory bugs which led to invalid saved games' data and size.
  • Fixed Era 1.9 bug when plugins and patches with ".off" extension were loaded anyway.

Technical details.

Virtual File System ("Mods" folder support).
The following file system functions working with names are supported:
  • CreateFileA
  • GetFileAttributesA
  • FindFirstFileA
  • FindNextFileA
  • FindClose
  • LoadLibraryA
  • DeleteFileA
  • CreateDirectoryA
  • RemoveDirectoryA
  • GetPrivateProfileStringA
  • LoadCursorFromFileA
  • PlaySoundA
  • GetCurrentDirectoryA
  • SetCurrentDirectoryA
New event "OnStackToStackDamage"(!?FU77012).
Arguments:
  • Attacker stack (0..41) or -1
  • Defender stack (0..41) or -1
  • Final damage (DONT CHANGE!)
  • Final damage (CHANGEABLE)
  • Basic damage
  • Damage bonus
  • Is distant? (if not 0 or 1 then garbage)
  • Distance (only for theoretical attacks)
  • Is theoretical? (means hint or AI calculation)
The event occurs when one stack attacks/shoots at another one.

New event "OnAICalcStackAttackEffect" (!?FU77013).
Arguments:
  • Attacker stack (0..41)
  • Defender stack (0..41)
  • Effect value (CHANGEABLE)
  • Effect value (DONT CHANGE)
New event "OnChat" (!?FU77014).
The first argument determines event type and the rest arguments:
  • 0 (Enter chat)
    • Disable enter? (0..1)
  • 1 (Input)
    • Input string
    • Action: 0 (clear box), 1 (close box) or 2 (default)
  • 2 (Leave chat)
Miscellaneous.
  • Added "ApiHook" function. It finds out patch size automatically in comparison with "Hook" function.
  • Both ApiHook and Hook functions return new address of overwritten code in the BRIDGE mode.
  • v1 keeps Era dll handle when *.era plugin is being loaded.
  • Era automatically calls DisableThreadLibraryCalls for all loaded *.era plugins.
  • ExecErmCmd does not kill the game on error.
  • Event "OnNameColors" was renamed to "OnAfterCreateWindow"



RE: ERA II - gamecreator - 04.02.2012 19:26

много где пропущены пробелы


RE: ERA II - Berserker - 04.02.2012 19:38

Можешь поправить? Я прогонял через замену, преобразователь в ББ + ручную правку части. Замучался уже.


RE: ERA II - totkotoriy - 04.02.2012 20:52

(04.02.2012 17:27)Berserker Wrote:  totkotoriy, а видео с драконом у тебя есть? По ходу нет.

А при чем тут видео с драконом?


RE: ERA II - Berserker - 04.02.2012 20:55

При том, что оно идёт до синего меню, а синее меню на его фоне или на фоне игры, если у тебя нет видео (или видео с диска + nocd load speedup.bin).


RE: ERA II - Berserker - 04.02.2012 22:49

Нужен мод, который восстановит все затёртые звуки для кампаний. В оригинале сода: ABv* файлы упоминаются, а вот в воге нет. Хочется озвучки текста.


RE: ERA II - gamecreator - 04.02.2012 23:11

(04.02.2012 19:38)Berserker Wrote:  Можешь поправить?
сделал. еще через ворд прогнал


RE: ERA II - Berserker - 04.02.2012 23:33

Спасибо большое.


RE: ERA II - AKuHAK - 05.02.2012 00:16

(04.02.2012 22:49)Berserker Wrote:  Нужен мод, который восстановит все затёртые звуки для кампаний. В оригинале сода: ABv* файлы упоминаются, а вот в воге нет. Хочется озвучки текста.
ммм.. вроде ж договорились только с диска это запускать 96 можно и выложить - у меня правда только русская версия


RE: ERA II - gamecreator - 05.02.2012 00:32

(05.02.2012 00:16)AKuHAK Wrote:  вроде ж договорились только с диска это запускать 96
для этого надо сначала его вообще запускать


RE: ERA II - Berserker - 05.02.2012 00:38

AKuHAK, файлы сами есть в том же Complete, архив грузится, но сам ехе вога затёр имена и вообще не использует. Поэтому и нет озвучки. Я проверил поиском.


RE: ERA II - AKuHAK - 05.02.2012 04:12

(05.02.2012 00:38)Berserker Wrote:  AKuHAK, файлы сами есть в том же Complete, архив грузится, но сам ехе вога затёр имена и вообще не использует. Поэтому и нет озвучки. Я проверил поиском.
мой мод восстанавливающий кампании сода восстанавливает и всю озвучку и всё видео. 115 Как говорится всё уже украдено до нас.

И к тому же ВОГ не случайно затёр озвучку и видео к кампаниям - а чтобы она не конфликтовала с кампаниями ВОГа.

Поэтому если восстанавливать озвучку и видео, то обязательно надо восстанавливать и кампании Дыхания смерти попутно избавляясь от кампаний ВОГа.

А если восстанавливать кампании СОДа, то надо восстанавливать и кнопку, через которую входишь в кампании СОДа и экран кампаний и минипревьюшки.

А чтобы восстановить кнопку СОДа, надо подобрать по стилю подходящую к ВОГовскому скину. Если уже даже моя нейтральная русская кнопка вызвала такую бурю возмущений, то такую же английскую вряд ли где можно найти (рисуйте господа хорошие).

А если лень рисовать, то можно просто вернутся к изначальному интерфейсу (я уже выкладывал этот мод и кстати я в него тоже уже включил звуки и видео с оригинальных кампаний). Или можно включить любой мод на интерфейс (ну хотя бы тот, что я выкладывал) и совместить его с модом, меняющим кампании (только удалив кнопку СОДа из ресурсов).


RE: ERA II - totkotoriy - 05.02.2012 06:33

(04.02.2012 20:55)Berserker Wrote:  При том, что оно идёт до синего меню, а синее меню на его фоне или на фоне игры, если у тебя нет видео (или видео с диска + nocd load speedup.bin).
Спасибо, проверю...


RE: ERA II - Berserker - 05.02.2012 15:34

AKuHAK, спасибо за разъяснения, а не странно, что ВоГ от AB и ROE тоже озвучку потёр? Ладно бы СОД на ВОГ заменил.


RE: ERA II - hippocamus - 05.02.2012 15:49

Странно. Так почему всё же? Для пущей надёжности и необратимости?


RE: ERA II - gamecreator - 05.02.2012 15:59

наверно за всю озвучку отвечал один и тот же код


RE: ERA II - FallenAngel - 05.02.2012 16:01

Как вариант, чтобы кампании WoG были в более-менее равноправии с кампаниями RoE и AB. Т.е., если у воговских нет, то и у тех двух пусть не будут. Немного бредовая идея, конечно.


RE: ERA II - AKuHAK - 05.02.2012 16:10

(05.02.2012 15:34)Berserker Wrote:  AKuHAK, спасибо за разъяснения, а не странно, что ВоГ от AB и ROE тоже озвучку потёр? Ладно бы СОД на ВОГ заменил.
Там всё довольно интересно - перед каждой миссией в кампании идёт ролик (ну полагается так в кампаниях - редактор по другому не умеет). Ролики разработчики ВОГа брали стандартные (то есть те которые на диске с Полным собранием) или рисовали свои (только к первым миссиям, ну иногда к первым двум - я вообще поражаюсь тому, что хоть парочка роликов была сделана). А если брали стандартные, то брали те которые больше по смыслу к миссии подходят - ну и надёргали их из всех трёх аддонов 148 ни разу не повторились - я сперва пытался восстановить в коде только те ролики которые они не затронули - гиблое дело (там всего пара роликов). Дело ещё осложняется тем, что ролики жёстко связаны с озвучкой - команда ВОГа ничтоже сумнящеся удалила их напрочь, чтобы перед миссиями ВОГа не слышать - "Войска Эрафии вторглись в Нигон...".

Конечно возникнет закономерный вопрос - почему простые "левые" кампании, которые делались для СОДа, не содержат озвучку, а только видео. Всё очень просто, если кампанию выбрать через меню "Другая", то озвучки не будет (очень удобно). Можно скажем ВОГовские кампании туда закинуть.

В связи с этим у меня кстати возникает вопрос - никто не в курсе, почему перед миссиями ролики играются только в СМК формате, а в бик формате не проигрываются? Всё-таки бик формат качеством лучше.


RE: ERA II - Berserker - 05.02.2012 17:26

Quote:Можно скажем ВОГовские кампании туда закинуть.
Было бы отлично. На HC просят Sodify-мод.

Quote:В связи с этим у меня кстати возникает вопрос - никто не в курсе, почему перед миссиями ролики играются только в СМК формате, а в бик формате не проигрываются? Всё-таки бик формат качеством лучше.
Так бики же устаревшего формата. Кто-нибудь пробовал взять новее DLL, чтобы она работала?


RE: ERA II - SyDr - 05.02.2012 17:32

После загрузки игры не повторяется. Случлось во время хода компьютера.


RE: ERA II - Berserker - 05.02.2012 18:01

Если повторится, будет нужен сейв.


RE: ERA II - gamecreator - 05.02.2012 18:21

(05.02.2012 17:32)SyDr Wrote:  После загрузки игры не повторяется. Случлось во время хода компьютера.
наверно ИИ выбрал другой путь. нужно позагружать сейв раз 10. если баг еще раз вылезет, значит так и есть.


RE: ERA II - SyDr - 05.02.2012 18:55

Ага. Повторилось. Загружать ещё раз необязательно. Достаточно пару раз ходы попропускать.
4 Red End.7z

Ну и заодно два маленьких момента:
1) Скрипт Advanced savings. Зайти в игру, загрузить сейв, закончить ход. В меню сохранить/загрузить игру в качестве имени сценария будет красоваться 4 Red End.
2) У Kyree висят песочные часы и дух уныния. Описание у артефактов примерно одинаковое, однако удача отбирается также и не во время боя. Так и должно быть?


RE: ERA II - Berserker - 05.02.2012 19:10

Quote:1) Скрипт Advanced savings. Зайти в игру, загрузить сейв, закончить ход. В меню сохранить/загрузить игру в качестве имени сценария будет красоваться 4 Red End.
Так и должно быть.

Quote:2) У Kyree висят песочные часы и дух уныния. Описание у артефактов примерно одинаковое, однако удача отбирается также и не во время боя. Так и должно быть?
Да.


RE: ERA II - Berserker - 05.02.2012 19:25

Баг скрипта 42, скрипт гарнизонов. Там вызывается HE:A, дающая артефакт за победу, которая генерирует события !?AE, которое портит v998-999, в результате чего следующая команда PO998 указывает в лучшем случае на левую клетку карты, а в худшем, как у вас, за карту.


RE: ERA II - SyDr - 05.02.2012 21:28

Предыдущий пост (Click to View)
Это снова я:
SD_Before_Battle.7z

Проводим битву (можно Quick). Быстренько прокачиваем командиру/герою навыки. Вылетает некритичное сообщение.
Я так понимаю, связано оно с палаткой.


RE: ERA II - Berserker - 05.02.2012 21:58

Конфликт 42-го и 73-го. Отключил 73-й (Боевые машины 3) - ошибки нет.


RE: ERA II - AKuHAK - 05.02.2012 22:28

Внимание - небольшой баг: в релиз вкрался файл genrl.txt не от вога, а от обычной версии. Второй баг (ну не баг а так) VIDEO.vid и H3ab_ahd.VID сменили приоритеты. Теперь сперва грузится Армагедоннский вид а потом обычный - и всё бы ничего, но в армагедонском видео остался credits.bik с пылающим огнём )) Конечно никаких проблем с его стиранием не предвидится, но по умолчанию теперь мой мод возвращающий интерфейс выглядит коряво.


RE: ERA II - Berserker - 05.02.2012 22:56

Тоже хотел спросить про этот огонь. genrltxt.txt (32164) взят целиком из оригинального вога. Перепроверил с точностью до байта. Что касается порядка загрузки оригинальных snd/vid, то я попробую его добавить, хотя могут возникнуть сложности, так как концептуально неверно, чтобы в рамках одного мода/игры ресурсы перекрывали друг друга.


RE: ERA II - SyDr - 07.02.2012 18:25

6 Blue End.7z
1) Заканчиваем ход.
2) Наводим курсор на любого монстра противника.
3) ...

Только не надо спрашивать, зачем вогификация в кампании...



RE: ERA II - Berserker - 07.02.2012 20:32

SyDr, на всё понаводил - работает Bad


RE: ERA II - SyDr - 07.02.2012 21:28

http://img-fotki.yandex.ru/get/4510/38252203.0/0_8090c_50251a02_orig


RE: ERA II - Berserker - 07.02.2012 21:34

Попробуйте через DEE отрузить скрипт часов асмодиуса, затем сохраните игру и загрузите сейв. Повторится ли?

Ввёл приоритеты для оригинальных vid/snd. "restore interface.bin" работает на ура.


RE: ERA II - SyDr - 07.02.2012 22:05

Berserker, ничего не изменилось (надеюсь, что правильно сделал). Сам скрипт в настройках был выключён (к слову).

Если сначала на кого-нибудь скастовать заклинание, то немного меняется сообщение:
Code:
The Latest Executed ERM Receiver:

FU&y-1<>1:E; [Exit if script isn't enabled]

!!BG:N?v1; [Current stack number: v1]
!!BMv1:T?v2 N?v
Это скрипт с метаформами. Они тоже выключены.

Может-ли это происходить из-за бинарных патчей? Я кое-какие включал из них. В частности, campaign heroes as start heroes.bin.


RE: ERA II - Berserker - 07.02.2012 23:08

Не знаю, попробую ещё раз ваш сейв глянуть.


RE: ERA II - SyDr - 07.02.2012 23:59

Ммм... Сделал случайную карту, выставил героя с Artillery в город и поставил рядом компа. Стабильно вылет при наведении стрелковой башни. Сейчас поотключаю скрипты разные. Посмотрю, из-за чего возникает.

Внезапно. Вылетает даже если вообще все скрипты отключены и даже если не вогифицировать.

Догадка: может связано с той функцией, которая определяет урон, который будет нанесён стеку? Апдейт: тоже нет Bad. Продолжает стабильно вылетать.


RE: ERA II - Sav - 08.02.2012 01:32

Что значит наведении стрелковой башни? Курсора на существ?


RE: ERA II - SyDr - 08.02.2012 11:01

Да. Но не при любом наведении, а только в случае, когда курсор меняет свой вид на стрелу:
20120208_0848_31.avi.avi (2.18 Мб)


RE: ERA II - Berserker - 08.02.2012 18:04

SyDr, баг подтверждён, реализация события Эры, постараюсь исправить и выложить обновление. Большое спасибо.


RE: ERA II - Berserker - 08.02.2012 19:21

Благодаря мужественному Sydr, ошибка была уничтожена. На будущее мододелам. Позиции башен на поле боя:
251 - lower
254 - central
255 - upper

7-дневная ссылка


RE: ERA II - SyDr - 09.02.2012 19:53

Снова я. Снова вылет.
Какой смайлик здесь больше подойдёт, Sm или Bad?

20120209_1744_46.avi.avi
При каких-то условиях* при наличии в Башне Грааля игра вылетает. На видео это показано. Если что-нибудь поклацать - может вылететь с сообщением типа Access Violation...

* На случайной карте не повторилось. Сейв: Faerie Dragons End.CGM


RE: ERA II - Berserker - 09.02.2012 20:04

SyDr, спасибо большое, но без адреса вылета и отчёта я по-любому ничего не смогу проверить.


RE: ERA II - SyDr - 09.02.2012 20:27

Странно. Как-то "нестабильно" вылетает:

1) Как и говорил.
2) При загрузке карты
3) При попытке выхода в меню (то есть первые два пункта не прокатили)
4) При выходе из города
5) При входе в город

Если граали не включать, то не вылетает.

2 лога с разными адресами {read}:
logs.7z

Как минимум один раз видел, чтобы в логе было {write}, а не {read}, но такую версию я не сохранил. Если понадобится, попробую "повторить" (если такое можно повторить...).


RE: ERA II - Berserker - 09.02.2012 20:53

SyDr, спасибо, но следов ЕРМ нет, а адреса уже испорченные. Может попробуешь загрузить безопасный набор скриптов, что в оригинале беты и тоже проверить с граалем? То бишь вполне возможен баг скрипта.


RE: ERA II - SyDr - 09.02.2012 21:03

Эм... Безопасный набор скриптов? Не понял, но это скорее всего неважно, потому что вылетает даже, если включена ТОЛЬКО эта одна эта опция. Возможно это как-то связано с переходом по картам кампании (на искусственно созданной ситуации не повторилось), но тут я ничего конкретного сказать не могу.


RE: ERA II - SyDr - 09.02.2012 21:10

Круть. Ну... То есть не совсем:
DragonSlayer04.h3m
Карта, выдранная из архива. В сингле всё то же самое. Вылет.

При загрузке со стартовым сообщением случилось что-то странное:
http://img-fotki.yandex.ru/get/5003/38252203.0/0_809f5_9957061c_orig

Грааль, добавленный через редактор, баг не проявил. Наверное, проблема именно в опции.


RE: ERA II - Berserker - 09.02.2012 21:15

Это баги предыдущей DLL. Порча памяти и т.д вызвана недореализованной фичей загрузки скриптов с любыми именами. Варианта три: взять из беты, подождать денёк или я заливаю обновление экспериментальное )


RE: ERA II - SyDr - 09.02.2012 21:20

Угу. Спасибо. Я подожду денёк. Со мной ничего страшного не случится.

Есть только вопросик: как добавить поддержку русских шрифтов? Ну раньше просто было - закинул в папку апдейт...


RE: ERA II - Berserker - 09.02.2012 22:04

http://wikisend.com/download/148592/RussianFonts.rar
Распаковать в Data


RE: ERA II - AKuHAK - 10.02.2012 00:03

Мож русификатор выложить? Он просто какой-то кривой вышел, поэтому я и не выкладываю.


RE: ERA II - Sav - 10.02.2012 00:47

Для "жёсткого" исправления шрифтов:

PByte($4B5347)^ := $EB;
PByte($4B53B9)^ := $EB;
PByte($4B53E3)^ := $EB;
PByte($4B4FF0)^ := $EB;

Это пропуски особой обработки отрицательного отступа. Я вообще пытался сравнить код exe 3.2 и 3.0, но он, насколько хватило моего терпения, оказался абсолютно идентичным. Тем не менее, способ, как оказалось, прекрасно работает. Sm


RE: ERA II - Berserker - 10.02.2012 14:07

Спасибо! То есть лучше оставить шрифты как есть, но применить патч?


RE: ERA II - Berserker - 10.02.2012 16:55

Era II Update.
Version: 2 beta 2, build 3.
Download: The whole package or Update for the previous version
Changes:
Fixed bugs, optimized scripts, added forced priorities for original snd/vid's, improved erm scripts system.

All erm files (and ert files with the same names) are automatically loaded from "Data\s" folder at map start or when F12 is pressed. WoG options dialog does not validate the existence of files on disk anymore. The number of scripts is limited only by the amount of internal memory. If a valid (negative or positive) number is found before script name (ex. "50 Test.erm"), it's treated as loading priority. If the file "load only these scripts.txt" exists in "Data\s" then only those scripts which are written there (one script name per line) are loaded. In this case loading order is the order in which files appear in the list. WoG ini option "Alternate_Script_Location" is not used anymore.


RE: ERA II - Sav - 10.02.2012 20:37

Berserker Wrote:Спасибо! То есть лучше оставить шрифты как есть, но применить патч?
Я не замечал разницы между стандартными и исправленными шрифтами при использовании этой правки. Просто исчезает смысл ставить исправленные, чтобы зря не захламлять.


RE: ERA II - Berserker - 10.02.2012 20:46

Отрицательный отступ создавал разрежённый шрифт (одни буквы ближе к другим).


RE: ERA II - SyDr - 11.02.2012 10:53

Эм... Баг на месте Bad


RE: ERA II - Berserker - 11.02.2012 15:51

SyDr, с опциями из обновления пробовали? Вот я включаю грааль, и всё хорошо.


RE: ERA II - SyDr - 11.02.2012 18:10

Эм... С какими опциями? Баг только на этой карте повторяется. Мне как бы всё равно. Я в эту карту (и тем более с граалем) в ближайшее время играть не буду. Но... Мало ли где он ещё потом может вылезти.

Вообще, я просто скачал Update for the previous version и установил в каталог с игрой.

20120211_1600_00.avi.avi - Даже в город не заходил. Сразу вылет.


RE: ERA II - Berserker - 11.02.2012 18:25

SyDr, большое спасибо за видео отчёт. Можете включить в heroes3.ini "Debug=1" и залить eralog.txt после вылета? Ну и заодно воговские логи, если создаются.


RE: ERA II - SyDr - 11.02.2012 18:38

log.7z


RE: ERA II - Berserker - 11.02.2012 19:49

SyDr, попробуйте удалить era - quick savings.erm.


RE: ERA II - SyDr - 11.02.2012 20:00

Всё осталось на местах: log.7z
Ну, правда, процесс убивать не пришлось.


RE: ERA II - Berserker - 11.02.2012 20:18

А если удалить этот кусок из скрипта грааля:



RE: ERA II - SyDr - 11.02.2012 21:00

Угу. Вылет прекратился. Даже больше скажу, достаточно удаления Ab


Подземелья на карте, естественно, нет.


RE: ERA II - Berserker - 11.02.2012 21:22

Нужно будет эти исправления официально внести.


RE: ERA II - Berserker - 12.02.2012 13:43

SyDr, скрипт тупо не проверял, а есть ли у карты подземелье Sm
Исправляю в следующем выпуске.

Попробуй:



RE: ERA II - Berserker - 12.02.2012 15:23

Era II Update.
Version: 2 beta 2, build 4.
Download: The whole package or Update for the previous version
Changes:
Fixed two wog scripts bugs, changed scripts order, added Object Txt Editor by Bourn.


RE: ERA II - igrik - 13.02.2012 19:21

Bersrker, так для общих сведений...




RE: ERA II - Berserker - 13.02.2012 20:09

В 1.9 сейвы портились )


RE: ERA II - Berserker - 14.02.2012 22:25

Phoenix Mod 3.61 [ENG] [MOD]


RE: ERA II - SyDr - 19.02.2012 12:15

Это снова я Sm Продажа артефакатов глючит:
Лог + Сейв (заодно там есть сейв конца предыдущего хода: зелёный ходит ну слишком уж долго для того, у кого есть только один город и один герой).
Запись процесса


RE: ERA II - Berserker - 19.02.2012 15:39

SyDr, нужно бараторчу эту сообщить. У него плагин.


RE: ERA II - rennyo - 19.02.2012 21:47

Спасибо огромное за аддон!Хороший повод заняться глючными ВОГовскими скриптами.Я немного позже выложу сюда несколько исправленых(с помощью Sav) скриптов. В часности исправлена бага приводящая к рандомным вылетом во всех скриптах(она чаще всего выдовала Access Violation. Attempt to {read} the inaccessible data at {0x00000018} в битвах)


RE: ERA II - Berserker - 19.02.2012 22:32

Выкладывайте, глянем )


RE: ERA II - rennyo - 24.02.2012 07:01

http://ifolder.ru/28897463
Поправил несколько скриптов.
У меня что-то воговский редактор карт глючит.Когда закрываешь выдает ошибку.И одновременно с игрой не работает...Это только у меня?
Еще вылез интересный глюк.Когда АИ нападает на Enchanted tower(синяя такая с чародейками) функция !!BA:P?у1/?у2/?у3 возвращает значение у3=1 если башня находится не под землей. Из-за этого скрипт 73 вылетал адски. Не помню так ли это когда играешь сам, но факт, что это либо баг скрипта на башню,либо баг функции вога.А где лежит скрипт на эту башню? Или он в .exe вшит?


RE: ERA II - totkotoriy - 24.02.2012 14:24

(13.02.2012 20:09)Berserker Wrote:  В 1.9 сейвы портились )
Тоже столкнулся с данной проблеммой, а какой-нибудь патч будет от этого? Или все работы по 1.9 остановлены?
Просто не хотелось бы все переносить на 2-ую версию, пока даже не знаю толком как это сделать...
И ещё такой вопрос можно ли будет руссифицировать вторую эру заменив только ТХТ в лодах и ERT? или надо будет ещё что-то менять?


RE: ERA II - MaGoth - 24.02.2012 17:06

feanor,
Quote:Вообще, идеальный (и слабореалистичный) вариант: мод есть одиночный файл, кладущийся в некую папку. Настройка осуществляется внутри игры с помощью унифицированного интерфейса. Причем шоб этот файл по структуре, натурально, был проще jar-архива.
Почему слабо реалистичный? Я уже давно предлагаю здешним гуру присобачить к героям Виртуальную систему томов VDFS, которая по сути содержит в себе всю структуру каталогов игры или мода.
Плюсы:
- всего один файл для мода, и инишка к нему;
- запуск мода можно осуществлять через Стартер в котором отображаются все установленные моды.
- легкость редактирования и правка этих файлов с их заменами и прочее...
Минусы:
- всегда перед первым запуском нового мода будет создаваться виртуальный файловый дамп (требует некоторого времени в минутах, время зависит от размера мода). Все последующие запуски, идут мгновенно;
- нагрузка на железо и на быстродействие в игре, ибо будет читаться из томов, а на прямую, но учитывая мощности сегодняшних компов, думаю это не такая уж и проблема?!

Но, пока народ супротивляется... Moral


Berserker,
Quote:Так бики же устаревшего формата. Кто-нибудь пробовал взять новее DLL, чтобы она работала?
С какого перепугу это он стал устаревшим? Нормальный формат, хорошо зарекомендовавший себя для игр...


RE: ERA II - MOP - 24.02.2012 18:21

Берс, скорее всего, имел в виду, что геройская BINKW32.DLL устарела и новые бики с ней не дружат, а не то, что сам формат устарел.


RE: ERA II - Berserker - 24.02.2012 22:53

totkotoriy, можешь попробовать библиотеку из этого сообщения.
Версия 2.0 не сложна, но нуждается в переводе после окончательного выпуска. Ты менял стандартные воговские скрипты?

Quote:Почему слабо реалистичный? Я уже давно предлагаю здешним гуру присобачить к героям Виртуальную систему томов VDFS, которая по сути содержит в себе всю структуру каталогов игры или мода.
Сейчас мод - это одна папка. В разы удобнее, чем контейнеры по той причине, что ни один софт с контейнерами напрямую работать не может, а значит виртуализацию, которая бы поддерживала чужую игру, заплатки и библиотеки, не сделать.

По поводу bink-а МОР верно написал.


RE: ERA II - totkotoriy - 25.02.2012 03:17

(24.02.2012 22:53)Berserker Wrote:  totkotoriy, можешь попробовать библиотеку из этого сообщения.
Версия 2.0 не сложна, но нуждается в переводе после окончательного выпуска. Ты менял стандартные воговские скрипты?
Спасибо, попробую.
Менял, половину точно редактировал... вот я чего и боюсь опять переносить всё 96... но посмотрим.


RE: ERA II - Berserker - 25.02.2012 15:37

rennyo, если вы не против, я ваши правки включу в следующее обновление. Правда, английский в описании хромает, но мы поправим )


RE: ERA II - MaGoth - 25.02.2012 17:57

Berserker,
Quote:Сейчас мод - это одна папка. В разы удобнее, чем контейнеры по той причине, что ни один софт с контейнерами напрямую работать не может, а значит виртуализацию, которая бы поддерживала чужую игру, заплатки и библиотеки, не сделать.
Удивительно, и как-же это оно до сих пор в Готе работало, а? Moral


RE: ERA II - gamecreator - 25.02.2012 18:59

т.е. их таки можно открывать без спецпрог, встроенными средствами винды?


RE: ERA II - MaGoth - 25.02.2012 20:47

gamecreator, Формально, и при желание, наверное вскрыть можно все.
Сами же тома распаковываются/упаковываются прогой в 71 кб. И потом с файлами можно творить что угодно и как угодно...

Зы, по-сути это архив (возможно слегка навороченный, в отличие от остальных), с которым можно работать как и со всеми другими...


RE: ERA II - Sav - 25.02.2012 20:50

Только зачем всё усложнять, когда уже есть как ни крути более удобный вариант с папками.


RE: ERA II - MaGoth - 25.02.2012 20:55

Sav, Ну если исходить с такой позиции, то да. Но вроде как речь выше шла об одном файле для мода, который закинул вместе с ини-шкой в каталог игры и все, а тут, старая песня о главном: "доброй куче файлов" ?!


RE: ERA II - Sav - 25.02.2012 21:00

Но если куча файлов - вся в одной своей отдельной папке, чем это хуже одного?


RE: ERA II - Berserker - 25.02.2012 21:08

Зато с этими файлами могут работать любые утилиты, а установщик сводится к самораспаковывающемуся архиву.


RE: ERA II - rennyo - 25.02.2012 21:18

(25.02.2012 15:37)Berserker Wrote:  rennyo, если вы не против, я ваши правки включу в следующее обновление. Правда, английский в описании хромает, но мы поправим )
Только за. Да, я уже перечитал что написал в ридми, после того как выложил-да, там куча ошибок))


RE: ERA II - Berserker - 25.02.2012 21:46

Есть ещё обновления от Jim Vogan:
http://www.box.com/s/1n069e3vc5vixc8l1zk5
JV WoG 3.58f Script revisions
Попробую как-нибудь совместить с вашими.


RE: ERA II - MaGoth - 26.02.2012 01:44

Berserker,
Quote:Зато с этими файлами могут работать любые утилиты, а установщик сводится к самораспаковывающемуся архиву.
Дык, там тоже все будет работать, только при установке укажи опцию распаковать и по окончанию их работ запаковать, или же вообще напрямую использовать V-патчинг уже готового мод файла без его распаковок. Методов и способов вагоны, было бы желание... Yes


RE: ERA II - rennyo - 26.02.2012 02:27

(25.02.2012 21:46)Berserker Wrote:  Есть ещё обновления от Jim Vogan:
http://www.box.com/s/1n069e3vc5vixc8l1zk5
JV WoG 3.58f Script revisions
Попробую как-нибудь совместить с вашими.
Посмотрел.К счастью мы исправляли разные вещи, а не одно и то же =)

Нашел причину многих багов.Это ошибка в Воге. Конкретно команда !!BA:P?y1/?y2/?y3
возвращает значение y3=1(то есть в подземелье),когда дело происходит на поверхности.У меня это случалось на одноуровневой карте.Происходит рандомно.непонятно от чего зависит.вроде чаще всего при нападении компа(а не наоборот).После срабатывания тригеров BA50/BR.Один и тот же сейв у меня вылетал у Sav-нет.В итоге, естественно, все что использует эту команду начинает глючить и вылетать
Это скрипты
5 wog - enhanced war machines 3
24 wog - enhanced war machines 1
22 wog - metamorphs
10 wog - new battlefields

В зависимости от того будет ли кто заниматься его отловом или нет,я могу поправить скрипты.Если кто-то будет, то я пока не буду из скриптов эту функцию удалять. А если нет то нужно будет просто поправить эти скрипты.


RE: ERA II - Berserker - 26.02.2012 16:29

Больше никто не отлавливает. Было бы очень здорово, если бы вы поправили и сохранили в журнале места, где правили.


RE: ERA II - rennyo - 26.02.2012 17:11

Хорошо,я тогда скрипты исправлю. Посмотрю еще в исходниках вога,может что-нибудь удасться откопать.
Мне объединять с иправлениями от от Jim Vogan?


RE: ERA II - Berserker - 26.02.2012 20:08

Если сможете, то да.


RE: ERA II - rennyo - 26.02.2012 20:24

Тогда я, как все откорректирую, выложу сюда.


RE: ERA II - Berserker - 26.02.2012 21:57

Хорошо. Буду ждать.


RE: ERA II - rennyo - 27.02.2012 05:00

Не пойму от чего глючит скрипт дополнительных полей сражений...
Image: 55545143.jpg
скопировал дополнительные поля сражений и когда они применяются происходит такая ерунда.Еще и с отрисовкой монстров проблемы.Скрипт стандартный.От чего это может быть? Поля сражений брал с вогархива и из патча WOG.
ЗЫ:Я так понимаю это как-то связано с перемещениями папок в эре...
ЗЫ2:Действительно. поля сражений нужно копировать в /mods/wog/data/s чтоб скрипт сработал и в /data/s чтоб появились в сражении. Это баг =))


RE: ERA II - rennyo - 27.02.2012 06:10

http://ifolder.ru/28948900
апдейт скриптов до версии 1.1
следущая версия будет не раньше чем через неделю
фикс скрипта с граалем учел, в скриптах 00 и 01 вставки эры тоже вроде учел.Остальные просто скопировал поверх скриптов эры и объединил со своими фиксами.


RE: ERA II - Berserker - 27.02.2012 18:05

rennyo, спасибо. Вы даже блок-схему нарисовали Sm С !!BA:P нечто очень странное. Определённо в ЕРМ нет разницы между разными номерами y-переменных.
Касаемо полей сражений - попробую разобраться.
А вообще давно нужно было включить все опции и сделать их совместимыми.


RE: ERA II - rennyo - 27.02.2012 19:41

http://ifolder.ru/28963605 версия 1.2
Небольшой апдейт.Я в коментариях в скрипте забыл !!BA:P(из-за чего ошибка везде была) =).Исправил+убрал функцию !!BA:P вобще.Теперь для определения места битвы скрипты просто обращаются к переменным v998-1000.Оно нормально работает.+мелкий фикс 73 скрипте.
С !!BA:P проблема не в переменных, а в том, что она возвращает порой уровень подземелья ошибочный,в то время как функции !!HE:P и v1000 показывают верные значния.
Схему рисовал чтоб самому понять как оно работает и быстро ошибку найти, ибо код скриптов совсем недружелюбен,особенно в циклах).
Строго говоря у меня не все включено.Например скрипт с гарнизонами точно знаю что глючный и Death chamber.Они не сильно интересные поэтому я их пока не правил.Основной целью было заставить работать first aid I, военные машины 3 и разделение отрядов.


RE: ERA II - Berserker - 27.02.2012 20:03

Только что хотел написать. Сделал сборку и проверил.
Новые поля в WoG\data\s работают.
P.S Да, ResetEra блок в скрипте Wogify больше не нужен.
Спасибо.


RE: ERA II - Berserker - 27.02.2012 20:40

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


RE: ERA II - rennyo - 27.02.2012 20:50

А у меня не работает 8) Работает только если в папке heroes/data/s лежат. Но это ерунда, лишние пару десятков мегабайт я как нибудь переживу.Гораздо хуже что при выгрузке скрипта, изменении и загрузке и нажатии f12 вылетает.http://ifolder.ru/28966065


RE: ERA II - Berserker - 27.02.2012 21:17

Name: Era II + WoG 3.58f [converted to mod]
Version: 2.0 beta 2 build 5
Size: 76.7 MB
Download: Direct link

Beta 5 Change log:
Code:
[+] Added Era Delphi 7 port by emastergam.
[+] Added ERM scripts updates by Jim Vogan and rennyo. The information can be found in WoG\data\s\Info. Now almost all WoG scripts became technically compatible with each other. Means less crashes.
[+] Added extra battlefields pack.
[*] Removed "ResetEra/SetOption" block from wogify.erm script. Era automatically calls "ResetEra" at map start or loading.
[*] Fixed BinMagic wrong behavior when using "Optimize" option for overlapping subpatches. The optimization was improved in general.
[-] Fixed "quick savings.erm" script (Saving game during chat session resulted in disabling ERM keyboard handling before entering the chat again).
[-] Fixed integer damage overflow in Yona mod.
[-] Fixed Era's bug: SN:W/M memory was not cleared on map loading.
[!] Need testing.



RE: ERA II - rennyo - 28.02.2012 11:28

Эра крутая, скачал.
Самое забавное что даже с новой эрой все еще требует полей в папке /data/s. Мистика какая-то =)
Сыграл карту-прогрес на лицо. Почти все скрипты включены(кроме гарнизонов и death chamber-там точно еще баги есть) и ни одного вылета за игру. Если кому интересно вот настройки http://ifolder.ru/28974715. Конечно баги там еще есть, но они не столь заметны. Еще надо бы баланс подкорректировать, так как когда включены военные машины и все остальное, 30 баллист при правильной прокачке просто уничтожают все живое-даже арми особо не нужно.


RE: ERA II - Berserker - 28.02.2012 18:38

Я на чистом complete кинул поля только в Mods\WoG\Data\s и всё работает. После переустановки с нуля тоже. Будем надеяться, что это местная проблема.


RE: ERA II - DarVeter - 29.02.2012 02:15

у меня есть герои платинум версия, объясните как правильно установить эру . Я скачал и разархивировал файл 2.0 beta 2 build 5 , теперь нужно просто скопировать папки Data Help Mods в папку с игрой и потом запустить Install.bat из папки _Install_ ?


RE: ERA II - DarVeter - 29.02.2012 02:43

вроде запустил , просто скопировал из папки инстал все файлы, поставил hd мод и запустил через него. В этой сборке нет кампании Дыхание смерти? А можно меню на русском сделать, ещё в некоторых местах вместо текста иероглифы.


RE: ERA II - Sav - 29.02.2012 10:16

Это же Вог, в нём нет кампаний дыхания. Есть сторонний мод, их возвращающий.
Эта версия - английская, поэтому не вполне правильно ставить её на русские версии. Но можно удалить воговские шрифты из лодов в папке Mods\WoG\Data, тогда иероглифов не будет.


RE: ERA II - DarVeter - 29.02.2012 15:24

какой формат у шрифтов в героях , там 3 папки p , s, zvs. А планируется русская версия эры?


RE: ERA II - AVS - 29.02.2012 17:54

Это относится в 4 сборке (5ю еще не смотрел), но судя по изменениям там это также будет.
1) В скриптах от rennyo 1.2 перед каждым боем вылезает напоминалка про разделение отрядов (раниьше тока один раз вылезала)
2) (а это вобщем то баг WoG) непонятно как управлять шпионажем и поместьями II когда навык находится в числе скрытых.


RE: ERA II - etoprostoya - 29.02.2012 18:02

(29.02.2012 17:54)AVS Wrote:  2) (а это вобщем то баг WoG) непонятно как управлять шпионажем и поместьями II когда навык находится в числе скрытых.

В ВоГе легко поменять местами скрытые и видимые навыки. Так что не баг.


RE: ERA II - Berserker - 29.02.2012 18:27

Quote:у меня есть герои платинум версия, объясните как правильно установить эру . Я скачал и разархивировал файл 2.0 beta 2 build 5 , теперь нужно просто скопировать папки Data Help Mods в папку с игрой и потом запустить Install.bat из папки _Install_ ?
Запустить инсталлятор и указать папку с игрой.

Quote:А можно меню на русском сделать, ещё в некоторых местах вместо текста иероглифы.
Распаковать в папку с игрой
В будущем, скорее всего, будет и официальная русификация. Сейчас идёт апробация на англоязычных друзьях Sm

Quote:1) В скриптах от rennyo 1.2 перед каждым боем вылезает напоминалка про разделение отрядов (раниьше тока один раз вылезала)
Тоже писал выше.

Quote:2) (а это вобщем то баг WoG) непонятно как управлять шпионажем и поместьями II когда навык находится в числе скрытых.
Может быть перенести из Феникса просмотр произвольного количества + кнопки прокрутки?


RE: ERA II - DarVeter - 29.02.2012 19:07

а устанавливать обязательно на WOg или с 5 ой бетой можно на любых героев,кстати с HD модом эра намного сильнее тормозит по сравнению с другими сборками


RE: ERA II - Berserker - 29.02.2012 19:23

Не на вог. На SoD или Complete.
Отключите в HD опцию Berserker's CPU patch.


RE: ERA II - DarVeter - 29.02.2012 19:47

у меня он отключён
Berserker's CPU patch = 0
// param #6 ...
// 0 - option is turned off
// 1 - option is turned on
// default value is 0


RE: ERA II - rennyo - 29.02.2012 20:04

(29.02.2012 17:54)AVS Wrote:  1) В скриптах от rennyo 1.2 перед каждым боем вылезает напоминалка про разделение отрядов (раниьше тока один раз вылезала)
Да,есть такое =) В следущей версии исправлю.
В качестве временног решения можно удалить строки 88-112 в скрипте split desigion


RE: ERA II - hippocamus - 29.02.2012 21:27

(29.02.2012 18:27)Berserker Wrote:  Может быть перенести из Феникса просмотр произвольного количества + кнопки прокрутки?

Угу, было б здорово!


RE: ERA II - AKuHAK - 01.03.2012 19:55

(29.02.2012 15:24)DarVeter Wrote:  какой формат у шрифтов в героях , там 3 папки p , s, zvs. А планируется русская версия эры?
сперва скрипты будут отлажены - поскольку их тоже надо переводить - так что придётся подождать. А может и вообще не будет переведено. Мод который возвращает интерфейс - вернёт тебе русские кнопки и часть русского оформления. Не пробуй ставить ресурсы из хд мода (сам хд мод можно ставить) ***traits файлы несовместимы с эрой.


RE: ERA II - totkotoriy - 01.03.2012 23:38

(24.02.2012 22:53)Berserker Wrote:  totkotoriy, можешь попробовать библиотеку из этого сообщения.
Попробовал - не помогает, да и на XP то через раз мультиплеер работает, и всяческие глюки с обновлением информации возникают. В новой ЭРЕ я надеюсь такого нет?


RE: ERA II - Berserker - 01.03.2012 23:50

Пробовали онлайн с неделю играть, бой проводить, даже с командирами. На новой Эре всё хорошо.


RE: ERA II - DarVeter - 02.03.2012 01:05

(01.03.2012 19:55)AKuHAK Wrote:  
(29.02.2012 15:24)DarVeter Wrote:  какой формат у шрифтов в героях , там 3 папки p , s, zvs. А планируется русская версия эры?
сперва скрипты будут отлажены - поскольку их тоже надо переводить - так что придётся подождать. А может и вообще не будет переведено. Мод который возвращает интерфейс - вернёт тебе русские кнопки и часть русского оформления. Не пробуй ставить ресурсы из хд мода (сам хд мод можно ставить) ***traits файлы несовместимы с эрой.

как называется мод русифицирующий интерфейс , где скачать ?


RE: ERA II - hippocamus - 02.03.2012 01:20

НИкак. Жди Русской Эры.


RE: ERA II - gamecreator - 02.03.2012 03:18

(02.03.2012 01:05)DarVeter Wrote:  как называется мод русифицирующий интерфейс , где скачать ?
ну стандартный воговский. еще есть русификация от Black Phantom'a - она более полная.


RE: ERA II - SyDr - 02.03.2012 10:10

Berserker, нельзя ли в комплект добавить файлик для быстрой идентификации версии Эры?

Играли вчера на ноуте хотсит с зоопарков скриптов (практически все опции). Через какое-то время вылетело. Я не уверен, какая там сейчас версия стоит (подозреваю, что beta 4). Если окажется, что beta 5, пришлю отчёт и сейв.


RE: ERA II - Berserker - 02.03.2012 18:26

heroes3.ini - [Era] - Debug=1, eralog.txt => CheckVersion ...
В общем ставите отладочный режим и в eralog.txt находите версию по "CheckVersion".


RE: ERA II - rennyo - 03.03.2012 04:47

Ну если все включить то точно вылетать будет Sm У меня часто вылетает из-за скрипта с автосейвом(даже если отключен 8) Он признает за собой только полное удаление.)Скрипт с мифрилом в мельницах каждый первый день недели(но он рандомно вылетает-в прямом смысле,тк от рандомного числа зависит).Не знаю когда руки до вылавливания дойдут.
Вылизал скрипт с военными машинами 3. Стоят они теперь поразному(а не по 750),приходят по одной в неделю(ибо по 2 читерство)+исправил баг когда АИ не покупал машины на фабрике.Какую включать версию в следущую сборку? Баг-это одна строчка, а исправление стоимости и прироста-полфайла,документировать по строчно я это не буду)


RE: ERA II - ILYA1980 - 03.03.2012 08:34

Не понятно, почему русификации описания скриптов нет


RE: ERA II - Berserker - 03.03.2012 13:58

rennyo, если что в механике меняешь, нужно будет править русские/английские описания тоже. А что там с разделением отряда?


RE: ERA II - SyDr - 03.03.2012 16:33

Да, 5 beta. Но странно. Ни одного сейва в папке с сохранениями. Попробывал создать игру в мультиплеере. Теперь сохраняется 105

Поэтому только лог. Повторить ничего не смогу. Произошло в битве, при наведении курсора на кого-то (курсор сменился на меч). Так что, если лог сам по себе ничего не даёт, можно плюнуть на это.
HoMM3_log.7z

rennyo, у меня с мифрилом в мельницах вроде ни разу не вылетало. Про автосейв ничего плохого сказать не могу. Разве что, он какие-то строковые переменные использует(-вал), где-то вылезало вроде.


RE: ERA II - rennyo - 03.03.2012 16:37

Ну описания то я напишу.Просто не смогу написать в какой строчке скрипта изменил так как предведущие тоже сдвигаются,да и долго это.
А что с разделением отряда? Сейчас все работает без вылетов-войска компа прилежно делятся. Правда после того как мы исправили там одну строчку,вылеты прекратились, но появились 2 мелких не очень заметных глюка.Первое там баг с сообщением вылетающим каждый бой, там функция FU$bit$ -а я не знаю что это означает,в хелпе не нашел, поэтому надо либо что-то свое переписывать,либо просто отключить это сообщение.Второе отряды назад не обединяются в бою,хотя раньше вроде могли.


RE: ERA II - Berserker - 03.03.2012 16:58

$bit$ в скрипте 00 описана должна быть, определённо доступ к биту целочисленной переменной по номеру 0..31.

SyDr, что-то с боевыми машинами, как обычно. Наводил рядом с палаткой?


RE: ERA II - rennyo - 03.03.2012 17:13

(03.03.2012 16:33)SyDr Wrote:  Да, 5 beta. Но странно. Ни одного сейва в папке с сохранениями. Попробывал создать игру в мультиплеере. Теперь сохраняется 105

Поэтому только лог. Повторить ничего не смогу. Произошло в битве, при наведении курсора на кого-то (курсор сменился на меч). Так что, если лог сам по себе ничего не даёт, можно плюнуть на это.
HoMM3_log.7z
Рекомендую использовать First aid I и военные машины 3.И не использовать first aid II и warfare, так как вторая первая помощь вобще не тестировалась(но помню вылеты в ней точно были).
Посмотрел скрипт.Удивительно как он вобще работает.Проблема в нем-не проверяется существует ли герой.Те если битва против монстров без героя теоретически уже должны быть проблемы.
Там строка 709 Tobyn scripts
!!HEv2399: Ed/?v2301 Fd/d/?v2302/d S27/?v2304 A2/6/?v2305/d M37/?v2307 M38/?v2308 M39/?v2309;
и пустое место где условие должно быть =)) Чей-то недобрый разум удалил
должно быть
!!HEv2399&v2399>-1:Ed/?v2301 Fd/d/?v2302/d S27/?v2304 A2/6/?v2305/d M37/?v2307 M38/?v2308 M39/?v2309;
Но это может не решить проблему тк кажется отсутствие проверки-не единичный случай


RE: ERA II - rennyo - 03.03.2012 17:19

(03.03.2012 16:58)Berserker Wrote:  $bit$ в скрипте 00 описана должна быть, определённо доступ к биту целочисленной переменной по номеру 0..31.

SyDr, что-то с боевыми машинами, как обычно. Наводил рядом с палаткой?
Спасибо,посмотрю.
Да-да.именно они-военные машины =).


RE: ERA II - SyDr - 03.03.2012 18:23

Berserker, ох... Не мой ход был. Но определённо в этом районе. Может быть, не обязательно прямо рядом с палаткой, но близко так точно.

rennyo, ну у меня обычно намного меньше скриптов используется. Это мы в качестве эксперимента: скрипты выбирались с помощью кнопки выбрать всё + несколько скриптов были отключены (Death Chamber, гарнизоны и ещё по мелочи).

Хм... Вот ещё помню, один раз сдался герою, помогающему бродячим монстрам - вылет. Потом вроде не вылетало.

Ну плюс, маленькая просьба: скрипт с опциями карты, опция менять типы ресурсов для шахт каждую неделю. Нельзя ли добавить не только изменение типа приносимого ресурса, но и внешнего вида самой шахты?


RE: ERA II - Berserker - 03.03.2012 18:26

Quote:Berserker, ох... Не мой ход был. Но определённо в этом районе. Может быть, не обязательно прямо рядом с палаткой, но близко так точно.*
Значит не действует исправление палатки. Проверю. Если заменить деф на архангела, не вылетает.


RE: ERA II - Berserker - 03.03.2012 21:17

Image: sss_27.png

Secondary Skills Scrolling Mod
Ported from Phoenix 3.04.


RE: ERA II - gamecreator - 03.03.2012 21:36

хм, при загрузке изображения выдает 403. это у меня одного так?


RE: ERA II - Berserker - 03.03.2012 23:17

Я исправил в split stacks y100 на y-100, убрав дубль предупреждения, а вот код Сава не исправляет всё равно проблему. На втором ходу разделённый исчезает в оригинале, а у Сава картинка пустая остаётся.


RE: ERA II - Sav - 03.03.2012 23:28

Это ты о чём вообще? Я единственное что сделал в разделении стеков - вместо какого-то извращения с убийством клона (да ещё и с использованием колдовства телепортации (в чём суть этого способа я так и не понял), глюки которого и вызывали вылет) и вызовом нового существа, просто убрал вызванному флаг клона (а больше он ничем от нововызванного же и не отличается).


RE: ERA II - Berserker - 03.03.2012 23:45



Sav, возьми один отряд кентавров, на первом ходу раздвой, на втором вторая часть отряд исчезнет.


RE: ERA II - Sav - 03.03.2012 23:57

Да, действительно.


RE: ERA II - AVS - 04.03.2012 00:01

(03.03.2012 21:36)gamecreator Wrote:  хм, при загрузке изображения выдает 403. это у меня одного так?

У меня тоже, но картинка открывается, если адрес вбить напрямую (читай без referrer).

UPD/ Теперь открывается... Чо было то?

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


RE: ERA II - gamecreator - 04.03.2012 00:06

(04.03.2012 00:01)AVS Wrote:  UPD/ Теперь открывается... Чо было то?
так потом она из кеша берется


RE: ERA II - rennyo - 04.03.2012 00:14

(03.03.2012 23:45)Berserker Wrote:  Sav, возьми один отряд кентавров, на первом ходу раздвой, на втором вторая часть отряд исчезнет.
о_О Это вы сейчас о чем? У меня никто не исчезает...


RE: ERA II - SyDr - 06.03.2012 10:46

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


RE: ERA II - totkotoriy - 07.03.2012 18:36

Давно хотел узнать - как самому сделать подключаемый патч (.bin) для ЕРЫ? И какая у него структура?


RE: ERA II - Sav - 07.03.2012 18:48

В поставку Эры входит BinGen (или BinMagic, в общем, узнать несложно). Там, емнип, всё описано. Ну или в справке по 1.9.


RE: ERA II - totkotoriy - 07.03.2012 19:23

(07.03.2012 18:48)Sav Wrote:  В поставку Эры входит BinGen (или BinMagic, в общем, узнать несложно). Там, емнип, всё описано. Ну или в справке по 1.9.
Спасибо, опять меня лень подвела... хотя описание к BinGen не нашел, но из текстовиков версии 1.8 видно, что сначала идет адрес в ехе, потом информация для замены... щас попробуем


RE: ERA II - totkotoriy - 07.03.2012 19:46

Попробовал, не шиша не получается... сделал такой ТХТ:
003225f4 6d
003225f5 6f
003225f6 6e
003225f7 6b
Обработал BinGen'ом, вставил в ErapPlug\AftWOG - эффекта нету

Не знаете в чем может быть дело?


RE: ERA II - gamecreator - 07.03.2012 20:29

; в конце строки


RE: ERA II - Berserker - 07.03.2012 21:26

";" не нужен.
Адреса левые, для файла. Нужны для памяти. Если это содовский код, то прибавь 400000H.


RE: ERA II - Berserker - 10.03.2012 01:47

Основываясь на модуле от MoP по созданию кнопок, почти доделал расширение для Эры, убирающее многие досадные ограничения и позволяющее разным модам и скриптам мирно уживаться друг с другом и иметь свои кнопки.

Из папки Data\Buttons грузятся *.btn-файлы формата txt (notepad), в которых по кнопке на строку.
Пример:
Code:
hero;Bers;HSBTN201.def;84;46;36;36;Hellow world;HW
Экран кнопки;Уникальное имя кнопки;DEF;X;Y;Ширина;Высота;Длинная посказка;Короткая подсказка

Кол-во кнопок неограниченно, нет глобального тхт, нет нужды резервировать строки.
Разрешаются пустые описания.
Нет конфликтов ID от разных авторов.
Экран кнопки указывается текстом.


RE: ERA II - gamecreator - 10.03.2012 02:30

а что будет если позиции и размеры кнопок совпадут?


RE: ERA II - Berserker - 10.03.2012 03:16

То же, что и раньше. Перекрывают те, что позже создаются.


RE: ERA II - Berserker - 10.03.2012 20:22

Quote:2Berserker . Спасибо, реально удобная вещь. Интересно что еще можно из феникса стянуть полезного по части интерфейса)
Не за что, пропустил как-то часть сообщений, извиняюсь Sm


RE: ERA II - Berserker - 10.03.2012 20:27

rennyo, начинаю карту Высокомерие, беру один любой отряд, на первом ходу разделяю и двигаю клона вперёд. В начале второго хода клон исчезает, остаётся только его картинка.


RE: ERA II - totkotoriy - 10.03.2012 22:59

Заметил такую штуку: при закрывании редактора карт возникает ошибка. Вот часть дизассс... кода
Code:
004E9A24  ret              
004E9A25  push        esi  
004E9A26  mov         esi,dword ptr [esp+8]
004E9A2A  push        edi  
004E9A2B  or          edi,0FFFFFFFFh
004E9A2E  test        byte ptr [esi+0Ch],40h
004E9A32  je          004E9A3A
004E9A34  and         dword ptr [esi+0Ch],0
004E9A38  jmp         004E9A51
004E9A3A  push        esi  
004E9A3B  call        004EF5BD
004E9A40  push        esi
Сбой тут 004E9A2E test byte ptr [esi+0Ch],40h. Только у меня такое? Проверял на разных сборках. Думаю проблемма может быть в недостающих или неправильных ТХТ для редактора.


RE: ERA II - Berserker - 10.03.2012 23:23

Угу. В семёрке. Причина не выяснена. Это по части MapEdPatch.


RE: ERA II - Berserker - 10.03.2012 23:32

В оригинальном Buttons.dll обнаружен баг. Если у вас нет кнопок для боя, то в процедуре COMBATBUTTONS переменная Temp будет неинициализирована при выходе и помещена в EBX. Это вызовет случайный вылет или порчу памяти.
Также условия прыжков весьма смущают JLE в цикле DO..WHILE вместо JL везде.



RE: ERA II - apokalipsis - 11.03.2012 11:04

Берс, привет. В 7-64, игра вылетает при нажатии выхода героя из замка, может потому что стоит ещё и HD MOD?
вот с Феникса:



RE: ERA II - SyDr - 11.03.2012 12:53

О нет! Почему нельзя было эту простыню отдельным файлом выложить или хотя бы под спойлер загнать?

Что-то в последнее время много багов у меня повылазило. Раньше такого не видно было. Надо бы себе военные машины нафиг вообще повырубать:
Image: 0_83b60_162290e9_L.jpg
http://fotki.yandex.ru/users/sylverdragon/view/539488/
Ноль сказочных драконов. Ход ему вообще не доставался. Противник потратил один ход, чтобы его "добить".

Ну и дальше:



RE: ERA II - gamecreator - 11.03.2012 13:14

(11.03.2012 12:53)SyDr Wrote:  О нет! Почему нельзя было эту простыню отдельным файлом выложить или хотя бы под спойлер загнать?
скажи спасибо, что сообщение обрезалось форумом. иначе было бы еще больше
(11.03.2012 12:53)SyDr Wrote:  Подсказки на колдовство левые.
так это еще с сода


RE: ERA II - SyDr - 11.03.2012 13:28

А. Точно блин. Я то думаю, что что знакомое.


RE: ERA II - Berserker - 11.03.2012 13:51

apokalipsis, это тема по Эре 2)


RE: ERA II - apokalipsis - 11.03.2012 15:52

Простите перепутал!


RE: ERA II - Berserker - 11.03.2012 19:37

Вышла версия 2.0, претендующая на базовую. К ней доступен полный русификатор (включая Yona, руководства и новые скрипты).


RE: ERA II - MOP - 11.03.2012 21:22

Quote:В оригинальном Buttons.dll обнаружен баг. Если у вас нет кнопок для боя, то в процедуре COMBATBUTTONS переменная Temp будет неинициализирована при выходе и помещена в EBX. Это вызовет случайный вылет или порчу памяти.
Нет такого. Если посмотреть внимательно, то EBX ложится в Temp и оттуда же достаётся в конце. Просто ложится после pushad и нескольких безусловных команд, но всё равно неизменённый.
Quote:Также условия прыжков весьма смущают JLE в цикле DO..WHILE вместо JL везде
Ничего смущать не должно. В текстовике - 1001 строка. Верхняя строка не обрабатывается, так как там просто информация о колонках. Поэтому в начале цикла в [Counter] ложится сразу смещение +4 и в цикле "NumberOfStrings*4" фактически обрабатывается лимит не 4000, а 4004, а то последняя строка окажется в пролёте. Посему - JLE.
Наверное, можно было бы поставить NumberOfStrings*4+4 и JL, но с паскалевским асмом я тогда был плохо знаком, а сейчас и вовсе не знаюсь.


RE: ERA II - ILYA1980 - 11.03.2012 21:43

У меня почему-то в режиме боя не работает кнопка "защита"


RE: ERA II - Berserker - 11.03.2012 21:47

Где ложится?:


Quote:У меня почему-то в режиме боя не работает кнопка "защита"
Подтверждаю. Как раз связано с вопросом к Мору выше.
Я занулил Temp на входе, а нужно было туда EBX поместить.

P.S Исправил, напишу, когда залью сборку снова.


RE: ERA II - ILYA1980 - 11.03.2012 22:39

Berserker, а вот мод карта новая появилась the empire of the world 4, у меня ее получилось запустить только под Era_II_ beta_ 2_ build 4, под этой нельзя?


RE: ERA II - Berserker - 11.03.2012 22:47

Обновил ссылки.
Сейчас навалюсь на Валерия, он что-то медлит с обновлением. Одно из них будет под эту Эру.


RE: ERA II - totkotoriy - 11.03.2012 23:46

Подправил программульку, которая суёт в lod архивы файлы...
Сделал чтобы совало сразу в hmm35wog.pac... мож кому пригодиться
скачать


RE: ERA II - Sav - 11.03.2012 23:53

А зачем совать что-то туда? По-моему, это совершенно не соответствует концепции Эры. Своё надо бы хранить в своих лодах.


RE: ERA II - Berserker - 11.03.2012 23:54

Tools\lodimport?


RE: ERA II - totkotoriy - 12.03.2012 00:04

(11.03.2012 23:53)Sav Wrote:  А зачем совать что-то туда? По-моему, это совершенно не соответствует концепции Эры. Своё надо бы хранить в своих лодах.
Это не нарушает концепцию эры если кто-то хочеть очень сильно изменить ВОГ Sm
Приходиться не только туда совать, но там стирать и редактировать... унутри

(11.03.2012 23:54)Berserker Wrote:  Tools\lodimport?
Какая то другая прога, но делает тоже самое...


RE: ERA II - ILYA1980 - 12.03.2012 00:28

А вот еще что, подскажите пожалуйста. Как я понял, в папку mods можно записывать карты, затрагивающие игровые папки; моды на платформе эры2. Какое нибудь имя можно присвоить, чтоб мод находился в папке, но не работал совсем? Я понял, что его только удалить можно.


RE: ERA II - Berserker - 12.03.2012 00:36

Quote:Это не нарушает концепцию эры если кто-то хочеть очень сильно изменить ВОГ
А что именно? Ведь монстров можно и в стороннем pac-е заменять.

Quote:Какое нибудь имя можно присвоить, чтоб мод находился в папке, но не работал совсем? Я понял, что его только удалить можно.
Создайте в Mods папку Off или Выключенные и перемещайте туда моды по нужде.


RE: ERA II - Sav - 12.03.2012 00:44

Berserker Wrote:Ведь монстров можно и в стороннем pac-е заменять.
Да, и не только монстров, но и что угодно другое. Для того подгрузка лодов и создавалась, чтобы не портить чужие ресурсы.


RE: ERA II - totkotoriy - 12.03.2012 00:47

(12.03.2012 00:36)Berserker Wrote:  А что именно? Ведь монстров можно и в стороннем pac-е заменять.
Просто мне так удобнее было. Так надо было меньше разбираться что куда, да и зачем дублировать... Тем более не знаю про скрипты как они заменяются или дополняются, поэтому решил преобразовать WOG в свой мод так сказать... и еще в инфе ZVS кое что менял. Короче у меня был выбор или ещё неделю спрашивать что да как на форуме или сделать как могу сейчас.
Просто мануал ещё не читал Sm Как прочитаю может и всё по человечьи сделаю.
Фак мой мозг, наконец-то я вижу нормально открывающуюся в винде справку по ERM 2.81 Sm А то спрашивал, спрашивал - все молчат...


RE: ERA II - Berserker - 12.03.2012 01:22

totkotoriy, да всё просто. Все ресурсы, что ты скармливаешь своей программе, помести в один lod, переименуй его в .pac и брось в Mods\H3Lord\Data. Всё. Файлы в твоём паке будут использованы вместо воговских.


RE: ERA II - totkotoriy - 12.03.2012 01:28

(12.03.2012 01:22)Berserker Wrote:  totkotoriy, да всё просто. Все ресурсы, что ты скармливаешь своей программе, помести в один lod, переименуй его в .pac и брось в Mods\H3Lord\Data. Всё. Файлы в твоём паке будут использованы вместо воговских.
Это то я сразу понял, про скрипты вроде тоже, а с ZVS как (если нужно картинки поменять)?


RE: ERA II - Berserker - 12.03.2012 01:46

ZVS? Славой Сальниковым?
Mods\H3Lord\Data\Zvs\новые картинки под старыми именами


RE: ERA II - totkotoriy - 12.03.2012 01:54

(12.03.2012 01:46)Berserker Wrote:  ZVS? Славой Сальниковым?
Mods\H3Lord\Data\Zvs\новые картинки под старыми именами
Ладно, спасибо, посмотрим, только напрягает скрипты также переименовывать, а то я наменял там кучу всего...


RE: ERA II - totkotoriy - 12.03.2012 14:14

Кстати тогда возникает другая проблемма, если использовать в папке своего мода zvslib.dll то он будет обращаться только к паку hmm35wog... А если создать такой пак, то он будет не дополнять ВОГовский, а заменять его... и придется в этот пак помещать всю информацию с hmm35wog... так, что или придется изменять имя пака в zvslib или нарушать концепцию эры Sm


RE: ERA II - MOP - 12.03.2012 17:05

(11.03.2012 21:47)Berserker Wrote:  Где ложится?:

Что у тебя за версия? Вот Buttons.dll v3:
Moral


RE: ERA II - Berserker - 12.03.2012 18:07

Тьфу ты, v1 в readme. Видно, скачал давно. Спасибо.

totkotoriy, а зачем тебе заменять zvslib1.dll?


RE: ERA II - totkotoriy - 12.03.2012 20:09

(12.03.2012 18:07)Berserker Wrote:  Тьфу ты, v1 в readme. Видно, скачал давно. Спасибо.

totkotoriy, а зачем тебе заменять zvslib1.dll?
Да я ж всё объяснил в прошлом сообщении. Мне заменять её не нужно. Просто если я положу zvslib в другую папку она будет требовать hmm35wog, который дублировать нельзя.


RE: ERA II - Berserker - 12.03.2012 20:14

Понять очень сложно, зачем тебе вообще трогать/перемещать эту воговскую библиотеку.


RE: ERA II - totkotoriy - 12.03.2012 20:52

(12.03.2012 20:14)Berserker Wrote:  Понять очень сложно, зачем тебе вообще трогать/перемещать эту воговскую библиотеку.
Ну мы же вот недавно про это говорили. Я спросил как заменить ресурсы ZVS, ты говоришь скопируй папку ZVS в свою и меняй всё что хочешь... и есстественно нужно туда скопировать zvslib, а дальше я уже объяснил что происходит.


RE: ERA II - Berserker - 12.03.2012 21:07

В папке zvs этой библиотеки нет и она там не нужна.


RE: ERA II - totkotoriy - 12.03.2012 21:14

(12.03.2012 21:07)Berserker Wrote:  В папке zvs этой библиотеки нет и она там не нужна.
Всё, понял, это я значит ошибся...


RE: ERA II - totkotoriy - 12.03.2012 22:00

Ешё хотел спросить что значит?: Все диалоги ВоГ читают этот архив напрямую, игнорируя другие моды. Единственный, не рекомендуемый способ, как исправить такое поведение - это импортировать новые диалоговые данные в hmm35wog.pac. (не рекомендуемый кстати пишется слитно 118)
И зачем поменяли нумерацию скриптов?


RE: ERA II - Berserker - 12.03.2012 22:05

Это значит, что такие команды как IF:G, экран командира, диалог сброса артефактов на землю, читают картинки прямо из указанного лода. Остальная игра подчиняется универсальной загрузки ресурсов, то есть понимает моды.

Так что если важно, то придётся-таки кое-что в hmm35wog.pac прямо импортировать, например, дефы командиров (иначе в экране командира будет старая картинка, а в битве новая)

Quote:И зачем поменяли нумерацию скриптов?
Скрипты больше не имеют нумерации. Они имеют имена и приоритеты загрузки (числа перед именами, опционально).


RE: ERA II - totkotoriy - 12.03.2012 22:23

(12.03.2012 22:05)Berserker Wrote:  иначе в экране командира будет старая картинка, а в битве новая
Так в экране командира вроде из папки zvs gif анимация?
Quote:Скрипты больше не имеют нумерации. Они имеют имена и приоритеты загрузки (числа перед именами, опционально).
Вот вот я про это и хотел в принципе узнать, а зачем скриптам нужен приоретет?


RE: ERA II - Berserker - 12.03.2012 22:37

Точно, ты прав, но картинки артефактов для диалога выброса из пака берутся.

Quote:Вот вот я про это и хотел в принципе узнать, а зачем скриптам нужен приоретет?
Чем выше приоритет, тем раньше будет загружен скрипт, тем раньше его триггеры будут получать управление, тем раньше будут объявлены его функции и переменные, которые будут использоваться следом идущими скриптами.


RE: ERA II - totkotoriy - 12.03.2012 22:43

Всё ясно, спасибо за ответы и за терпение, а то, например, у меня постоянно его не хватает... Можете бить меня, унижать, но я всё-таки сделаю по своему: буду менять ресурсы ВОГа. Мне кажется, что так будет лучше.


RE: ERA II - Berserker - 12.03.2012 22:44

Ладно, делай, подобный инсталлятор легко превратить в мод )


RE: ERA II - totkotoriy - 12.03.2012 22:51

(12.03.2012 22:44)Berserker Wrote:  Ладно, делай, подобный инсталлятор легко превратить в мод )
Хмм... может наоборот? Подобный мод можно легко превратить в инсталятор? )


RE: ERA II - Berserker - 12.03.2012 23:15

А смысл? Моды для Эры 2 не гадят в игру и не выходят за рамки своей папки. Так что старые проекты конвертируются в моды, но не наоборот.


RE: ERA II - totkotoriy - 13.03.2012 16:42

Че то вобще кошмар твориться в редакторе карт, при установке некоторых объектов на землю или просто даже просмотра списка возникают всякие ошибки:
Image: error.jpg

(11.03.2012 12:53)SyDr Wrote:  Что-то в последнее время много багов у меня повылазило. Раньше такого не видно было.
В ВОГе тоже со сказочними драконами тоже не всё в порядке они могут атаковать друг друга находясь у одного героя...


RE: ERA II - Berserker - 13.03.2012 17:38

Quote:Че то вобще кошмар твориться в редакторе карт, при установке некоторых объектов на землю или просто даже просмотра списка возникают всякие ошибки:
Tools\Fix Editor\Fix editor.bat


RE: ERA II - totkotoriy - 13.03.2012 17:52

(13.03.2012 17:38)Berserker Wrote:  
Quote:Че то вобще кошмар твориться в редакторе карт, при установке некоторых объектов на землю или просто даже просмотра списка возникают всякие ошибки:
Tools\Fix Editor\Fix editor.bat
Спасибо, помогло, теперь буду искать какие текстовики вызывают ошибки.


RE: ERA II - totkotoriy - 13.03.2012 18:02

Ещё заметил странную штуку в hmm35wog.pac полно файлов .msg и .msk, но def'ов с такими именами у большинства нету. Может забыли удалить?
И еще не понятно зачем в паках с руссификацией попадаются объекты, которые к руссификации не имеют никакого отношения (например, монстры на карте, звуки существ для боя)... может это потому, что разные сборки брались и смотрелись отличия между русской и анг. версией?
И вобще почему то некоторые кнопки меню из вашей руссификации какие-то корявые, у меня в сборке от буки они нормальные 105...

А прога lodimport звуки и видео тоже может запаковывать? И может ли она запаковывать сразу в .pac и перезаписывает ли она файлы в архиве? Спрашиваю потому что моя прога SimpleLod не перезаписывает файлы в архиве... от этого архив постоянно растет и думаю будут возникать в дальнейшем всяческие глюки.


RE: ERA II - Berserker - 13.03.2012 19:02

Quote:Ещё заметил странную штуку в hmm35wog.pac полно файлов .msg и .msk, но def'ов с такими именами у большинства нету. Может забыли удалить?
Там содержимое ВоГ 3.58. Что было, то и есть.

Quote:И еще не понятно зачем в паках с руссификацией попадаются объекты, которые к руссификации не имеют никакого отношения (например, монстры на карте, звуки существ для боя)... может это потому, что разные сборки брались и смотрелись отличия между русской и анг. версией?
Руссификация делалась на основе RuBeta от SirFour, Глобального русского патча от BlackPhantom и исправленного интерфейса от Qwertyus. Если есть конкретные предложения типа замены файла на файл, то заливайте варианты, посмотрим.
(wikisend.com)

Quote:А прога lodimport звуки и видео тоже может запаковывать?
Только в лоды. Звуки/видео умеет Tools\resman.


RE: ERA II - totkotoriy - 13.03.2012 20:20

(13.03.2012 19:02)Berserker Wrote:  Руссификация делалась на основе RuBeta от SirFour, Глобального русского патча от BlackPhantom и исправленного интерфейса от Qwertyus.
Точно, оказывается это я нарвался на исправленные объекты... А я хотел их уже снести.
Вобщим выбрал я кнопки, которые отличаются, НО что самое интересное даже написание трети кнопок другое. И есть в вашем паке кнопки и скрины всякие, которые сделаны лучше чем у буки 105
Но в архив я засунул все... я думаю сами решите какие заменить, а какие оставить. Кнопки выбора сложности монстров и наличие воды надо точно поменять.


RE: ERA II - Berserker - 13.03.2012 20:25

Спасибо, гляну, хотя лучше бы включил только те, что хочешь заменить.

Бррр, у Буки аляповатый градиент на всех кнопках.

Quote:Кнопки выбора сложности монстров и наличие воды надо точно поменять.
Пожалуй, не соглашусь Sm


RE: ERA II - totkotoriy - 13.03.2012 20:28

(13.03.2012 20:25)Berserker Wrote:  Спасибо, гляну, хотя лучше бы включил только те, что хочешь заменить.
Да вот я говорю что там сложно решить какие выбрать одни вроде чётче, другие глаз не так режут... это надо всё примерять по хорошему конечно.

(13.03.2012 20:25)Berserker Wrote:  Бррр, у Буки аляповатый градиент на всех кнопках.
Quote:Кнопки выбора сложности монстров и наличие воды надо точно поменять.
Пожалуй, не соглашусь Sm
Так они же не отцентрованы


RE: ERA II - Berserker - 13.03.2012 20:46

Зато однородно-читаемые. В общем, на вкус и цвет. Если ты создашь в Mods папку MyRus, а там Data\myrus.pac с нужными дефами, то они перекроют эти самые дефы из русификации.


RE: ERA II - totkotoriy - 13.03.2012 20:49

Ха-ха 128 у буки даже разные по яркости кнопки в некоторых меню, к тому же в кнопке НОРМ. забыли один кадр и теперь она в нормальном положении темная. Вобщим я тоже почти все ваши кнопки оставил, только вот эти буковские сделаю.


RE: ERA II - ILYA1980 - 13.03.2012 20:51

Berserker, а New_objects_ver_1_09 допустим, можно как-то установить?


RE: ERA II - Berserker - 13.03.2012 20:56

ILYA1980, распакуйте архив 1.09, wog-архивы в нём, если нужно. Соберите в одну папку все файлы, далее Tools\MMArchive - создайте lod и киньте туда файлы, переименуйте lod в pac и бросьте его в Mods\Ваше название мода\Data.


RE: ERA II - ILYA1980 - 13.03.2012 22:01

Berserker, спасибо, получилось. Но возник еще вопрос - при включенных объектах редактор не генерирует случайную карту, выдается ошибка (я не говорю, конечно, о том, что эти объекты должны быть на карте), что-то еще установить наверно нужо? С New_objects патч еще прилагается, наверное его?


RE: ERA II - Berserker - 13.03.2012 22:32

ILYA1980, а вы Tools\Fix Editor\Fix editor.bat запускали?


RE: ERA II - ILYA1980 - 13.03.2012 22:34

Да запускал, без объектов карты генерируются


RE: ERA II - Berserker - 13.03.2012 22:46

ILYA1980, то есть ошибка всё равно присутствует?
Если да, попробуйте залить ваш pac, гляну.


RE: ERA II - ILYA1980 - 13.03.2012 23:03

Вот залил http://rghost.ru/37007718


RE: ERA II - totkotoriy - 14.03.2012 01:21

Насчет плагина buttons.dll, а что нужно написать вместо hero в .btn если нужен экран встречи героев?


RE: ERA II - Zenofex - 14.03.2012 11:32

А я попробывал установить последний мод The Empire of the World от Валерия, и при запуске эры ошибку выдало. Удалил мод, эра запустилась. На прошлой бете все нормально работало.


RE: ERA II - Berserker - 14.03.2012 17:51

totkotoriy, heroes
Zenofex, Валерий ещё не выпустил обновление.


RE: ERA II - Berserker - 14.03.2012 18:30

ILYA1980, а зачем вам этот патч? В общем вылетает из-за zeobjcts.txt. Либо он кривой, либо кривой он. Если удалить - карта генерируется, но новые объекты вы в редакторе не поставите.


RE: ERA II - totkotoriy - 14.03.2012 20:11

При удалении из файла secskills.btn кнопок в окне Hero возникает ошибка
Image: goga.jpg
И в битве не работает кнопка Защита. Или это уже здесь говорили?


RE: ERA II - ILYA1980 - 14.03.2012 20:18

Quote:ILYA1980, а зачем вам этот патч? В общем вылетает из-за zeobjcts.txt. Либо он кривой, либо кривой он. Если удалить - карта генерируется, но новые объекты вы в редакторе не поставите.

Ну мало-ли зачем, может карта какая нибудь из-за него не пойдет, или может сам чего-то посоздавать захочу

Quote:Валерий ещё не выпустил обновление.
Berserker, а вы не в курсе, он будет его вообще выпускать?


RE: ERA II - Berserker - 14.03.2012 21:16

totkotoriy, скачай эру по ссылке с heroes35.net (в первом посте). Там обновлено уже.

Quote:Berserker, а вы не в курсе, он будет его вообще выпускать?
Обещал, но сроки туманны.


RE: ERA II - ILYA1980 - 14.03.2012 22:24

Quote:Обещал, но сроки туманны.
, ладно подождем, есть еще времечко....!


RE: ERA II - gamecreator - 14.03.2012 22:35

ой, а эра точно не встанет на вог? а то у меня нет сода


RE: ERA II - Berserker - 15.03.2012 00:13

Да, не на вог.


RE: ERA II - Тень - 15.03.2012 18:21

После установки данного мода на полное русскоязысное собрание он не запускается с ошибкой: «Assert violation in file "D:\Soft\Programming\Delphi\Source\Units\_OLDER_\GameExt.pas" on line 227. Error at address: $375E5CD.»

Чего ему не хватает?


RE: ERA II - Berserker - 15.03.2012 19:06

Скажите, когда был загружен дистрибутив и не ставите ли вы его на ВоГ?


RE: ERA II - Тень - 15.03.2012 19:56

Установка чистая. Т.е. полное удаление перед установкой мода и новая установка. Мод загружен из первого сообщения темы сегодня.


RE: ERA II - Berserker - 15.03.2012 20:15

Вы правильно указали папку с игрой при установке? Эра жалуется на невозможность загрузить angel.dll. Проверьте Игра\Mods\WoG\angel.dll.


RE: ERA II - Тень - 15.03.2012 21:00

Файл на месте. Папка в корне диска. Путь H:\HoMM3. Windows XP SP3.

Может не хватает каких-то библиотек?


RE: ERA II - Sea - 15.03.2012 21:08

При лечении (палатки могут воскрешать) прокаченного выше первого уровня оруженосца он становится первого уровня и умирает. В первой эре вроде же этот глюк WOGа был исправлен?
ERA II ставил на английский SOD.


RE: ERA II - Berserker - 15.03.2012 22:03

Sea, это известный баг скрипта палатки. Он не исправлен авторами.

Quote:Может не хватает каких-то библиотек?
Вряд ли. На всякий случай в панели управления в настройках системы отключите DEP.


RE: ERA II - Bes - 15.03.2012 22:29

(15.03.2012 21:08)Sea Wrote:  При лечении (палатки могут воскрешать) прокаченного выше первого уровня оруженосца он становится первого уровня и умирает. В первой эре вроде же этот глюк WOGа был исправлен?

(15.03.2012 22:03)Berserker Wrote:  Sea, это известный баг скрипта палатки. Он не исправлен авторами.

Berserker, а у нас в ФМ он не исправлен тоже? я не помню вроде ничего такого105


RE: ERA II - Berserker - 15.03.2012 22:31

У нас ты поправил.


RE: ERA II - Bes - 16.03.2012 09:50

Berserker, ты не занимался такой проблемой гэйм-плэя?...

Если "летучие-змеи" атакуют отряд, у которого есть огнен.щит "не родной", и первыми вроде как снимают все заклинания (друж.) с этого отряда, то огненный щит всё равно бьёт "змеек"

имхо, не логично


RE: ERA II - Sav - 16.03.2012 11:20

Это легко поправить, но вообще это достаточно логично. Ведь во время самого удара щит был.


RE: ERA II - Bes - 16.03.2012 11:42

(16.03.2012 11:20)Sav Wrote:  вообще это достаточно логично. Ведь во время самого удара щит был.
хм, пожалуй соглашусь, но подожду ответа самого автора ERA

P.S.: я просто не совсем однозначно такое действие воспринимаю, предполагая для себя, что снятие заклинаний первично, и уже только потом идёт физическое воздействие между отрядами



RE: ERA II - Sea - 16.03.2012 18:49

(15.03.2012 22:03)Berserker Wrote:  Sea, это известный баг скрипта палатки. Он не исправлен авторами.
Да я в курсе. Просто насколько помню, это было исправлено в первой эре, поэтому и удивило, почему во второй этот баг снова "всплыл".


RE: ERA II - Berserker - 16.03.2012 19:12

Да я вообще за воговские скрипты не отвечаю, как бы.


RE: ERA II - etoprostoya - 16.03.2012 20:19

Если бы тут хоть кто-то за что-то воговское отвечал... Играли бы уже в ВоГ 3.99z.


RE: ERA II - totkotoriy - 16.03.2012 20:21

А у вас случайно исходников zvslib.dll под ЭРУ не завалялось нигде? (хотел бы кое что посмотреть, кое что поменять и удалить, особенно проклятия и благословение)

И ещё уже целую вечность хочу кнопки сделать в экране встречи героев... НО! триггер СМ3 срабатывает только при нажатии правой кнопки мыши... что делать? У МОР'a на этот случай был триггер 66666, но экран не обновлялся после срабатывания и я не знал как его обновить.


RE: ERA II - Bes - 17.03.2012 00:46

очень нужное для сетевых игр пожелание:
убрать всплывающие окна об ошибке когда один игрок сменит себе портрет у героя (на несуществующий у второго игрока в системе). При передаче хода др.игроку обязаьелно игра ругнётся что не нашла файл, что очень мешает, хотя портрет героя всё равно ж будет "кривой"

такие запреты на окна ошибок реально в принципе отключить?


RE: ERA II - Berserker - 17.03.2012 01:12

totkotoriy, нужно МоРа попросить привести код для обновления.

Bes, а вызвать функцию смены портрета на стороне нельзя?


RE: ERA II - Bes - 17.03.2012 01:17

(17.03.2012 01:12)Berserker Wrote:  Bes, а вызвать функцию смены портрета на стороне нельзя?
на др.стороне то можно, вот только файла то такого там не будет.

я про случай, когда один игрок, используя ф-цию указания своего файла портрета, сменит герою "лицо"

тут хоть обноаляй, хоть нет, а файл не найдётся и вылезет доставуее диалоговое окно об ошибке ресурсовSorry


RE: ERA II - Berserker - 17.03.2012 01:21

Ну и не страшно. Обычно люди играют по сети с одинаковым набором ресурсов.


RE: ERA II - Тень - 17.03.2012 18:41

(15.03.2012 22:03)Berserker Wrote:  
Quote:Может не хватает каких-то библиотек?
Вряд ли. На всякий случай в панели управления в настройках системы отключите DEP.
Не помогает. Отпишу после переустановки системы, видать проблема в ней (новая мозилла при установке даёт синий экран, видать дела плохи).

Меня ввело в заблуждение сообщение об ошибке. в котором указывался путь к исходникам. Потому казалось что это косяк мода (не доводилось таких ошибок видать).


RE: ERA II - Berserker - 17.03.2012 18:46

Это косяк системы. В моде идёт чёткий вызов "ЗагрузитьБиблиотеку(Angel.dll)", а она не загружается.


RE: ERA II - gamecreator - 18.03.2012 14:21

несмотря на заявленную несовместимость с вогом:
1) эра нормально устанавливается и работает если удалить Data\s перед установкой на вог
2) эра не работает, если из папки модов удалить вог (проверено на чистом соде)


RE: ERA II - Berserker - 18.03.2012 15:52

Quote:2) эра не работает, если из папки модов удалить вог (проверено на чистом соде)
Естественно. ВоГ отделён, но является необходимой частью, в силу завязанности на его ресурсы всего кода.


RE: ERA II - gamecreator - 18.03.2012 17:13

тогда стоит указать это в описании


RE: ERA II - Berserker - 18.03.2012 17:37

Era - is a technical extension for «Heroes of Might and Magic: In the Wake of Gods» 3.5.


RE: ERA II - gamecreator - 18.03.2012 18:05

нет, я имел ввиду в первом посте темы


RE: ERA II - Berserker - 18.03.2012 18:12

Нужно менять первое сообщение темы на всех форумах тогда, создавать новое описание на основе 1.9 и нового в 2.0. У меня нет службы маркетинга Sm


RE: ERA II - Berserker - 18.03.2012 18:18

THE EMPIRE OF THE WORLD IV FOR ERA II


RE: ERA II - IlyaSuper - 19.03.2012 14:13

При заходе обмена героев выходит ошибка
В yona- моде не работают подсказки в журнале боя (т. е. всё время показывает (0,0)).


RE: ERA II - Berserker - 19.03.2012 17:27

IlyaSuper, загрузите установщик с первой страницы темы. У вас чуть древнее версия.


RE: ERA II - Anoobis - 20.03.2012 15:33

Внутри этого архива - сэйв, лог Вога с описанием вылета при клике правой кнопкой по магическому колодцу (кстати, название было на английском -
Fishing Well) и настройки ВоГ - скриптов.


RE: ERA II - IlyaSuper - 20.03.2012 16:26

Berserker,
Спасибо, помогло, а подсказки всё равно не работают (


RE: ERA II - Berserker - 20.03.2012 16:31

Залейте сейв, гляну.


RE: ERA II - Berserker - 20.03.2012 18:16

Anoobis, спасибо за отчёт, постараюсь разобраться.


RE: ERA II - Anoobis - 20.03.2012 18:35

Извиняюсь, забыл ещё об кое-чём:
В новых сундуках, где предлагались на выбор ресурсы ИЛИ первичный навык, теперь нет возможности сделать выбор. Это фича или баг?


RE: ERA II - Berserker - 20.03.2012 19:12

Quote:Внутри этого архива - сэйв, лог Вога с описанием вылета при клике правой кнопкой по магическому колодцу (кстати, название было на английском -
   Fishing Well) и настройки ВоГ - скриптов.
На своём компьютере вылет не подтверждаю.

Quote:Это фича или баг?
По идее быть так не должно.


RE: ERA II - SyDr - 20.03.2012 19:43

Это фича. Теперь даётся и то, и другое. Исходя из того, что подсказка тоже изменена.
Тоже самое и для сундуков, предлагающих навыки. Теперь навык учится на следующий день, а не через неделю.


RE: ERA II - Berserker - 20.03.2012 19:45

Это изменения по части JimV, насколько я помню. Есть английское описание правок в Data\s\Info.


RE: ERA II - Anoobis - 21.03.2012 16:29

Quote:Есть английское описание правок в Data\s\Info.
Там это изменение не указано, как не странно.
Выкопал ещё один странный баг:
После удачной защиты города мои Энерго - элементали внезапно превратились в палатки первой помощи (в бою они стояли рядом с палаткой) (да и палатка вела себя странно - ничего не накладывала (т.е. Исцеление), а настоящий ход палатки был как бы на ходе элементалей.)
(Я включал скрипт Усиленные боевые машины 1, в комбинации с 2-мя к палатке и Искусство Войны).
Сэйв пока выслать не могу.
Также - если у монстра свойство Одного вызова и есть Тактика, то вызов будет после расстановки по Тактике (т.е. в 1-м раунде, а не во 2-м).


RE: ERA II - Berserker - 21.03.2012 16:59

(21.03.2012 16:29)Anoobis Wrote:  После удачной защиты города мои Энерго - элементали внезапно превратились в палатки первой помощи
Вот такой баг ещё с 3.58 тянется за боевыми машинами 1. Сам встречал.


RE: ERA II - Berserker - 21.03.2012 21:04

Как вы думаете, если скрипты не будут храниться в сохранёнках, будет лучше или хуже?


RE: ERA II - Sav - 21.03.2012 21:23

Думаю, в целом хуже, т. к. могут возникнуть проблемы, когда разные наборы скриптов будут использовать одни и те же переменные и сейвы, в которых эти переменные хранятся, начнут вести себя совершенно неадекватно в не своих наборах. Скрипты всё же чесчур динамичны, чтобы хранить данные без кода, их использующего. Лучше же всего, думаю, разделить на 2 части: те, что хранят в сейвах какие-то свои данные, сохранять, а остальные - нет.


RE: ERA II - gamecreator - 21.03.2012 21:36

если скрипты не будут в сейвах, то нельзя будет свободно пересылать сейвы кому угодно


RE: ERA II - Berserker - 21.03.2012 22:01

Хотелось сделать компиляцию в ЕРМ на лету из более высокоуровневого представления, но с индексами проблема при подгрузке обновлённых скриптов. Если раньше переменные шли: А, Б - и получали индексы v1, v2, то A, С, Б дадут v1, v2, v3, а значит вся логика будет испорчена. Можно было бы хранить таблицу выделений индексов в сохранении, но это снова рост к мегабайтному (и даже больше) сохранению самих скриптов.


RE: ERA II - Berserker - 23.03.2012 23:42

Большая просьба игрокам. На HeroesCommunity один добрый человек объединил обновление вог-скриптов с текущими скриптами Эры. Это все официальные исправления/нововведения + работы rennoy/JimV. Просьба протестировать в режиме с большим числом включённых опций.

Скачать мод


RE: ERA II - Anoobis - 24.03.2012 16:04

Quote:Большая просьба игрокам. На HeroesCommunity один добрый человек объединил обновление вог-скриптов с текущими скриптами Эры. Это все официальные исправления/нововведения + работы rennoy/JimV. Просьба протестировать в режиме с большим числом включённых опций.
В этом моде есть скрипты из script_update, а в нём полно багов - хотя бы такие:
1.Спецы по существам дают +430 к атаке и + 431 к защите (к примеру, Ивор - эльфам).
2.После улучшения артефакта статы героя становятся сильно завышенными...
3.Рандомные вылеты.


RE: ERA II - ILYA1980 - 24.03.2012 16:36

А, я, спьяну, вообще чего-то не то скачал...


RE: ERA II - Berserker - 24.03.2012 16:43

Anoobis, это проверено? Поскольку речь шла о правленных вариантах.


RE: ERA II - Anoobis - 24.03.2012 17:57

Quote:Поскольку речь шла о правленных вариантах.
Ради чистоты эксперимента удалил Героев и установил их заново, без всяких дополнительных модов (ну, имеется в виду, что были установлены Эра 2, её русификация и этот мод с исправлениями скриптов) (а при первом тесте в папке Data была русификация от Qwertyus'a).
Количество случайных вылетов уменьшилось.
Баг со специализациями подтвердился.
А вот второй... не знаю.
Лучше подождать дальнейших отчётов.


RE: ERA II - Berserker - 24.03.2012 18:25

Quote:Количество случайных вылетов уменьшилось.
По сравнению с оригинальными скриптами или с оригинальным обновлением для скриптов?


RE: ERA II - SyDr - 24.03.2012 19:27

Berserker, добрый вечер.
Нельзя ли к dismiss last stack и transfer last stack добавить combine last stack?
Плюс, после каждого обновления в папке появляется по две версии некоторых файлов (.bin и .bin.off).
Но вообще, можно сделать что-нибудь для быстрого включения/выключения плагинов:
Image: 0_84dc1_9e7ffb67_orig


RE: ERA II - Berserker - 24.03.2012 20:52

Добрый вечер.
Quote:Нельзя ли к dismiss last stack и transfer last stack добавить combine last stack?
Я пока разработкой новых заплаток не занимаюсь.

Quote:Плюс, после каждого обновления в папке появляется по две версии некоторых файлов (.bin и .bin.off).
После каких обновлений?

Quote:Но вообще, можно сделать что-нибудь для быстрого включения/выключения плагинов:
На это и был расчёт при проектировании. Только сперва нужно, чтобы кто-то написал )


RE: ERA II - SyDr - 24.03.2012 22:04

Quote:После каких обновлений?
Тех, которые затрагивали мод "WoG". После установки, у меня, например, получалось:
dismiss last stack.bin
dismiss last stack.bin.off
transfer last stack.bin
transfer last stack.off
и т.п.

Quote:На это и был расчёт при проектировании. Только сперва нужно, чтобы кто-то написал )
PluginsContol.7z
Моя кривая версия 148
1) Кидать в HoMM3\Mods\WoG
2) PluginsContol.au3 не нужен. Это исходник.
3) Интерфейс как на картинке выше. Файлы переименовываются сразу после установки/снятия галочки.


RE: ERA II - Berserker - 25.03.2012 00:17

Quote:Тех, которые затрагивали мод "WoG"
Я ни в одной версии не менял.

AutoIt 3? Неплохой вариант.


RE: ERA II - totkotoriy - 25.03.2012 00:52

Заметил такую фичу-глюк: при взятии героем какого либо камня для командира повышается только его первичные навыки, а основные навыки нет, и при взятии опала магии не дается дополнительный навык, в ВОГе всё это было. Это фича или баг? Можно как-то назад это вернуть?


RE: ERA II - gamecreator - 25.03.2012 00:59

звучит как баг. камни командиров повышают только характеристики командиров.


RE: ERA II - Sav - 25.03.2012 01:04

totkotoriy Wrote:Заметил такую фичу-глюк: при взятии героем какого либо камня для командира повышается только его первичные навыки, а основные навыки нет, и при взятии опала магии не дается дополнительный навык, в ВОГе всё это было. Это фича или баг? Можно как-то назад это вернуть?
Если я правильно тебя понял, то тут дело в глючной опции "Улучшенные командиры" (или как-то похоже называется). Без неё камни не повышают вторичные навыки.


RE: ERA II - totkotoriy - 25.03.2012 01:09

(25.03.2012 01:04)Sav Wrote:  дело в глючной опции "Улучшенные командиры" (или как-то похоже называется). Без неё камни не повышают вторичные навыки.
Всё то ты знаешь 132. Спасибо! А я тут голову ломаю сижу...


RE: ERA II - SyDr - 25.03.2012 12:37

Quote:Я ни в одной версии не менял.
Мммм... Ну значит я что-то не так делал.

Quote:AutoIt 3? Неплохой вариант.
Ну да. Скорость выполнения здесь вообще некритична, а размер на фоне самой Эры просто мелочь.

Кстати, installmod.exe просто выставлят каталогу дату изменения текущее время? То есть приоритеты просто по дате? Чем новее, тем приоритетнее?


Вообще, можно написать что-нибудь простое для управления внешними аспектами игры: контроль плагинов, изменение настроек самой игры, изменение порядка загрузки модов и пр. Только какие функции нужны? И нужно ли это кому вообще?


RE: ERA II - gamecreator - 25.03.2012 12:42

(25.03.2012 12:37)SyDr Wrote:  Кстати, installmod.exe просто выставлят каталогу дату изменения текущее время? То есть приоритеты просто по дате? Чем новее, тем приоритетнее?
ну да, это даже в первом сообщении темы написано


RE: ERA II - Berserker - 25.03.2012 14:26

SyDr, работает отлично, только хотелось бы:
1) Чтобы программа работала из Tools\Plugin Manager
2) Чтобы меню верхнего уровня было списком модов, из которых бы выбирался нужный, а уже в нём список модулей/заплаток. Желательно тогда либо самый первый элемент в виде ".." либо кнопку вверху для возврата в родительский каталог (список модов).

Quote:изменение порядка загрузки модов
Штука полезная, но придётся немного тебе покодить ради этого. Сортировка с учётом приоритетов и дат на au3 может быть чуть менее тривиальной.

Anoobis, majaczek с HC говорит, что сообщение о защите 413 - скорее всего ложная тревога. Вы не могли бы залить сохранение (wikisend.com)?


RE: ERA II - SyDr - 25.03.2012 18:01

SD_PM.7z (yandex) или SD_PM.7z (wikisend)

Image: 0_84e6d_8e6607a1_origImage: 0_84e6e_ab7087cd_orig

По умолчанию грузится Вог. Скрипт может находиться в Tools\<Любое имя каталога>

Ах да, и ещё, переодически в файл ZVSLib1.dll_Errors.log складывается стрчока такого типа:
:::>>> Sun Mar 25 08:47:28 2012 2004.9.23.810 <DLG7.cpp; InvokeDialogue07; line 132> Window width = 809, maximum value = 800.
Это нормально?


RE: ERA II - Berserker - 25.03.2012 21:07

У вас XD?


RE: ERA II - SyDr - 25.03.2012 21:24

XD? Это что такое?

У меня оригинальный Complete + Era II + обновлённые скрипты (но и без них так было). Но игра от этого не вылетает. Так что не могу знать от чего так.


RE: ERA II - Berserker - 25.03.2012 21:44

HD имелось в виду, то есть мод на высокое разрешение.
В таком случае не страшно, что ругается воговская библиотека. Может быть перепроверю. Предположительно, в коде центрирования дело.


RE: ERA II - Bes - 25.03.2012 22:13

Berserker, в русс.версии ERAII описание скрипта "быстрое сохранение" в закладке Собственные скрипты не руссифицировано


RE: ERA II - Berserker - 25.03.2012 22:30

Спасибо. Исправлю.


RE: ERA II - Anoobis - 26.03.2012 09:19

http://dl.dropbox.com/u/65494020/Spec%20Save.zip
Вот сейв. Кстати, из поста majaczek'a стало понятно, что дело в других модах или скриптах, только у меня их нет.
Сборка такая: Complete, на нём Era 2, её русификация, а затем уже обновление скриптов.


RE: ERA II - SyDr - 26.03.2012 15:24

При поптыке сгенерить случайную карту:
SD_Log.zip

Вылет не повторился. Карта не создалась (несколько первых байтов только записалось).

Ну и ещё:
1) Умершие осадные машины в отчёте о битве отображаются как копейщик в перечёркнутом красном кружке.
2) Скрипт разведки, который даёт шанс получить случайное событие на каждом шагу срабатывает значительно! реже (раз в несколько игровых недель).
3) Скрипт новые артефакты не работает вообще. То есть на карту артефакты командиров и прочие не помещаются.
4) Кнопка скупить всех существ отображает в цене золото и только один ресурс (хотя текстовая подсказка правильная).


RE: ERA II - AVS - 26.03.2012 16:32

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


RE: ERA II - Berserker - 26.03.2012 17:06

Большое спасибо за сообщения. Пересылаю автору сборки.

Quote:Приоритет всетаки должен быть по топологической сортировке - гораздо удобнее
А можно чуть поподробнее?

Quote:Даты каталогов могут поменятся, если чтонибудь в них править, вылезают очень пакостные глюки изза этого.
Меняются даты изменения, но не создания.


RE: ERA II - SyDr - 27.03.2012 10:23

Подробнее про 4:
Какой-то скрипт (если найду какой, скажу) добавляет для улучшенных существ 6 уровня к цене также и какой-нибудь ресурс (не знаю, во всех ли городах).
http://img-fotki.yandex.ru/get/6204/38252203.0/0_853b4_af0c3a68_orig (кристаллы для бегемотов, драг. камни для ул. циклопов)

И ещё Sm:
http://img-fotki.yandex.ru/get/6204/38252203.0/0_853b5_91193355_orig (всегда так отображалось на этой же строке? Нельзя сделать, как для всех остальных вариантов?)
При атаке... эм... Creature Bank при наличии командира лидера огров (Крепость) в бою также участтвуют добавленные им баллисты (по идее боевых машин там быть вообще не должно).


RE: ERA II - Algor - 27.03.2012 11:20

(27.03.2012 10:23)SyDr Wrote:  Какой-то скрипт (если найду какой, скажу) добавляет для улучшенных существ 6 уровня к цене также и какой-нибудь ресурс (не знаю, во всех ли городах).
Во всех. Script41 Battle Extender (опция 41)

(27.03.2012 10:23)SyDr Wrote:  При атаке... эм... Creature Bank
консервы 118

(27.03.2012 10:23)SyDr Wrote:  при наличии командира лидера огров (Крепость) в бою также участтвуют добавленные им баллисты (по идее боевых машин там быть вообще не должно).
Должны быть. Командиры цитадели/крепости ПРИЗЫВАЮТ машины на поле боя. Иначе получится, что они в отличие от других командиров не имеют бонуса в некоторых боях (лидер огров также призывает баллисту и при осаде замка в роли защитника, хотя штатно баллиста не появляется в таких боях)


RE: ERA II - Sav - 27.03.2012 15:11

Algor Wrote:Должны быть. Командиры цитадели/крепости ПРИЗЫВАЮТ машины на поле боя. Иначе получится, что они в отличие от других командиров не имеют бонуса в некоторых боях (лидер огров также призывает баллисту и при осаде замка в роли защитника, хотя штатно баллиста не появляется в таких боях)
Я бы так не сказал, по мне - это явная недоработка. Если хотя бы исходить из бытовой логики - раз машина не участвует в бою, значит, видимо, это по каким-то причинам невозможно (ограниченное пространство, например), тогда и других там быть не может.
Впрочем, по-моему, сама идея увеличения количества боевых машин в стеке уже не слишком располагает к нормальной реализации.

А вообще, эта проблема не относится к скриптам, это заложено уже в самом exe.


RE: ERA II - Sea - 27.03.2012 16:12

Полное собрание + EraII (rus)
Случайная карта XXL XL
Падает при загрузке сохранёнок:
WOGCRASHLOG.TXT (Click to View)


(25.03.2012 21:24)SyDr Wrote:  ... + обновлённые скрипты
Что имеется в виду?


RE: ERA II - Berserker - 27.03.2012 17:37

Sea, XXL, не XL?


RE: ERA II - Sea - 27.03.2012 17:56

А, нет, прошу прощения, очепятался. XL конечно.
И еще обратил внимание на небольшой баг (видимо мода "Прокрутка вторичных навыков"). Если в настройках выбрано "Искусство войны", то если зайти в игре в окне героя, то в навыках под это "искусство войны" заняты три слота. При правом клике на один из них они сворачиваются в один слот, а два других попадают в скрытые навыки, которые при клике по звездочке показываются (так было в оригинальном ВОГе и в первой Эре). Если выйти из окна героя и снова зайти, то снова заняты три слота.


RE: ERA II - Berserker - 27.03.2012 18:01

Сохранёнки были созданы уже под этой версией?
Быть не должно.


RE: ERA II - SyDr - 27.03.2012 18:25

(27.03.2012 11:20)Algor Wrote:  Во всех. Script41 Battle Extender (опция 41)
Ну тогда наверное стоит добавить это в описание функции. Хотя какое отношение изменение стоимости имеет к этой функции, я не особо понимаю.

(27.03.2012 10:23)SyDr Wrote:  Должны быть. Командиры цитадели/крепости ПРИЗЫВАЮТ машины на поле боя. Иначе получится, что они в отличие от других командиров не имеют бонуса в некоторых боях (лидер огров также призывает баллисту и при осаде замка в роли защитника, хотя штатно баллиста не появляется в таких боях)
Ну у Инферно действует только против нейтралов, у Сопряжения только против армий с героями, а у Некромантов вообще просто флаг Undead и всё.

(27.03.2012 16:12)Sea Wrote:  Что имеется в виду?
http://wforum.heroes35.net/showthread.php?tid=3155&pid=70553#pid70553

И опять "фигня", на этот раз скрипт нейтральный город. Включаем, заходим в игру. Выходим в меню. Снова создаём новую игру. Теперь при выборе типа города "правильно" показывает, какие в нём будут существа, однако теперь внешние жилища, предлагающие феечек, так и продолжают их предлагать, хотя должны предлагать Хоббитов (в первой игре всё нормально).


RE: ERA II - Berserker - 27.03.2012 18:28

Sea, включено прохождение сквозь объекты ландшафта?


RE: ERA II - Sea - 27.03.2012 18:54

(27.03.2012 18:01)Berserker Wrote:  Сохранёнки были созданы уже под этой версией?
Быть не должно.
И, тем не менее, именно под этой. Вогкрашлог приложил выше.
Вот сами проблемные сохраненки (автосейв и сейв после перехода хода)
Вот ВОГ настройки.

(27.03.2012 18:28)Berserker Wrote:  Sea, включено прохождение сквозь объекты ландшафта?
Нет.

Включены гарнизоны. Может быть в них дело?


RE: ERA II - gamecreator - 27.03.2012 20:09

(27.03.2012 17:56)Sea Wrote:  И еще обратил внимание на небольшой баг (видимо мода "Прокрутка вторичных навыков").
отображение скрытых навыков включено? с модом прокрутки оно бесполезно.


RE: ERA II - Berserker - 27.03.2012 20:15

Quote:Включены гарнизоны. Может быть в них дело?
Да.


RE: ERA II - Sea - 27.03.2012 20:27

(27.03.2012 20:09)gamecreator Wrote:  
(27.03.2012 17:56)Sea Wrote:  И еще обратил внимание на небольшой баг (видимо мода "Прокрутка вторичных навыков").
отображение скрытых навыков включено? с модом прокрутки оно бесполезно.
Ага, включено. Выключил. Создал карту.
Также при открытии окна героя я вижу три навыка (которые составляют "Искусство войны". Также они сворачивается в один слот при правом клике на один из них (только теперь, естественно, я не вижу два оставшихся в скрытых).
Ну и также при повторном открытии окна героя я снова вижу эти три навыка вместо одного.

(27.03.2012 20:15)Berserker Wrote:  
Quote:Включены гарнизоны. Может быть в них дело?
Да.
Т.е. с гарнизонами не поиграть?


RE: ERA II - gamecreator - 27.03.2012 20:35

для исправления бага с искусством войны нужно удалить следующие блоки кода из script64.erm (в районе 830-890 строк в оригинальном скрипте):



RE: ERA II - Berserker - 27.03.2012 20:49

Quote:Т.е. с гарнизонами не поиграть?
Их неверное размещение портит память, то есть сохранёнку на физическом уровне. После этого медицина уже бессильна. Вы не пробовали указанный чуть ранее английский мод с исправленными скриптами? Возможно, с гарнизонами там всё хорошо.


RE: ERA II - gamecreator - 27.03.2012 21:02

Berserker, в bat-файлах для BinMagic было бы неплохо делать cd /d "%~dp0"


RE: ERA II - Berserker - 27.03.2012 22:04

Чтобы результат был в папке файла, а не программы?


RE: ERA II - gamecreator - 27.03.2012 22:28

так файл все равно заточен на использование в папке программы.


RE: ERA II - SyDr - 28.03.2012 18:51

Словил вылет. После битвы, инициированной разведкой (герой проиграл):
sdlog.7z

Проходимость объектов ландшафта выключена.


RE: ERA II - Berserker - 28.03.2012 19:40

SyDr, тут только сейв поможет. Логи мало чего дают, ведь теперь адреса указывают на код игры.


RE: ERA II - SyDr - 28.03.2012 19:58

Ок: 1_Teal_End.GM1 (на следующем ходу).

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

И ещё, что там с приоритетами загрузки? Как было, так и остаётся? Я так понимаю, человек имел в виду, что можно для мода указывать его зависимости (например, Мод X требует, чтобы были установлены WoG и Yona).


RE: ERA II - Berserker - 28.03.2012 20:18

Выстраивать приоритет по наличию импорта других модов тоже не надёжно. Есть много модов, частично перекрывающих друг друга. И здесь должна решать или дата установки, или спец. программа-менеджер, чтобы можно было порядок в графическом меню менять. А, возможно, нужны и оба механизма. Но в данный момент я эту идею дальше не разрабатываю, разве что к следующей мажорной версии коренным образом переработать.


RE: ERA II - AVS - 29.03.2012 01:50

(26.03.2012 17:06)Berserker Wrote:  
Quote:Приоритет всетаки должен быть по топологической сортировке - гораздо удобнее
А можно чуть поподробнее?

Если мод А зависит от мода Б то Б загружается раньше, а у А, соответствено, выше приоритет по ресурсам.


RE: ERA II - Berserker - 29.03.2012 17:16

А если зависимости устарели или не указаны? Только как дополнительный механизм подходит. При этом известных зависимостей раз, два и обчёлся (wog?).


RE: ERA II - AVS - 29.03.2012 19:35

(29.03.2012 17:16)Berserker Wrote:  А если зависимости устарели или не указаны? Только как дополнительный механизм подходит. При этом известных зависимостей раз, два и обчёлся (wog?).
Да, мой вариант тоже далек от идеала). Пока на эре не выпущено _много_ модов лучше даже просто конфиг, где можно явно отключать моды и указывать их приоритет.


RE: ERA II - SyDr - 29.03.2012 22:33

Как насчёт чего-нибудь в таком духе? (Click to View)
Ну и плюс, конечно, добавить возможность отключения модов.


RE: ERA II - Berserker - 30.03.2012 00:24

В правильном ключе мыслишь Sm Думаю, стоит тогда утилиту включить в следующий выпуск.


RE: ERA II - SyDr - 30.03.2012 11:20

Опять сообщение об ошибке. На этот раз без вылета. В начале следующего хода.
sdlog.7z

Ну и плюс:
1) Внешнее жилище Халфлингов не может быть улучшено при включённом Нейтральном городе.
2) Недели монстров не добавляют прирост для существ Нейтрального города. Вру. Просто не показывается, что прирост увеличен. В самом городе видно, что увеличивается.

А также, нельзя новое поведение для мифрила (CTRL+click вместо Right click) распространить также и на артефакты, приносящие монстров и разведку? Да и на сборные артефакты тоже. Было бы намного удобнее.

Ага. Вот ещё одна неприятная вещь. Правда тут сам дурак. Нечего героев без армии оставлять:
Video_2012-03-30_100029.wmv


RE: ERA II - igrik - 30.03.2012 14:46

Berserker, где достать хоть какой-то мануал по "Используйте блочные условия !!if-!!el-!!en. Они заметно быстрее, нагляднее и идеологически вернее, чем дублирование условий в каждой команде"


RE: ERA II - Berserker - 30.03.2012 14:56

Quote:Ага. Вот ещё одна неприятная вещь. Правда тут сам дурак. Нечего героев без армии оставлять:
Video_2012-03-30_100029.wmv
Известная проблема. Пока не решена. Спасибо, остальное перенаправил разработчику.


RE: ERA II - Bes - 30.03.2012 17:42

(30.03.2012 14:46)igrik Wrote:  Berserker, где достать хоть какой-то мануал по "Используйте блочные условия !!if-!!el-!!en. Они заметно быстрее, нагляднее и идеологически вернее, чем дублирование условий в каждой команде"
http://narod.ru/disk/21848020000/ERM-Help%202.81d%20Lite.chm.html

или тут: http://wogarchive.ru/file.php?id=83

там в справочнике всё про это


RE: ERA II - totkotoriy - 30.03.2012 17:56

Я вам тут пирожков принёс:
В архиве много исправленных ВОГ объектов и анимированные растения не вызывающие отвращения. Настоятельно рекомендую включить всё это в вашу сборку.
objects


RE: ERA II - Berserker - 31.03.2012 02:15

totkotoriy, большое спасибо, принимается. Осталось ещё дождаться работы Сидра по управляющему модами.


RE: ERA II - Bes - 31.03.2012 12:31

Berserker, установил для ознакомления the_empire_of_the_world_4_978, на ERAII от 12,03, но при запуске карты был вылет
http://zalil.ru/32987017

что было причиной?


RE: ERA II - totkotoriy - 31.03.2012 13:57

А где нубудь есть патч 32bit для ЭРЫ? Просто после старого патча ЕРУ выбивает.


RE: ERA II - gamecreator - 31.03.2012 14:54

а хайрез разве не работает с эрой?


RE: ERA II - Berserker - 31.03.2012 14:59

Bes, https://www.box.com/s/3b9913b998098bc30a13

totkotoriy, ХД нужно юзать или 16 битный режим рабочего стола. А насчёт патча - должен работать при наличии zdraw.dll.


RE: ERA II - Bes - 31.03.2012 16:44

(31.03.2012 14:59)Berserker Wrote:  Bes, https://www.box.com/s/3b9913b998098bc30a13
Это такой же архив, что указан на df2 - только имя разное
Причина вылета при старте карты так и не выяснилась Bad


RE: ERA II - SyDr - 31.03.2012 18:10

Ох. Картинка выше была просто примером, а не реально работающим проектом Bad. Сижу, пишу код, столкнулся с каким-то багом интерпретатора. Так что сижу и пишу дальше.
Кстати, куда там отправляются отключённые моды?


RE: ERA II - Berserker - 31.03.2012 18:33

Предлагаю в Mods\_Off_\.
Bes, я дал ссылку под последнюю версию Эры.


RE: ERA II - Bes - 31.03.2012 19:13

Berserker, я понимаю. Но вот у меня и стоит последняя офиц.версия ERAII, и мод Валерия я тоже скачал последний официальный - но почему-то "вылет" Bad
(ладно, не страшно, я лишь хотел оценить диалоги)


RE: ERA II - Zenofex - 31.03.2012 20:02

Quote:Но вот у меня и стоит последняя офиц.версия ERAII, и мод Валерия я тоже скачал последний официальный - но почему-то "вылет"
И у меня то же самое. Пришлось прежднюю бету Эры качать, на ней нормально работает.


RE: ERA II - Bes - 31.03.2012 21:29

Zenofex, а пред.версия ERA - это которая?


RE: ERA II - Zenofex - 31.03.2012 21:31

Era II beta 2 build 4
На дф2 ссылка еще пока сохранилась.


RE: ERA II - Berserker - 31.03.2012 22:44

Я написал Валерию. Почему вылетает - известно. Вопрос лишь, почему по ссылке старый архив у него.


RE: ERA II - Valery - 01.04.2012 01:23

Link at df2 was not updated, as no one reported playing it, I just forgot about.

The 2.0 version is here, and works only with ERA 2 FINAL:

MAPSFORHEROES


RE: ERA II - Bes - 01.04.2012 10:56

Менеджер Портретов под ERAII (1Mb)


RE: ERA II - Berserker - 01.04.2012 14:10

Bes, спасибо, но на мой взгляд можно было выбрать неиспользуемый диапазон функций (например, 200ХХХ) и вместо v-переменных использовать SN:W. Таким образом, чтобы была полная совместимость со всем. Ещё в инсталляторе нужно вызывать Tools\installmod.exe [имя мода] после распаковки.


RE: ERA II - Bes - 01.04.2012 15:26

(01.04.2012 14:10)Berserker Wrote:     Ещё в инсталляторе нужно вызывать Tools\installmod.exe [имя мода] после распаковки.
спасибо, я это как-то упустил
Что касается переменных и ф-ций - как ты понял это просто всё взято было из ФМ, потому и такие вот номера. Если ты захочешь включить этот менеджер в сборку ERA, то скажи, я тогда оптимизирую код


RE: ERA II - Berserker - 01.04.2012 15:30

В базовую сборку не могу, чтобы другие моды работали.
Тоткоторый, ты забыл исправить анимированное дерево знаний.


RE: ERA II - SyDr - 01.04.2012 16:14

MM.7z
Image: 0_85e1c_34c979f_orig
Фух. Вроде работает. Есть маленькие косяки (TreeViewItem с Priority отображается даже, если такой приоритет есть только у отключённого мода).

Чем выше отображается мод, тем выше у него приоритет (в _Off_ как попало).

Все кнопки рабочие и не должны приводить ни к вылету программу, ни к появлению непредвиденных последствий.
Кнопки Up и Down меняют местами приоритеты двух модов (т.е. число перед именем мода, если оно есть, и время создания каталогов*).

Кнопки Enable и Disable таскают моды в/из каталог(а) _Off_

Для модов из подветки _Off_ работает только кнопка Enable.

*Возможно, немного неправльное поведение, будьте осторожны.


RE: ERA II - Berserker - 01.04.2012 16:26

SyDr, спасибо, сейчас гляну. Как раз составляю обновление.


RE: ERA II - Berserker - 01.04.2012 16:49

SyDr, ошибочка вышла. Ты смотришь дату изменения папки, а нужно дату создания.


RE: ERA II - SyDr - 01.04.2012 16:57

Странно. Везде в коде установлено, чтобы скрипт работал именно с датой создания. Плюс, проверяю сам, стоит сортировка по дате создания. Всё меняется.


RE: ERA II - Berserker - 01.04.2012 17:10

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

Down сработало, Up - нет.


RE: ERA II - SyDr - 01.04.2012 17:17

На самом верхнем моде Up не сработает.

Так что тогда будет с приоритетами?


RE: ERA II - Berserker - 01.04.2012 17:23

SyDr, Up не работает вообще. Даже на нижнем.
Quote:Так что тогда будет с приоритетами?
Скорее всего, как и предлагали - просто список линейный в текстовом файле (+ AVS упоминал про импорт). installmod.exe обновится, так что моды не заденет. Но это не сейчас. Сейчас у меня в ММ Up не работает на опущенном вниз.

http://www.imagepost.ru/?v=sydr.png


RE: ERA II - SyDr - 01.04.2012 17:41

А. Так у них же время создания совпадает один в один. Можно для каждого по отдельности мода кликнуть Set current time (ну, подождав между кликами по одной секунде). Но вообще, как в этом случае игра грузит моды?


RE: ERA II - Berserker - 01.04.2012 18:01

В неопределённом порядке. Всё, понял. Нужно будет в батнике установщика поставить задержку в 1 секунду между модами. Ну а в виртуальном будущем список выглядит более оптимальным и лёгким для изменения вариантом.


RE: ERA II - Bes - 02.04.2012 00:00

Berserker, а где в ERAII файл script00.erm ??? 105


RE: ERA II - igrik - 02.04.2012 12:15

(30.03.2012 17:42)Bes Wrote:  
(30.03.2012 14:46)igrik Wrote:  Berserker, где достать хоть какой-то мануал по "Используйте блочные условия !!if-!!el-!!en. Они заметно быстрее, нагляднее и идеологически вернее, чем дублирование условий в каждой команде"
http://narod.ru/disk/21848020000/ERM-Help%202.81d%20Lite.chm.html

или тут: http://wogarchive.ru/file.php?id=83

там в справочнике всё про это
Bes, в самом справочнике не могу найти. 105 Тыкни слепого носом...


RE: ERA II - Bes - 02.04.2012 12:31

igrik, в самом вернем меню с кнопками
HT | I/E | IF


RE: ERA II - SyDr - 02.04.2012 18:26

Снова вылет: sdlog.7z
Скриншот (Click to View)



RE: ERA II - Berserker - 02.04.2012 19:14

SyDr, скорее всего в новой Эре его не будет, я уже включил правленный деф катапульты от Валерия.


RE: ERA II - totkotoriy - 06.04.2012 17:00

Привет, протестировал чуть чуть новую ЭРУ по сетке
Думал что баги которые были раньше исправли, ан нет, придется написать:
1. Вылетает на семерке инога, чаще всего у клиента и чаще при загрузке карты
2. Клиенту нельзя выбрать город
3. Иконки городов и героев у клиента часто не обновляются или вообще исчезают
4. Подгрузка паков для игры может производить из непредназначеных для этого мест, например на каталог выше


RE: ERA II - totkotoriy - 06.04.2012 17:11

y

Posts: 167

Продожение... пишу с сотового просто 5. во многих местах сьезжает текст, как будто его переместили интером на несколько строчек, обрывается по середине строк 6. У клиента при вылетевшем сервере не активна кнопка загрузить в меню


RE: ERA II - Berserker - 06.04.2012 17:16

А в воге разве не то же самое? А в ТЕ?


RE: ERA II - totkotoriy - 07.04.2012 00:58

В ВОГе на хр точно нету, за остальное не знаю, может проверю. Ну так или иначе что то из этого планируете исправить?


RE: ERA II - Berserker - 07.04.2012 01:06

Проверим, у нас с Валерием всё было в норме при игре - это раз. Эра не трогает сетевой код - это два.

Готовлю сборку модов под вторую версию, переделываю, правлю. Многое пока что на основе работ от AKUHAK. Вот то, что готово и работает:

Heroes Chronicles
Human Castle
New Interface Mod
NIM Rampart
Original Interface


RE: ERA II - totkotoriy - 07.04.2012 01:59

Значит это всё из за ТЕ, но от этого не веселее Bad


RE: ERA II - Berserker - 07.04.2012 11:59

Надеюсь, что проблема местная, а не общая.


RE: ERA II - Bes - 08.04.2012 18:47

Berserker, как теперь использовать прогу DEE, если нумерация скриптов в ERAII стала "кверхногами" Unsure


RE: ERA II - Berserker - 08.04.2012 19:08

А зачем тебе DEE? ) F11/F12 в помощь.


RE: ERA II - Bes - 08.04.2012 19:18

(08.04.2012 19:08)Berserker Wrote:  А зачем тебе DEE? ) F11/F12 в помощь.
чтобы "выгружать" определённые скрипты из сохранения "на лету" Sorry


RE: ERA II - Berserker - 08.04.2012 21:04

Есть в Эре сохранение имён, вопрос лишь во внешних инструментах Bad


RE: ERA II - MATRASUS - 09.04.2012 14:12

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



RE: ERA II - Berserker - 09.04.2012 18:55

MATRASUS, в первом сообщении темы есть ссылка на полный русификатор.


RE: ERA II - MATRASUS - 09.04.2012 23:15

Спасибо. Был не внимателен.


RE: ERA II - Algor - 09.04.2012 23:21

Только я не стал бы называть его полным.


RE: ERA II - Berserker - 10.04.2012 00:30

Там все известные воговские русификации + перевод Эры и Yona. Куда уж полнее.


RE: ERA II - Algor - 10.04.2012 10:47

Хмм... может я что-то не так сделал. Вечером дома перепроверю и отпишусь.


RE: ERA II - Algor - 10.04.2012 23:04

Из первого поста скачал эру (eng) и русификатор. Накатил на чистый SoD. Собсно, вот, что получилось:
Большая картинка (Click to View)
Подозреваю, что выглядит совсем не так, как у автора. Ткните, где я слажал.


RE: ERA II - Berserker - 11.04.2012 00:05

Каким образом "накатили"? Надеюсь, не ручной распаковкой. Разумеется, всё не так, как на снимках.


RE: ERA II - Algor - 11.04.2012 03:31

Нет, не ручной. Все автоматом, батники выполнились.
...
Создается впечатление, что не отработал "installmod WoG Rus".
....
После 4й попытки все снести и обратно распаковать на чистый SoD русификация заработала (действительно, полная!). 4я попытка отличалась тем, что после наката Эры (eng) я запускал h3era.exe и installmod.exe (просто без параметров, проверить что антивирь его не блокирует).
...
В соседнем каталоге с неудавшейся русификацией (скриншоты оттуда) выполнил руками Tools\installmod.exe "WoG Rus". В итоге русификация завелась.
...
Хуже то, что потратив еще полчаса так и не смог повторить багу с неудачной русификацией, которая была на первых 3х попытках, чтобы разобраться, отчего это все же случилось 148


RE: ERA II - Berserker - 11.04.2012 19:14

Quote:Хуже то, что потратив еще полчаса так и не смог повторить багу с неудачной русификацией, которая была на первых 3х попытках, чтобы разобраться, отчего это все же случилось
Действительно странно, SFX-архив гарантированно вызывает installmod.exe, а та изменяет дату создания папки мода на текущую. Я уже установок 40-50 провёл разных модов.


RE: ERA II - totkotoriy - 13.04.2012 08:51

А как всё-таки насчет съезжания текстов в диалогах? Это тоже из за ТЕ?

И что про подгрузку ресурсов из других папок?
Я расскажу поподробнее как получилось:
игра была в каталоге, например, D:\Games\H2\
а подгрузка pac произошла из папки D:\Games\H1\


RE: ERA II - Berserker - 13.04.2012 13:51

totkotoriy, это маловероятно. И диалоги не съезжают. На англ. форуме большая тема рабочих модов и сотни уже использующих Эру игроков. Скорее всего у вас на компьютере творится чёрти-что в установках.


RE: ERA II - apokalipsis - 14.04.2012 10:37

(11.04.2012 19:14)Berserker Wrote:  
Quote:Хуже то, что потратив еще полчаса так и не смог повторить багу с неудачной русификацией, которая была на первых 3х попытках, чтобы разобраться, отчего это все же случилось
Действительно странно, SFX-архив гарантированно вызывает installmod.exe, а та изменяет дату создания папки мода на текущую. Я уже установок 40-50 провёл разных модов.
Берс, у меня при установке на 7, тоже так было несколько раз.

Да и ещё, вчера разговаривали про HD-MOD 3.09 и Эру 2, при установке, не создался h3era.exe_HD.exe. Приходится запускать постоянно HD3Launch.exe, неудобно.


RE: ERA II - totkotoriy - 14.04.2012 11:13

(13.04.2012 13:51)Berserker Wrote:  totkotoriy, это маловероятно. И диалоги не съезжают. На англ. форуме большая тема рабочих модов и сотни уже использующих Эру игроков. Скорее всего у вас на компьютере творится чёрти-что в установках.
редко , конечно, но иногда вот так вот съезжает, во многих местах
Image: 1.jpg
Может это из за того, что я на русский СОД ставил ЭРУ?
Причем это происходит только с текстами из ВОГа.

И подргузка не тех паков произошла даже не на моем компе, так что не знаю, буду дальше тестировать.


RE: ERA II - Sav - 14.04.2012 12:15

У меня такое прекратилось после применения патча исправления шрифтов, который я тут показывал.


RE: ERA II - Berserker - 14.04.2012 12:59

Quote:Берс, у меня при установке на 7, тоже так было несколько раз.
Запускайте тогда Tools\Mods Manager, выбирайте мод и жмите "Set current time".

Sav, я уже записал в todo включение этой заплатки, теперь точно )


RE: ERA II - totkotoriy - 14.04.2012 14:24

Ну вот, а говорите только у меня такое Sm


RE: ERA II - gamecreator - 14.04.2012 14:30

(14.04.2012 10:37)apokalipsis Wrote:  Да и ещё, вчера разговаривали про HD-MOD 3.09 и Эру 2, при установке, не создался h3era.exe_HD.exe. Приходится запускать постоянно HD3Launch.exe, неудобно.
и не создастся больше никогда, потому что это хд 3. в лаунчере есть кнопка "создать ярлык" для этого.


RE: ERA II - SyDr - 14.04.2012 14:36

Berserker, нельзя в моде как-нибудь указать, что не надо грузить карты других модов/находящиеся в папке с игрой. Я имею в виду в первую очередь TEW.

Имеет ли смысл для менеджера модов реализовать поддержку командной строки в духе:
modsman /LoadPreset TEWIV /RunGame /RestoreOnExit


RE: ERA II - Sav - 14.04.2012 15:25

totkotoriy Wrote:Ну вот, а говорите только у меня такое
У меня это бывало очень редко, и это вообще из Сода (Вог использует ехе 3.2, с кривостью в отображении шрифтов (причём, сравнивая с 3.0, эту кривость я не нашёл, а просто обрубил в некоторых местах проверку на отрицательный отступ шрифтов)). Надеюсь, то, что я с тех пор не видел этого бага - не совпадение.


RE: ERA II - totkotoriy - 14.04.2012 16:46

А я почему то не видел этого не в СОДе не в ВОГе, потому так и решил, что дело в ЭРЕ.


RE: ERA II - Berserker - 14.04.2012 17:23

Quote:Berserker, нельзя в моде как-нибудь указать, что не надо грузить карты других модов/находящиеся в папке с игрой. Я имею в виду в первую очередь TEW.
В линейке 2.х нет.

Quote:Имеет ли смысл для менеджера модов реализовать поддержку командной строки в духе:
   modsman /LoadPreset TEWIV /RunGame /RestoreOnExit
Сложность инструмента превысит необходимость временного выключения остальных модов. Вдобавок, на деле активно всегда 3-4 мода.


RE: ERA II - SyDr - 14.04.2012 18:02

Хм... Действительно. Хотя, если бы приоритет модов был в стиле скриптов (только числа вначале + "load only these scripts.txt"), это делалось бы элементарно. (installmod бы тогда выставлял не дату, а максимальный приоритет + 1).

Вылет. В меню продажи артефактов при клике по артефакту. Сейва рядом нет, если нужен, попробую поискать.
HoMM3_log.7z


RE: ERA II - Berserker - 14.04.2012 19:38

Если вдруг отыщется, попробуйте его же без fix artifact merchant.dll.


RE: ERA II - SyDr - 14.04.2012 21:22

Всё равно вылет. И, я немного ошибся: кликать не надо. Достаточно поводить мышкой.

Это правда предыдущая версия (не та, которая на Heroes Community). Сейв: 6_Tan_Quick.GM2


RE: ERA II - Berserker - 15.04.2012 00:15

SyDr, подтверждаю вылет.

Вылет, если один арт в первом слоте. Нужно бараторчу написать.


RE: ERA II - SyDr - 16.04.2012 18:13

Не обзяательно один. Вылетало и в других случаях.

Какие-то баги с логовом воров:
games.7z

5 - уже вылетает.
1 - пока ещё просто глючит (красный флаг там).


RE: ERA II - Berserker - 16.04.2012 19:17

SyDr, если в целом. Ты рекомендуешь вернуться к оригинальным скриптам или полезности превышают проблемы? Потому что мне придётся как минимум откатиться к правкам одного Jim Vogan, а как максимум - вообще.


RE: ERA II - SyDr - 16.04.2012 20:02

Хм... Если подумать... Проблем всё же больше. И печально именно то, что вылазят эти проблемы не сразу, а через какое-то время.

Это можно не читать (Click to View)
В общем, примерно так.


RE: ERA II - Berserker - 16.04.2012 20:34

SyDr, это у тебя SU_Merged тестовые, так? Тогда удали их. С ними решено. Теперь интересны только стабильность правок джимма и rennoy.


RE: ERA II - SyDr - 16.04.2012 20:43

Ага. Ок. Эти правки вроде были весьма стабильны. Наверное. Долгая игра потребует... времени Sm


RE: ERA II - SyDr - 16.04.2012 21:07

Вау. А я везучий Sm:
HoMM3_log.7z
Просто нажать M. Может нужно выбрать биться вручную. Не проверил с быстрой битвой.
Сам герой попался пятого уровня (какие-то баги с тюрьмой? я не в курсе этого). Это не случайный герой, а выбранный сразу.

P. S. Крэшлог лишний. Игра не вылетела.


RE: ERA II - Berserker - 16.04.2012 22:56

Бой сам с собой? Если нет, завтра скачаю.


RE: ERA II - gamecreator - 16.04.2012 23:04

(16.04.2012 20:02)SyDr Wrote:  Но: http://img-fotki.yandex.ru/get/6107/38252203.0/0_872b7_c6e801e2_orig
просто баг прорисовки. это везде встречается.


RE: ERA II - SyDr - 17.04.2012 10:16

Berserker, нет. Это битва со случайным героем (25% который). В быстрой битве ошибка не повторяется. Каждый раз герой противника другой. (Но в сообщении об ошибке тюрьма упиоминается).


RE: ERA II - Sea - 17.04.2012 12:42

Посмотрел на модификаторы морали юнита и там ангелы почему то названы алебардщиками:
   Image: 50aac5df628et.jpg


RE: ERA II - Berserker - 17.04.2012 15:46

Sea, угу, знакомый баг. Кажется, из Сода.


RE: ERA II - apokalipsis - 18.04.2012 12:06

(14.04.2012 14:30)gamecreator Wrote:  
(14.04.2012 10:37)apokalipsis Wrote:  Да и ещё, вчера разговаривали про HD-MOD 3.09 и Эру 2, при установке, не создался h3era.exe_HD.exe. Приходится запускать постоянно HD3Launch.exe, неудобно.
и не создастся больше никогда, потому что это хд 3. в лаунчере есть кнопка "создать ярлык" для этого.
Спасибо.


RE: ERA II - SyDr - 19.04.2012 12:37

(17.04.2012 10:16)SyDr Wrote:  Berserker, нет. Это битва со случайным героем (25% который). В быстрой битве ошибка не повторяется. Каждый раз герой противника другой. (Но в сообщении об ошибке тюрьма упиоминается).

Появляется во всех битвах со случайными героями.
Code:
-----------------------
ERM syntax Error.
    File: erm
    Line: 6724
    Reason:
    "HE$/$/$"-cannot find hero at position.

Save all ERM vars to WOGERMLOG.TXT (may take time)?
-----------------------



RE: ERA II - Berserker - 19.04.2012 15:49

На сборке JimV + rennoy или SU_Merged английской?


RE: ERA II - SyDr - 19.04.2012 16:22

JimV + rennoy


RE: ERA II - SyDr - 23.04.2012 23:07

Вылет при попытке загрузить игру:
http://narod.ru/disk/47039603001.d4102da6a8580e61658dbe0a9162661b/HoMM3_log.7z.html

Мааленькое обновление для менеджера плагинов. Теперь он игнорирует каталоги _Off_ и Secondary Skills Scrolling, а также не показывает файлы с нулевым размером:
http://wikisend.com/download/377022/Plugins%20Manager.7z


RE: ERA II - Berserker - 24.04.2012 00:05

Quote:Вылет при попытке загрузить игру
Прохождение объектов выключено?

Quote:Маленькое обновление для менеджера плагинов. Теперь он игнорирует каталоги _Off_ и Secondary Skills Scrolling, а также не показывает файлы с нулевым размером:
Спасибо, включу в следующий выпуск, правда игнорирование "Secondary Skills Scrolling" идеологически не верно.


RE: ERA II - SyDr - 24.04.2012 11:55

Quote:Прохождение объектов выключено?
Нет. От "обычного" набора используемых скриптов отличается разве что, добавлением алмазных драконов в оплот.

Quote:Спасибо, включу в следующий выпуск, правда игнорирование "Secondary Skills Scrolling" идеологически не верно.
Понял. Исправил. Текущее поведение:
  • _Off_ игнорируется всегда.
  • Плагины с нулевым размером игноруются всегда.
  • Моды, указанные в секции "IgnoreMods" файла "ignore.ini", игнорируются, если чекбокс "Show ignored" не активен.
  • Плагины, указанные в секции "имя мода" (приоритеты в виде числа перед именем учитываются, как имя мода**) при тех же условиях игнорируются.
Plugins Manager.7z

**Кто-нибудь использует для модов эти приоритеты? Реализовыввать их тот ещё гемморой.


RE: ERA II - SyDr - 24.04.2012 12:02

Что-то интересное получается:
Quote:---------------------------
Microsoft Visual C++ Runtime Library
---------------------------
Runtime Error!
Program: D:\Games\HoMM3\h3era.exe
abnormal program termination
---------------------------
ОК
---------------------------

Вот карта и настройки:
HoMM3.7z

Примерная последовательность действий:
  1. Открыть игру, выбрать карту (героя выбирал Кальта), начать игру с этими настройками.
  2. Число гарнизонов дофига, нейтральные города все, союзы по умолчанию.
  3. Сохранить игру. Готово. При попытке загрузки этого сейва вылет.



RE: ERA II - Berserker - 24.04.2012 13:54

Скрипт гарнизонов (42) убивает игру. Известный баг.
P.S. Спасибо за обновление.

Quote:**Кто-нибудь использует для модов эти приоритеты? Реализовыввать их тот ещё гемморой.
Проблема в том, что приоритеты портят имена, так? В будущем 3.х хочу всё же список линейный в ini хранить, а пока нужно.


RE: ERA II - SyDr - 24.04.2012 14:48

Понял. Значит больше вообще не буду их использовать.

А с приоритетами такая фигня, что всё это надо запоминать и хранить: значение приоритета, есть ли он вообще (т.е. "0 Mod1" и "Mod2" нужно по разному обрабатывать). И с такими приоритетами непонятно, как менять местами, например, такие моды: "7 Mod1 (2001)" и "5 Mod2 (2012)". Только числа вначале менять? Если менять ещё и даты создания (а текущая реализация Mods Manager так и делает), то тогда порядок загрузки модов может изменится неожиданно. Более того, что, например, делать с ситуацией "Mod1", "0 Mod1" и "7 Mod1". Это разные моды или один и тот же? Просто вывести пользователю сообщение.

Вообще, определить порядок загрузки модов не проблема. Проблема в его изменении.
Если бы можно было плюнуть на все текущие значения (т.е. важен только порядок загрузки), то можно было бы всё очень легко и просто менять (и preset'ы бы легко были бы сделаны, просто список того, что нужно+список того, что точно несовместимо), и карты стандартные можно было бы не грузить (просто выносятся в отдельный мод). И всё это было бы в самое ближайшее время, а не в линейке 3.x Sm


RE: ERA II - Berserker - 24.04.2012 15:26

Quote:Только числа вначале менять? Если менять ещё и даты создания (а текущая реализация Mods Manager так и делает), то тогда порядок загрузки модов может изменится неожиданно.
Обмен и чисел (включая пустые числа "") и дат. На всё остальное не повлияет.
7 Mod2 (2001) и 5 Mod1 (2012)

Quote:Более того, что, например, делать с ситуацией "Mod1", "0 Mod1" и "7 Mod1"
В текущем варианте разные. Согласен, совмещение имени и приоритета в одном рождает путаницу.

Quote:Если бы можно было плюнуть на все текущие значения
А так ли уж нужны эти пользовательские наборы сейчас? Когда нет кодовой совместимости, наборы, если и есть, то маленькие и играются длительное время.

Основной плюс ориентации на даты - это ручное создание папки = создание самого свежего мода. С другой стороны, проблемы перевешивают плюсы, а подобное удобство могло быть обеспечено иначе.


RE: ERA II - SyDr - 24.04.2012 18:00

(16.04.2012 20:34)Berserker Wrote:  Теперь интересны только стабильность правок джимма и rennoy.
Random Hero не появляется. Артефакты на карте тоже не появляются. Но вылетов и печальных глюков не видно.

Quote:Обмен и чисел (включая пустые числа "") и дат. На всё остальное не повлияет.
7 Mod2 (2001) и 5 Mod1 (2012)
А... Что-то я не то вспомнил.

Quote:А так ли уж нужны эти пользовательские наборы сейчас? Когда нет кодовой совместимости, наборы, если и есть, то маленькие и играются длительное время.
Да. В принципе не нужны.

Quote:Основной плюс ориентации на даты - это ручное создание папки = создание самого свежего мода. С другой стороны, проблемы перевешивают плюсы, а подобное удобство могло быть обеспечено иначе.
Ну, не знаю, как тем, кто создаёт моды, но мне бы хватило напоминания "Добавьте строку с именем мода в конец файла <name.txt> или запустите installmod.exe с параметром <имя мода>".


RE: ERA II - Berserker - 24.04.2012 18:13

Да с мододелами, не являющимися программистами в той или иной степени, зачастую ой как нелегко. Кстати, именно твоя программа пошла на ура. До этого никто вообще ничего не понял про порядок загрузки и установки. Даже китайскую версию по файлу au3 сделали.


RE: ERA II - Valery - 24.04.2012 21:12

Image: 67320209.jpg


RE: ERA II - SyDr - 24.04.2012 21:35

Ого. Ну поскольку народ пользуется, то тогда обновление (критических изменений нет. Разве что теперь скрипт нельзя будет так просто убить):
Image: 0_88012_111141c3_orig
Скачать упс или упс

Изменения:
  • Кнопки теперь должны бокироваться, если их нажатие ни к чему не приведёт.
  • Не все Bad строки вынесены в lng.ini
  • Если два мода имеют одинаковый приоритет, то добавляется предупреждение (специально для Salamandre, который Эру не обновлял)

Ссылки (теперь нормально. Наверное...):
wikisend: Mods Manager.7z
narod.yandex: Mods Manager.7z


RE: ERA II - Berserker - 24.04.2012 22:13

Отлично!
Только это, standard Rolleyes


RE: ERA II - SyDr - 24.04.2012 22:50

Может так и задумано было Ab
К тому же это лично у меня так (карты в отдельном моде). Если вздумаю играть в какой-то мод, в котором нельзя другие карты грузить, то просто буду его выключать.


RE: ERA II - Prayer - 25.04.2012 14:45

Berserker, в преведущих версиях, при нажатии PrintScreen, создавался скриншот в папке screenshots в корневом каталоге. Теперь этот фунционал недоступен?


RE: ERA II - Berserker - 25.04.2012 21:07

Это был функционал патча 32 бит от GrayFace. Теперь используют игроки HD-мод, в котором, если я правильно помню, такая функция тоже присутствует.


RE: ERA II - Prayer - 26.04.2012 10:35

(25.04.2012 21:07)Berserker Wrote:  Это был функционал патча 32 бит от GrayFace. Теперь используют игроки HD-мод, в котором, если я правильно помню, такая функция тоже присутствует.
Тоже давно и успешно использую HD-мод. Только вот я его использовал совместно с патчем от GrayFace. В 2.98f была фича выводить через него. Спасибо за разъяснения.


RE: ERA II - Prayer - 26.04.2012 14:28

Berserker, удалил мод Yona и "Прокрутка вторичных навыков". Игра стала вылетать при входе в окно героя? Присутствие этих модов обязательно? По другому говоря мне нужен чистый ВоГ на вашей новой платформе, пусть даже как мод. В папке ExeBuilder In.exe уже пропатчен на angel.dll или это исходный файл TE?


RE: ERA II - Berserker - 26.04.2012 19:51

Quote:Игра стала вылетать при входе в окно героя? Присутствие этих модов обязательно?
Проверил. Не вылетает. Их присутствие необязательно. У вас кроме них ещё что-то стоит?

Quote:В папке ExeBuilder In.exe уже пропатчен на angel.dll или это исходный файл TE?
Исходный файл TE.exe.


RE: ERA II - Bes - 26.04.2012 21:23

(26.04.2012 19:51)Berserker Wrote:  
Quote:Игра стала вылетать при входе в окно героя? Присутствие этих модов обязательно?
Проверил. Не вылетает. Их присутствие необязательно. У вас кроме них ещё что-то стоит?
а может после удаления этих модов необходимо запустить installmod.exe, чтобы "отключить" приоритетность от них? Scratch_one-s_head


RE: ERA II - SyDr - 26.04.2012 21:28

Да нет там такого. Не вылетатает даже при загрузке сейва, созданного с этими модами.


RE: ERA II - SyDr - 26.04.2012 21:51

http://img-fotki.yandex.ru/get/6204/38252203.0/0_853b5_91193355_orig

Исправление:
Достать из hmm35wog.pac файл zmess00.txt и перед строкой %s are always lucky добавить перевод строки (внимание! и только его, @CRLF не подходит*). Полученный файл положить так, чтобы у него был выше приоритет, чем у того, который в архиве.
Или, вот исправленный файл (больше ничего не трогалось): zmess00.txt


*Использовать в одном файле LF и CRLF это мазохимзм. Нет, ну правда.


RE: ERA II - Berserker - 27.04.2012 00:41

Спасибо, добавляю в обновление.


RE: ERA II - Prayer - 27.04.2012 07:31

(26.04.2012 19:51)Berserker Wrote:  Проверил. Не вылетает. Их присутствие необязательно. У вас кроме них ещё что-то стоит?
Стоит русификация. Проверил. Вылетает. Из-за нее, удаляю Rus WoG, все робит. Вот скрин:
Image: 2SSKx80D.jpg

(26.04.2012 19:51)Berserker Wrote:  Исходный файл TE.exe.
А его разве не надо патчить на загрузку angel.dll или era.dll? Там в папке LIB нет такого бинарника. Сорри, если я что не так понял.


RE: ERA II - Berserker - 27.04.2012 13:28

Quote:Стоит русификация. Проверил. Вылетает. Из-за нее, удаляю Rus WoG, все робит. Вот скрин:
Подтверждаю. Удалите папку "Mods\WoG Rus\Data\Buttons". Я в русификацию включаю русификацию обоих модов. Не хотелось бы разбивать на три русификации.

Quote:А его разве не надо патчить на загрузку angel.dll или era.dll? Там в папке LIB нет такого бинарника. Сорри, если я что не так понял.
ExeBuilder - это просто полезная утилита из прошлого. В настоящее время файл h3era.exe - это TE.exe + вызов era.dll.

Структура Эры: Era.dll (свойства 1.9+) и Angel.dll (свойства 1.81-).
Все заплатки переведены в режим для памяти и находятся в папках: EraPlugins\... Проверьте, например, Mods\WoG\EraPlugins.


RE: ERA II - Prayer - 27.04.2012 14:20

(27.04.2012 13:28)Berserker Wrote:  Подтверждаю. Удалите папку "Mods\WoG Rus\Data\Buttons"
Спасибо, помогло.

(27.04.2012 13:28)Berserker Wrote:  ExeBuilder - это просто полезная утилита из прошлого. В настоящее время файл h3era.exe - это TE.exe + вызов era.dll.
Структура Эры: Era.dll (свойства 1.9+) и Angel.dll (свойства 1.81-).
Все заплатки переведены в режим для памяти и находятся в папках: EraPlugins\... Проверьте, например, Mods\WoG\EraPlugins.
Спасибо за разъяснения по структуре. Я в курсе где лежат заплатки. Просто всегда патчил екзешник, чтобы у всех играющих была одна версия, а то непонятно потом у кого какие файлы в папке EraPlugins. Я так понимаю могу и новый экзешник переименовать в In.exe и патчить его, правильно?


RE: ERA II - Berserker - 27.04.2012 14:30

В папке "Tools\BinMagic 1.0" есть файл "file.bat". Если запустить его с первым аргументом вроде C:\MyPatches\*.bin, а вторым указать C:\Result\Result.bin, то Result.bin - это будет общая заплатка для файла, включающая все изменения тех, что были в папке "C:\MyPatches".
Применить заплатку к исполняемому файлу можно через батник с двумя аргументами (путь к заплатке, путь к исполняемому файлу):

Code:
@echo off
BinMagic.exe ^
    Cmd=ApplyPatch ^
    Patch=%1 ^
    ApplyTo=%2 ^
    Optimize



RE: ERA II - SyDr - 27.04.2012 21:13

Парочка некритичных багов:
5_Red_Adventure_Cave_Bug - можно драться с троглодитами вначале сколь угодно много раз.
3_Red_Hell_Barons_Bug - ну вот откуда, откуда у них такая скорость? Так и задумано?
3_Red_Tavern_Bug - опять глюки с просмотром информации в логове воров.
3_Red_Art_Bug - у героя в рюкзаке два артефакта, а новые уже не лезут Bad. Вот это уже весьма неприятно, по сравнению с другими.

games.7z


RE: ERA II - Berserker - 27.04.2012 21:42

Quote:3_Red_Art_Bug
Каким образом артефакты изымались из игрока? Оставлением по ПКМ? В корне странно, в Эре ведь исправлено удаление артефактов через HE:A.


RE: ERA II - SyDr - 27.04.2012 21:45

Нет. Этот скрипт вообще выключен. Артефакты передавались другим героям.


RE: ERA II - SyDr - 28.04.2012 10:10

Дополнительные особенности:
Если зайти в экран героя и поднять артефакт, то опустить его уже будет нельзя. Если после этого закрыть окно и открыть заново, артефакта уже не будет.
Артефакты в городе покупаются, но пропадают в никуда.


RE: ERA II - totkotoriy - 02.05.2012 09:20

Для информации:
Перечисленные мною ранее баги сетевой игры на Win 7 встречаются в ТЕ (и ERA) и HD моде. В ВОГе таких багов нет.
Я вот думаю может если настроить как-то сетевое соединение или совместимость с XP поставить или еще что они пропадут?
Ни какой пока информации по этому поводу для ТЕ не нашёл.


RE: ERA II - Prayer - 02.05.2012 12:58

(02.05.2012 09:20)totkotoriy Wrote:  Перечисленные мною ранее баги сетевой игры на Win 7 встречаются в ТЕ (и ERA) и HD моде. В ВОГе таких багов нет.
Можете пречислить их еще раз или кинуть ссылу, где они перечислены... Дабы не шерстить ваши посты...



RE: ERA II - Prayer - 04.05.2012 06:37

Berserker, плагин zvslib.bin для чего нужен? что будет если его отключить?


RE: ERA II - Berserker - 04.05.2012 12:23

Да, он во многом обеспечивает привязку к hmm35wog.pac вместо h3sprite.lod.


RE: ERA II - Berserker - 05.05.2012 13:18

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


RE: ERA II - SyDr - 05.05.2012 15:37

Не за что. Это в моих же интересах Sm.
С Баронами ада, я так понимаю, скрипт просто увеличивает их скорость, чтобы они ходили первыми? Просто без знания об этом действительно было похоже на баг.
Багу с "Wrong Position" можно не смотреть. Это было до обновления скриптов до последней версии.

(14.04.2012 17:23)Berserker Wrote:  
Quote:Berserker, нельзя в моде как-нибудь указать, что не надо грузить карты других модов/находящиеся в папке с игрой. Я имею в виду в первую очередь TEW.
В линейке 2.х нет.

Quote:Имеет ли смысл для менеджера модов реализовать поддержку командной строки в духе:
   modsman /LoadPreset TEWIV /RunGame /RestoreOnExit
Сложность инструмента превысит необходимость временного выключения остальных модов. Вдобавок, на деле активно всегда 3-4 мода.
У меня всё равно одно место чешется это сделать 96-copy
Первое делается просто вынесением всех стандартных карт в отдельный мод. Работает прекрасно.
Второе, оказывается, уже было практически готово (просто отключить все моды не из списка, включить из списка и отсортировать в нужном порядке). Сама утилита будет выглядеть так:
Скриншот 1 (Click to View)
Скриншот 2 (Click to View)
Единственное, что понадобится, это помощь в переводе сообщений для наших зарубежных коллег (мой английский кривой и это печально)


RE: ERA II - Berserker - 05.05.2012 15:44

С переводом справимся, был бы предмет )


RE: ERA II - SyDr - 05.05.2012 18:18

Berserker, по поводу бага с таверной (строчка артефакты): может быть как-то связано с багом "HE:A3"? Потому как было это совсем рядышком. Там, кстати, ещё и коричневый на втором месте есть. Может и вылет при заходе в гильдию воров в другом сейве с этим связан. Может быть...


RE: ERA II - Berserker - 05.05.2012 18:26

Скорее всего! Спасибо. То же самое с торговцем артефактами.


RE: ERA II - SyDr - 05.05.2012 19:57

Прошу помочь с тестингом. Ничего серьёзного по сравнению с прошлой утилитой не появилось (ну кроме разве что того, что весь GUI переписан).

Tools.7z (yandex) или Tools.7z (wikisend)

Кнопка Delete не работает, по кнопке More >> открывается самое главное, что осталось реализовать 118

Если сравнить с тем, что было:
  • Добавлена кнопка Edit
  • Теперь Move Up/Move Down можно закликивать, чтобы быстрее передвигать мод в списке
  • Обрабатывает ситуацию наличия более двух модов с одинаковым именем: делает страшное предупреждение Sm
  • Напоминает, что WoG должен быть включён и иметь минимальный приоритет.

Просьба не рассматривать, как полноценную утилиту: не реализованы Preset'ы, сохранение настроек и выбор языка. Сейчас главное, чтобы в базовом функционале не было багов (хотя он почти напрямую скопирован из старой версии).


RE: ERA II - Berserker - 05.05.2012 20:51

modsmann? )
Delete ничего не делает?
P.S. Базовый функционал работает, кроме удаления.


RE: ERA II - Berserker - 06.05.2012 01:01

Глючит всё: 00:00:04 стоит после 23.58.хх, соответственно SetCurrentTime творит хаос.
Прошлая версия также.
У меня в Эре та же ошибка. Нельзя работать с датой-временем как 64-битным числом.


RE: ERA II - SyDr - 06.05.2012 10:41

Да нет. Там явно что-то другое. У меня дата/время везде либо отдельными элементами массива либо строкой вида "yyyymmddhhMMss". У меня SetCurrentTime сейчас тоже творит хаос. Но потому как проиходит что-то странное:
В каталоге валяется Secondary Skills Scrolling с датой создания Сегодня в 23:58, однако, несмотря на это, в программе пишет, что в 8:14:43. Более того, в свойствах каталога тоже указано это время (8:14). Таким образом, время создания 23:58 видно только в проводнике в колонке дата создания (а именно это время я проставлял через FileSetTime()).

Ладно. Я накосячил. Я через FileSetTime() выставлял дату создания не нужному моду, а тому моду, индекс которого совпадал с индексом выделенного в TreeView (раньше совпадало похоже, из-за фазы луны: в TreeView есть Priority, а у модов индекс с 1). Прошлый глюк тоже как-то умудрился исчезнуть. Так что даже не знаю. А с сортировкой (по крайней мере, по её мнению) всё в порядке.

Попозже дам исправленную версию.

P.S. Первый абзац можно не теперь не принимать в серъёз. Мне просто надо было обновить окошко.
P.P.S. Кажется, preset'ы уже практически реализованы.


RE: ERA II - SyDr - 06.05.2012 13:22

Mods Manager.7z (yandex) или Mods Manager.7z (wikisend)

Что работает (или по крайней мере должно):
  • В Simple части всё должно работать, работать нормально и не вылетать
  • Предустановки должны работать и работать правильно: (все моды из списка в нужном порядке, остальные в выключенные)
  • Запуск игры
  • Поддержка языковых файлов (папка lng). Пока только автодект: сначала язык интерфейса (0419 для русского, 0409 для английского), потом язык системы в таком же виде, потом из default. Можно переводить.

Не работают только опции командной строки и создание ярлыка.


RE: ERA II - SyDr - 07.05.2012 20:24

Я сегодня добрый Sm. Вот карта, на которой был вылет с гарнизонами при загрузке карты:
random_map_2.7z
Особенность: можно не включать вообще никакие другие скрипты. Для вылета хватит одного скрипта гарнизов (tons).

Ну и ещё:
Bug report #5
Это в SU_Merged и не столько баг, сколько недоработка. Багом там вроде была такая ситуация:
Нейтральный город включён.
1) Грузим карту. Все внешние жилища (бабочки, элементали) рядышком меняются, как положено.
2) Что-то не понравилось, выходим в менюшку.
3) Снова грузим карту и на этот раз жилища остаются от стандартного сопряжения.
Вроде бы. Потом перепроверю.


Bug report #6
Это до включения исправленного def'а катапульты, вроде как.

Bug report #7
Это тоже в SU_Merged

Но вообще, одна из главных проблем всех правленных скриптов, это то, что новые артефакты не ставятся на карту. Все остальные баги, вроде как, были не сильно связаны именно со скриптами или имеются и в оригинальных скриптах тоже. Здесь могу только предположить, что это связано с проверкой, есть ли у артефакта настроенное сообщение или используется он где в квестах (в оригинальных скриптах её нет и это может "убить" любую игру со стражами прохода).


RE: ERA II - Berserker - 07.05.2012 21:47

Да артефакты я уже поправил. Спасибо.


RE: ERA II - Berserker - 07.05.2012 22:57

SyDr, обновляй, если можно, список каталогов перед операциями. Хаос наступает, если пока запущен менеджер что-то делать с каталогами )
В форме "редактировать" надписи не вмещаются.
Русские надписи в кнопках тоже не вмещаются.
Загрузка предустановки TDS без наличия мода убивает программу, выход за границы массива.


RE: ERA II - SyDr - 07.05.2012 23:24

Хм... Да... Только не знаю, как поступить:
1) Кнопка обновить - самый простой и самый глупый вариант.
2) Следить за каталогом и при изменении обновлять.
3) При наведении курсора на кнопку. Тоже глупо, плюс кнопки можно и с клавиатуры нажимать.
4) Если программа потеряла фокус, а потом снова получила. Просто реализуется и достаточно надёжно срабатывает. Сам склоняюсь к этому варианту.
Обновлять перед самой операцией не вариант. Как поступать, если структура изменилась? Как определить, что операцию можно продолжать? В общем весьма муторно получится.

Короче, реализован четвёртый вариант. Теперь хаос будет тяжелее поулчить.

По поводу надписей - всё влезет. Кроме "Сохранить как". Что с ней делать? Убрать и оставить одну кнопку сохранить (та же менюшка + по умолчанию это же название, Enter на OK забиндить).

Нужен ли ещё какой функционал?


RE: ERA II - Berserker - 07.05.2012 23:57

Да нет, вроде бы )


RE: ERA II - totkotoriy - 08.05.2012 01:08

Berserker, привет, увидел твоё сообщение на df2, я как понял готовится к выходу новая версия ЭРЫ? А что там на счёт сетевой игры? Что исправлено?


RE: ERA II - Sav - 08.05.2012 15:26

Несколько раз наблюдал уже вылет при загрузке карты (на середине заполнения progressbar`а).
Чистая Эра 2.1, вроде бы последняя, без удаления или добавления чего-либо, за исключением patcher_x86.dll, BattleFigures.dll и подгружающего её плагина-примера (они никак не трогают небоевой код игры, за исключением собственного отлова ошибок). Вылетает не всегда, но всё же это не одиночный вылет. И адрес, вроде, тот же.
Все опции WoG отключены, но вогификация и, соответственно, использование erm включены для всех карт.

Лог:



RE: ERA II - Berserker - 08.05.2012 17:26

Спасибо, интересно как бараторч стопку вызовов формирует?
totkotoriy, по сетевой игре изменений нет, так нет нет изменений сетевой игры.

P.S. Сав, если будет возможность, включи heroes3.ini Debug = 1 и сохрани eralog.txt при вылете. Просто на всякий случай. Я к 2.2 буду проводить полную или частичную ревизию кода, надеюсь поможет.


RE: ERA II - SyDr - 08.05.2012 17:41

Внезапно. С той картой (может не только с ней) вылет можно получить ещё одним способом:
1) Убрать все карты из папки Maps и все из random_map
2) Запустить игру и выбрать случайные карты.
3) Если стандартные карты присутствуют, вылета не происходит.
Сейчас ещё что-нибудь посмотрю.

HoMM3_log.7z


RE: ERA II - Berserker - 08.05.2012 18:09

Подтверждаю.


RE: ERA II - Bes - 08.05.2012 18:57

SyDr, Berserker, этот вылет я ещё с SoD помню...


RE: ERA II - gamecreator - 08.05.2012 19:08

хм, у меня никогда не вылетал сод из-за отсутствия карт


RE: ERA II - totkotoriy - 08.05.2012 20:09

С некоторых пор начал наблюдать что автосохранение перестает работать и иногда у коммандиров пропадает способность кастовать магию.


RE: ERA II - Sav - 08.05.2012 21:08

Berserker Wrote:Спасибо, интересно как бараторч стопку вызовов формирует?
В бараторчевскую реализацию я особо не вникал, а вот энтазеровскую, на которой она, как говорил бараторч, основана, разбирал. Ну, там алгоритм нехитрый: берётся [ebp + 4], это адрес возврата функции. По нему вычисляется адрес вызова функции, а там и адрес самой функции, операнд вызова и т. д. Берётся [ebp] - это предыдущий ebp. Ну и т. д., пока ebp корректен, примерно так это делается, если я не ошибся в смещениях. Ну и плюс сбор какой-то доп. информации, определение splice-ов и пр. у бараторча.

Berserker Wrote:P.S. Сав, если будет возможность, включи heroes3.ini Debug = 1 и сохрани eralog.txt при вылете. Просто на всякий случай.
Хорошо, включил, если ещё раз поймаю - выложу.


RE: ERA II - etoprostoya - 08.05.2012 22:21

Не нравится мне что-то, что защита у юнитов или пропуск хода не действуют.


RE: ERA II - Berserker - 08.05.2012 23:16

etoprostoya, поставь версию не трёхмесячной давности )


RE: ERA II - etoprostoya - 08.05.2012 23:50

Ладно, качаю более новую версию, хотя ссылка та же, название то же и размер файла (в титуле) тот же. Sm


RE: ERA II - etoprostoya - 09.05.2012 00:05

Как оказалось, по ссылкам
Quote:Ссылка (ENG): Скачать
Альт. ссылка (ENG): Скачать
идёт разный контент. Вот оно в чём дело было.


RE: ERA II - Bes - 09.05.2012 16:22

(09.05.2012 14:21)Berserker Wrote:  может быть сделать множество экранов загрузки? Я для такого дела подгоню функционал в Эре 2.
Если решишься, тогда учти, чтобы:
- не было жёсткого указания наличия всех картинок... есть 1 - значит одна.. есть "максимум" поддерживаемых, значит пусть меняются


RE: ERA II - Prayer - 11.05.2012 07:07

Баг вогификации!!!
Скрипт 78 wog.erm
строка 1217
Code:
!!FU&v1<>1:E; [Exit trigger if script isn't enabled]
а перед этим v1 намеренно устанавливается на 0
строка 671
Code:
Rv1:S0;
соответственно все опции после строки 1217 не имеют возможности существовать, а это:
27, 165, 196, 60, 143, 132, 139, 242, 133, 142
Обнаружил по отсутствию ВоГ-монстров на карте после вогификации.


RE: ERA II - totkotoriy - 11.05.2012 16:55

У меня пара жизненных вопросов:
За что отвечают era.dll и angel.dll? и можно ли их подгрузить к другому ехе?
У кого-нибудь есть код на С для того чтоб сделать dll подгружающую патчи bin?
Хочу отказаться от ехешника ТЕ, но хочу оставить возможности ЕРЫ...


RE: ERA II - Berserker - 11.05.2012 18:06

Prayer, да, я в курсе. Исправил сразу как нашёл, так что в следующем выпске ошибки уже не будет. Это был код JimV.

totkotoriy, angel.dll - это реализация Эры 1.81 урезанная. era.dll - соответственно 1.81+.
С другим ехе они несовместимы, кода на Си нет.


RE: ERA II - Prayer - 12.05.2012 10:25

Berserker, У меня на эре 1,8 был один плагинчег, очень полезный. Мне MoP его сделал, за что ему огромное спасибо:
Code:
; НАЗВАНИЕ: BtnMapDisable
; ВЕРСИЯ: 1.0
; АВТОР: MoP
; ОПИСАНИЕ: Деактивирует кнопку "Доп. опции" в главном меню игры
; EXE: SoD, TE

; "Увести" кнопку за пределы экрана, задав отрицательные координаты отрисовки:
17BF82 00FEFFFF; -200
17BF87 00FEFFFF; -200
В общем он убирал кнопку "показать доп. опции" педед создачей карты. На Эре2 этот экран "без кнопки" не всегда рисуется и игра вылетает с ошибкой. Без этого плагина все ок. Причем никакой закономерности не вижу, но если один раз вылетела, то потом постоянно до перезагрузки. Как будто в памяти какая то метка висит. В чем причина?


RE: ERA II - Berserker - 12.05.2012 16:08

Сделайте заплатку для памяти:
57BF75 6A00909090
Кнопка будет ненажимаемой.


RE: ERA II - Berserker - 12.05.2012 22:27

Image: 0_83330_931d23cb_orig


RE: ERA II - SyDr - 12.05.2012 22:45

Ага. Было бы неплохо. Только галочку добавить: "скрыть инструменты разработки".


RE: ERA II - Berserker - 12.05.2012 23:01

Это уже готовая старая программа от Гиппо. Я вечер потратил, чтобы достать/сделать иконки и настроить параметры. Мне не нравится, что не выровнены картинки, картинки только bmp со стрёмной прозрачностью (пришлось повозиться), программа закрывается при любом выборе.


RE: ERA II - SyDr - 12.05.2012 23:09

Ну так аналогичную с нужной функциональностью написать не проблема Rolleyes

Надо бы только сначала MM закончить...


RE: ERA II - Bes - 13.05.2012 09:24

Никогда б не обнаружил, если бы не рамка...

При первом запуске списка авторов игры (кнопка Credit) подложка ZmainMEN обрезается сверху, справа и снизу Bad
Если обновить экран (F4), пока идут буквы, то подложка становится видна целиком.

Berserker, вот для примера ZmainMEN.pcx с рамкой по краям, посмотри, и если возможно исправь в ERA это безобразие
http://webfile.ru/5951512 (пароль в личке)


RE: ERA II - Berserker - 13.05.2012 14:55

Бес, дружище, помилуй меня.


RE: ERA II - Prayer - 15.05.2012 12:42

Нигде не нашел описание заплаток
fix towers damage
skeleton transformer fix
Можно в двух словах?


RE: ERA II - Bes - 15.05.2012 13:01

(15.05.2012 12:42)Prayer Wrote:  skeleton transformer fix
Можно в двух словах?
Драколичи и Приведения в Трансформаторе скелетов теперь не превращаются в Скелетов - они ведь итак нежить144


RE: ERA II - Algor - 15.05.2012 13:12

(15.05.2012 13:01)Bes Wrote:  Драколичи и Приведения в Трансформаторе скелетов теперь не превращаются в Скелетов - они ведь итак нежить144
а кошмары и мумии?


RE: ERA II - gamecreator - 15.05.2012 13:49

там вообще должна быть проверка на флаг "нежить" у существа


RE: ERA II - Berserker - 15.05.2012 15:06

Quote:fix towers damage
Исправляет неверный урон от башен, если на отряде воздушный щит или есть навык оборона.


RE: ERA II - AVS - 15.05.2012 15:39

Небольшой патч для совместимости ERA SDK (2.1) с freepascal.

Code:
diff --git a/era_sdk/era.pas b/era_sdk/era.pas
index e8e037b..bed8caf 100644
--- a/era_sdk/era.pas
+++ b/era_sdk/era.pas
@@ -4,6 +4,10 @@ DESCRIPTION:  Era SDK
AUTHOR:       Alexander Shostak (aka Berserker aka EtherniDee aka BerSoft)
}

+{$IFDEF FPC}
+  {$MODE DELPHI}
+{$ENDIF}
+
(***)  INTERFACE  (***)
USES Windows;

@@ -156,6 +160,16 @@ TYPE
   END; // .RECORD TGameState


+{$IFDEF FPC}
+VAR
+  (* WoG vars *)
+  v:  TErmVVars absolute $887664;
+  z:  TErmZVars absolute $9271E8;
+  y:  TErmYVars absolute $A48D7C;
+  x:  TErmXVars absolute $91DA34;
+  f:  TErmFlags absolute $91F2DF;
+  e:  TErmEVars absolute $A48F14;
+{$ELSE}
CONST
   (* WoG vars *)
   v:  PErmVVars = Ptr($887664);
@@ -164,6 +178,7 @@ CONST
   x:  PErmXVars = Ptr($91DA34);
   f:  PErmFlags = Ptr($91F2DF);
   e:  PErmEVars = Ptr($A48F14);
+{$ENDIF}

* Наверное лучше оставить указатели указателями для совместимости, с другой стороны так удобнее.
** В работе не проверял, но по крайней мере компилится.


RE: ERA II - Berserker - 15.05.2012 15:43

Спасибо.


RE: ERA II - Prayer - 15.05.2012 20:32

(15.05.2012 13:01)Bes Wrote:  Драколичи и Приведения в Трансформаторе скелетов теперь не превращаются в Скелетов - они ведь итак нежить144
Ясно.. А никому не приходила идея, чтобы все драконы (кроме некровских) преобразовывались в костяных драконов. Имхо логично, ведь внутри них именно такой скелет должен быть...Mail1
(15.05.2012 15:06)Berserker Wrote:  Исправляет неверный урон от башен, если на отряде воздушный щит или есть навык оборона.
Спасибо, возьмем на вооружение.


RE: ERA II - ILYA1980 - 15.05.2012 20:37

Quote:Ясно.. А никому не приходила идея, чтобы все драконы (кроме некровских) преобразовывались в костяных драконов. Имхо логично, ведь внутри них именно такой скелет должен быть...
В SOD именно так и есть, здесь не смотрел


RE: ERA II - Berserker - 15.05.2012 21:39

Заплатка Sav-а на шрифты бажная. http://heroescommunity.com/viewthread.php3?TID=37585&pagenumber=4
Проверено.


RE: ERA II - totkotoriy - 15.05.2012 21:40

(15.05.2012 21:39)Berserker Wrote:  Заплатка Sav-а на шрифты бажная. http://heroescommunity.com/viewthread.php3?TID=37585&pagenumber=4
Проверено.
:C очень плохо


RE: ERA II - Sav - 15.05.2012 23:00

Ну, я бы не назвал это бажностью. Видимо, у "w" отрицательный отступ и заплатка соответственно ему заставляет букву сдвигаться влево, она не влезает и исчезает. С точки зрения заплатки всё логично. Могу попытаться сделать вместо пропуска обнуление отступа.


RE: ERA II - Berserker - 15.05.2012 23:09

Так в 3.58f всё ок. Я, видимо, чего-то не понимаю. Как там по умолчанию отрицательные отступы обрабатывались? Почему тогда русские шрифты пропадали с отрицательными отступами?


RE: ERA II - Sav - 16.05.2012 00:12

Там какая-то муть с этими шрифтами. Я пытался сравнивать бажный Сод 3.2 с небажным 3.0 - всё аналогично. Я могу сказать только что я сделал - убрал отдельную обработку отрицательного отступа вообще, т. е. заставил его обрабатываться всегда как обычный. Почему без этого не работало как надо - не знаю.

Опытным путём пришёл к тому, что исчезание w происходит при одновременном использовании 1 и 4 заплатки. При этом при применении только первой вроде как все баги, которые заплатка должна править, исправляются.
Т. е. надо
Code:
_PI->WriteByte(0x4B5347, 0xEB);
И всё.


RE: ERA II - Berserker - 16.05.2012 18:48

Вот она, чёрная магия геройского кода Sm


RE: ERA II - SyDr - 16.05.2012 22:01

Я таки выловил, откуда берётся вот эта строчка:
:::>>> Wed May 16 19:59:07 2012 2004.9.23.810 <DLG7.cpp; InvokeDialogue07; line 132> Window width = 809, maximum value = 800.

Это информационное окно о том, на что можно потратить мифрил.
Не зря всё таки скрипт написал для этого Sm


RE: ERA II - Berserker - 16.05.2012 23:01

))) Не влазит картинка, что ли?


RE: ERA II - Sea - 17.05.2012 07:18

А то что в ERA II нет командирских артов (по крайней мере на последних паре десятков карт они не сгенерировались, хотя соответствующая опция включена) это так задумано или баг? Или я не заметил какую-то новую настройку, которая их отключает?


RE: ERA II - SyDr - 17.05.2012 12:01

Sea, это баг в последней версии. Артефакты на карте не заменяются. Уже вроде исправили. Так что ждём обновления.

Berserker, похоже на то. Сама ширина картинки 761 пиксел. Но ведь это не будет шириной всего диалогового окна. По идее достаточно ужать картинку слева и справа на 5 пикселов и всё будет нормально (я тут пробывал что-то менять, но мой мозг так и не понял сути загрузки этих катринок).


RE: ERA II - totkotoriy - 17.05.2012 12:07

Berserker, а почему не включили в свою сборку анимированные озёра? Я выкладывал здесь озера, которые добывают драг камни с анимированной водой и флагом, зря делал что ли? Sm
И ещё встретил у вас только анимированные озера в виде препятствий на поле боя, а как же с озерами на карте? Очень неплохо, кстати, выглядят.


RE: ERA II - Berserker - 17.05.2012 15:40

totkotoriy, я включил все ваши файлы, насколько помню, то есть то, что было в wog-архиве.


RE: ERA II - AVS - 17.05.2012 19:08

А вот вопрос: имена дефов чувствительны к регистру или нет? Если да, то проблема в этом. Дефы действительно есть (ERA 2.1)


RE: ERA II - Berserker - 17.05.2012 19:42

Нет.


RE: ERA II - Prayer - 18.05.2012 14:00

Попытался поставить New Interface Mod на Era 2. Ничего не выходит. Инсталяха заточена под WoG Update. А у SyDr я видел такой в папке Mods. Он есть готовый под Era 2 или надо самому ковыряться с файлами?


RE: ERA II - Berserker - 18.05.2012 15:08

Era 2 Maps/Mods


RE: ERA II - Sav - 26.05.2012 22:29

Я смотрю, там со шрифтами опять проблемы. Sm Ну, значит, пропадание текста нормально заплаткой не исправить, буду разбирать сам алгоритм и ставить хуки.


RE: ERA II - Berserker - 27.05.2012 00:25

Да, я убрал последнюю.


RE: ERA II - Berserker - 30.05.2012 01:40

Выпустил пока английскую 2.2. Посмотрю отзывы, потом может подтяну Сагамозу и Феникс 3.63.


RE: ERA II - SyDr - 30.05.2012 19:07

HoMM3_log.7z

Вылет. Битва. При наведении палатки на командира.


RE: ERA II - Berserker - 30.05.2012 19:32

Лог абсолютно бесполезен (вылет на геройском коде). Нужна сохранёнка с повторяемыми условиями.


RE: ERA II - SyDr - 30.05.2012 20:01

Нет