![]() |
Здравствуйте, гость ( Вход | Регистрация )
![]() |
![]()
Сообщение
#1
|
|
Newbie Сообщений: 7 Спасибо сказали: 9 раз ![]() |
Исходные данные: есть мод для героев, содержащий большое количество изменений (характеристики существ, стоимости и зависимости в замках, специализации героев, стоимость и доступность заклинаний и т.п.). Некоторое изменения уже делаются не правкой файлов, а прямой прошивкой в запущенную игру из стороннего процесса. Сделано это пока кустарно - процесс нужно периодически перезапускать во время игры.
Для того, чтобы реализовать весь необходимый функционал в моде, требуется, чтобы сторонний процесс запускался в начале каждого хода каждого игрока как минимум, а то и чаще (требуется динамическое изменение карты приключений). Вопрос в том, на основе какого клиента целесообразно делать мод. Ванильных героев уже рассматривать глупо, нужно брать как минимум HD Mod (сразу вопрос, можно ли облегчить некоторые задачи за счет HD Mod, например не так сурово прошивать клиент со стороны). WoG не рассматриваю. Но больше хотелось бы HoTa, в первую очередь не из-за нового замка (он для моего мода как раз создает дикую головную боль с балансом), а из-за очень здоровских новых объектов на карте и в целом из-за большого количества хороших правок. Поэтому хотелось бы узнать, как устроен ехе HotA и насколько это реально? |
|
|
![]() |
![]()
Сообщение
#2
|
|
![]() Etoprostostatus Сообщений: 8 527 Спасибо сказали: 15825 раз ![]() |
Откройте для себя Эру. http://wforum.heroes35.net/showthread.php?tid=3155
Команда ХотА, насколько я понял, хочет оставить её, ХотУ, немодифицируемой. -------------------- Etoprostopodpis'
|
|
|
![]()
Сообщение
#3
|
|
Newbie Сообщений: 7 Спасибо сказали: 9 раз ![]() |
Вроде уже пробовал когда-то, но не срослось. Как я понимаю, если не брать в расчет простоту установки/возможности иметь несколько модов сразу, era от wog по упрощению модификаций ушла недалеко. То есть, это тот же набор erm скриптов, так? Можно ли из erm скрипта работать с данными в файлах (не игровых, а сторонних)? Можно ли из него вызвать C++ код, который что-нибудь посчитает? Насколько это медленней, чем напрямую фигачить С++ прошивающими вызовами из другого потока?
|
|
|
![]()
Сообщение
#4
|
|
![]() Etoprostostatus Сообщений: 8 527 Спасибо сказали: 15825 раз ![]() |
>>То есть, это тот же набор erm скриптов, так?
Нет. >>Можно ли из erm скрипта работать с данными в файлах (не игровых, а сторонних)? Да, через ERM там теперь можно вызывать любые внешние функции. >>Можно ли из него вызвать C++ код, который что-нибудь посчитает? Да, это, пожалуй, основная "фишка" Эры. >>Насколько это медленней, чем напрямую фигачить С++ прошивающими вызовами из другого потока? Собственно Эра тем и занимается, что "напрямую фигачит". Подробнее лучше на том форуме спросить, там её активные пользователи и создатель. Хотя здесь тоже есть, но по теме общаются не в этом подфоруме, а в "Модах". -------------------- Etoprostopodpis'
|
|
|
![]()
Сообщение
#5
|
|
![]() Immortal Сообщений: 2 768 Спасибо сказали: 958 раз ![]() |
arseniy, если хочется что-то без erm, то посмотри в сторону mop
|
|
|
![]()
Сообщение
#6
|
|
Immortal Сообщений: 2 396 Спасибо сказали: 4551 раз ![]() |
Да, команда хота, не хочет чтобы хоту модифицировали, и не хочет делится ее элементами.
ХД мод облегчить модинг не может (разве что если мод сделать плагином для хд, то не надо будет парится как присоединять свою модификацию к игре), а вот например мой инструмент patcher_x86.dll может. А еще сильнее могу облегчить модинг я) поделившись наработками, но только если тебе по душе тот же лагерь модеров ) 1 лагерь - вог, эра. если нужна база вог и ерм. 2. лагерь хд, хота, если фичи вога совсем не нужны и хочется модить непосредственно оригинал (SoD), хочется максимальной совместимости с ХД, а так же если предпочитаемый ЯП - с++ 3. MoP, если нужны фичи вог, редактор монстров, редактор еще чего-то там, но не нужен ерм, не нужен ХД мод и любишь ассемблер. -------------------- |
|
|
![]()
Сообщение
#7
|
|
![]() laughed as one fey Сообщений: 12 058 Спасибо сказали: 20172 раза ![]() |
Цитата Вроде уже пробовал когда-то, но не срослось. Как я понимаю, если не брать в расчет простоту установки/возможности иметь несколько модов сразу, era от wog по упрощению модификаций ушла недалеко. То есть, это тот же набор erm скриптов, так? Можно ли из erm скрипта работать с данными в файлах (не игровых, а сторонних)? Можно ли из него вызвать C++ код, который что-нибудь посчитает? Насколько это медленней, чем напрямую фигачить С++ прошивающими вызовами из другого потока? Нет, не только, эра позволяет подключать дллки с любым желаемым кодом и предоставляет двусторонний интерфейс нативный код <-> ерм Самой адекватной для моддинга платформой является связка эра+бараторчевский патчер, чуть хуже - сод+хд+бараторчевский патчер. |
|
|
![]()
Сообщение
#8
|
|
![]() бывший хотовец Сообщений: 22 398 Спасибо сказали: 11352 раза ![]() |
(сразу вопрос, можно ли облегчить некоторые задачи за счет HD Mod, например не так сурово прошивать клиент со стороны) HD-mod поддерживает подгрузку dll, устанавливающей хуки на различные функции, в том числе на функцию начала нового раунда, а уж dll может обеспечить и существование постоянного активного процесса, вносящего изменения в игровые данные. Причём это примнимо как под СОД, так и под Хоту.Но больше хотелось бы HoTa, в первую очередь не из-за нового замка (он для моего мода как раз создает дикую головную боль с балансом), а из-за очень здоровских новых объектов на карте и в целом из-за большого количества хороших правок. Поэтому хотелось бы узнать, как устроен ехе HotA и насколько это реально? Команда НЕ ПРИВЕТСТВУЕТ моддинга Хоты. Но можно сделать модификацию под СОД, которая и под ХотУ будет работать тоже, в результате чего будет доступен и Причал. Но, ещё одно "но" - крайне маловероятно, что такой моддинг (с использованием триггеров начала раунда в бою) будет совместим с хотовским мультиплейером в целом и одновременным ходом в частности. (Нет, оно-то возможно, только если досконально разобраться в работе этого ОХ, а код его не является открытым, и им команда не поделится точно). -------------------- Кто умеет что-то делать, тот делает. Кто не умеет, но знает как - тот учит. А кто не умеет и не знает - тот руководит.
|
|
|
![]()
Сообщение
#9
|
|
Newbie Сообщений: 7 Спасибо сказали: 9 раз ![]() |
Спасибо всем за ответы.
Писать на ассемблере я не готов. С++ предпочтительнее, но я посмотрел патчер и понял, что далеко не факт, что изучение api патчера (точнее, как этим пользоваться) займет меньше времени, чем erm (а скорее, существенно больше). Хотелось бы примеры применения. То есть, плюс скриптов в том, что за тебя уже знают куда писать и в каком виде, а с патчером нужно откуда-то и эту информацию брать. С другой стороны, нужных мне скриптов может не быть в принципе. Мне в любом случае нужна поддержка HD мода, поэтому термин "максимальная совместимость с ХД" меня волнует. Я опишу более предметно, что нужно сделать, если вы можете точно сказать, с помощью чего это сделать проще, если вообще возможно, то здорово. Критические фичи: - возможность менять тип почвы на карте клетками каждый ход (я уже это делал прошиванием в код, так что то, что это возможно, сомнений не вызывает, вопрос, как делать это оптимально) - получение координат и данных всех объектов с флагом и нейтральных отрядов на карте каждый ход - изменение родных почв замков, - изменение почвы замка при осаде (статично - на родную почву из предыдущего пункта) - изменение эффектов родной почвы (изменение значений характеристик существ в битвах), - изменение типа замка при его захвате (если невозможно - какой-то аналог воговского разрушения-отстройки) Фичи, которые желательны: - изменение штрафов передвижения по различным почвам - дополнительная характеристика существ инициатива (просто задающая порядок хода в бою вместо скорости, а не как в пятых героях) - дополнительная характеристика существ подвижность - влияет на очки перемещения героя вместо скорости - удаление специализаций героев (так как возможна альтернатива - замена на специальность, не дающую в большинстве ситуаций никаких преимуществ, не критично) - запрещение появления в таверне героев других фракций |
|
|
![]()
Сообщение
#10
|
|
![]() Immortal Сообщений: 6 174 Спасибо сказали: 12442 раза ![]() |
Критические фичи: - возможность менять тип почвы на карте клетками каждый ход (я уже это делал прошиванием в код, так что то, что это возможно, сомнений не вызывает, вопрос, как делать это оптимально) - получение координат и данных всех объектов с флагом и нейтральных отрядов на карте каждый ход В ERM есть - изменение родных почв замков, http://forum.df2.ru/index.php?showtopic=32...st&p=638606 - дополнительная характеристика существ инициатива (просто задающая порядок хода в бою вместо скорости, а не как в пятых героях) - дополнительная характеристика существ подвижность - влияет на очки перемещения героя вместо скорости Вот внедрение инициативы на форуме обсуждали. Пока самым реализуемым подходом кажется, когда в начале раунда существам выставляются нужные скорости инициативы, а при наступлении хода существа скорость сбрасывается на стандартную. Полагаю, с перемещением можно сделать аналогично. А вообще, тебе, с такими хотелкам - в VCMI, а не в моддинг -------------------- |
|
|
![]()
Сообщение
#11
|
|
Immortal Сообщений: 2 396 Спасибо сказали: 4551 раз ![]() |
Мне сложно сказать что для решения этих задач есть в эра-ерм. Например инициативу и подвижность, мне кажется либо не сделать с помощью erm, либо реализация будет очень черезжопной. Но я могу ошибаться.
В любом случае, если тебе нужно сделать то, что еще никто не делал, то придется значительное время потратить на реверсинг кода игры. Работа с патчером - это именно, как ты выражаешься "прошивание в код" игры. Просто патчер делает этот процесс стандартизованным, удобным, минимизирует "баго-потенциал" этого процесса, а так же позволяет знать кто и куда еще шьет в игру (например ХД), позволяет разным модам шить в одно и тоже место без конфликта, дополняя функционал друг-друга а не заменяя. Интерфейс патчера простой и логичный. Примеры должны прояснить всё. И здесь, да, нужно ориентироваться в коде оригинальной игры, чтобы понимать что и где менять. И если не писать, то читать ассемблер, все равно придется (хотя в основном приходится читать все же Си-стайл код HexRays'а в IDA). Здесь еще момент, era - плохая платформа, если ты хочешь хорошую работу мода при игре по сети. Если игра по сети тебя не волнует, то и "максимальная совместимость с ХД" не нужна, той совместимости что есть для era будет достаточно. -------------------- |
|
|
![]() ![]() |
Текстовая версия | Сейчас: 14 April 2021 - 22:50 |
Copyright by Алексей Крючков
![]() Programming by Degtyarev Dmitry |
|