Добавлен , опубликован

О 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 <Название папки мода> и наслаждаемся игрой.
Инструкция по созданию аддонов
В разработке...
`
ОЖИДАНИЕ РЕКЛАМЫ...
19
Bergi_Bear, тобишь BJ функции реализовать, как нативки, в коде?
33
Ev3nt, да только модифицированные

или сделать чтобы гуи сразу вызывало начальные функции вместо обёрток BJ
24
GUI для 90% задач мапмейкера и так топ, а Jass и Lua как по мне это больше для тонкой настройкой нестандартных скилов и всё.
32
Чето вас потянуло на всякие интерпритаторы, iseFog уже сделал набор - сделай карту на Dll, теперь тут сделай 1.26 на луа.
Не то делайте, сделали бы конвертор луа >в 1.26, чтобы народ мог перенести с 1.31 карту без потери функционала.
Ну и писать на с++ дллку, это пока видится перспективным лишь с целью защиты карты.
33
quq_CCCP, Мне очень интересно как будет вот этот элементарный кложур выглядить на Jass
local i=0
TimerStart(CreateTimer(), 1, true, function()
	i=i+1
end )
Для этого минимум нужна хештаблица и сохранение переменной i на хендл таймера...Удачки проворачивать такие конверты
А особено удачи в новых функциях, аналогов которых нет на мемхаке, например локальные события мыши или импуты клавиш, которые сами синхронятся...
Или же я не прав и луа в мемхаке выглядит несколько иначе? и адаптация карт с 131 на 126 выглядит тоже совсем не так?
32
Bergi_Bear, что значит нет аналогов на мемхаке? Сторонняя длл, караулов давненько быстый синх завез. Код будет конвертироваться иначе, т.к тут идет именно копирование логики работы скрипта а не копирование всяких фитчей языка. Тут луа лишь список инструкций, которые будут воспроизведены на с, компилированы и выполнятся движкой на прямую, эта штука что выложил айсфог не ограничена вирутальной машиной и имеет доступ к всем функциям game.dll, а так же подгружает свои.
5
Я такой человек который не раз не мог, нормально создать свою расу, и вот в чем были ошибки
Список того чего делать нельзя:
1.Лишние скобки,пробелы,точки в каждом пункте новой расы в файле blizzard.j.
2.Можно прописать меньше 4-х героев,но если у вас допустим 3 героя, то в 4 строке героя нужно прописать вместо ID, алгоритм Null.
3.Проверяйте каждый файл(возможно вы где то что-то не дописали,допустили ошибку)
19

MM Engine (Version 2.0.0 Test Build) - Custom Map Icon System

Давно хотел сделать подобную штуку, видел это в нирване, но реализация не понравилась, т.к картинка бралась из mpq, а не из карты, к тому же создавалась новая подпись. И вот я решил сделать свой вариант подобной системы, иконка берется из карты.
Загруженные файлы
Этот комментарий удален
27
quq_CCCP, ну я вот на мемхаке замучался. Хотел рабочие функции, но некоторые либо не работали как надо, или вызывали криты. Мне лично хотелось видеть только огромный набор рабочих функции почти на все, но не их производные функции (очень сильно отвлекают, было бы хорошо их скрыть как не нужное пользователю. А то при поиске всегда на производные натыкаюсь). И да чтобы собрать функцию, приходилось просить помощи. От одного один код, от другого другой код, и надо встроить было в свою систему. И с этими же функциями и прочих производных и переменных вставлять надо было, и да часто код разный от сборки к сборке, названия функции чуть отредактировали, и в старой сборке скопированная функция не работала уже. приходилось заниматься собственной сборкой, чем картостроительством. это для шарящих юзеров, чем для просто простых юзеров. неизвестно откуда вы берете информацию про ту или иную возможность. пришлось забросить, хорошо бы хорошую сборку иметь.
9
Проекту критически не хватает внятного пользовательского интерфейса. Я не хочу никуда писать ни в какие конфиги, я хочу поставить галочку "включить такой-то мод" и запустить игру.
И ещё - "краткость - сестра таланта" не используется при описании установки. Как устанавливать аддоны? Что значит "добавить в пункт Addons?"
22
Если работа ведется на C#, то могу сделать лаунчер для автообновлений, у меня дома статический IP. Как временное решение - можно использовать.
19
Tovio, это, и еще много чего нового, будет ждать вас в MME (Version 2.0.0).
19
Идёт набор в команду разработки, желающим писать в лс.
7
Привет. ВОпросы! Написано, "Из скачанного нами ранее MM Engine.mpq достаем Blizzard.j и common.j."
Скачал твои MME открываю с помощью mpq эдитора, нет файла blizzard.j.
там есть только ненужный commo.j
где взять файл blizzard.j ??????????
19
mistwood, всё просто, при переработке мода, bj не потерпел никаких изменений. Вы можете спокойно использовать оригинальный bj из war3patch.mpq.
7
Ev3nt:
mistwood, всё просто, при переработке мода, bj не потерпел никаких изменений. Вы можете спокойно использовать оригинальный bj из war3patch.mpq.
сохраняем его там же так?
Удалите тогда текст, что он в архиве с модом лежит.
И я бы перезаписал видео как запустить кастомную расу на новом моде. Старое видео уже не работает.
19
mistwood, в данный момент нет времени, чтобы заниматься всем этим.
1
Здравствуйте! Когда-то была карта, где было около 52 героев в Дополнительно->Игровые константы->Зависимости (Герои). Но добавить больше он не давал - какой-нибудь герой удалялся из этого списка, из-за чего он переставал считаться игрой героем (но его можно было купить один раз).
Так вот, вопрос: можно ли как-нибудь увеличить количество возможных героев в mpq для MMEngine'а? Или это уже предусмотрено, и можно просто записывать в условный war3mapMisc.txt?
19
YuKei, здравствуйте. Вы можете как использовать war3mapMisc.txt или war3campaignMisc.txt (или как там его), так и прописать ваших героев в blizzard.j, у них там происходит некая регистрация. Надеюсь, я смог ответить на ваш вопрос.
1
Ev3nt, спасибо за ответ! Ещё один вопрос: возможно ли как-то создавать в mpq абсолютно новые голоса? То есть, не заменять существующие, а именно добавить новые.
7
YuKei:
Ev3nt, спасибо за ответ! Ещё один вопрос: возможно ли как-то создавать в mpq абсолютно новые голоса? То есть, не заменять существующие, а именно добавить новые.
КОнечно можно. Через любой редактор мпкю добавляешь правильно обработанные тобой голоса, и в редакторе вызываешь их через путь куда ты их положил. Разумеется проверь чтоб они отображались/звучали в игре. (правильно записать звук сложно) на форуме была тема, где парень расписывал как он мучался с тем чтоб его запись отображалась/звучала в игре..
34
Ознакомился со всей мощью мода на примере проекта Красного Товарища. Да это действительно сильный инструмент. Причём расы все работают. Они строятся. Развиваются. Вобщем ИИ присутствует.
19
PUVer, я рад, что вам понравилось😁. На самом деле развитие ботов (ИИ) зависит не от MME, т.к. он лишь даёт возможность полноценно реализовать расу, всё остальное зависит от юзверя.
7
PUVer, я рад, что вам понравилось😁. На самом деле развитие ботов (ИИ) зависит не от MME, т.к. он лишь даёт возможность полноценно реализовать расу, всё остальное зависит от юзверя.
есть ли сейчас последняя актуальная версия программы (где скачать?). и верно ли я понимаю что процесс в статье работает и для создания рас на новых версиях ММЕ. ? гайд какой вообще есть или статья актуальна?
Чтобы оставить комментарий, пожалуйста, войдите на сайт.