DOTA2RPG.com复制过来,备份一份[资源] DOTA2单位模板-附详细说明注释

[mw_shl_code=cpp,true]"DOTAUnits"
{   
    // 这个单位包括了npc_units_custom中【所有的】键值
    // 一般来说的是用不到全部的键值,所以这个模板仅供参考,你可以注释掉不用的部分

    "npc_dota_base_units"
    {
        // 基础设置
        //----------------------------------------------------------------
        "BaseClass"                 "npc_dota_base"     // 单位继承的类,是必须填写的,常用的有:生物npc_dota_creature、建筑npc_dota_building、计时器npc_dota_thinker
        "Level"                     "1"                 // 单位等级
        "Model"                     "models/development/invisiblebox.mdl"   // 模型文件
        "ModelScale"                 "0.8"               // 模型大小,
        "MinimapIcon"               "minimap_candybucket"      // 小地图图标
        "MinimapIconSize"           "1000"                     // 小地图图标尺寸
        "UnitLabel"                 "healing_ward"      // 单位标签,可以是任何名字字符,使用Lua代码GetUnitLabel()可以获取到这里的键值
        "ConsideredHero"            "1"                 // 作为英雄,提供英雄风格的生命值条。"DOTA_UNIT_TARGET_FLAG_NOT_CREEP_HERO" 的数据驱动标记
        "IsAncient"                 "0"                 // 是否为远古生物,0代表不是。"DOTA_UNIT_TARGET_FLAG_NOT_ANCIENTS"的数据驱动标记
        "IsNeutralUnitType"         "0"                 // 是否是中立单位,相关Lua函数: IsNeutralUnitType()
        "CanBeDominated"            "1"                 // 可否被支配
        "AutoAttacksByDefault"      "1"                 // 是否自动攻击,0为不自动攻击
        "ShouldDoFlyHeightVisual"   "0"                 // 飞行高度,传说中没用
        "WakesNeutrals"             "1"                 // 唤醒中立生物
        "SelectionGroup"                "string"        // 选择组,使得该类型的所有单位可以使用tab成组切换
        "SelectOnSpawn"                 "1"             // 出生选择,强制单位加入英雄的选择中,即使选项中的"自动选择召唤单位"是关闭的。被用在死灵飞龙的小龙上
        "IgnoreAddSummonedToSelection"  "1"             // 忽略自动选择召唤单位,设置为1时,使得"自动选择召唤单位" 忽略这个单位,用于元素分离
        
        // 声音 SoundSet 加上正确的 GameSoundsFile 可以提供攻击和脚步声等音效
        // SoundSet 字符串是每个英雄声音的第一部分,可以在Dota2声音编辑器中查找到
        // IdleSoundLoop 将会在单位产生后持续被播放,某些英雄并没有定义这个循环声音,但是如果你在这里增加一个不可循环声音,则可以作为诞生音效使用
        "SoundSet"                  "Hero_DragonKnight"
        "GameSoundsFile"            "soundevents/game_sounds_heroes/game_sounds_dragon_knight.vsndevts"
        "IdleSoundLoop"             "Hero_DragonKnight.Tutorial_Intro"

        "HasInventory"              "1"                 // 是否有物品栏
                                                        // 相关Lua函数: HasInventory() 和 SetHasInventory(bool)
                                                        // SetHasInventory(true) 对之前没有定义为"HasInventory" "1" 的单位没有任何效果


        // 技能设置
        //----------------------------------------------------------------
        "AbilityLayout"             ""          // 技能槽数量,最低4个,最高为6个,单位可以同时拥有最多16个技能
        "Ability1"                  ""          // 技能 1.
        "Ability2"                  ""          // 技能 2.
        "Ability3"                  ""          // 技能 3.
        "Ability4"                  ""          // 技能 4.
        "Ability5"                  ""          // 技能 5.
        "Ability6"                  ""          // 技能 6.
        "Ability7"                  ""          // 技能 7 -最高就显示6个技能,后面添加的技能将不显示
        "Ability8"                  ""          // 技能 8 -最高就显示6个技能,后面添加的技能将不显示


        // 护甲和魔抗设置
        //----------------------------------------------------------------
        "ArmorPhysical"             "0"         // 基础护甲
        "MagicalResistance"         "0"         // 基础魔抗


        // 攻击设置
        //----------------------------------------------------------------
        "AttackCapabilities"        "DOTA_UNIT_CAP_NO_ATTACK"   // 攻击类型:DOTA_UNIT_CAP_NO_ATTACK         不能攻击
                                                                //           DOTA_UNIT_CAP_MELEE_ATTACK      近战
                                                                //           DOTA_UNIT_CAP_RANGED_ATTACK     远程                                                      
        "AttackDamageMin"           "100"                       // 最小伤害
        "AttackDamageMax"           "100"                       // 最大伤害
        "AttackRate"                "1.7"                       // 攻击间隔
        "AttackAnimationPoint"      "0.75"                      // 攻击前摇
        "AttackAcquisitionRange"    "800"                       // 警戒范围
        "AttackRange"               "600"                       // 攻击范围
        "AttackRangeBuffer"         "250"                       // 攻击缓冲范围(不会取消攻击的额外射程范围)
        "ProjectileModel"           ""                          // 投射物,填写特效路径,只有投射物特效才行
        "ProjectileSpeed"           "900"                       // 投射速率
        "AttackDamageType"          "DAMAGE_TYPE_ArmorPhysical" //


        // 属性设置
        //----------------------------------------------------------------
        "AttributePrimary"          "DOTA_ATTRIBUTE_STRENGTH"   //主属性类型
        "AttributeBaseStrength"     "0"                         // 基础力量
        "AttributeStrengthGain"     "0"                         // 力量成长
        "AttributeBaseIntelligence" "0"                         // 基础智力
        "AttributeIntelligenceGain" "0"                         // 智力成长
        "AttributeBaseAgility"      "0"                         // 基础敏捷
        "AttributeAgilityGain"      "0"                         // 敏捷成长


        // 击杀奖励设置
        //----------------------------------------------------------------
        "BountyXP"                  "0"                     // 经验奖励
        "BountyGoldMin"             "0"                     // 最小金钱奖励
        "BountyGoldMax"             "0"                     // 最大金钱奖励


        // 边界设置
        //----------------------------------------------------------------
        "BoundsHullName"            "DOTA_HULL_SIZE_HERO"   // 碰撞边界类型,以下为单位尺寸参数:
                                                            // 值                             Hammer中的单位半径
                                                            // DOTA_HULL_SIZE_SMALL            8
                                                            // DOTA_HULL_SIZE_REGULAR          16
                                                            // DOTA_HULL_SIZE_SIEGE            16
                                                            // DOTA_HULL_SIZE_HERO             24
                                                            // DOTA_HULL_SIZE_HUGE             80
                                                            // DOTA_HULL_SIZE_BUILDING         81
                                                            // DOTA_HULL_SIZE_FILLER           96
                                                            // DOTA_HULL_SIZE_BARRACKS         144
                                                            // DOTA_HULL_SIZE_TOWER            144
        "RingRadius"                "50"                    // 选择圈半径
        "HealthBarOffset"           "-1"                    // 血条高度,缺省值为 "-1",意味着使用默认的模型高度


        // 移动设置
        //----------------------------------------------------------------
        "MovementCapabilities"      "DOTA_UNIT_CAP_MOVE_NONE"   // 移动类型
                                                                //DOTA_UNIT_CAP_MOVE_NONE       不能移动
                                                                //DOTA_UNIT_CAP_MOVE_GROUND     地面
                                                                //DOTA_UNIT_CAP_MOVE_FLY        飞行
        "MovementSpeed"             "300"                       // 移动速度
        "MovementTurnRate"          "0.5"                       // 转身速度
        "HasAggressiveStance"       "0"                         // 单位会在接近敌人时切换空闲/跑步的移动动画,比如亚巴顿的模型
        "FollowRange"               "100"                       // 最低跟随范围


        // 状态设置
        //----------------------------------------------------------------
        "StatusHealth"              "150"       // 基础生命值
        "StatusHealthRegen"         "0"         // 生命恢复速度,负值无效
        "StatusMana"                "0"         // 基础魔法值,设置为0会导致没有魔法条
        "StatusManaRegen"           "0"         // 魔法恢复速度,负值无效
        "StatusStartingMana"        "-1"        // 单位诞生时的魔法值,-1意味着默认满魔法值


        // 攻防类型设置
        //----------------------------------------------------------------
        "TeamName"                  "DOTA_TEAM_NEUTRALS"                // 所属队伍,关系不大
        "CombatClassAttack"         "DOTA_COMBAT_CLASS_ATTACK_HERO"     // 攻击的伤害类型,攻击类型表如下:
                                                                        //名称  等价
                                                                        //普通  DOTA_COMBAT_CLASS_ATTACK_BASIC
                                                                        //穿刺  DOTA_COMBAT_CLASS_ATTACK_PIERCE
                                                                        //攻城  DOTA_COMBAT_CLASS_ATTACK_SIEGE
                                                                        //混乱  DOTA_COMBAT_CLASS_ATTACK_LIGHT
                                                                        //英雄  DOTA_COMBAT_CLASS_ATTACK_HERO
        "CombatClassDefend"         "DOTA_COMBAT_CLASS_DEFEND_HERO"     // 护甲类型,护甲类型表如下:
                                                                        //名称  等价
                                                                        //无甲  DOTA_COMBAT_CLASS_DEFEND_SOFT
                                                                        //轻甲  DOTA_COMBAT_CLASS_DEFEND_WEAK
                                                                        //中甲  DOTA_COMBAT_CLASS_DEFEND_BASIC
                                                                        //重甲  DOTA_COMBAT_CLASS_DEFEND_STRONG
                                                                        //建筑  DOTA_COMBAT_CLASS_DEFEND_STRUCTURE
                                                                        //英雄  DOTA_COMBAT_CLASS_DEFEND_HERO

        "UnitRelationshipClass"     "DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT"   //单位关系类,比如建筑BUILDING的仇恨优先级低于HERO或DEFAULT
                                                                                //列表如下
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_BARRACKS
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_BUILDING
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_COURIER
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_HERO
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_SIEGE
                                                                                //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_WARD


        // 视野设置
        //----------------------------------------------------------------
        "VisionDaytimeRange"        "1200"          // 白天视野范围
        "VisionNighttimeRange"      "800"           // 夜晚视野范围
     

        // 脚本设置
        //----------------------------------------------------------------     
        "vscripts"                   "scripts/vscripts/AI.lua"   // 这会在单位诞生后立即装载一个脚本文件
                                                                // 使用诞生函数 ( entityKeyValues ) 可以启动一个计时器来进行任何操作

        // Creature Block
        //----------------------------------------------------------------
        "Creature"                                              // 这段KV针对基础类npc_dota_creature
        {
            // 单位使用饰品
            "AttachWearables"                                   
            {
                "Wearable1" { "ItemDef" "63" }                  // 每个"IdemDef" 的整数值可以在items_game.txt中找到
                "Wearable2" { "ItemDef" "64" }                  // 注意:最近的饰品模型在Source 2中尚不可用,试图使用这些代码会失败
                "Wearable3" { "ItemDef" "65" }                  // 如果你想确保模型存在,可以使用模型浏览器(model browser)查找其英雄名称
                "Wearable4" { "ItemDef" "66" }
                "Wearable5" { "ItemDef" "67" }
                "Wearable6" { "ItemDef" "68" }
            }

            "DisableClumpingBehavior"       "1"                 // 这个理论上会改变单位与其他单位的碰撞行为
            "CanRespawn"                    "1"                 // 能够重生,传说中没用
            "DisableResistance"            "75.0"               // 控制抗性,按照百分比减少大部分眩晕的时间

            // 升级参数,每次升级会获取的奖励
            "HPGain"                    "500"                   // 升级增加生命值上限
            "DamageGain"                "25"                    // 升级增加攻击力
            "ArmorGain"                 "10"                    // 升级增加护甲
            "MagicResistGain"           "10"                    // 升级增加魔抗
            "MoveSpeedGain"             "10"                    // 升级增加移动速度
            "BountyGain"                "30"                    // 升级增加赏金奖励
            "XPGain"                    "100"                   // 升级增加经验值上限

            // 数据驱动生物AI
            "DefaultState"              "Invade"
            "States"
            {
                "Invade"
                {
                    "Name"              "Invade"
                    "Aggression"        "70.0"                  // 在该生命值百分比,倾向于攻击并释放进攻性技能
                    "Avoidance"         "30.0"                  // 在该生命值百分制比单位逃跑,设置为0时,该生物会跟你死磕到底
                    "Support"           "0.0"                   // 开始释放防御性技能的生命值百分比
                    "RoamDistance"      "1000.0"                // 逃跑时单位会跑出的距离,与Avoidance参数一同使用
                }
            }

            // 进攻性技能AI
            "OffensiveAbilities"            
            {
                "Ability1"                  // 该技能还没有冷却时,尝试在任何地方使用其它技能
                {
                    "Name"                  "creature_force_of_nature"
                    "UseOnTrees"            "1"
                    "AOE"                   "1"
                    "Radius"                "100"
                }
                "Ability2"                  // 需要在275范围内有至少两个单位
                {
                    "Name"                  "ursa_earth_shock"
                    "AOE"                   "1"
                    "Radius"                "275"
                    "MinimumTargets"        "2"
                }
                "Ability3"                  // 不会对已经拥有状态的敌人重复使用Debuff              
                {
                    "Name"                  "lesser_nightcrawler_pounce"
                    "Damage"                "1"
                    "Debuff"                "1"
                }
                "Ability4"                  // 不会对眩晕的敌人重复使用眩晕
                {
                    "Name"                  "holdout_gyrocopter_homing_missile"
                    "Damage"                "1"
                    "Stun"                  "1"
                }
            }

            // 防御性技能AI
            "DefensiveAbilities"            
            {
                "Ability1"                  // 不会重复使用Buff
                {
                    "Name"                  "treant_living_armor"
                    "Buff"                  "1"
                }
                "Ability2"                  // "UseSelfishly" 意味着优先对自己使用,"UseAtHealthPercent" 意味在该生命值百分比强制使用  
                {
                    "Name"                  "creature_zombie_berserk"
                    "UseSelfishly"          "1"
                    "Buff"                  "1"
                    "UseAtHealthPercent"    "50"
                }
                "Ability3"                  // 当在650范围内有至少3个可被治疗的单位时使用
                {
                    "Name"                  "creature_summon_undead"
                    "Heal"                  "1"
                    "AOE"                   "1"
                    "Radius"                "650"
                    "MinimumTargets"        "3"
                }
            }

            // 逃跑技能AI
            "EscapeAbilities"               
            {
                "Ability1"                  // 生命值低于一定百分比时触发
                {
                    "Name"                  "lesser_nightcrawler_pounce"
                }
            }
            
            // 单位装备物品,单位必须设置  "HasInventory"  "1"  才能使用
            "EquippedItems"
            {
                "ForceStaff"    {    "Item"    "item_force_staff"    }
                "PhaseBoots"    {    "Item"    "item_phase_boots"    }
                "Drums"            
                {   
                    "Item"        "item_ancient_janggo"
                    "Charges"    "10"
                }
                "Urn"
                {
                    "Item"        "item_urn_of_shadows"
                    "Charges"    "10"
                }
            }
        }
    }
}


[/mw_shl_code]