Объявления

Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru.
Я оторву свою задницу от всех дел и обязательно Вас активирую! :smile10:
Добро пожаловать на геройский форум! :smile25:

Как создать плагин для HD мода

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 20 апр 2021, 21:56

С подкл плагином и картинками для подмены игра запускается, но после Новая игра - Одиночный сценарий вылетает и командная строка:
https://fastpic.ru/fullview/114/2021/04 ... a06a24.jpg
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 20 апр 2021, 22:00

У меня не вылетает. Может, не так код перенесли. А окно командной строки должно появляться. Скорее всего, это забытый код для дебага.

Изображение
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 20 апр 2021, 22:04

Вместо этого должен быть путь к папке, где находится плагин по идее:
d:\\3DO\\Heroes3\\_HD3_Data\\Packs\\ShowInfo\\11111111.pcx
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 20 апр 2021, 22:06

Покажите лучше Ваш код.
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 20 апр 2021, 22:08

Код: Выделить всё
#define _CRT_SECURE_NO_WARNINGS
#include "stdafx.h"
#include "HotA\homm3.h"

Patcher* _P;
PatcherInstance* _PI;
static _bool_ plugin_On = 0;

bool LoadingFromCustomFolder = false;

void showInfoStr(const char* format, ...)
{
   va_list args;
   va_start(args, format);

   vsprintf(o_TextBuffer, format, args);
   b_MsgBox(o_TextBuffer, MBX_OK);

   va_end(args);
}

int __stdcall showInfo(LoHook* h, HookContext* c)
{
   /* _Hero_* hero = &o_GameMgr->hero[o_ActivePlayer->selected_hero_id];

   showInfoStr("%08X", &o_GameMgr->hero[o_ActivePlayer->selected_hero_id].pic);

   o_HeroInfo[0].hpl_name = (_ptr_)"1.bmp"; */

   return EXEC_DEFAULT;
}

int __stdcall loadPcx(LoHook* h, HookContext* c)
{
   if (!strcmp((char*)c->ebx, "HPL000Kn.PCX"))
   {
      c->eax = (int)"d:\\3DO\\Heroes3\\_HD3_Data\\Packs\\ShowInfo\\11111111.pcx";
      c->ebx = (int)"d:\\3DO\\Heroes3\\_HD3_Data\\Packs\\ShowInfo\\11111111.pcx";
      LoadingFromCustomFolder = true;
   }

   return EXEC_DEFAULT;
}

int __stdcall fixPath(LoHook* h, HookContext* c)
{
   if (LoadingFromCustomFolder)
   {
      c->edi = (int)"";
      LoadingFromCustomFolder = false;
   }

   return EXEC_DEFAULT;
}

BOOL APIENTRY DllMain(HMODULE hModule, DWORD ul_reason_for_call, LPVOID lpReserved)
{
   if (DLL_PROCESS_ATTACH == ul_reason_for_call)
   {
      if (!plugin_On)
      {
         plugin_On = 1;
         _P = GetPatcher();
         _PI = _P->CreateInstance((char*)"HD.Plugin.ShowInfo");

         _PI->WriteLoHook(0x408994, showInfo);
         _PI->WriteLoHook(0x55AA88, loadPcx);
         _PI->WriteLoHook(0x44F602, fixPath);
      }
   }

   return TRUE;
}


У меня как бы сейчас вообще не один из портретов героев не отображается.
Последний раз редактировалось Rolex 20 апр 2021, 22:16, всего редактировалось 2 раз(а).
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 20 апр 2021, 22:09

Пропишите правильные пути к Вашей картинке для Orrin.

По поводу командной строки нужно обращаться к baratorch'у. Если это действительно забытый код для отлова багов, то он исправит. Иначе очень сложно: dll-ка, возможно, будет меняться при обновлении, и патчить её не очень хорошая идея.
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 20 апр 2021, 22:15

Прописал. Все равно получается маленькие картинки не отображаються, вообще пустота. А большие проверить не могу - при создании игры ловлю краш.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 20 апр 2021, 22:17

Маленькие и не должны. Вы же их в хук не прописали. А крэш из-за ошибки в пути, скорее всего. У Вас должен лежать правильный портрет PCX в папке, полный путь к которой Вы указали в плагине.
Вернуться к началу

offlineRolex  
имя: Alex
Ветеран
Ветеран
 
Сообщения: 898
Зарегистрирован: 22 сен 2020, 18:58
Откуда: УКРАИНА
Пол: Мужчина
Поблагодарили: 53 раз.

Re: Как создать плагин для HD мода

Сообщение Rolex » 20 апр 2021, 22:22

Если в пути есть пробелы, но путь в кавычках, норм или нет?
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5587
Зарегистрирован: 17 сен 2010, 12:58
Пол: Мужчина
Награды: 14
Высшая медаль (1) Победителю турнира по HMM1_TE (2) Победителю этапа по HMM1 (1) Победителю этапа по HMM2 (1) Лучшему из лучших (1) 2 место 1 этапа по HMM1 (1)
3 место 1 этапа по HMM1 (1) 1 место 2 этапа по HMM2 (1) Победителю турнира по KB (2) Победителю турнира по KB (1) Грандмастер оффлайн-турниров (1) Боевой шлем (1)
Поблагодарили: 2185 раз.

Re: Как создать плагин для HD мода

Сообщение AlexSpl » 20 апр 2021, 22:24

Вот не проверял. По идее, всё должно работать и для путей с пробелами. Вы мне код так и не показали, а скинули мой же.
Вернуться к началу

Пред.След.

Вернуться в Общий раздел

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2