Пока хочу сделать кастомку где все скиллы рандомно тебе даютсяЯ могу лишь предположить один из пути решения:
Найти любую кастомку со свежим обновлением х100 (как там они называются в душе не чаю), открыть её сурсы, а все скилы и прочая механика которая находится в папке games - легко копируется и посмотреть реализацию, если там редачили каждый спелл, то как говорится ))
Возможно, как сейчас в моей голове это думается, что есть отдельный LUA скрипт или JS , в котором указаны строки с условиями находить все что связано, ну например с:
"AbilityCastRange" и их значения умножать на 100
способность почему то не добавляетсяПока хочу сделать кастомку где все скиллы рандомно тебе даются
проблемы с самого начала пошли))
Какая функция подмены способности? или что-то подобноеЛогика должна быть следующей:
У тебя должны быть пустышки на QWERDF
Тебе надо их подменять случайной способностью, тогда это будет работать
Какая функция подмены способности? или что-то подобное
"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"
}
"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
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
Спасибо!Их в 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