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


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

Улучшение ИИ

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

Re: Улучшение ИИ

Сообщение as239 » 14 май 2020, 14:02

Сделал так:
Код: Выделить всё
      if (CurMon->sideIndex == 20 || P_CombatMgr->stacks[CurMon->side][CurMon->sideIndex+1].type ==-1)
      {
         c->return_address = 0x421DE9;
         return NO_EXEC_DEFAULT;
      }
      else
      {
         int *v67 = (int*)(c->ebp - 0x30);
         c->ecx = *v67+1;
         *v67= *v67+1;
         c->return_address = 0x421976;
         return NO_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: Улучшение ИИ

Сообщение AlexSpl » 14 май 2020, 14:08

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

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

Re: Улучшение ИИ

Сообщение as239 » 14 май 2020, 14:18

Да будет всегда бегать за драконами.
Кстати сделал, чтобы он вообще не велся даже на единички, потому что если сделать пару единичек, то все становится как и было.
Получается довольно интересно - рукопашные стеки ИИ всегда носятся за самым мощным стеком.
А стрелки отстреливают единички.

Думаю немного улучшить алгоритм, но для этого нужно понимать насколько близко стек игрока к стеку ИИ.
Буду искать.
Вернуться к началу

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

Re: Улучшение ИИ

Сообщение Ben80 » 14 май 2020, 14:20

as239 писал(а):

Спасибо! То что нужно.
Код: Выделить всё
H3CreatureInformation *creature = &P_Creatures[Level*2+Grade+14*Town->type];

Level(0-6), Grade(0,1)

Изменено: Для Сопряжения не работает :(

Код: Выделить всё
int creature_id = *(int*)(0x6747B4 + 4 * i + 56 * town->type);

По данной формуле должно работать и для Сопряжения. В оригинальном коде она и применяется или что-то очень похожее.
Вернуться к началу

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

Re: Улучшение ИИ

Сообщение Ben80 » 14 май 2020, 14:20

as239 писал(а):

Спасибо! То что нужно.
Код: Выделить всё
H3CreatureInformation *creature = &P_Creatures[Level*2+Grade+14*Town->type];

Level(0-6), Grade(0,1)

Изменено: Для Сопряжения не работает :(

Код: Выделить всё
int creature_id = *(int*)(0x6747B4 + 4 * i + 56 * town->type);

По данной формуле должно работать и для Сопряжения. В оригинальном коде она и применяется или что-то очень похожее.
Вернуться к началу

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: Улучшение ИИ

Сообщение AlexSpl » 14 май 2020, 14:22

У Конфлакса грейды не по порядку идут.
Вернуться к началу

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

Re: Улучшение ИИ

Сообщение Ben80 » 14 май 2020, 14:23

Но это не мешает данной формуле работать :smile1: Посмотрите на данные у 0x6747B4. Если посмотрите байты для Сопряжения, то увидите, что там учитывается этот "неправильный" порядок.
Последний раз редактировалось Ben80 14 май 2020, 14:24, всего редактировалось 1 раз.
Вернуться к началу

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

Re: Улучшение ИИ

Сообщение as239 » 14 май 2020, 14:23

Ben80 писал(а):

as239 писал(а):

Спасибо! То что нужно.
Код: Выделить всё
H3CreatureInformation *creature = &P_Creatures[Level*2+Grade+14*Town->type];

Level(0-6), Grade(0,1)

Изменено: Для Сопряжения не работает :(

Код: Выделить всё
int creature_id = *(int*)(0x6747B4 + 4 * i + 56 * town->type);

По данной формуле должно работать и для Сопряжения. В оригинальном коде она и применяется или что-то очень похожее.

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

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

Re: Улучшение ИИ

Сообщение Ben80 » 14 май 2020, 14:26

Ребята, споры ради споров - это неконструктивно :smile1: . Рекомендую посмотреть внимательно байты для Сопряжения ниже 0x6747B4 либо проверить опытным путем работоспособность формулы.
Вернуться к началу

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: Улучшение ИИ

Сообщение AlexSpl » 14 май 2020, 14:26

Вы о разных массивах говорите :smile1: Ben80 - о MonstersInTowns_9x2x7.
Вернуться к началу

Пред.След.

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

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

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