Объявления

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

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

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlineАватара пользователя
void_17  
имя: имя
Ветеран
Ветеран
 
Сообщения: 548
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 132 раз.

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

Сообщение void_17 » 31 июл 2021, 12:56

Как кодируются цвета шрифтов? Например в функции 0х5BC6A0
Вернуться к началу

offlineprimitive  
имя: Тим
 
Сообщения: 8
Зарегистрирован: 17 апр 2021, 15:42
Пол: Мужчина
Поблагодарили: 1 раз.

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

Сообщение primitive » 31 июл 2021, 16:43

1) Плагин NewTownPortal позволяет выбирать город на любом уровне магии Земли. А как написать плагин, наоборот, запрещающий выбирать город на любом уровне магии Земли, чтобы портал перемещал только в ближайший город?

2) Здесь есть код для запрещения соединений зон через телепортеры. Компиляция у меня заканчивается с ошибкой о неопределенной _RMGStruct_ и т.п. Похоже стандартного homm3.h тут недостаточно. Где можно найти header с нужными определениями?

Спасибо.
Вернуться к началу

offlineRoseKavalier  
Мастер
Мастер
 
Сообщения: 331
Зарегистрирован: 23 сен 2017, 17:00
Пол: Не указан
Поблагодарили: 234 раз.

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

Сообщение RoseKavalier » 31 июл 2021, 22:05

void_17 писал(а):

Как кодируются цвета шрифтов? Например в функции 0х5BC6A0

 game.pal
Изображение


Text color gets +9 (4B522E), background is drawn as is (5BCA2C).
Вернуться к началу

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 » 03 авг 2021, 10:49

1) Замените jl на jmp по адресу 0x41D6D5:

Изображение

2) Скорее всего, структуры были взяты из H3API.
Вернуться к началу

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

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

Сообщение Rolex » 03 авг 2021, 13:08

Скрин здесь:
viewtopic.php?f=56&t=518&start=2860#p22777

Rolex писал(а):

Если есть под рукой HotA, можете глянуть, как там сделано. Вот что-то наподобие этого. Вот как на скрине, который я постил на предыдущей странице. То есть отображение (дописывание к оригинальному тексту в статусной строке) необходимого кол-ва ресурсов для грейда стека в статусной строке при наведении курсора мыши на кнопку апгрейда. А также по клику правой кнопкой мыши на кнопке апгрейда в всплывающем окошке.


AlexSpl писал(а):

У меня в "мысленном будущем" этот плагин уже в теме пользовательских.

AlexSpl, а не смотрели еще? Мне хотя бы адреса хуков, чтобы дописывать свою строку к оригинальным сообщениям (статусной строки и окна подсказки по ПКМ) и буду пробовать что-то колхозить. :smile1:
Вернуться к началу

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 » 03 авг 2021, 15:34

Текст по правому клику на кнопке грейда (и не только; если поставить хук на команду выше, то в esi будет ID элемента диалога; для кнопки грейда это 0xD): 0x5F4CA0 (строка по умолчанию в esi). А какая статусная строка имеется в виду?

Да, без ID существа эта информация мало чем полезна :smile14: ID = *(int*)(c->ebx + 0x60). Кол-во существ идёт сразу за ID. Этого достаточно, чтобы прописать во всплывающем диалоге стоимость грейда.

Хотя эта же инфа показывается, если нажать на кнопку грейда :smile4: Если кпопки грейда нет, можно поступить следующим образом: выводить стоимость грейда по правому клику на имени существа (верхняя строка). ID элемента = 0.
Вернуться к началу

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

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

Сообщение Rolex » 03 авг 2021, 16:10

AlexSpl писал(а):

А какая статусная строка имеется в виду?

Там где на скрине фиолетовым цветом написано. Вот там статусная строка в окне выбраного стека существ для улучшения.
 !!!
Изображение


AlexSpl писал(а):

Хотя эта же инфа показывается, если нажать на кнопку грейда

Вот только когда ресурсов не хвататет ее не нажмешь, она неактивна.
Вернуться к началу

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 » 03 авг 2021, 16:12

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

Ваш вариант с кнопкой плох, т.к. её нет, пока не построено улучшенное жилище.

Даже не знаю, как тогда выводить, ведь по правому клику подсказки, а их не хотелось бы мешать с инфой о стоимости грейда.
Последний раз редактировалось AlexSpl 03 авг 2021, 16:20, всего редактировалось 1 раз.
Вернуться к началу

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

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

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

AlexSpl писал(а):

Ваш вариант с кнопкой плох, т.к. её нет, пока не построено улучшенное жилище.

Всмысле? Если не построено ул. жилище, то это инфа ненужна, ул. же невозможно в городе без отстроеного улучшеного жилища.

AlexSpl писал(а):

ID = *(int*)(c->ebx + 0x60). Кол-во существ идёт сразу за ID.

То есть:
N = *(int*)(c->ebx + 0x60) + 1 ?
Вернуться к началу

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 » 03 авг 2021, 16:22

Цитата:
То есть:
N = *(int*)(c->ebx + 0x60) + 1 ?

Нет, *(int*)(c->ebx + 0x64).
Вернуться к началу

Пред.След.

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

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

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