• Дорогой гость!

    Мы рады приветствовать вас на форуме Эвендима!

    Эвендим - это один из крупнейших проектов, посвященных миру Толкина, на котором вы можете найти все, что вам интересно! Эвендим ставит перед собой цель - объединить поклонников мира Толкина со всего мира. Вместе с нашими форумчанами, которые стали нашей второй семьей, мы постоянно работаем над тёплой и дружеской атмосферой, благодаря которой, так легко заводить новых друзей, и приятно проводить время!

    Мы приглашаем вас познавать мир Толкина, играть в игры, заводить новых друзей, и строить Эвендим вместе с нами!
Tips

Edain Mod И Искусственный Интелект

localhost740

Капитан
Здесь выкладываем на ваш взгляд проблемы связанные с искусственным интеллектом в модах Edain 3.7.1 и 3.8.1
 

Tor

Лейтенант
Играю чистую версию, бес сабмодов и только у лотлориена волна и очень плохо что ии не использует кольцо, да и вообще многих героев не созадают, даже при наличии полного развития, а ещё лотлориен не строет энтмунд, а гоблины горных великанов, жаль(
 

slavik.ipman

Верховный Король
а так можешь сказать что там куда вставить, через финал биг же это делать?
 

Thranduil

Воевода
В общем если без сабмодов то нужен архив __edain_data.big а если с а ля сабмодами то нужен только сам файл сабмода,при желании закинь мне файлы исправлю)
не могли бы вы код написать или сказать на что обратить внимание и что изменить
 

Дунадан Эвендимский

Король
  • Орден Митрандира
http://forum.evendim.ru/index.php/topic/7014-%D1%82%D1%83%D1%80%D0%BD%D0%B8%D1%80-%D0%BF%D0%BE-%D1%8D%D0%B4%D0%B0%D0%B9%D0%BD-%D0%BC%D0%BE%D0%B4-381-%D1%85%D1%80%D0%B0%D0%B1%D1%80%D1%8B%D0%B9-%D0%B2%D0%BE%D0%B8%D0%BD/#entry184588 народ, кто хочет участвовать, бегом сюда! =)
 

localhost740

Капитан
Добрый вечер всем!Сегодня начнем же решать проблемы с ИИ в Эдаин моде версии 3.8.1.И начнем с книги спелл. Для работы необходим всего лишь программа FinalBig (на всякий случай выкладываю её :E2: . Теперь открываем редактор и ищем файл systemevil.inc (книга спелл для темных рас) и systemgood.inc (книга спелл для светлых рас). Полные их пути соответственно data\ini\object\system\includes\systemevil.inc и data\ini\object\system\includes\systemgood.inc. выделяем любой из файлов ( я выбрал systemgood.inc) далее Edit -> Edit with editor и файл откроется в обычном текстовом редакторе. Просматриваем до конца и видим кучу кода типа OCLSpecialPower ModuleTag_EnshroudingMistImladris и т.д но не видим совсем строк типа AISpecialPowerUpdate и других подобных , это означает что ИИ для спелл не прописан совсем :D8: . Начнем с самого первого прописшем ИИ для способности эльфов "туман" его код выглядит так:

Behavior = OCLSpecialPower ModuleTag_EnshroudingMistImladris
SpecialPowerTemplate = SpellBookEnshroudingMistImladris
OCL = OCL_SpecialPowerEnshroudingMist
CreateLocation = CREATE_AT_LOCATION
AvailableAtStart = No
RequirementsFilterMPSkirmish = SPELL_BOOK_REQUIREMENTS_FILTER
RequirementsFilterStrategic = SPELL_BOOK_REQUIREMENTS_FILTER_STRATEGIC
End

Из этих всех строк нам нужно лишь выделить "SpellBookEnshroudingMistImladris" потому что по нему будем искать привязанную кнопку
Теперь о главном. Стандарт для написания ИИ для спелл выглядит вот так:


Behavior = AISpecialPowerUpdate "Любое свое название без ковычек"
CommandButtonName = Здесь название кнопки например Command_SpellBookElvenWood
SpecialPowerAIType = Тип ИИ например AI_SPELLBOOK_BUFFTERRAIN подробнее будет ниже
SpecialPowerRadius = Эта опция не обязательна и используется только для способностей где есть радиус-курсор например призыв кого-то или
способность эльфийские леса. В этой случае значение SpecialPowerRadius берется из SpecialPower.ini
End

Теперь коротко о всех возможных видов ИИ для книги спелл и способностей у существ и героев


SpecialPowerAIType = AI_SPECIAL_POWER_ENEMY_TYPE_KILLER - самый простой тип ИИ означает просто "убить врага" применяется на все виды
вражеских юнитов


AI_SPECIAL_POWER_TOGGLE_MELEE_AND_RANGE - означает что юниты могут переключаться между луком и мечом

AI_SPECIAL_POWER_HEAL_AOE - лечит абсолютно все виды юнитов когда их здоровье на волоске


AI_SPECIAL_POWER_SELFAOEHEALHEROS - исцеляет только лишь героев если их здоровье на волоске



AI_SPECIAL_POWER_GIVEXP_AOE позволяет давай опыт указанным юнитам

AI_SPECIAL_POWER_LEGOLAS_TRAINARCHERS - позволяет давать опыт только лучникам


AI_SPECIAL_POWER_BASIC_SELF_BUFF - один из простых , все способности типа Blade Master и Glorious Charge должны иметь именно этот тип ИИ


AI_SPECIAL_POWER_ELENDIL - когда у юнита кончается здоровье он использует эту способность пытаясь таким образом отогнать врагов.таким образом
он может обезопасить себя. Любые способности отправляющие врагов в бегство.



AI_SPECIAL_POWER_TARGETAOE_SUMMON - позволяет вызвать юнитов в указанную область


AI_SPECIAL_POWER_RANGED_AOE_ATTACK - данный тип использую герои которые могут прыгать на отряды врагов и сносить их ,например прыжок Рогаша


AI_SPECIAL_POWER_CHARGE - - Способность темных дунаданов "Начать атаку" и подобное будет примером использования данного типа ИИ.

AI_SPECIAL_POWER_LEGOLAS_ARROWWIND - используется чтобы закидать стрелами врагов в указанной области.Пример такого виден из названия :E9:


AI_SPECIAL_POWER_GANDALF_WIZARD_BLAST - использование какой-нибудь силы что отбросить рядом указанных врагов и нанести им урон пример тому способность магов "Отбрасывание врагов"

AI_SPECIAL_POWER_TOGGLE_MOUNTED - позволяет сесть на коня(или на что-то другое) или спешиваться


AI_SPECIAL_POWER_ENEMY_TYPE_KILLER_STRUCTURES - этот тип подобен AI_SPECIAL_POWER_ENEMY_TYPE_KILLER только атакует лишь строительные сооружения

AI_SPECIAL_POWER_ENEMY_TYPE_KILLER_RANGED - дополнительный и вовсе не обязательный,убивает юнитов которые имеют дальний тип атаки

Это для обычных способностей героев и юнитов. Теперь типы ИИ для книг спелл :



AI_SPELLBOOK_CITADEL - если вам вдруг нужно призвать строения типа "цитаделей


AI_SPELLBOOK_STRUCTURE_BASEKILL - призывают существ и других юнитов которые орентированы на уничтожении вражеских баз (например призыв балрога)


AI_SPELLBOOK_TREE_KILLER - уникальный тип ИИ ,позволяет обменять ресурсы деревьев в указанной области на монеты

AI_SPELLBOOK_SHROUD_REVEAL - позволяет сделать любую указанную невидимую область в видимую ()Например палантир.


AI_SPELLBOOK_CALLTHEHORDE - позволяет увеличить скорость найма юнитов в казармах


AI_SPELLBOOK_BUFFECONOMYBUILDING - бонусы для указанных построек дающих ресурсы

AI_SPELLBOOK_REBUILD - ремонт зданий

AI_SPELLBOOK_BUFFTERRAIN - создание областей на карте дающие войскам преимущества например "эльфийские леса"


AI_SPELLBOOK_ENSHROUDINGMIST - призывает туман в область где находятся враги для снижения их бонусов


AI_SPELLBOOK_STRUCTURE_BREAKER - любой спелл ориентированный на уничтожение построек например "наводнение"


AI_SPELLBOOK_STRUCTURE_BREAKER_PREF_WALLS - используется например в спелле "Энты" . Данная способность ориентирована на
уничтожение построек и стен.Всегда будет призываться у лагеря


AI_SPELLBOOK_HEAL - лечение указанных юнитов


AI_SPELLBOOK_CAPTURE_CREEP - способен захватывать нейтральные логова для их использования

AI_SPELLBOOK_ARMY_BREAKER - призывает отряды юнитов и др. существ в указанную область

AI_SPELLBOOK_ASSIST_BATTLE_DEBUFF - Неоднозначный тип ИИ. Его использует компьютер для (усиления) или поддержки своей атаки на врага,Это может быть и вызов Глубинного стража или Тома Бомбадила. Также его использует способность ArrowVolley


AI_SPELLBOOK_ASSIST_BATTLE_BUFF - способности типа War Chant использует его для усиления указанных войск

AI_SPELLBOOK_ALWAYS_FIRE - уникальная используются для воспламенения указанной области

На этом все типы закончены :E2: теперь приступим к написании ИИ для нашей способности "туман"
Это легко очень для начала копируем как было указанно выше строчку "SpellBookEnshroudingMistImladris"

и идем в data\ini\includes\commandbutton.inc где находятся все наши кнопки далее Edit-> Find вставляем строчку SpellBookEnshroudingMistImladris
и сразу натыкаемся на строчку Command_SpellBookEnshroudingMistImladris это нам и нужно.Теперь готовим полный код ИИ тип для тумана как вы поняли
будет AI_SPELLBOOK_ENSHROUDINGMIST.Радиус в specialpower.ini указан как 150


Behavior = AISpecialPowerUpdate SpellBookEnshroudingMistAI
CommandButtonName = Command_SpellBookEnshroudingMistImladris
SpecialPowerAIType = AI_SPELLBOOK_ENSHROUDINGMIST
SpecialPowerRadius = 150
End

Ну вот и все по такому же типу создается ИИ и для других спелл и при возможности вы уже сами можете это сделать :E2: Удачи!
 

localhost740

Капитан
Теперь можно поговорить и о тактике ИИ в Эдаин моде.Основной код ИИ(кроме спелл) располагается в файле ____edain_maps.big . Открываем его и находим файл skirmishaidata.ini (data\ini\default\skirmishaidata.ini).Настоятельно не рекомендую редактировать и сохранять файл в самой программе т.к так полетит весь ИИ :D8: поэтому извлекаем его в любое удобное место (Edit->Extract) и редактируем в текстовом редакторе.

В качестве примера для написания я взял юнита под названием WildCatapult который не строился ИИ. В файле ищем строку ArmyDefinition WildArmy ,затем опускаемся ниже до строчки
;//
;// ARMY UNIT DEFINITIONS
;//

AIEconomyAssigment WildMineShaft
TemplateName = WildMineShaft
End

После них как раз и идет описание тактики для армии ,например


ArmyMemberDefinition GoblinFighterHorde_Member
Unit = GoblinFighterHorde ;infantry
PercentageOfArmyPhase1 = 80.0
PercentageOfArmyPhase2 = 70.0
PercentageOfArmyPhase3 = 50.0
End

Создадим новую для нашего юнита - гоблинских катапульт
ArmyMemberDefinition GoblinFighterHorde_Member
Unit = WildCatapult
PercentageOfArmyPhase1 = 2.0
PercentageOfArmyPhase2 = 5.0
PercentageOfArmyPhase3 = 10.0
End
где PercentageOfArmyPhaseN - фазы игры 1- начальная 2- умеренная 3-самый огонь,значение 0.0 будет означать что юнит на данной фазе не нанимается ИИ.Ну по логике фазы ставятся в зависимости от типа юнитов и их значимость,для баланса советую ставить большие значение только для "мяса" ,типа простых гоблинских бойцов . На этом все теперь юнит доступен для ИИ.Таким же образом редактируются и другие фракции.

С героями тоже все просто ,необходимо всего лишь найти опцию HeroBuildOrder для каждой расы и прописать по порядку нужных героев.Героев которых нет в этом списке не нанимаются ИИ. Пример:

HeroBuildOrder = WildGroЯork WildGoblinKing_mod WildDrogothnew WildShelob_mod WildAzog_mod WildDuhrbur GasthausPalando GasthausAlatar

Опция OffensiveBuildings которая находится ниже позволит компьютеру строить всякие статуи фонтаны и подобные структуры дающие бонусы.

После редактирования сохраняем файл и кидаем его в архив путь должен быть лишь таким: data\ini\default\skirmishaidata.ini
сохраняемся и пользуемся :E2:

Всем спасибо!
 

Thranduil

Воевода
@[member='localhost740'], Привет, мне к тебе вопрос на счет гномов: как ИИ выбирает между троим королевством. где найти код соответствующий этого?
 

Карш

Крестоносец
Можно как то заставить Лотлориэн строить на ячейках? А то они не догадываются. Всего одно здание обычное строят.
 

Сверху