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

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

Показан только небольшой набор комментариев вокруг указанного. Перейти к актуальным.
0
19
4 года назад
Отредактирован Ev3nt
0
Bergi_Bear, Ikobot, спасибо, что поделились мнением. На самом деле, jass и lua похожи. Jass просто по скрипту читает и видя функцию прописанную также в C++, ссылается на неё. С lua также можно поступить, но, как мне кажется, никому не захочется делать 1000+ регистраций функций lua к C++, да что уж говорить, делая возможность использовать JAPI, я замучилсч добавлять DS во все 1000+ функций, чтобы показать, что это экспортируемая часть кода.
0
17
4 года назад
Отредактирован Vlod
0
Bergi_Bear, Ikobot, вы о чем, что насчет этого
2 комментария удалено
1
32
4 года назад
1
Само перспективно по моему мнению, это добавление мемхак функций на гуи, вот это будет бомба, чтобы ММЕ могли пользоваться нормальные люди... + переписывание утечных BJ функций..... Чтобы для гуишников ничего не поменялось, а на деле внутри нет утечек элементарных точек и групп

надо за гуи переголосовать, блин
0
19
4 года назад
0
Bergi_Bear, тобишь BJ функции реализовать, как нативки, в коде?
0
32
4 года назад
0
Ev3nt, да только модифицированные

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