Объявления

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

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

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
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 » 05 авг 2021, 20:47

Так у нас один хук. Наверное, Вы старый код тестируете.

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

Это уже, как в оригинальном коде. Можно добавить +1 в условие, если действительно есть отличия.
Вернуться к началу

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

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

Сообщение Rolex » 05 авг 2021, 20:50

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

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 » 05 авг 2021, 20:52

Я уже проверял. Работает для активной и неактивной кнопки.
Вернуться к началу

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

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

Сообщение Rolex » 05 авг 2021, 20:58

Такс, если я код для активной кнопки убираю и оставляю только один тот последний варинт, который вы скинули, то работает только для неактивной кнопки, а вот для активной на самой кнопке не работает, а работает только на рамке. Что-то не так. Вот мой код:

Код: Выделить всё
int __stdcall showUpgradeCost(LoHook* h, HookContext* c)
{
   _Dlg_* dlg = (_Dlg_*)c->ebx;
   _DlgItem_* button = dlg->GetItem(0x12C);

   if (button)
   {
      int x, y;
      CALL_2(void, __stdcall, 0x50D700, &x, &y);
      if (x - dlg->x >= button->x && x - dlg->x <= button->x + button->width &&
         y - dlg->y >= button->y && y - dlg->y <= button->y + button->height)
      {
         string str = *(char**)(0xD * 8 + 0x6A74C0); // Оригинальное сообщение

         int id = *(int*)(c->ebx + 0x60);
         int number = *(int*)(c->ebx + 0x64);

         string separator = " ";

         str = getString(id, number, str, separator);

         // Передаём адрес текстового буфера в качестве аргумента для диалога
         sprintf(o_TextBuffer, "%s", str.c_str());
         c->edi = (int)o_TextBuffer;
      }
   }

   return EXEC_DEFAULT;
}
...
_PI->WriteLoHook(0x5F5329, showUpgradeCost);
_PI->WriteCodePatch(0x5F5201, "%n", 6);
Вернуться к началу

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 » 05 авг 2021, 21:01

Вы не туда хук ставите. См. мой код на предыдущей странице.
Вернуться к началу

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

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

Сообщение Rolex » 05 авг 2021, 21:05

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

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

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

Сообщение Rolex » 05 авг 2021, 21:12

Работает, но с точностью еще хуже стало. У меня стрелка даже до рамки не доходит, не говоря уже за кнопку, а инфа выводится.
Попробуйте проверить с той стороны, как на скрине:
Изображение
Вернуться к началу

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 » 05 авг 2021, 21:17

У меня всё OK, тестировал на разных разрешениях. Да и код не даст соврать. Можете попробовать < вместе <= для правой и нижней границы. Короче, скорректируйте условие по примеру для кнопки "Dismiss unit", чтобы соответствовало. Кто знает, как игра попадание в область кнопки считает (с рамкой или без, например). Если < вместо <= мало, добавьте -1. Пиксельная геометрия у нас теперь пошла.
Вернуться к началу

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

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

Сообщение Rolex » 05 авг 2021, 21:25

AlexSpl писал(а):

Можете попробовать < вместе <= для правой и нижней границы.

Теперь все ок, как у "Dismiss unit". Этого достаточно.
Вернуться к началу

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

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

Сообщение Rolex » 05 авг 2021, 21:29

Такой вопрос. А вы не знаете, как сделать так, чтобы можно было увольнять героя находящегося в городе? В оригинале для героев находящихся в городе кнопка увольнения неактивна.
Вернуться к началу

Пред.След.

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

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

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