Создания своих талантов

  • Автор темы Автор темы Zek13f1
  • Дата начала Дата начала

Zek13f1

Активный
11 Июл 2019
101
3
Есть ли какой-нибудь шаблон по созданию кастомных талантов??? Понятно что таланты, это обычные скилы, но отличается их структура? Есть ли пример создания своего таланта?
 
Есть ли какой-нибудь шаблон по созданию кастомных талантов??? Понятно что таланты, это обычные скилы, но отличается их структура? Есть ли пример создания своего таланта?
В классных кастомках они используют таланты из доты, но ещё делают в скилле проверку на талант если успешна то какой-то параметр круче работает
Но можно делает талант который делает замену абилок

C++:
"tiny_talent"
    {
        "BaseClass"    "ability_datadriven"
        "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityType"    "DOTA_ABILITY_TYPE_ATTRIBUTES"
        "OnUpgrade"
        {
            "RunScript"
            {
                "ScriptFile"    "newabilities/tiny.lua"
                "Function"        "add"
                "old"            "tiny_ult"
                "new"            "tiny_ult2"
            }
            "RemoveModifier"
            {
                "Target"        "CASTER"
                "ModifierName"    "modifier_tiny_ult"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
        }
    }
 
В классных кастомках они используют таланты из доты, но ещё делают в скилле проверку на талант если успешна то какой-то параметр круче работает
Но можно делает талант который делает замену абилок

C++:
"tiny_talent"
    {
        "BaseClass"    "ability_datadriven"
        "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityType"    "DOTA_ABILITY_TYPE_ATTRIBUTES"
        "OnUpgrade"
        {
            "RunScript"
            {
                "ScriptFile"    "newabilities/tiny.lua"
                "Function"        "add"
                "old"            "tiny_ult"
                "new"            "tiny_ult2"
            }
            "RemoveModifier"
            {
                "Target"        "CASTER"
                "ModifierName"    "modifier_tiny_ult"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
        }
    }
"ScriptFile" "newabilities/tiny.lua"
а там что?
 
Это в datadriven можно сделать при помощи RemoveAbility и AddAbility
 
В классных кастомках они используют таланты из доты, но ещё делают в скилле проверку на талант если успешна то какой-то параметр круче работает
Но можно делает талант который делает замену абилок

C++:
"tiny_talent"
    {
        "BaseClass"    "ability_datadriven"
        "AbilityBehavior"    "DOTA_ABILITY_BEHAVIOR_PASSIVE"
        "AbilityType"    "DOTA_ABILITY_TYPE_ATTRIBUTES"
        "OnUpgrade"
        {
            "RunScript"
            {
                "ScriptFile"    "newabilities/tiny.lua"
                "Function"        "add"
                "old"            "tiny_ult"
                "new"            "tiny_ult2"
            }
            "RemoveModifier"
            {
                "Target"        "CASTER"
                "ModifierName"    "modifier_tiny_ult"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
            "LevelUpAbility"
            {
                "Target"        "CASTER"
                "AbilityName"    "tiny_ult2"
            }
        }
    }

Да харош этим раскидываться, выяснили же уже, что с ability_datadriven дерево в худе не работает нормально.
Нормальной системы для работы с талантами в доте пока нет. Чтобы талант работал в худе, ему нужно ставить "BaseClass" "special_bonus_undefined" и проверять изучен ли он (онли луа), однако сам талант по факту будет просто тегом. Его нельзя будет расширить как lua или dd способность. В идеале нужно менять само дерево в худе.
Если нужно сделать таланту какой-либо пассивный эффект, могу предложить такой вариант: Накладывай на героев модификатор, который постоянно чекает изученные таланты и накладывает другой модификатор с именем изученного таланта. А еще такой способ позволит делать проверку наличия таланта на клиенте, так как там работает HasModifier().
 
Да харош этим раскидываться, выяснили же уже, что с ability_datadriven дерево в худе не работает нормально.
Нормальной системы для работы с талантами в доте пока нет. Чтобы талант работал в худе, ему нужно ставить "BaseClass" "special_bonus_undefined" и проверять изучен ли он (онли луа), однако сам талант по факту будет просто тегом. Его нельзя будет расширить как lua или dd способность. В идеале нужно менять само дерево в худе.
Если нужно сделать таланту какой-либо пассивный эффект, могу предложить такой вариант: Накладывай на героев модификатор, который постоянно чекает изученные таланты и накладывает другой модификатор с именем изученного таланта. А еще такой способ позволит делать проверку наличия таланта на клиенте, так как там работает HasModifier().
Есть ивент
  • dota_player_learned_ability
В котором можно проверять на кач талантов и делать нужные вещи
 
Реклама: