В общем речь идёт о том изображении, которое появляется во время запуска игры (злой Артес и лого).
Что нужно:
Заменить это изображение так, чтобы оно отображалось только в моде
Что я пробовал:
  1. Создавать .sph файл.
Юзал этот мини туториал
Файл с рисунком-логотипом вашего мода. Помните, как при загрузке
TFT возникает окошко с мордой Артеса с надписью? Так вот, пускатель
позволяет и в ваш мод ввести нечто подобное. Этот файл должен
иметь то же имя, что и exe-файл, но его расширение должно быть sph.
Например, если вы назвали exe пускателя MySuperMod.exe, то этот
файл должен иметь расширение MySuperMod.sph.
Формат этого рисунка можеть быть bmp/ico/wmf/emf/jpg/gif. Но
расширение ВСЁ РАВНО ДОЛЖНО БЫТЬ sph. Пускатель, найдя этот файл,
сам распознает его формат. (В комплекте с пускателем идёт файл-
пример launcher.sph - можете сделать ваши лого по аналогии).
Размеры рисунка могут быть любыми - лишь бы на экран влезало.
Пусатель автоматически разместит рисунок по центру экрана.
Если файла с рисунком найти не удаётся, то War всё равно запустится,
но без вашего лого.
Кидал в папку с игрой, пробовал разные форматы - нет изменений
  1. Добавлять изображение в экзешник мода с помощью ResHack - нет изменений
  2. Добавлять изображение в экзешник игры с помощью ResHack и уже потом создавать на его основе экзешник мода - всё работает, но после ремува изображения из экзешника игры - в экзешнике мода также ремувается, так что не вариант.
В общем если кто знает как сделать это нормально (и кто вообще знает как запилить нормальный экзешник для мода по типу Union of High Elves) - пожалуйста ответьте.

Принятый ответ

Aws, вот, чтобы заменить картинку на свою, перед компиляцией нужно заменить файл Splash.bmp на свой с тем же названием.
Функция ShowSplash(HINSTANCE hInst, int resID, DWORD dwMilliseconds) показывает изображение перед запуском варкрафта в течении dwMilliseconds миллисекунд, остальное менять не нужно.
А иконку и описание программы, думаю сами сможете сделать.
Загруженные файлы
`
ОЖИДАНИЕ РЕКЛАМЫ...
0
19
8 лет назад
0
Существует какая то прога, но я не помню её название.
Она позволяет заменять эти дела как пожелаешь.
В общем, может в комментах подскажут название, делай упор в поиск программы.
0
28
8 лет назад
Отредактирован Aws
0
Darknessay, ну вот я res hack юзал, но не пашет, если чейнджить экзешник мода изменений нет вообще.
2
13
8 лет назад
2
Aws, у вас установлена Visual Studio? Я завтра скину исходники проекта своего лончера, правда я сделал загрузку только .bmp формата изображения.
0
28
8 лет назад
0
ENAleksey, Да, давай. У меня стартовое изображение подготовлено в 4-х форматах, включая bmp.
2
13
8 лет назад
2
Aws, вот, чтобы заменить картинку на свою, перед компиляцией нужно заменить файл Splash.bmp на свой с тем же названием.
Функция ShowSplash(HINSTANCE hInst, int resID, DWORD dwMilliseconds) показывает изображение перед запуском варкрафта в течении dwMilliseconds миллисекунд, остальное менять не нужно.
А иконку и описание программы, думаю сами сможете сделать.
Загруженные файлы
Принятый ответ
0
28
8 лет назад
0
ENAleksey, Стартовая пикча пашет, огромное спасибо, осталось разобраться как присобачить к этому экзешнику нужную мпкьюшку.
0
13
8 лет назад
Отредактирован ENAleksey
0
Aws, ну, у меня получилось сделать загрузку .mpq, но только через дополнительную библиотеку, так как сразу же после создания процесса game.dll ещё не загружена. Завтра ещё попробую, может получится сделать без необходимости таскать с собой дополнительную .dll.
Вот код загрузки своих .mpq архивов:
typedef bool (CALLBACK* SFileOpenArchive)(const char* szMpqName, DWORD dwPriority, DWORD dwFlags, HANDLE* phMPQ);

void LoadMpq(char *mpqname)
{
	UINT priority = 0x10;
	HANDLE hMPQ;

	SFileOpenArchive OpenArchive = (SFileOpenArchive)((DWORD)GetModuleHandle("game.dll") + 0x006EB57C);
	if (!OpenArchive)
		MessageBox(0, "Could not find SFileOpenArchive", 0, 0);

	if (!OpenArchive(mpqname, priority, 0, &hMPQ))
		MessageBox(0, "Could not open archive", 0, 0);
}
Чтобы оставить комментарий, пожалуйста, войдите на сайт.