Название: Era II + WoG 3.58f [преобразованный в мод] Требования: SoD/Complete, !НЕ! WoG Благодарности: Jim Vogan - Улучшение руководства по ERM, перевод руководства по Эре на английский solitaire345 - Улучшение руководства по ERM Valery (Salamandre) - Тестирование Благодарности: 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"