Как сделать кастомку по типу x100?

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

Unito

Пользователь
31 Янв 2023
24
4
в кастомках очень слабо разбираюсь, и просто не могу понять как правильно это реализовать
не менять же каждой способности её значения?
помогите кто может
 
Я могу лишь предположить один из пути решения:
Найти любую кастомку со свежим обновлением х100 (как там они называются в душе не чаю), открыть её сурсы, а все скилы и прочая механика которая находится в папке games - легко копируется и посмотреть реализацию, если там редачили каждый спелл, то как говорится ))

Возможно, как сейчас в моей голове это думается, что есть отдельный LUA скрипт или JS , в котором указаны строки с условиями находить все что связано, ну например с:
"AbilityCastRange" и их значения умножать на 100
 
Я могу лишь предположить один из пути решения:
Найти любую кастомку со свежим обновлением х100 (как там они называются в душе не чаю), открыть её сурсы, а все скилы и прочая механика которая находится в папке games - легко копируется и посмотреть реализацию, если там редачили каждый спелл, то как говорится ))

Возможно, как сейчас в моей голове это думается, что есть отдельный LUA скрипт или JS , в котором указаны строки с условиями находить все что связано, ну например с:
"AbilityCastRange" и их значения умножать на 100
Пока хочу сделать кастомку где все скиллы рандомно тебе даются
проблемы с самого начала пошли))
 
Логика должна быть следующей:
У тебя должны быть пустышки на QWERDF
Тебе надо их подменять случайной способностью, тогда это будет работать
 
Какая функция подмены способности? или что-то подобное
Их в npc_abilities_custom.txt
Код:
"empty_0"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_1"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_2"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_3"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_4"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_5"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_6"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_7"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
в файле npc_heroes_custom.txt
Код:
        "Ability1"                    "empty_0"        // Ability 1
        "Ability2"                    "empty_1"        // Ability 2
        "Ability3"                    "empty_2"        // Ability 3
        "Ability4"                    "empty_3"        // Ability 4
        "Ability5"                    "empty_4"        // Ability 5
        "Ability6"                    "empty_5"        // Ability 5
В ней ты должен сделать рандомайзер - что при получении 1го уровня персонажа у тебя включается рандомайзер и дается случайня способность на empty_0
Код:
function dragon_knight_dragon_tail_lua:OnUpgrade()
    local caster = self:GetCaster()
    if self:GetLevel() == 1 then
        caster:SwapAbilities( "dragon_knight_dragon_tail_lua", "empty_0", true, false )
    end
end
Тут функция направленная, что качается талант и дается из ветки (где то была тема у Виталика с талантами, ток в той кастомке которую я дал, фикшеные таланты)
 
  • Нравится
Реакции: Unito
Их в npc_abilities_custom.txt
Код:
"empty_0"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_1"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_2"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_3"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_4"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_5"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_6"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
"empty_7"
{
"BaseClass"                "ability_datadriven"
"AbilityBehavior"        "DOTA_ABILITY_BEHAVIOR_HIDDEN | DOTA_ABILITY_BEHAVIOR_PASSIVE"
}
в файле npc_heroes_custom.txt
Код:
        "Ability1"                    "empty_0"        // Ability 1
        "Ability2"                    "empty_1"        // Ability 2
        "Ability3"                    "empty_2"        // Ability 3
        "Ability4"                    "empty_3"        // Ability 4
        "Ability5"                    "empty_4"        // Ability 5
        "Ability6"                    "empty_5"        // Ability 5
В ней ты должен сделать рандомайзер - что при получении 1го уровня персонажа у тебя включается рандомайзер и дается случайня способность на empty_0
Код:
function dragon_knight_dragon_tail_lua:OnUpgrade()
    local caster = self:GetCaster()
    if self:GetLevel() == 1 then
        caster:SwapAbilities( "dragon_knight_dragon_tail_lua", "empty_0", true, false )
    end
end
Тут функция направленная, что качается талант и дается из ветки (где то была тема у Виталика с талантами, ток в той кастомке которую я дал, фикшеные таланты)
Спасибо!
 
Реклама: