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


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

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

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

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

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

Tried this, after 0x4F823F:

Код: Выделить всё
_PI_2 = _P->GetInstance("wzx_HW");
_PI_2->UndoAllAt(0x417236);
_PI_2->UndoAllAt(0x417248);


And RCM is working. But attack is not working.
Cannot find HW hook for this.

UPD.
Found it:
Код: Выделить всё
_PI_2->UndoAllAt(0x4A6C70);
   _PI_2->UndoAllAt(0x4A6EC0);

Now its works!
Вернуться к началу

offlineigrik  
Подмастерье
Подмастерье
 
Сообщения: 108
Зарегистрирован: 14 сен 2017, 12:35
Пол: Не указан
Поблагодарили: 84 раз.

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

Сообщение igrik » 15 мар 2019, 07:30

as239, ты такого вида хочешь отображени AI_Value?

Изображение
Вернуться к началу

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

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

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

Цитата:
ты такого вида хочешь отображени AI_Value?

Отображение в интерфейсе думаю не нужно.
А получение значения RoseKavalier дал:
Код: Выделить всё
o_pCreatureInfo[monID ].AI_value
Вернуться к началу

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

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

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

А по сдвигу охран нет идей?
Или может можно как то сделать чтобы генератор не создавал объекты выше определенного value у дороги?
Вернуться к началу

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

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

Сообщение Ben80 » 15 мар 2019, 13:58

Генератор нужно изучать серьезно, а различные полумеры - это не совсем то (хотя, конечно, спасибо igrik'у за плагин с охраной объектов рядом с монстрами). Можно попробовать поизучать генератор из VCMI, он, хоть и другой, но должен быть основан на примерно тех же принципах. Это поможет лучше понять оригинальный генератор. Да и вообще генератор из VCMI можно прикрутить плагином.
Вернуться к началу

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

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

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

Хотелось бы начать с малого.
Да сдвиг это тупо, но это реально сделать быстро и во многих случаях он будет помогать.
Вернуться к началу

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

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

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

Although you could post-process before item drawings is done, Ben80 is right. In the long run it would be much better to understand RMG and directly patch there.
Вернуться к началу

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

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

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

I never can do it, and no one else interested in this.
So its never happens.
Вернуться к началу

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

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

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

Try with post-processing, the drawing loop is at 0x4FDF6B so you can move items without worrying about drawing with a hook just a bit before.
Begin with something simple and see what can be done.

Also, please note I've updated this post about move type, there would be a missing condition for double damage calculation (half damage, 15).
Вернуться к началу

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

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

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

Tried this and with LowHook:
Код: Выделить всё
int __stdcall shiftBlocks(HiHook* h, _AdvMgr_* advManager, int a2)
{
   _GameMap_* Map = &o_GameMgr->Map;
   _MapItem_* MapItem;

   int Count = 0;
   
   for (int z = 0; z <= Map->has_underground; ++z)
   {
      for (int y = 0; y < o_MapHeight; ++y)
      {
         for (int x = 0; x < o_MapWidth; ++x)
         {
            MapItem = Map->GetItem(x, y, z);
     
            if ( MapItem->GetReal__object_type() == 54 ) ++Count;
         }
      }
   }

   sprintf(o_TextBuffer, "Monsres:%d", Count );
   b_MsgBox(o_TextBuffer, 1);


   return CALL_2(int, __thiscall, h->GetDefaultFunc(), advManager, a2);
}
_PI->WriteHiHook(0x4FDF6B, SPLICE_, EXTENDED_, THISCALL_, shiftBlocks);

Had crash and Count = 0.

Also I have no idea, how to replace monster from one tile to another.

Did not get the problem with half damage, 15.
Current code works correct with it.
Последний раз редактировалось as239 16 мар 2019, 12:15, всего редактировалось 1 раз.
Вернуться к началу

Пред.След.

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

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

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