19

» MM Engine / MM Engine

8gabriel8:
То есть 400 максимум, 100 ведь максимальный хандикап? Тем не менее даже 40 хватило бы за глаза. Насколько известно, самое большое количество рас сейчас в карте 23 расы, там их больше 23, но меньше 40. И хотя было бы очень круто, вряд ли кто ещё будет делать хотя бы 100 рас.
Согласен, 40 рас вполне достаточно.
19

» MM Engine / MM Engine

8gabriel8:
Araders:
ClotPh, меню рас не имеет прокрутки так что расы можно добавлять только до тех пор пока меню не выйдет за пределы экрана.
Нельзя более 40 рас, включая стандартные. Это сделано через handicap (установку процентов жизни юнитов перед началом игры, которая идёт последним пунктом в опциях игрока).
Ошибочка, там хандикап идет ее по процентам(100,90,80...), а по целым числам(100,1,2,3,4...), это можно понять, посмотрев mme.j.
19

» MM Engine / MM Engine

Araders:
ClotPh, меню рас не имеет прокрутки так что расы можно добавлять только до тех пор пока меню не выйдет за пределы экрана.
Знаю. Пробую добавить scroll как в новых патчах Warcraft.
19

» XGM Team / XGM — Премия 2019 года

Мод был создан в конце 2017 года, но огромного успеха он добился недавно. Называется мод MM Engine.
Ссылка на мод - xgm.guru/p/mmengine
Я занялся деятельностью на этом сайте недавно, но хочу показать себя в роли хорошего разработчика, моддера, а также дать людям возможность добавлять свои наработки в Warcraft за счет данного мода. Мы должны показать, что хоть Warcraft уже старая игра, но фанаты её любят и будут любить!
Вот я загнул)
19

» MM Engine / MM Engine

8gabriel8:
Даже поддержку других игровых движков запилят! Вот надоест тебе движок Рефорджед, подключаешь, например, движок Skyrim'а и всё
Мы недопоняли друг друга.
19

» MM Engine / MM Engine

8gabriel8:
Они сделают встроенной поддержку дополнительных архивов и хаков)))
Именно) Еще плагинов, аддонов, и доп. библиотек прилагающихся к каждому моду(включая конфиги с их настройками).
19

» MM Engine / MM Engine

Araders:
Obelick:
пиратский варик вероятно умрет полностью.
Не умрет, ибо существуют такие люди как я у которых комп по сегодняшних мерках чуть лучше ведра с болтами, мой худший кошмар на сегодня это то что у меня не потянет рефордж и придется завязать с модмейкингом. Планирую по возможности купить новый ноут, в следующем году надеюсь собрать нужные средства.
Выпустят рефордж, и к нему найдут способ подгружать кастомные dll и mpq :D
19

» MM Engine / MM Engine

Obelick:
это очень круто, безусловно. Но как уже сказали, вышел мод слишком поздно, как и мемхак, по моему. Жаль такого не было в те времена, когда все играли в первую дотку и параллельно пилили мапы, а онлайн в гарене был 100к+
Этим можно побаловаться, но кой смысл пилить на перспективу, если меньше чем через год выйдет ревордж и пиратский варик вероятно умрет полностью.
Я с этим согласен, но в то время я был довольно мелким(лет 9 было), и я ничего не смог бы сделать.
19

» MM Engine / MM Engine

Araders:
Сейчас набежат люди и спросят: "А где вы были раньше?".
Ну, мод раньше( в году так 2017) был только на ранних версиях тестирования. Сейчас же, большинство функций реализованы, и я решил его опубликовать тут.
19

» Dragon May Cry / Новости по проекту Dragon May Cry: Падший Ангел

Shakral:
Ev3nt, этот смайл -> -_-, выглядит как будто ты это говоришь с сарказмом)
Нет, он говорит, что я заинтересован(задумался).
19

» Dragon May Cry / Новости по проекту Dragon May Cry: Падший Ангел

Хмм, интересно было бы увидеть это в виде отдельной расы в режиме "Сражения" -_-
19

» WarCraft 3 / Как создать программу для подключения своих mpq к Warcraft...

quq_CCCP:
Че обычный микс хак уже не катит?
Не, не подзотит для мода vk.com/warcraftiii_the_mod_makers
ENAleksey:
HMODULE address_StormBase;
uintptr_t address_OpenArchive;

template <typename ReturnType, typename FPType, typename A0, typename A1, typename A2, typename A3>
inline ReturnType std_call(FPType fp, A0 a0, A1 a1, A2 a2, A3 a3)
{
	typedef ReturnType(__stdcall *TFPAeroFunction)(A0 a0, A1 a1, A2 a2, A3 a3);
	return ((TFPAeroFunction)fp)(a0, a1, a2, a3);
}

int SFile_OpenArchive(const char* archiveName, DWORD dwPriority, DWORD dwFlags, HANDLE* pArchiveHandle)
{
	return std_call<int>(address_OpenArchive, archiveName, dwPriority, dwFlags, pArchiveHandle);
}

uint32_t mpqLoadPriority = 15;
void OpenArchive(const std::string& fileName, HANDLE* hMpq)
{
	SFile_OpenArchive(fileName.c_str(), mpqLoadPriority, 0, hMpq);
	mpqLoadPriority++;
}

void main()
{
	address_StormBase = GetModuleHandle("Storm.dll");
	address_OpenArchive = (uintptr_t)GetProcAddress(address_StormBase, "266");

	HANDLE myMpqHandle;
	OpenArchive("MyArchive.mpq", &myMpqHandle);
}
А это для c++, или для assembler, или дря другого?
ClotPh:
А почему просто в базовые war3.mpq и war3x.mpq не пихать, что надо?
Я мод делаю, mpq закончил, а подключить нечем(
ENAleksey:
HMODULE address_StormBase;
uintptr_t address_OpenArchive;

template <typename ReturnType, typename FPType, typename A0, typename A1, typename A2, typename A3>
inline ReturnType std_call(FPType fp, A0 a0, A1 a1, A2 a2, A3 a3)
{
	typedef ReturnType(__stdcall *TFPAeroFunction)(A0 a0, A1 a1, A2 a2, A3 a3);
	return ((TFPAeroFunction)fp)(a0, a1, a2, a3);
}

int SFile_OpenArchive(const char* archiveName, DWORD dwPriority, DWORD dwFlags, HANDLE* pArchiveHandle)
{
	return std_call<int>(address_OpenArchive, archiveName, dwPriority, dwFlags, pArchiveHandle);
}

uint32_t mpqLoadPriority = 15;
void OpenArchive(const std::string& fileName, HANDLE* hMpq)
{
	SFile_OpenArchive(fileName.c_str(), mpqLoadPriority, 0, hMpq);
	mpqLoadPriority++;
}

void main()
{
	address_StormBase = GetModuleHandle("Storm.dll");
	address_OpenArchive = (uintptr_t)GetProcAddress(address_StormBase, "266");

	HANDLE myMpqHandle;
	OpenArchive("MyArchive.mpq", &myMpqHandle);
}
ENAleksey:
HMODULE address_StormBase;
uintptr_t address_OpenArchive;

template <typename ReturnType, typename FPType, typename A0, typename A1, typename A2, typename A3>
inline ReturnType std_call(FPType fp, A0 a0, A1 a1, A2 a2, A3 a3)
{
	typedef ReturnType(__stdcall *TFPAeroFunction)(A0 a0, A1 a1, A2 a2, A3 a3);
	return ((TFPAeroFunction)fp)(a0, a1, a2, a3);
}

int SFile_OpenArchive(const char* archiveName, DWORD dwPriority, DWORD dwFlags, HANDLE* pArchiveHandle)
{
	return std_call<int>(address_OpenArchive, archiveName, dwPriority, dwFlags, pArchiveHandle);
}

uint32_t mpqLoadPriority = 15;
void OpenArchive(const std::string& fileName, HANDLE* hMpq)
{
	SFile_OpenArchive(fileName.c_str(), mpqLoadPriority, 0, hMpq);
	mpqLoadPriority++;
}

void main()
{
	address_StormBase = GetModuleHandle("Storm.dll");
	address_OpenArchive = (uintptr_t)GetProcAddress(address_StormBase, "266");

	HANDLE myMpqHandle;
	OpenArchive("MyArchive.mpq", &myMpqHandle);
}
Я видел твой проект, как ты сделал отдельный лаунчер для запуска dll, который подгружает mpq?
19

» Melee RTS Raganrok / Melee RTS Raganrok

Реализуете это ввиде мода, хотя стоп, я же этим и занимаюсь)
19

» WarCraft 3 / MPQ архивы Warcraft 3

Смотри, нужно работать в архивах, нужно создать новую строку в файле с переводами, она и будет названием папки, дальше, не помню в какой папке находятся все расы, тоесть альянс, орда, нежить, ночные эльфы, там копируете одну из частей и редактируйте под себя, а когда создаёте юнитов, вместо расы которая там указана, пишите название своей. Вроде всё просто)