Объявления

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

Пользовательские плагины для HD мода

Герои Меча и Магии III: Возрождение Эрафии, Герои Меча и Магии III Дыхание Смерти, Герои Меча и Магии III Клинок Армагеддона, Герои Меча и Магии III Хроники Героев
offlinewojtulace  
имя: Wojtek
 
Сообщения: 3
Зарегистрирован: 09 мар 2022, 11:20
Пол: Мужчина
Поблагодарили: 0 раз.

Re: Пользовательские плагины для HD мода

Сообщение wojtulace » 09 мар 2022, 11:22

I see many amazing mods here. Is there any way to load .dll files with HDMod AND HoTA?
Вернуться к началу

offlineАватара пользователя
void_17  
имя: DM
Ветеран
Ветеран
 
Сообщения: 529
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 116 раз.

Re: Пользовательские плагины для HD мода

Сообщение void_17 » 09 мар 2022, 11:32

Yes. You have to move the file the following path:
Код: Выделить всё
...\_HD3_Data\Packs\YourPlugin\YourPlugin.dll

and include YourPlugin in HD Launcher's list.

However, this won't work with HoTA due to the artificial limitation built by baratorch so you will need to include this manually through PluginLoader:
viewtopic.php?f=40&t=947
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 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)
Поблагодарили: 2155 раз.

Re: Пользовательские плагины для HD мода

Сообщение AlexSpl » 09 мар 2022, 14:48

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

offlinewojtulace  
имя: Wojtek
 
Сообщения: 3
Зарегистрирован: 09 мар 2022, 11:20
Пол: Мужчина
Поблагодарили: 0 раз.

Re: Пользовательские плагины для HD мода

Сообщение wojtulace » 10 мар 2022, 10:25

Спасибо за помощь

I have done some quick testing with HoTA 1.6.1 and so far everything works, except:

- AImanasaving.dll - causes crash during AI turn calculation
- NewHasteSlow.dll - causes many single target spells to have AOE indicator (visual bug)
- NewSpells.dll - completly breaks the game, but the main menu loads

Also, FuzzyLogic.dll spells seem to last shorter than expected. Maybe I don't understand the formula...

Tested: Aimanasaving.dll, NewHasteSlow.dll, NewSpells.dll, Battle_AI.dll, EstatesLevelHero_Serp.dll, FfuzzyLogik.dll, FirstAidTent.dll, ManaRegenerationHeroLevel_Serp.dll,
NewArtifactsMerchants.dll, NewCrBanks.dll,NewDisguiseVision.dll, NewDwellings.dll, newEagleEye.dll, NewMagicMirror.dll, NewManaVortex.dll, NewMysticismSerp.dll, ScholarChoiceHotA.dll.
Вернуться к началу

offlineАватара пользователя
void_17  
имя: DM
Ветеран
Ветеран
 
Сообщения: 529
Зарегистрирован: 25 апр 2021, 15:05
Откуда: Оттуда
Пол: Мужчина
Поблагодарили: 116 раз.

Re: Пользовательские плагины для HD мода

Сообщение void_17 » 10 мар 2022, 11:55

Цитата:
NewSpells.dll - completly breaks the game, but the main menu loads

This is an expected behavior due to the various HoTA hooks which are prefered to be loaded. Hence hooks from this plugin and from ones from HoTA can not coexist.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 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)
Поблагодарили: 2155 раз.

Re: Пользовательские плагины для HD мода

Сообщение AlexSpl » 10 мар 2022, 16:24

Цитата:
- NewSpells.dll - completly breaks the game, but the main menu loads

HotA сама один огромный плагин, поэтому неудивительно. Однако

Цитата:
Попробуйте отключить фикс очереди ходов (<UI.QueueFix> = 0 в NewSpells.ini). Это исправление патчит библиотеку HD мода и может ломаться при обновлении. А как обойтись без патча самой dll, я не знаю.

Ещё совсем недавно пользователь HC majaczek включил некоторые фичи плагина NewSpells в свой плагин Grandmaster_Magic для ERA. Если играете на ERA, можете попробовать: http://heroescommunity.com/viewthread.php3?TID=47171&PID=1559266#focus
Там не последний билд, но никак руки не доходят допилить хотя бы тот минимум, что планировал.

Цитата:
Also, FuzzyLogic.dll spells seem to last shorter than expected. Maybe I don't understand the formula...

Этот плагин назван в честь автора идеи. В формулах деление везде целочисленное, т.е. floor(). Если где-то что-то всё равно не срастается, и этот плагин Вас почему-то заинтересовал (плагин - имплементация идей автора насчёт продолжительности заклинаний), то см. исходный код: не должно составить труда изменить формулы.
Вернуться к началу

offlinewojtulace  
имя: Wojtek
 
Сообщения: 3
Зарегистрирован: 09 мар 2022, 11:20
Пол: Мужчина
Поблагодарили: 0 раз.

Re: Пользовательские плагины для HD мода

Сообщение wojtulace » 15 мар 2022, 11:15

Thanks to your guide, I have changed FuzzyLogic formula to my liking.

NewHasteSlow.dll - is there any easy way to make AI not cast haste and slow? Changing AI value in SPTRAITS does nothing.
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 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)
Поблагодарили: 2155 раз.

Re: Пользовательские плагины для HD мода

Сообщение AlexSpl » 15 мар 2022, 15:26

Цитата:
NewHasteSlow.dll - is there any easy way to make AI not cast haste and slow?

The easiest way* is to return 0 from corresponding weighting functions. Something like

Код: Выделить всё
xor eax, eax
jmp @funcEpilogue

Can be done even in a hex-editor by inserting the opcodes of the instructions above just after a function prologue.

You can also replace the original Haste and Slow weighting functions with type_AI_spellcaster::inimplemented():

Код: Выделить всё
// Default
int type_AI_spellcaster::unimplemented(Army* const army, type_enchant_data data) const
{
   return 0;
}

int (type_AI_spellcaster::*type_AI_spellcaster::get_enchantment_function(SpellID spell) const)(Army* const, type_enchant_data) const
{
   switch (spell)
   {
   case SPELL_POISON:
     return &type_AI_spellcaster::get_poison_value;
   case SPELL_DISEASE:
      return &type_AI_spellcaster::get_disease_value;
   case SPELL_AGE:
      return &type_AI_spellcaster::get_age_value;
   case SPELL_FEAR:
      return &type_AI_spellcaster::get_fear_value;
   case SPELL_DEATH_BLOW:
      return &type_AI_spellcaster::get_death_blow_value;
   case SPELL_DRAIN_LIFE:
      return &type_AI_spellcaster::get_drain_life_value;
   case SPELL_TOUGHNESS:
     return &type_AI_spellcaster::get_toughness_value;
   case SPELL_BEHEMOTHS_CLAWS:
     return &type_AI_spellcaster::get_behemoths_claws_value;
   default:
     return &type_AI_spellcaster::unimplemented;
   }
}

int __stdcall get_enchantment_function(HiHook* h, type_AI_spellcaster* caster, SpellID spell)
{
   int (__thiscall type_AI_spellcaster::*value_func)(Army* const, type_enchant_data) const = caster->get_enchantment_function(spell);

   switch (spell)
   {
   case SPELL_POISON:
   case SPELL_DISEASE:
   case SPELL_AGE:
   case SPELL_FEAR:
   case SPELL_DEATH_BLOW:
   case SPELL_DRAIN_LIFE:
   case SPELL_TOUGHNESS:
   case SPELL_BEHEMOTHS_CLAWS:
     return (int&)value_func;
   case SPELL_EXPLOSION:
     // get_damage_spell_value
     return 0x436BB0;
   default:
     return CALL_2(int, __thiscall, h->GetDefaultFunc(), caster, spell);
   }
}

Don't forget to add a case to both the switches.

*) Well, the easiest way, actually, is to "default" these spells in the get_enchantment_function()'s switch indirect table.
Вернуться к началу

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

Re: Пользовательские плагины для HD мода

Сообщение Rolex » 15 мар 2022, 15:59

AlexSpl писал(а):

Там не последний билд, но никак руки не доходят допилить хотя бы тот минимум, что планировал.

А какой именно минимум вы запланировали? :smile1:
Вернуться к началу

offlineАватара пользователя
AlexSpl  
имя: Александр
Эксперт
Эксперт
 
Сообщения: 5538
Зарегистрирован: 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)
Поблагодарили: 2155 раз.

Re: Пользовательские плагины для HD мода

Сообщение AlexSpl » 15 мар 2022, 16:03

https://handbookhmm.ru/forum/viewtopic.php?f=56&t=518&start=3710#p24233

Неплохо бы переместить все посты касательно обсуждения плагинов в соответствующую тему.
Вернуться к началу

Пред.След.

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

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

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