Datadriven А.И.

Qweik

Пользователь
14 Фев 2015
54
1
6
18
Реакции
1 0 0
#1
Сорри может я и боян, но не нашел этого тут, может кому пригодиться.

Datadriven А.И.
Очень полезный пример для простых AI, позволяет использовать АоЕ заклинания и Buffs. Способности будут использоваться по определенным значениям, параметры которых вы зададите в объекте. Более сложный ИИ пишется на Lua vscripts.

Состояние:
** DefaultState * определяет, каким будет поведение на основе ключей, заданных в блоке.

Код:
"DefaultState"    "Invade"
"States"
{
  "Invade"
  {
    "Name"     "Invade"
    "Aggression"  "70.0"
    "Avoidance"   "30.0"
    "Support"    "0.0"
    "RoamDistance" "1000.0"
  }
}
Параметры:

"Aggression" - желание атаковать и использовать атакующие способности после определенного порога HP (%).
"Avoidance" - объект будет убегать, после данного % HP.
"Support" - % HP , при которой объект начнет использование защитных способностей.
RoamDistance : расстояние, на которое объект будет отбегать во время бегства. По умолчанию 0.

Наступательные Способности А.И. ((("OffensiveAbilities")))

Пример 1

После того, как первый навык перезаряжается, объект будет пытаться использовать Ability2 все время.

Код:
"OffensiveAbilities"
{
  "Ability1"        
  {
    "Name"    "creature_force_of_nature"
    "UseOnTrees" "1"
    "AOE"     "1"
    "Radius"   "100"
  }
  "Ability2"        
  {
    "Name"    "furion_sprout"
  }
}
Пример 2

Это позволит использовать превосходство и бешенство, когда это возможно, и третью способность, когда есть по крайней мере 2 цели в радиусе 275.

Код:
"OffensiveAbilities"
{
  "Ability1"        
  {
    "Name"        "ursa_overpower"
  }
  "Ability2"        
  {
    "Name"        "ursa_enrage"
  }
  "Ability3"        
  {
    "Name"        "ursa_earth_shock"
    "AOE"        "1"
    "Radius"       "275"
    "MinimumTargets"   "2"
  }        
}
Пример 3

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

Код:
"OffensiveAbilities"
{
  "Ability1"        
  {
    "Name"       "lesser_nightcrawler_pounce"
    "Damage"      "1"
    "Debuff"      "1"
  }
}
Пример 4

Не дает оглушать атакуемый объект, который будучи уже оглушен. (Не думаю , что это когда - либо работало, но все же. )

Код:
"OffensiveAbilities"
{
  "Ability1"
  {
    "Name"       "holdout_gyrocopter_homing_missile"
    "Damage"      "1"
    "Stun"       "1"
  }
}

Оборонительные Способности А.И. ((("DefensiveAbilities")))
Значения этого навыка привязаны к "Support" значению , определенному в "States".

Пример 1

"Buff" "1" Будет пытаться наложить "Buff" на объект, не будет применять, пока эффект действует.

Код:
"DefensiveAbilities"
{
  "Ability1"       
  {
    "Name"   "treant_living_armor"
    "Buff"   "1"
  }
}
Пример 2

"UseSelfishly" означает, отдавать приоритет на себя, "UseAtHealthPercent" вынуждает использование навыка, после этого порога HP (%).

Код:
"DefensiveAbilities"
{
  "Ability1"        
  {
    "Name"        "creature_zombie_berserk"
    "UseSelfishly"    "1"
    "Buff"        "1"
    "UseAtHealthPercent" "50"
  }
}
Пример 3

Использует способность, когда есть по крайней мере 3 цели в 650 радиуса, которые могут быть излечены.

Код:
"DefensiveAbilities"
{
  "Ability1"
  {
    "Name"         "creature_summon_undead"
  "Heal"         "1"
  "AOE"         "1"
  "Radius"        "650"
  "MinimumTargets"    "3"
  }
}
Побег Способности А.И. ((("EscapeAbilities")))

Будет использоваться в режиме отступать, привязан к "Avoidance".

Пример


Код:
"EscapeAbilities"
{
  "Ability1"        
  {
    "Name"        "lesser_nightcrawler_pounce"
  }
}
Предметы
Должен иметь "HasInventory" "1"


Пример

Код:
"EquippedItems"
{
  "ForceStaff"  {  "Item"  "item_force_staff"  }
  "PhaseBoots"  {  "Item"  "item_phase_boots"  }
  "Drums"      
  {  
    "Item"    "item_ancient_janggo"
    "Charges"  "10"
  }
  "Urn"
  {
    "Item"    "item_urn_of_shadows"
    "Charges"  "10"
  }
}
 
Последнее редактирование модератором:

Илья

Супермодератор
Команда форума
25 Сен 2015
2,348
41
48
27
Реакции
41 0 0
#2
Отсюда взял?
Желательно ссылки на источник оставлять.
А так молодец, что перевел.
 

Qweik

Пользователь
14 Фев 2015
54
1
6
18
Реакции
1 0 0
#3
[quote author=Илья link=topic=1274.msg7774#msg7774 date=1485164850]
Отсюда взял?
Желательно ссылки на источник оставлять.
А так молодец, что перевел.
[/quote]
Не знал, да от туда . ;)
 

rosomaxa12

Пользователь
24 Авг 2018
66
1
6
23
Проект
colosseum arena
Реакции
1 0 0
#4
[quote author=Илья link=topic=1274.msg7774#msg7774 date=1485164850]
Отсюда взял?
Желательно ссылки на источник оставлять.
А так молодец, что перевел.
Не знал, да от туда . ;)[/QUOTE]

Как по мне не работает 1 пример.Босс вешает ульту слардара по кд

"OffensiveAbilities"
{
"Ability1"
{
"Name" "vengefulspirit_magic_missile"
}
"Ability2"
{
"Name" "slardar_amplify_damage"
"Damage" "1"
"Debuff" "1"
}
}
 
Реклама: