MM Engine

» опубликован

О MM Engine


MM Engine - это крупная модификация, дополняющая оригинальный WC3 такими возможностями, как подгрузка кастомных mpq на уровне War3Patch.mpq; добавление кастомных рас, включая интерфейс и озвучку; создание своих кампаний на уровне оригинальных и многое другое!
Текущая версия: 1.1.1 (Release)
» Список изменений
*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 - Пофикшен баг с добавлением расы в мод.
Требования:
» Демонстрация функционала мода, на примере образца(Naga Race)
Изменение версии WC3
Выбор рас в игровом лобби
Отображение названия и экрана загрузки рас
Спавн нестандартных юнитов расы
Работа ИИ ботов
Отображение нестандартного текста при нехватки пищи
Отображение нестандартного текста при отсутствии ратуши
Постройка нестандартных ратуш с использованием шкатулки вождей
Отображение иконок рас в меню результатов
Функционирование реплеев
  • Скачать демонстрационный мод на расу наг можно Тут.
» Демонстрация функционала мода, на примере образца(Custom Campaign)
Добавление новых кампаний, как основных
  • Скачать демонстрационный мод на новую кампанию можно Тут.
Планы и результаты

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

» Установка
MM Engine:
Перенести мод в папку с Warcraft III - TFT.
Модов:
Для установки модов поверх MM Engine, перенесите mpq и прилигающий к нем bat в папку с Warcraft(где установлен MM Engine). Для запуска мода, запустите недавно перенесённый bat файл.
Аддонов:
Для установки аддона, загрузите его в папку "Addons", в корне Warcraft, указать аддон в "MM Engine.cfg", добавив его в пункт "Addons".
Чтобы привязать аддон к моду, повторите те же самые действия с самим модом.
Для отключения пользовательских аддонов (не привязанных к моду), используйте параметр "AllowAddons" со значением 0.
» Инструкция по созданию модов
Создание bat файла, для запуска мода:
Создаем txt файл. Открываем его через текстовый редактор, а после, вставляем данные строки:
""start .\"MM Engine.exe" -version (Название мода, которое будет отображаться в главном меню) -mpqs (Имена mpq архивов, которые будут подгружены к игре. В конце каждого имени писать .mpq) -races (Имена рас, записанные в war3skins, включая стандартные. Писать через запятую, без пробелов) -racesnames (Имена рас, записанные в GlobalStrings.fdf. Писать через запятую, без пробелов)""
Добавление новой кампании:
Шаг 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: Создание .bat и завершение
Шаг 1: В новой версии MM Engine присутствует два способа создание модов, один из них представлен ниже. Создаем .bat, в который прописываем команду запуска MM Engine.exe с нужными параметрами. –version отвечает за отображение версии в меню игры. –mpqs за подгрузку mpq архивов(Их может быть более одного). Подгружаются архивы со стандартным приоритетом 9, для изменения приоритета пишем –priorities приоритеты в порядке следования mpq. –races отвечает за изменения интерфейса в игре. –racesnames отвечает за отображение названия расы при загрузке игры.

Шаг 2: Переносим всё в наш mpq и наслаждаемся игрой.
» Инструкция по созданию аддонов
В разработке...


Просмотров: 11 370



» Лучшие комментарии


Noncloud #51 - 4 месяца назад 0
Я пытался установить расы на клиент с установленным MM Engine, но в игре не отображались расы...
Ev3nt #52 - 4 месяца назад 0
Noncloud, расскажите порядок совершенных вами действий.
Evolving #53 - 4 месяца назад (отредактировано ) 0
Возможно вопрос странный, но есть ли способ интегрировать ММ Engine с RenderEdge?
Или можно передать лаунчер RenderEdge как нестандартный WC3?
Ev3nt #54 - 4 месяца назад 0
Evolving:
Возможно вопрос странный, но есть ли способ интегрировать ММ Engine с RenderEdge?
Или можно передать лаунчер RenderEdge как нестандартный WC3?
Скоро RenderEdge будет портирован, как аддон.
Bergi_Bear #55 - 4 месяца назад 0
Ev3nt, ты же в курсе про мемхак и его функционал? есть ли вероятность что ты вошьешь мемхак прям в редактор, и сделаешь его либо нативным либо вообще на гуи функциях?
Ev3nt #56 - 4 месяца назад 1   
Bergi_Bear:
Ev3nt, ты же в курсе про мемхак и его функционал? есть ли вероятность что ты вошьешь мемхак прям в редактор, и сделаешь его либо нативным либо вообще на гуи функциях?
Можно.
Bergi_Bear #57 - 4 месяца назад 0
Ev3nt, я вот думаю что даже сам мемхак не нужен, ты можешь просто сделать свою альтернативу, самый простые примеры броня и тип брони юнита, которые на лету менются у них самый простейший адрес, он никуда не спрятан глубоко, думаю тебе вообще раз плюнуть будет сделать такое
Ev3nt #58 - 4 месяца назад (отредактировано ) 0
Bergi_Bear, в идеале можно добавить jass функцию для подгрузки/выгрузки dll.

Ну и новый тип данных DLL, основанный на handle.
Ikobot #59 - 4 месяца назад 0
Никто не тестил как работают кастомные рудники на основе рудников нежити и ночных эльфов? Те что будут выставлены на старте этим модом будут работать также как стандартные рудники, или возникнет баг, когда при смерти рудника не остается обычный рудник.
Ev3nt #60 - 3 месяца назад (отредактировано ) 1   
Опрос: Как, по вашему мнению, следует опубликовать API (заголовки и lib)?

Всего проголосовали: 15
PAMEXI #61 - 3 месяца назад 1   
Я хотел "В комплекте с ММЕ"
Vlod #62 - 3 месяца назад 2   
Под катом на главной и внутри ММЕ
Ev3nt #63 - 3 месяца назад (отредактировано ) 1   
PAMEXI, Vlod, готово, в архиве с MME и на странице аддонов. Исходники аддонов и инструкции появятся позже.
Ev3nt #64 - 2 месяца назад (отредактировано ) 0
На днях(сегодня) тестировал lua, компилил и эксперементировал, и тут всплыл вопрос, как вы к нему относитесь?/ Если хотите, опишите его лучшие черты.
Опрос: Lua?

Всего проголосовали: 16
Bergi_Bear #65 - 2 месяца назад (отредактировано ) 0
Ev3nt, щас будет срач... такие опросы лучше не устраивать
Ev3nt #66 - 2 месяца назад 0
Bergi_Bear, но мне это нужно, чтобы решить дилемму с MME.
Bergi_Bear #67 - 2 месяца назад (отредактировано ) 1   
Просто если луа будет в итоге конвертироваться в jass на 126 патче, я не вижу смысла его применения вообще, естественно лучше оставить jass.. И я говорю о применимости луа к 126 патчу и к ММЕ в целом

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

надо за гуи переголосовать, блин
Ev3nt #76 - 2 месяца назад 0
Bergi_Bear, тобишь BJ функции реализовать, как нативки, в коде?
Bergi_Bear #77 - 2 месяца назад 0
Ev3nt, да только модифицированные

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

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

Давно хотел сделать подобную штуку, видел это в нирване, но реализация не понравилась, т.к картинка бралась из mpq, а не из карты, к тому же создавалась новая подпись. И вот я решил сделать свой вариант подобной системы, иконка берется из карты.
Прикрепленные файлы
Это сообщение удалено
МрачныйВорон #85 - 4 недели назад (отредактировано ) 1   
quq_CCCP, ну я вот на мемхаке замучался. Хотел рабочие функции, но некоторые либо не работали как надо, или вызывали криты. Мне лично хотелось видеть только огромный набор рабочих функции почти на все, но не их производные функции (очень сильно отвлекают, было бы хорошо их скрыть как не нужное пользователю. А то при поиске всегда на производные натыкаюсь). И да чтобы собрать функцию, приходилось просить помощи. От одного один код, от другого другой код, и надо встроить было в свою систему. И с этими же функциями и прочих производных и переменных вставлять надо было, и да часто код разный от сборки к сборке, названия функции чуть отредактировали, и в старой сборке скопированная функция не работала уже. приходилось заниматься собственной сборкой, чем картостроительством. это для шарящих юзеров, чем для просто простых юзеров. неизвестно откуда вы берете информацию про ту или иную возможность. пришлось забросить, хорошо бы хорошую сборку иметь.