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

Zek13f1

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

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Есть ли какой-нибудь шаблон по созданию кастомных талантов??? Понятно что таланты, это обычные скилы, но отличается их структура? Есть ли пример создания своего таланта?
В классных кастомках они используют таланты из доты, но ещё делают в скилле проверку на талант если успешна то какой-то параметр круче работает
Но можно делает талант который делает замену абилок

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"
            }
        }
    }
 

Zek13f1

Активный
11 Июл 2019
96
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"
            }
        }
    }
"ScriptFile" "newabilities/tiny.lua"
а там что?
 

SniperX

Друзья CG
26 Фев 2018
539
100
Проект
Dota 2x4
Это в datadriven можно сделать при помощи RemoveAbility и AddAbility
 
20 Дек 2016
892
170
В классных кастомках они используют таланты из доты, но ещё делают в скилле проверку на талант если успешна то какой-то параметр круче работает
Но можно делает талант который делает замену абилок

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().
 

I_GRIN_I

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