26.12.2021, 20:45
26.12.2021, 22:28
Там давно должна быть надпись ERA, а не "Во имя богов"
26.12.2021, 22:41
(26.12.2021 22:28)Elmore Wrote: [ -> ]Там давно должна быть надпись ERA, а не "Во имя богов"
Пока что WoG от ERA неотделим, тот же экзешник - целиком воговский, поэтому можно сказать, что ERA - только платформа для модов, а WoG - собственно неофициальный аддон с соотвествующим логотипом "Во Имя Богов" (но как его нарисовали в русской локализации, мне кардинально не нравится, поэтому использую английскую в ERA+).
27.12.2021, 15:34
Раз больше голосов нет делаю версию берсеркера)
27.12.2021, 15:52
Как-то делал разные эскизы и наброски, вдруг пригодятся...
Файл *.psd (Adobe Photoshop)



Файл *.psd (Adobe Photoshop)
Картинки (Click to View)



27.12.2021, 15:55
Люблю демократию 

27.12.2021, 16:01
Sandris, впечатляет

27.12.2021, 16:07
Sandris, Спасибо большое!!!
27.12.2021, 16:08
Мне нравится эта надпись of might and magic за её отличную читабельность


27.12.2021, 16:46
Как вам?


27.12.2021, 17:23
suftfree, на первую полосу
27.12.2021, 18:20
По мне так слишком много золота/шика/лощённости. Вариант Elmore таки поддержку. Самый классичный, читаемый и в меру броский.
27.12.2021, 19:04
А я, au contraire, поддерживаю лоск и свежесть 32-bit.
Вариант от 3DO подходит лишь для одной картинки - оригинального фона. Стало быть, мнения разделились. Предлагаю крайне интересный вариант - добавить плагином pcx16 элемент для главного меню, который будет заменяться логотипом. Что касается остальных фонов - использовать миниатюрный логотип где-нибудь в углу, образ которого не будет привлекать внимания и позволит насладиться красочными и сочными фонами (которые через 100 мс пропадут из-за загрузки карты
)
Вариант от 3DO подходит лишь для одной картинки - оригинального фона. Стало быть, мнения разделились. Предлагаю крайне интересный вариант - добавить плагином pcx16 элемент для главного меню, который будет заменяться логотипом. Что касается остальных фонов - использовать миниатюрный логотип где-нибудь в углу, образ которого не будет привлекать внимания и позволит насладиться красочными и сочными фонами (которые через 100 мс пропадут из-за загрузки карты

27.12.2021, 20:12
Выделить лого в отдельное изображение — лучшее решение.
02.08.2022, 10:00
Я вижу, этот злополучный квадратик опять вылез.
Кажется, я знаю, как избавиться от него раз и навсегда.
Плагин: https://disk.yandex.ru/d/kHWk7RdSQ_oNng
Плагин полностью отвязывает показ кредитов в главном меню от воспроизведения видео,
и теперь вместо acredit.bik и acredit.smk можно использовать файлы-заглушки нулевого размера или отключать воспроизведение видео в json-конфиге (ранее при этом переставала работать кнопка "Авторы").
Само воспроизведение анимации плагин не затрагивает, она продолжает работать, если есть.
Дополнительно избавляет от необходимости использовать рамку zmainmen.pcx.
Предлагаю протестировать.
(модифицированный код из WND)
Кажется, я знаю, как избавиться от него раз и навсегда.
Плагин: https://disk.yandex.ru/d/kHWk7RdSQ_oNng
Плагин полностью отвязывает показ кредитов в главном меню от воспроизведения видео,
и теперь вместо acredit.bik и acredit.smk можно использовать файлы-заглушки нулевого размера или отключать воспроизведение видео в json-конфиге (ранее при этом переставала работать кнопка "Авторы").
Само воспроизведение анимации плагин не затрагивает, она продолжает работать, если есть.
Дополнительно избавляет от необходимости использовать рамку zmainmen.pcx.
Предлагаю протестировать.
Исходник: (Click to View)
PHP Code:
#include "..\..\include\homm3.h"
Patcher* _P;
PatcherInstance* _PI;
_dword_ timeDlgCreditsSmoothly = 0;
// подменяем вызов функции sub_00597C30 по адресу 0x4EE674,
// в оригинале sub_00597C30 проверяет, воспроизводится ли видео
char __cdecl hook_call_sub_00597C30()
{
if (o_GetTime() > timeDlgCreditsSmoothly + 15)
{
timeDlgCreditsSmoothly = o_GetTime();
return 1;
}
else return 0;
}
// вместо mainmenu.pcx рисуем часть GamSelBk.pcx
int __stdcall Draw_GamSelBk(HiHook* hook, int pcx, int srcX, int srcY, int width, int height, int buffer, int x, int y, int maxX, int maxY, int scanline, int TransparentColor)
{
return CALL_12(int, __thiscall, hook->GetDefaultFunc(), *(int*)0x699568, 460, 0, 340, 600, buffer, x, y, maxX, maxY, scanline, TransparentColor);
}
int __stdcall ApplyPatchesInWinMain(LoHook* h, HookContext* c)
{
//отменяем хук wnd
_P->UndoAllAt(0x4EE674);
//и пишем свой
_PI->WriteHiHook(0x4EE674, CALL_, DIRECT_, CDECL_, hook_call_sub_00597C30);
// более плавное отображение credits /код из wnd, на случай, если wnd отключен)
_PI->WriteByte(0x4EE6C0 +2, 1);
_PI->WriteByte(0x4EE716 +2, 1);
_PI->WriteByte(0x4EE75E +2, 1);
_PI->WriteByte(0x4EE761 +2, 1);
//забиваем нопами проверку VideoPlaying() /делаем бесконечный цикл
_PI->WriteHexPatch(0x4EE61E, "9090909090 9090 909090909090");
// избавляемся от mainmenu.pcx
_PI->WriteHiHook(0x4EF7EF, CALL_, EXTENDED_, THISCALL_, Draw_GamSelBk);
return EXEC_DEFAULT;
}
BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
static _bool_ plugin_On = 0;
switch (ul_reason_for_call)
{
case DLL_PROCESS_ATTACH:
if (!plugin_On)
{
plugin_On = 1;
_P = GetPatcher();
_PI = _P->CreateInstance("credits unlink");
_PI->WriteLoHook(0x4F812E, ApplyPatchesInWinMain);
}
break;
case DLL_THREAD_ATTACH:
case DLL_THREAD_DETACH:
case DLL_PROCESS_DETACH:
break;
}
return TRUE;
}