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


Друзья, если не получается зарегистрироваться, напишите на почту 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 » 17 авг 2017, 16:51

Подключил homm3.h и переписал код для заклинания Blind:

Код: Выделить всё
int __stdcall blindSpell(LoHook* h, HookContext* c)
{
   if ( c->ebx == SPL_BLIND )
   {
      int duration[] = {1, 1, 3, 5};

      _BattleStack_* battleStack = (_BattleStack_*)c->esi;
      _Hero_* hero = o_BattleMgr->hero[1 - battleStack->side];

      if ( hero ) c->eax = duration[hero->second_skill[HSS_FIRE_MAGIC]];
   }

   return EXEC_DEFAULT;
}


Есть только одна проблема. Компилятор успешно игнорирует NOALIGN. Поэтому, чтобы это заработало, нужно сделать так (см. пост feanor'а): http://forum.df2.ru/index.php?showtopic=6904&view=findpost&p=743384
Вернуться к началу

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

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

Сообщение Ben80 » 17 авг 2017, 17:42

Спасибо, но, честно говоря, меня и первый вариант полностью устраивает. Для меня главное, чтобы правильно работало, не создавало новых багов.

Насчет всех этих таблиц эффективности - придется вникать, конечно, читать материалы форумов, поспрашивать в ЛС одного, другого. Просто анализируя ассемблерный код, я, конечно, ничего не добьюсь. Да и не умею я его анализировать. Возможно, попробую найти нужные адреса, с которых начинается нужный код, и получить код на Си (декомпиляция), это уже можно анализировать.
Вернуться к началу

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

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

Сообщение Ben80 » 17 авг 2017, 17:54

В первом приближении можно оставить как есть, ИИ как играл плохо, так это и останется :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 » 17 авг 2017, 17:56

Нашёл на DF2 в теме "Инженерный анализ" пост sergroj:

Цитата:
Возвращает функцию, вычисляющую ценность заклинания:
.text:0043B2E0 combatMan_GetSpellWeightAIProc


Думаю, отсюда следует начать. Но сначала нужно определиться, что и как нужно изменить :)
Вернуться к началу

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

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

Сообщение Ben80 » 17 авг 2017, 18:16

Хотел бы узнать, пробовали ли Вы кодинг, включающий диалоги и графику ?

Есть идея переделать заклинание Маскировка - давать диалоговое окно с ползунком, примерно как при разделении отрядов. На осн уровне Воздуха шкала с 3 значениями 0.66 - 1 - 1.5, на продв. 7 значений - 0.33 - 0.5 - 0.66 - 1 - 1.5 - 2.0 - 3.0, на эксперте 9 значений 0.2 - 0.33 - 0.5 - 0.66 - 1 - 1.5 -2.0 - 3.0 - 5.0.

Например, 0.66 означает, что при попытке противника оценить численность отрядов нашего Героя, реальная численность будет занижена в 1.5 раза. Допустим, в отряде 60 стрелков, получаем якобы 40 стрелков, таким образом, будет показано, что у нас "Lots" стрелков.
5.0 означает, что численность будет завышена в 5 раз.

Длительность заклинания 3 хода данного игрока (3 его дня).

Не знаете, откуда растет баг с Disguise оригинальной игры ? Там Маскировка держится до конца данного раунда (общего дня), таким образом, нормально работает она только для красного.
У структуры Героя вроде даже поле специальное есть для Disguise, видимо, в процедуре "Новый день для всех игроков" (наверно, такая есть) это поле обнуляется. А должно (чтобы не было бага) - в процедуре "Ход следующего игрока". Так примерно ?
Вернуться к началу

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

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

Сообщение Ben80 » 17 авг 2017, 18:19

AlexSpl писал(а):

Нашёл на DF2 в теме "Инженерный анализ" пост sergroj:

Цитата:
Возвращает функцию, вычисляющую ценность заклинания:
.text:0043B2E0 combatMan_GetSpellWeightAIProc


Думаю, отсюда следует начать. Но сначала нужно определиться, что и как нужно изменить :)


Ок, это на закуску :smile1:
Вчера натыкался на это название. Кроме того, есть процедуры, где судя по названию, комп взвешивает, на какого юнита будет выгодно повесить заклинание. Хотя в это можно и не вникать даже - скажем, если я сделал спелл масс - спеллом, то пускай себе выбирает юнит - делу это никак не повредит :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 » 17 авг 2017, 18:22

Посмотрел немного функцию, вычисляющую вес заклинания Blind (включая абилку Единорогов). Чтобы говорить о каких-либо изменениях, сначала необходимо составить полное описание её работы. А это довольно трудоёмкая задача. Так что предлагаю пока сосредоточиться на хот-сите/онлайне PvP.
Вернуться к началу

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 » 17 авг 2017, 18:29

Цитата:
Хотел бы узнать, пробовали ли Вы кодинг, включающий диалоги и графику ?

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

Цитата:
Не знаете, откуда растет баг с Disguise оригинальной игры ? Там Маскировка держится до конца данного раунда (общего дня), таким образом, нормально работает она только для красного.

Краем уха слышал об этом. Должно быть исправлено в HotA.
Вернуться к началу

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

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

Сообщение Ben80 » 18 авг 2017, 05:24

AlexSpl писал(а):

Посмотрел немного функцию, вычисляющую вес заклинания Blind (включая абилку Единорогов). Чтобы говорить о каких-либо изменениях, сначала необходимо составить полное описание её работы. А это довольно трудоёмкая задача. Так что предлагаю пока сосредоточиться на хот-сите/онлайне PvP.


Составлю таблицу всех изменений с подробным описанием и на какой стадии разработки что находится.
Вернуться к началу

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

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

Сообщение Ben80 » 18 авг 2017, 05:31

http://forum.heroesworld.ru/showthread. ... ost1025549

Прикольный последний пост с обилием слэнга.
Вернуться к началу

Пред.След.

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

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

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