Объявления

Друзья, если не получается зарегистрироваться, напишите на почту 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 » 04 фев 2019, 18:24

У меня Ваш плагин работает. Вот собрал:

FreshMod.zip
(8.55 КБ) Скачиваний: 255

Пробуйте.

Правда, запускается только с опцией HD+. Проверил свои плагины. Работают и без опции HD+. Что-то с другим кодом?
Вернуться к началу

offlineas239  
имя: Анатолий
Ветеран
Ветеран
 
Сообщения: 527
Зарегистрирован: 29 дек 2018, 14:17
Пол: Мужчина
Поблагодарили: 38 раз.

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

Сообщение as239 » 04 фев 2019, 18:32

AlexSpl писал(а):

У меня Ваш плагин работает. Вот собрал:

FreshMod.zip

Пробуйте.

Правда, запускается только с опцией HD+. Проверил свои плагины. Работают и без опции HD+. Что-то с другим кодом?


Проверил на другом компьютере ваша dll работает.
До этого проверял и собирал на маке через паралеллс на windows 7.
Видимо в этом проблема, но весь остальной код работал.
Значит для героев все же придется использовать отдельную машину :)
Вернуться к началу

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 » 04 фев 2019, 18:33

Т.е. смотрели на виртуальной машине? На виртуалке же плагины не работают.

А хотя нет, помню, я же Disguise на виртуалке тестировал :smile1: Но точно уверен, что какие-то не работали, уже не помню подробностей.

Т.е. на обычной машине у Вас мой плагин нормально интервалы показывает? А Ваш работает? Проверьте без опции HD+.

UPD: Вспомнил. Конфигурация обязательно должна быть Release. Я об этом отдельно упомянул в первом сообщении этой темы.
Вернуться к началу

offlineas239  
имя: Анатолий
Ветеран
Ветеран
 
Сообщения: 527
Зарегистрирован: 29 дек 2018, 14:17
Пол: Мужчина
Поблагодарили: 38 раз.

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

Сообщение as239 » 04 фев 2019, 18:44

AlexSpl писал(а):

Т.е. смотрели на виртуальной машине? На виртуалке же плагины не работают.

А хотя нет, помню, я же Disguise на виртуалке тестировал :smile1: Но точно уверен, что какие-то не работали, уже не помню подробностей.

Т.е. на обычной машине у Вас мой плагин нормально интервалы показывает? А Ваш работает? Проверьте без опции HD+.

UPD: Вспомнил. Конфигурация обязательно должна быть Release. Я об этом отдельно упомянул в первом сообщении этой темы.


Частично получается работает, отображение длительности заклинаний точно работает.
Да, на обычной машине все нормально работает и интервалы показывает.
Конфигурация Release, это я сразу ставил и проверял.
Свой проверю завтра, нужно будет все опять перенести на обычную машину.
Спасибо большое за реализацию!
Вернуться к началу

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 » 04 фев 2019, 18:49

А компилируете на виртуалке? Если да, то проверьте, выставлена ли там релизная конфигурация.

И ещё вопрос про HD+. Случайно hw_rules не требует, чтобы эта опция была включена? Я просто не в курсе.

Просто у меня вылет без HD+:

Цитата:
Exception
{
Module: patcher_x86.dll
Adress: [ patcher_x86.dll+0x195EA ]
Code: EXCEPTION_ACCESS_VIOLATION
Flags: 0x00000000
Information: read of address: 0x0000FE2C
}


И число FE2C выглядит знакомо :smile1: Т.е. плагин не может пропатчить HW_SOD.dll. Вот я и интересуюсь, без HD+ HW_SOD.dll вообще загружается?
Последний раз редактировалось AlexSpl 04 фев 2019, 18:56, всего редактировалось 1 раз.
Вернуться к началу

offlineas239  
имя: Анатолий
Ветеран
Ветеран
 
Сообщения: 527
Зарегистрирован: 29 дек 2018, 14:17
Пол: Мужчина
Поблагодарили: 38 раз.

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

Сообщение as239 » 04 фев 2019, 18:56

AlexSpl писал(а):

А компилируете на виртуалке? Если да, то проверьте, выставлена ли там релизная конфигурация.

И ещё вопрос про HD+. Случайно hw_rules не требует, чтобы эта опция была включена? Я просто не в курсе.


Да, компилирую на виртуалке. Вот Release:
Изображение

Насчет HD+ и hw_rules тоже не в курсе. Не видел таких требований.
Вернуться к началу

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 » 04 фев 2019, 18:57

Обновил предыдущий пост. Всё-таки требует, скорее всего.

Хотя просто hw_rules работает и без HD+. Наверно, это мой косяк, я тестил с HD+ и не заметил. Нужно будет пересмотреть плагин, разрешающий перестраивать Гильдию Магов. Т.е., если я правильно понял, без HD+ загружается HD_SOD.dll, а с HD+ - HW_SOD.dll, поэтому плагин нужно исправлять. Но я пока не понимаю, как можно обойтись без патча dll. Даже если мы обработаем клик с шифтом по Гильдии Магов первыми, то откуда взять диалог перестройки + код самой перестройки (не писать же теперь собственный)? Если хайхук для нового шортката - это лучшее решение, то что делать в случае, когда чужой плагин что-то запрещает, и всё, что тебе нужно, это отменить этот запрет, оставив весь остальной код?

* * *
Со строкой ещё вот так попробуйте:
Код: Выделить всё
// Передаём адрес текстового буфера в качестве аргумента для диалога
sprintf(o_TextBuffer, "%s", str.c_str());
c->ecx = (int)o_TextBuffer;
Вернуться к началу

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 фев 2019, 14:32

Кстати, вышло обновление HD мода. Изменился код для перестройки:

 
Код: Выделить всё
int __stdcall patchDll(LoHook* h, HookContext* c)
{
   HMODULE hHW_SOD = GetModuleHandleA("HW_SOD.dll");

   if ( hHW_SOD ) _PI->WriteByte((int)hHW_SOD + 0xFCC7, 0xEB);
   
   return EXEC_DEFAULT;
}
Вернуться к началу

offlineBen80  
имя: Сергей
Эксперт
Эксперт
 
Сообщения: 1318
Зарегистрирован: 18 июн 2017, 06:49
Пол: Не указан
Поблагодарили: 336 раз.

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

Сообщение Ben80 » 05 фев 2019, 15:42

AlexSpl писал(а):

Кстати, вышло обновление HD мода. Изменился код для перестройки:

 
Код: Выделить всё
int __stdcall patchDll(LoHook* h, HookContext* c)
{
   HMODULE hHW_SOD = GetModuleHandleA("HW_SOD.dll");

   if ( hHW_SOD ) _PI->WriteByte((int)hHW_SOD + 0xFCC7, 0xEB);
   
   return EXEC_DEFAULT;
}


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

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 фев 2019, 15:53

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

Пред.След.

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

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

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

cron