Есть ли какие-то очевидные нелепости в использовании ИИ заклинаний в бою, которые легко правятся изменением ai_value?
Насколько я помню, ИИ очень любит использовать всякие защиты от огня и т.д., которые в 90% боев не имеют никакого смысла.
Объявления | ||
---|---|---|
Друзья, если не получается зарегистрироваться, напишите на почту vdv_forever@bk.ru. Я оторву свою задницу от всех дел и обязательно Вас активирую! Добро пожаловать на геройский форум! |
Re: Улучшение ИИЕсть ли какие-то очевидные нелепости в использовании ИИ заклинаний в бою, которые легко правятся изменением ai_value?
Насколько я помню, ИИ очень любит использовать всякие защиты от огня и т.д., которые в 90% боев не имеют никакого смысла. Последний раз редактировалось as239 10 май 2020, 16:15, всего редактировалось 1 раз.
|
Re: Улучшение ИИАнатолий, AI_Value не имеют никакого отношения к использованию ИИ спеллов в настоящей битве.
Но то, о чем ты говоришь, сделать очень просто:
|
Re: Улучшение ИИЦитата: Текущая мана хранится в структуре героя (+0x18). Максимальный запас - [GetIntelligencePower_4E4B20(hero) * max(1, min(Knowledge, 99)) * 10]. Ежедневное восполнение - GetDailyManaRestorePoints_4E41B0. Это для справки Цитата: А как комп решает, какое кастовать? |
Re: Улучшение ИИЧерез специальную процедуру "взвешивания" заклинаний в бою
//----- (0043B2E0) -------------------------------------------------------- void *__stdcall combatMan_GetSpellWeightAIProc(int a1) Как уже ранее говорил в нашей дискуссии, итоговый вес, по-видимому, представляет собой математическое ожидание ущерба/выгоды, выраженной в единицах AI_Value юнитов на поле боя. |
Re: Улучшение ИИАлександр, а вы могли бы реализовать Берсерк для ИИ (самое главное - написать оценку-взвешивание) ?
Там пришлось бы задействовать такую интересную вещь как MovementManager. В итоге получилось бы очень познавательно. |
Re: Улучшение ИИТеоретически каст Берсерка ничем от каста, например, того же Проклятия не отличается (хотя продвинутая и экспертная версии, скорее, Fireball и Inferno соответственно). Просто скопировать код и заменить эффекты (igrik даже делал AoE Slow). С оценкой сложнее А Вы смотрели, как HotA оценивает Берсерк?
|
Re: Улучшение ИИНет, я не пытался извлечь из отладки Хоты какую-то пользу. За релизами, новшествами, изменениями механик слежу иногда.
Мне кажется, в случае с Берсерком идти по простому пути было бы неинтересно Ведь тут в чем особенность - нужно для каждого вражеского юнита определять, "кого он пойдет бить" то есть ближайшего юнита. Это нужно, чтобы определить, на кого выгоднее всего делать каст. А на продвинутом и экспертном уровне все еще интереснее - поскольку мы имеем подвижную область, в которую хотим "уловить" самых "выгодных" вражеских юнитов. Когда я писал Battle_AI, то смог определить из какой процедуры выходят результаты работы MovementManager. При этом я не видел еще инфы по MovementManager в H3API, и не знал о существовании H3Era.dbgmap. То есть сейчас-то инфы в помощь довольно много. |
Re: Улучшение ИИAlexSpl писал(а): Да, работа Игрика на самом деле очень интересная. Я пока не изучал его код всерьез. |
Re: Улучшение ИИВ оригинальной игре - никак. Глянул быстренько код игры - в общем весь расчет возможности одного отряда ударить другой происходит здесь: CombatMan_00422CA0 + sub_00448560
В CombatMan_00422CA0 есть цикл по стекам противника
Для реализации ИИ Берсерка можно попытаться сделать финт ушами и пройтись этим циклом за противника по своим же стекам, а не по стекам противника (по нашим). Тогда набор битов возможности ударить по своим же стекам будет в поле 0x544 каждого _BattleStack_ Только надо после взвешивания Берсерка не забыть проделать ту же процедуру по заполнению 0x544 и других полей, только уже нормальным образом (против противника). |
Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 1