Вышла Эра 2.9.2
Долгое время шла работа над выпуском новой ветки 2.9.х, которая, наконец, закончена. Ключевые особенности обновления:
Оптимизация скриптового движка ЕРМ позволила ускорить выполнение повторяемого кода в 10 раз! (со 130 тыс. команд/сек до 1.3 млн. команд/сек). Это значит быстрее и плавнее игра, больше тяжёлых модов, больше возможностей для улучшения ИИ.
Множество улучшений в работе ЕРМ, которые положительно скажутся на лёгкости написания и отладки кода.
Поддержка новых событий: отрисовка экрана героя, а также обработка мыши в экранах найма монстров, городской ратуши и диалоге обзора королевства.
Скриптописателям предоставлен интерфейс для работы с диалогом найма отрядов. Стало возможным реализовывать множество идей на его основе: призыв разных существ в бою, перенос армий между героями, удалённая покупка монстров, свои жилища существ и многое другое.
Эволюция кода Эры. Код Эры 1.9 полностью перенесён на Delphi. Angel.dll — теперь просто заглушка.
Подарок для антивирусов: старая утилита DEFka, заменена на благоприятную версию 2.0 на другом движке.
Всё остальное читайте в журнале изменений: Help\Era\era ii changelog.txt.
====================
Особая благодарность фанатам игры, что поддержали проект материально: Andarium(
) и нескольким другим игрокам(
). Просьба писать ники/имена в комментариях к переводам, чтобы вас, дорогие друзья, потом можно было упомянуть в летописях.
Отдельная благодарность
daemon_n за шефство над самой популярной русскоязычной сборкой Эры и поддержку, неустанно оказываемую игрокам, а также перевод мода Advanced Classes.
Благодарность
MoP за его плагин Battery.dll, с которого началась разработка программного интерфейса диалога найма существ.
Выражаю благодарность
igrik за постоянные выпуски и обновления плагинов, советы и помощь.
Скачать актуальную версию
Устанавливать на Полное Собрание или Дыхание Смерти.
Поддержать выпуск новых версий можно через
приложение пожертвований из шапки группы или напрямую на банковскую карту:
4496 5501 6577 3844 (Беларусь, БПС-СБЕРБАНК). Сервис:
paysend.com
Благодарности:
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.ph...5006#focus
ERA 2.46f
Версия, которая работает со старыми модами из коробки, включая большинство модов от Valery/Salamandre.
Отличия от ERA 2.46:
Code:
- Добавлен ERM Hooker 2.0
- Добавлены плагины Pandora/Seer huts последних версий от gamecreator.
- Добавлен Fix EA:E плагин.