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

  • Автор темы Автор темы Zek13f1
  • Дата начала Дата начала
  • Официальное уведомление администрации CustomGames.RU
    В связи с масштабным техническим сбоем в инфраструктуре прежнего хостинг-провайдера (Beget), работа форума CustomGames.RU была оперативно перенесена на новую серверную площадку и развёрнута из резервной копии базы данных.

    • Безопасность данных: учётные записи и данные пользователей находятся в полной безопасности. Все пароли и защищаемые параметры хранятся исключительно в криптографически зашифрованном (хэшированном) виде — никаких критических инцидентов для аккаунтов пользователей не произошло.
    • Временные технические ограничения: на этапе синхронизации файлового хранилища часть статических материалов (пользовательские аватары и архивные вложения) временно недоступна. По мере получения доступа к файловым архивам все материалы будут восстановлены в полном объёме.

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
В котором можно проверять на кач талантов и делать нужные вещи
 
Реклама: