попробуй в heroes_customs не писать override hero и прочую чепуху, достаточно будет просто "npc_dota_hero_name".Можешь взять всю инфу о модельке с \Steam\steamapps\common\dota 2 beta\game\dota\scripts\npc и берёшь нужного тебе героя, меняешь там всё что хочешь, и модель, и скиллы и таланты....
Пример:
Код:
"npc_dota_hero_omniknight"
{
"Model" "models/heroes/omniknight/omniknight.vmdl"
"IdleExpression" "scenes/omniknight/omniknight_exp_idle_01.vcd"
"SoundSet" "Hero_Omniknight"
"Enabled" "1"
"BotImplemented" "1"
"HeroPool1" "1"
"HeroUnlockOrder" "3"
"Role" "Support,Durable,Nuker"
"Rolelevels" "2,1,1"
"Complexity" "1"
"Team" "Good"
"HeroID" "57"
"ModelScale" "0.740000"
"VersusScale" "0.8night0000"
"LoadoutScale" "0.810000"
"SpectatorLoadoutScale" "0.8"
"HeroGlowColor" "120 205 255"
"CMEnabled" "1"
"PickSound" "omniknight_omni_spawn_01"
"BanSound" "omniknight_omni_anger_04"
"workshop_guide_name" "Omniknight"
"new_player_enable" "1"
"LastHitChallengeRival" "npc_dota_hero_dragon_knight"
"HeroSelectSoundEffect" "Hero_Omniknight.Pick"
"GibType" "default"
"Ability1" "phantasm_datadriven"
"Ability2" "custom_rasengan"
"Ability3" "wisp_overcharge"
"Ability4" "generic_hidden"
"Ability5" "generic_hidden"
"Ability6" "call_of_the_wild_boar_datadriven"
"Ability10" "special_bonus_exp_boost_20"
"Ability11" "special_bonus_strength_8"
"Ability12" "special_bonus_mp_300"
"Ability13" "special_bonus_strength_10"
"Ability14" "special_bonus_agility_15"
"Ability15" "special_bonus_movement_speed_35"
"Ability16" "special_bonus_attack_damage_90"
"Ability17" "special_bonus_unique_beastmaster_2"
"ArmorPhysical" "2"
"AttackCapabilities" "DOTA_UNIT_CAP_MELEE_ATTACK"
"AttackDamageMin" "31"
"AttackDamageMax" "41"
"AttackRate" "1.700000"
"AttackAnimationPoint" "0.433000"
"AttackAcquisitionRange" "600"
"AttackRange" "150"
"AttributePrimary" "DOTA_ATTRIBUTE_AGILITY"
"AttributeBaseStrength" "20"
"AttributeStrengthGain" "2.50000"
"AttributeBaseAgility" "23"
"AttributeAgilityGain" "3.10000"
"AttributeBaseIntelligence" "18"
"AttributeIntelligenceGain" "2.200000"
"MovementSpeed" "300"
"MovementTurnRate" "999999999.00"
"BoundsHullName" "DOTA_HULL_SIZE_HERO"
"VoiceFile" "soundevents/voscripts/game_sounds_vo_omniknight.vsndevts"
"particle_folder" "particles/units/heroes/hero_omniknight"
"GameSoundsFile" "soundevents/game_sounds_heroes/game_sounds_omniknight.vsndevts"
Допустим, кастомный скилл в абилити_кастомс
Код:
"custom_rasengan" // название скилла, которое ты пихаешь в "Ability#" "название скилла"
{
// General Дальше не важно
//-------------------------------------------------------------------------------------------------------------
"BaseClass" "ability_datadriven"
"AbilityBehavior" "DOTA_ABILITY_BEHAVIOR_NO_TARGET"
"AbilityUnitDamageType" "DAMAGE_TYPE_MAGICAL"
"AbilityTextureName" "naruto2"
"AbilityCastAnimation" "ACT_DOTA_CAST_ABILITY_1"
// Casting
//-------------------------------------------------------------------------------------------------------------
"AbilityCastPoint" "0.0"
// Time
//-------------------------------------------------------------------------------------------------------------
"AbilityCooldown" "20 16.6 13.3 10"
// Cost
//-------------------------------------------------------------------------------------------------------------
"AbilityManaCost" "50 75 100 125"
// Data Driven Ability
//-------------------------------------------------------------------------------------------------------------
"precache"
{
"soundfile" "soundevents/naruto_rasengan.vsndevts"
}
"OnSpellStart"
{
"ApplyModifier"
{
"ModifierName" "rasengan"
"Target" "CASTER"
}
"FireSound"
{
"EffectName" "SoundRasengan"
"Target" "CASTER"
}
"FireSound"
{
"EffectName" "SoundRasengan"
"Target" "TARGET"
}
}
"AbilitySpecial"
{
"01"
{
"var_type" "FIELD_FLOAT"
"damage" "125 250 375 500"
}
"02"
{
"var_type" "FIELD_FLOAT"
"distance" "200 400 600 800"
}
}
// Modifiers
//-------------------------------------------------------------------------------------------------------------
"Modifiers"
{
"rasengan"
{
"Passive" "0"
"Duration" "6"
"OnAttackLanded"
{
"Knockback"
{
"Target" "TARGET"
"Center" "CASTER"
"Duration" "0.1"
"Distance" "%distance"
"Height" "0"
}
"Damage"
{
"Target" "TARGET"
"Type" "DAMAGE_TYPE_MAGICAL"
"Damage" "%damage"
}
"RemoveModifier"
{
"ModifierName" "rasengan"
"Target" "CASTER"
}
}
"OnDeath"
{
"RemoveModifier"
{
"ModifierName" "rasengan"
"Target" "CASTER"
}
}
}
}
}