Объявления
Поздравляем
Roman2211


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

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

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

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

Сообщение as239 » 14 мар 2019, 13:34

Цитата:
Some time back I was asked how to nerf Diplomacy a bit, could give some ideas.

Yes, its interesting to hear.
Now I am thinking to limit joins by value of neutral stack.
In any cases, should not be possible to join big stacks, else it will be so:
Изображение
Вернуться к началу

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

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

Сообщение as239 » 14 мар 2019, 14:07

Количество монстров получил:
Код: Выделить всё
int __stdcall GetMonCount(LoHook* h, HookContext* c) {
   monCount = (c->esi);
   return EXEC_DEFAULT;
}
_PI->WriteLoHook(0x4170E8, GetMonCount);


Но теперь в HiHookе:
Код: Выделить всё
int netrPow = monCount * *(_DWORD *)(116 * monID + o_pCreatureInfo + 64);

Ошибка:
error C2065: '_DWORD' : undeclared identifier

И вопрос это именно то value, про которое например говорят - охрана прохода на этом шаблоне "6000" value?
Вернуться к началу

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

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

Сообщение RoseKavalier » 14 мар 2019, 14:31

Код: Выделить всё
int netrPow = o_pCreatureInfo[monID ].AI_value * monCount;
Вернуться к началу

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

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

Сообщение as239 » 14 мар 2019, 16:18

Протестировал с ограничением на value 25 000, получается вполне интересно, на респе можно раскрутиться при этом имбаланса не возникает - все мощные стеки надо бить.
Код: Выделить всё
int __stdcall Diplomacy( HiHook* hook, _Hero_* hero, _int_ mon_ID ) {
      int netrPow = o_pCreatureInfo[mon_ID ].AI_value * monCount;
      _int_ ret = CALL_2(_int_, __fastcall, hook->GetDefaultFunc(), hero, mon_ID);
      if ( netrPow > DiploLimit ) {
         ret = -4;
      }
      return ret;
}

На мой взгляд, больше никаких других условий не требуется.

Осталось только отменить HW rulez, найти бы где он хук ставит.
Вернуться к началу

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

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

Сообщение Ben80 » 14 мар 2019, 16:33

as239 писал(а):

Осталось только отменить HW rulez, найти бы где он хук ставит.


Может быть, не найти, и не отменить, раз AlexSpl писал, что функционал HW_Rulez применяется после загрузки плагинов. Но если хук в логе присутствует, то его обычно отменить можно. Просто тут их и в логе то может не быть, раз сначала плагины грузятся, а потом hw rulez.
Вернуться к началу

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

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

Сообщение RoseKavalier » 14 мар 2019, 17:31

I previously posted general address where HW rulez plugin is loaded, here is its dump.
In doubt, you can always HiHook LoadLibraryA and strcmp the dll name))
Recommend Notepad++ or something similar, not regular Notepad.
Вложения
wzx_HW.txt
HW rulez hooks
(8.51 КБ) Скачиваний: 282
Вернуться к началу

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

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

Сообщение as239 » 14 мар 2019, 18:15

Looks like its:
(00417236 05 LoHook 0000002413 - wzx_HW)
(00417248 05 LoHook 0000002414 - wzx_HW)

Tried this, but it doesnt work:
Код: Выделить всё
   _PI_2 = _P->GetInstance("HD.SoD");
         _PI_2->UndoAllAt(0x00417236);
         _PI_2->UndoAllAt(0x00417238);
Вернуться к началу

offlineАватара пользователя
Catastrophe  
имя: Alex
Посвященный
Посвященный
 
Сообщения: 88
Зарегистрирован: 07 мар 2019, 11:50
Пол: Мужчина
Поблагодарили: 22 раз.

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

Сообщение Catastrophe » 14 мар 2019, 18:24

Ben80 писал(а):

Вы автор Ad Fontes ? Доделали свой мод ?

К сожалению да) И нет, мод уже больше месяца находится в шаге от релиза, но каждый раз появляется новое препятствие. Заходите в телеграм-группу мода если вам интересно, отвечу на все вопросы

igrik, если будет время, глянь вк, плиз, без тебя тяжко
Быстрее всего смогу ответить вам в Telegram: @PleaseAndThankYou
Вернуться к началу

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

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

Сообщение Ben80 » 14 мар 2019, 18:37

as239 писал(а):

Looks like its:
(00417236 05 LoHook 0000002413 - wzx_HW)
(00417248 05 LoHook 0000002414 - wzx_HW)

Tried this, but it doesnt work:
Код: Выделить всё
   _PI_2 = _P->GetInstance("HD.SoD");
         _PI_2->UndoAllAt(0x00417236);
         _PI_2->UndoAllAt(0x00417238);


Ну так это ж не к HD.SoD относится, а не понятно к чему вообще. Типа к wzx_HW, но это просто обозначение RoseKavalier и старого плагина HW_Rulez. Сейчас то плагина нет, все интегрировано.
Вернуться к началу

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

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

Сообщение RoseKavalier » 14 мар 2019, 19:42

It's definitely a plugin, just loaded later than /Packs/. HDmod 5.0 RC46
Loadlibrary breakpoint
Изображение

CreateInstance breakpoint
Изображение

Try the same address as you used to patch HW rulez.
Вернуться к началу

Пред.След.

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

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

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