Dota 2 Workshop Tools:ru/Scripting:ru/Abilities Data Driven:ru

From Valve Developer Community
Jump to: navigation, search

Большинство способностей в игре Dota 2 описаны C++ кодом. При изучении механизма работы любых способностей, становится ясно, npc_abilities.txt является основным по важности файлом. Он включает в себя данные о других способностях, и выявляет "подводные камни" некоторых настроек, по большой части, это данные внутри кода, которые определяют реальные механизмы взаимодействий.



Простой Пример

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


"fx_test_ability"
{
 // General
 //-------------------------------------------------------------------------------------------------------------
 "BaseClass"			"ability_datadriven"
 "AbilityBehavior"		"DOTA_ABILITY_BEHAVIOR_PASSIVE"
 "AbilityTextureName"		"axe_battle_hunger"
 // Modifiers
 //-------------------------------------------------------------------------------------------------------------
 "Modifiers"
 {
  "fx_test_modifier"
  {
   "Passive" "1"
   "OnCreated"
   {
    "AttachEffect"
    {
     "Target" "CASTER"
     "EffectName" "generic_buff_1"
     "EffectAttachType" "follow_overhead"
     "EffectLifeDurationScale" "1"
     "EffectColorA" "255 255 0"
    }
   }
  }
 }
}


"BaseClass", "AbilityBehavior" и "AbilityTextureName" это ключевые классы для всех способностей:

"BaseClass" - Обычно Dota2 выбирает С++ класс для "подключения" к способности, считывая, название способности (в этом случае "fx_test_ability". Если вы хотите, чтобы Dota2 выбрала другой C++ класс, то "BaseClass" справится с этим - в примере, мы использовали ability_datadriven класс подключающий данные системы управления способностями.