Объявления

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

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

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

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

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

AlexSpl писал(а):

Маленькие и не должны. Вы же их в хук не прописали.

Нужно тогда, чтобы в таком случае отображались оригинальные из родного лода.

Код: Выделить всё
#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)"C:\\Program Files (x86)\\Heroes of Might and Magic III Complete HD\\_HD3_Data\\Packs\\NewPicture\\HPL000Kn.pcx";
      c->ebx = (int)"C:\\Program Files (x86)\\Heroes of Might and Magic III Complete HD\\_HD3_Data\\Packs\\NewPicture\\HPL000Kn.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.NewPicture");

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

   return TRUE;
}
Вернуться к началу

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:31

HPL000Kn.pcx Оррина по указанному пути лежит? Проверьте также, нет ли русских букв в пути (а лучше закиньте портрет куда-нибудь в корень диска, чтобы проверить пробелы заодно). Проверьте название портрета (должно быть именно таким, как Вы указали в плагине).

Цитата:
Нужно, тогда, чтобы в таком случае отображались оригинальные из ориг лода.

Так и происходит.
Вернуться к началу

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

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

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

AlexSpl писал(а):

HPL000Kn.pcx Оррина по указанному пути лежит? Проверьте также, нет ли русских букв в пути (а лучше закиньте портрет куда-нибудь в корень диска, чтобы проверить пробелы заодно). Проверьте название портрета (должно быть именно таким, как Вы указали в плагине).

Лежит по указанному пути вместе с dll. Русских букв в пути нет. С названиями тоже все ок. Все совпадает. И дело видимо не в пробелах, ибо путьв кавычках.

AlexSpl писал(а):

Так и происходит.

У меня нет, пустые все маленькие портреты героев.

Вот такая штука вылазит перед крашем:
https://i114.fastpic.ru/big/2021/0421/2 ... dc3d24.jpg

Это по ходу из-за двойных слешей. Пробовал одинарный. В любом случае вылет.
Последний раз редактировалось Rolex 20 апр 2021, 22:47, всего редактировалось 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:41

У Вас что-то со слэшами.
Вернуться к началу

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

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

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

Это по ходу из-за двойных слешей. Пробовал одинарный. В любом случае вылет.
Вернуться к началу

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:43

Могу кинуть dll-ку с Вашим путём. Но проблема со слэшами 100%. Если указать неправильный путь, в сообщении об ошибке путь будет со слэшами, а не так, как у Вас.
Вернуться к началу

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

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

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

"C:\\Program Files (x86)\\Heroes of Might and Magic III Complete HD\\_HD3_Data\\Packs\\NewPicture\\HPL000Kn.PCX";
Вернуться к началу

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

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

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

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

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:50

Создал Ваш путь. Положил туда Ваш портрет. Всё работает.

NewPictures.zip
(3.62 КБ) Скачиваний: 140
Вернуться к началу

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

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

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

Даже с вашей dll при создании или загрузке игры краш. Хз в чем проблема... :smile7:
Вернуться к началу

Пред.След.

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

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

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