Added by , published

О MM Engine


MM Engine - это крупная модификация, дополняющая оригинальный WC3 такими возможностями, как подгрузка кастомных mpq на уровне War3Patch.mpq; добавление кастомных рас, включая интерфейс и озвучку; создание своих кампаний на уровне оригинальных и многое другое!
Текущая и последняя версия: 2.0.0 (Build 1) БОЛЬШЕ ОБНОВЛЕНИЙ НЕ БУДЕТ
Исходники: GitHub
Список изменений
*2.0.0 (Build 1) - Фикс всевозможных багов. Конфиги, манифесты модов теперь представляют из себя JSON файл. Все настройки MM Engine хранятся в соответствующем json, в папке Warcraft III. Аддоны теперь привязаны к моду. Добавлена поддержка собственных иконок к картам, как это было с Nirvana, примеры можете найти в архиве с модом. Изменён API.
*1.1.1 (Release) - Фикс функции получения числа из конфига, теперь работает и с отрицательными числами. Улучшен API, также он содержится в архиве с MM Engine. Фикс краша кастомок, теперь с модами можно играть даже на них.
*1.1.0 (Release) - Добавлена поддержка аддонов. Созданы API для работы с аддонами. Убрана поддержка широкоформатных мониторов, убрана возможность смены цвета здоровья, убрана возможность приближать и отдалять камеру. Всё это будет реализовано в виде аддонов. Фикс запуска кастомных карт с модом. Установлено ограничение рас до 99. Создан свой лаунчер. Добавлена возможность выставлять свой логотип(500x400 px), прописав "Logo Ваш лого.bmp", и текст поверх него "LogoText Ваш Текст\nНовая строка".
*1.0.1 (Release) - Фикс бага при запуске.
*1.0.0 (Release) - добавлена вторая система создания модов. Добавлен фикс широкоэкранных мониторов, полоса здоровья, возможность смены цвета полосы здоровья, приближение камеры зажатием ЛКМ и LCTRL. Для перезагрузки конфига во время игры, зажмите LCTRL + R. Добавлена новая система рас, основанная на оригинальной, без использования форы.
*1.0.0 (Alpha 5) - Фикс краша, при запуске карты на одного. Добавлена возможность постройки нестандартных ратуш с помощью шкатулки вождя. Пофикшен баг с загрузочным экраном при выборе любой расы. Добавлена возможность добавления кампаний(она уже была, но не доделана). Добавлен WideScreenFix(спасибо RenderEdge за исходники) для процесса игры. Исправлен вылет при запуске кампаний. Исправлена сложность HARD в кампаниях, теперь она отображается. Улучшена функция подгрузки mpq, теперь они накладываются как слои в фотошопе)
*1.0.0 (Alpha 4) - Фикс краша, при запуске титров. Пофикшена камера, теперь при попытке её использования вне игры(в главном меню), игра не крашится. Доработанна система рас. Изменён синтаксис установки mpq и версии, теперь можно использовать тире, а также, при написании имени подгружаемого mpq, можно использовать пробелы. Обновлён образец мода с расой гноллов. Обновлена инструкция по установке модов.
*1.0.0 (Alpha 3) - Фикс бага со звуком завершения постройки. Добавлена возможность отдалять\приближать камеру, зажав LCTRL + ЛКМ.
*1.0.0 (Alpha 2) - Фикс бага с мультиплеером, работы ИИ альянса и орды, экрана загрузки и отображением иконок рас в меню результатов. Откат к старой системе подгрузки mpq, рас и т.д(прописывание в параметрах запуска или создание bat, пример на новом видео уроке).
*1.0.0 (Alpha 1) - Полностью реализована система добавления новых рас. Добавлены новые функции в common.j, bj. Приоритет с простоты создания рас перешел на тонкость настройки. Увеличен лимит до 59 нестандартных рас(если еще заменить 4 стандартных, то до 63). Новая система счисления версии. Главный файл со скриптами сново bj. Стандартный приоритет для подгрузки mpq - 8 (Уровень War3Patch.mpq). Обогнали по проработанности и функционалу такие моды, как Nirvana, Way of Others, Union of High Elves. Ждём ваши ремейки ;D
Старые версии:
*1.0 - Добавлена возможность создания и подгрузки аддонов(Их исходники вы можете скачать тут). Для установки аддона, загрузите его в папку "Addons", в корне Warcraft, указать аддон в "MM Engine.cfg", добавив его в пункт "Addons".
*0.9 - Добавлена возможность смены языка. Моды хранятся в папке "Mods". Главный файл любого мода "Manifest.ini", к нему можно подключать другие файлы, функцией "#include "назаание файла.расширение"". Все mpq архивы мода хранятся в соответственной папке "Mpqs", расположенной в папке мода. Имеется возможность подключать более одного архива, позволяя подключать доп. архивы с моделями. Для правильной работы, указывать их в нужно порядке в функцие "Mpqs".
*0.8 - Максимальное сжатие системы создания новых рас в mme.j - 1 строка;
*0.7 - Упрощенная система создания расы. Размер кода, требоваемого добавить в mme.j при создании новых рас - 3;
*0.6 - Перенос всех значений .bat во временный носитель, а с него в мод. Добавлен английский язык(бета);
*0.5 - Пофикшен баг с добавлением расы в мод.
Требования:
Планы и результаты

( + ) - Собственный лаунчер.
( + ) - Поддержка аддонов.
( + ) - API.
( + ) - Полностью функционирующая система рас.
( + ) - Чтение и запись конфигов.
( ? ) - Порт RenderEdge, как аддона.
( - ) - Совместимость с IrinaBot (совместим только клиент).
( - ) - Лаунчер для автообновлений.
100% - Собственный лаунчер
100% - Завершенность системы рас
100% - Поддержка кастомных карт (зависит от строения карты)
10% - Порт RenderEdge

Установка
MM Engine:
Перенести мод в папку с Warcraft III - TFT.
Модов:
Для установки модов поверх MM Engine, создайте папку мода в папке Mods, а после перенесите в неё все файлы. Для запуска используйте аргумент -mod <Название папки мода>.
Аддонов:
Для установки аддона, переместите их в папку Addons соответствующего мода, а после пропишите их в Manifest.json.
Инструкция по созданию модов
Добавление новой кампании:
Шаг 1: Создайте карту(ы) в редакторе WC3 и перенесите их в ваш mpq по пути "Maps\FrozenThrone\Campaign\"(ну или пропишите свой путь). При добавлении карт, если вы используете такой же mpq editor, как у меня, уберите сжатие и шифрование, иначе WC3 просто не найдет карту.
Шаг 2: Для прописывания новых кампаний, вам нужно достать CampaignStrings_exp.txt из War3Patch.mpq, изменить его по вашему усмотрению, а после перенести в свой mpq по пути "UI\"(строго по этому пути). Параметр "DefaultOpen" делает доступной кампанию без прохождения других.
Этап 1: Создание юнитов
Заметка:
1) Для каждого мода должен быть своеобразный фундамент, без которого он не сможет существовать. Для самого начала Вы должны создать примерные наброски своей расы. Будь это чириканья на бумажке, карандашные зарисовки или стойкая мысль в Вашей голове. Используйте фантазию. Придумайте ей свою изюминку, которая будет отличать её от других рас.
2) Создание модификаций для Warcraft 3 с нуля задача непосильная каждому. Пользователь должен понимать каждую частичку кода, иметь знания в зоне программирования и прочие неприятности. Однако MM Engine позволяет упростить этот процесс для максимума, предоставляя некоторые свои добавления. Если Вы до сих пор не скачали его, то сделайте это, так как этот движок понадобится нам в создании своей собственной модификации.
3) После того, как Вы определились с концепцией, набросайте примерную ‘’линию развития’’ (она же TechTree). У каждой расы есть 1 главное здание, 1 алтарь, 1 здание для производства пищи, 1 стартовый барак, а также 1 здание, которое производит улучшения. На втором уровне(или же 2-nd Tier) развития у каждой расы есть здание для подготовки магов и 1 специальное здание. Третий уровень(Он же 3-rd Tier) даёт 1 здание, которое производит самую сильную боевую единицу расы.
4) После составления своей линии развития можно начинать работу над своей расой. Соберите ресурсы(модели, иконки, возможно звуковое сопровождение) для своего мода. Все ресурсы можно найти на таких популярных площадках как HiveWorkshop, XGM и так далее.
Шаг 1: После всех собранных ресурсов можно перейти к технической части мода. Используйте редактор кампаний (или же карту) чтобы создать свою расу. Этот процесс не отличается особой трудоёмкостью. Он требует лишь терпение и кучу свободного, вольного времени.
Шаг 2: Когда Вы завершите работу с этой частью, нажмите CTRL+D. Это отобразит ID(он же RawCode) всех элементов игры, включая и нестандартные. После этого желательно записать куда-нибудь ID Ваших рабочих, героев и главного здание, которое появится в начале игры.
Шаг 3: Сохраняем нашу кампанию (карту), а потом попросту изменяем расширение файла с w3n(w3m\w3x) на mpq. Всё выглядит довольно просто, не так ли?

Этап 2: Скрипты
Шаг 1: Из скачанного нами ранее MM Engine.mpq достаем Blizzard.j и common.j.

Шаг 2: По примеру со стандартными расами, создаем переменную, хранящую нашу расу в игре.
Шаг 3: Помните те самые ID, которые мы выписывали? Прописываем для нашей новой расы рабочих. Не забываем прописать героев и главное здание во избежание всяческих казусов.


Шаг 4: Прописываем ИИ для нашей расы, которое мы должны были поместить в наш MPQ архив ранее. Если такового у нас нет, то пропускаем этот пункт.

Шаг 5: Для отображение строк, появляющихся в случае отсутствия расы, прописываем их ключи в Blizzard.j, а сами строки в GlobalStrings.fdf (Можно достать из War3Patch.mpq).

Этап 3: Интерфейс и мелкие добавления
Шаг 1: Для добавления интерфейса, достаем war3skins.txt из MM Engine.txt, и по примеру стандартных рас прописываем собственные пути для интерфейса.

Шаг 2: Если хотите, чтобы вашу ратушу можно было воздвигнуть с помощью шкатулки вождей, достаем из War3Patch.mpq файл AbilityData.slk и в строке 609 (ID Albg) добавляем нашу ратушу к стандартным.

Шаг 3: Для добавления фраз, отображающихся в случае нехватки пищи, достаем из War3Patch.mpq CommandStrings.txt и в строке с ключом Nofood добавляем нашу фразу. Не забудьте поставить запятую.

Этап 4: Создание .json и завершение
Шаг 1: С версии 2.0.0 MM Engine перешел к единому способу запуска модов, теперь все настройки мода хранятся в Manifest.json, в папке с модом, а для запуска мода требуется прописать в аргументах -mod <Название папки мода>, поэтому мы заполняем наш Manifest и переносим всё в папку с модом, на свои места (Mpq в папку Mpqs; Аддоны в папку Addons; Manifest, логотип и иконки просто в папку мода).
Параметры Manifest'а:
  • ModName - Отвечает за название мода;
  • ModIcon - Отвечает за название файла-иконки мода (расширение не указывать, т.к всегда .ico);
  • ModVersion - Отвечает за отображаемую версию мода в главном меню;
  • Preview - Отвечает появление логотипа мода при запуске, имеет 3 дочерних параметра, из которых 2 обязательных: Logo (аналогично с иконкой, расширение .bmp), Info (отображаемая информация), и 1 необязательный - enable (true/false);
  • Mpqs - Отвечает за подгрузку mpq, является массивом с объектами, имеющими 2 дочерних параметра, из которых Name - обязательный, отвечающий за название mpq, и Priority - необязательный, отвечающий за приоритет подгрузки, в случае отсутствия выдаётся автоматически из сложения максимального приоритета и единицы;
  • Addons - Отвечает за подключение аддонов, является массивом с объектами, имеющими 2 обязательных параметра: Name - название аддона (без расширения, т.к по стандарту .dll) и Enable (true/false);
  • Races - Отвечает за подгрузку рас, является массивом с объектами, имеющими 2 обязательных параметра: Skin - название расы, находящееся в war3skins.txt и RaceKey - название расы, расположенное в GlobalStrings.fdf.

Шаг 2: Прописываем в аргументы параметр -mod <Название папки мода> и наслаждаемся игрой.
Инструкция по созданию аддонов
В разработке...
`
LOADING AD...
0
2
0
Я пытался установить расы на клиент с установленным MM Engine, но в игре не отображались расы...
0
19
0
Noncloud, расскажите порядок совершенных вами действий.
0
8
0
Возможно вопрос странный, но есть ли способ интегрировать ММ Engine с RenderEdge?
Или можно передать лаунчер RenderEdge как нестандартный WC3?
0
19
0
Evolving:
Возможно вопрос странный, но есть ли способ интегрировать ММ Engine с RenderEdge?
Или можно передать лаунчер RenderEdge как нестандартный WC3?
Скоро RenderEdge будет портирован, как аддон.
0
33
0
Ev3nt, ты же в курсе про мемхак и его функционал? есть ли вероятность что ты вошьешь мемхак прям в редактор, и сделаешь его либо нативным либо вообще на гуи функциях?
2
19
2
Bergi_Bear:
Ev3nt, ты же в курсе про мемхак и его функционал? есть ли вероятность что ты вошьешь мемхак прям в редактор, и сделаешь его либо нативным либо вообще на гуи функциях?
Можно.
0
33
0
Ev3nt, я вот думаю что даже сам мемхак не нужен, ты можешь просто сделать свою альтернативу, самый простые примеры броня и тип брони юнита, которые на лету менются у них самый простейший адрес, он никуда не спрятан глубоко, думаю тебе вообще раз плюнуть будет сделать такое
0
19
0
Bergi_Bear, в идеале можно добавить jass функцию для подгрузки/выгрузки dll.

Ну и новый тип данных DLL, основанный на handle.
0
12
0
Никто не тестил как работают кастомные рудники на основе рудников нежити и ночных эльфов? Те что будут выставлены на старте этим модом будут работать также как стандартные рудники, или возникнет баг, когда при смерти рудника не остается обычный рудник.
1
19
1
Poll: Как, по вашему мнению, следует опубликовать API (заголовки и lib)?
1. 
Как отдельный ресурс
2. 
В комплекте с MME
3. 
На главной, в отдельном архиве
1
24
1
Я хотел "В комплекте с ММЕ"
2
18
2
Под катом на главной и внутри ММЕ
1
19
1
PAMEXI, Vlod, готово, в архиве с MME и на странице аддонов. Исходники аддонов и инструкции появятся позже.
0
19
0
На днях(сегодня) тестировал lua, компилил и эксперементировал, и тут всплыл вопрос, как вы к нему относитесь?/ Если хотите, опишите его лучшие черты.
Poll: Lua?
1. 
GUI топ
2. 
JASS лучше
3. 
Lua лучше
0
33
0
Ev3nt, щас будет срач... такие опросы лучше не устраивать
0
19
0
Bergi_Bear, но мне это нужно, чтобы решить дилемму с MME.
1
33
1
Просто если луа будет в итоге конвертироваться в jass на 126 патче, я не вижу смысла его применения вообще, естественно лучше оставить jass.. И я говорю о применимости луа к 126 патчу и к ММЕ в целом

Появление луа в 126 заставит меня задуматься о возвращении, но опять таки какое именно луа... Как там у китайцев всё прикручено?
3
12
3
Ev3nt, предлагаю не мудрить с луа. Поскольку мод в основном для милишек, то смысла в хитрых jass/lua системах не видно от слова совсем. Тем более есть render edge, из которого можно будет кастомный UI слепить.
1
33
1
Ikobot, вот именно, это вообще ничего не даст... только гемороя добавит... я просто даже не представляю как кложур на луа превратиться в jass ? хештаблица появиться? глобалки нарисуются? что это вообще будет?
1
12
1
Bergi_Bear, ну он может конечно попробовать пошаманить, оставив это для извращенцев, которые будут делать рпг-карты, где раса - это выбор героя в лобби. Что к слову довольно интересно будет выглядеть. Но если будет мили-мод, то уже как выше описал.
В последнее время с этим lua люди носятся как дурни с писанными торбами. Я против языка ничего против не имею, но пихать это куда попало - не лучшая затея. Если кому-то надо будет, лучше как отдельную либу/аддон/версию.
А в основе пусть останутся gui и jass.
0
19
0
Bergi_Bear, Ikobot, спасибо, что поделились мнением. На самом деле, jass и lua похожи. Jass просто по скрипту читает и видя функцию прописанную также в C++, ссылается на неё. С lua также можно поступить, но, как мне кажется, никому не захочется делать 1000+ регистраций функций lua к C++, да что уж говорить, делая возможность использовать JAPI, я замучилсч добавлять DS во все 1000+ функций, чтобы показать, что это экспортируемая часть кода.
0
18
0
Bergi_Bear, Ikobot, вы о чем, что насчет этого
2 comments deleted
1
33
1
Само перспективно по моему мнению, это добавление мемхак функций на гуи, вот это будет бомба, чтобы ММЕ могли пользоваться нормальные люди... + переписывание утечных BJ функций..... Чтобы для гуишников ничего не поменялось, а на деле внутри нет утечек элементарных точек и групп

надо за гуи переголосовать, блин
To leave a comment please sign in to the site.