dota2吧 关注:6,346,211贴子:176,053,032

探讨与开发【通过本地设置简化多单位操作】

取消只看楼主收藏回复

视频来自:百度贴吧


IP属地:江苏1楼2018-09-28 11:08回复
    先给各位播放一段舞蹈《卷珠帘》(和小资租们花2天时间编排录制的),使用英雄是育母蜘蛛,了解克隆、剔除、编队操作的应该知道这样的分操意味着什么。(纯手动即时操作,脚本无用——跟不上节奏)


    IP属地:江苏3楼2018-09-28 11:10
    收起回复
      广告
      立即查看
      召唤物英雄是dota中十分具有特色的一类,经常作为赛场上的杀手锏登场,然而冰蛙的设置并不够完善(或者说是强行调整),使得这类英雄有一定门槛。最近本人在摸索dota2文件时发现了一个设置,或许这会是革命性的发现。(珍爱生命拒绝框a)


      IP属地:江苏4楼2018-09-28 11:11
      回复
        还有就是关于蜘蛛,这是我dota2上手的第二个英雄,当时路人胜率倒数第二的英雄,作为召唤物最多的英雄让我感受到了无限的可能性,一路走来无怨无悔,劣势路一占就感觉玩得很开心。7.0之后地图野区的调整,让蜘蛛变成了一个发育型中单,而之后的改动使得她的容错率提升的显而易见,中路一占毒瘤刷,魂戒散失BKB,30分钟不是基地就GG。这让我感到难过,小蜘蛛从有灵魂的小生命几乎彻底沦为刷钱机器,路人局中的蜘蛛也成了某种意义上的“上分利器”。我玩dota是为了开心的,不怎么打天梯,最近也很不想碰这个英雄,表面上的削弱其实无法改变什么,希望冰蛙重做或者改动地图吧,让主流的蜘蛛回归三号位,给遗迹一个清静。


        IP属地:江苏5楼2018-09-28 11:12
        收起回复
          上面视频虽然看起来华而不实,但是总会有人意识到,这种操作的潜力



          IP属地:江苏8楼2018-09-28 11:16
          回复(7)
            具体怎么搞,我晚些时候慢慢道来,把通宵的觉补补。怎么改我在盘丝洞里说过,嘻嘻,算帮猪王打个广告吧。


            IP属地:江苏10楼2018-09-28 11:18
            收起回复
              既然大家迫切想知道怎么分别操作单个小蜘蛛,那给各位留个测试,如果游戏中用“下一个单位”(默认Tab)切换会是什么现象,有什么想法都可以说(我或就可以帮你解决)。这层回复多我就早点揭晓。


              IP属地:江苏21楼2018-09-28 11:29
              回复(9)
                思考过以上问题后,想一下,有些单位是可以tab单切的,比如米波副狗、电狗分身、德鲁伊的熊、幻象、死灵书,有些是不能单切的比如召唤物英雄的召唤物,而取决于之间的区别就是能否单切的关键。如果能想到这一点,应该知道方法了。


                IP属地:江苏30楼2018-09-28 11:51
                回复
                  广告
                  立即查看
                  能否单切,不同是复杂的逻辑,而是类似于“是”“否”的关系,既然不是复杂逻辑,那就是单位的特性决定的,于是我们打开游戏文件内决定单位特性的文件一探究竟。


                  IP属地:江苏34楼2018-09-28 11:58
                  回复

                    我们打开units.txe这里面是单位的特性,都是一些类似于“白话”的代码,没有复杂逻辑,吧每个引号里的作用弄清楚对dota2的理解会比别人更深。
                    举例:维萨吉的佣兽,往往存在争议的单位,其实这里给的很明确了,
                    “是召唤物”
                    “是远古生物”所以黑鸟法球无效
                    除非主动攻击“不会吸引野怪仇恨”
                    “被认作是英雄”所以有英雄类似血条和蓝条不可被支配
                    “攻击类型——英雄”
                    “护甲类型——英雄”
                    “仇恨类型——眼”所以小兵和塔不会优先攻击它


                    IP属地:江苏36楼2018-09-28 12:12
                    回复(3)
                      我在好几个群里已经说过我的方法了,也有不少人知道怎么搞了,肯定不会放鸽子。我不直接道出方法,因为我希望各位一起思考,去发现解决新的问题。互联网时代,要个方法太简单了,改起来也简单,但是如果你敢于解读、甚至看穿这个游戏的固有模式,是更重要的。我本来玩蜘蛛是图开心,享受游戏,如果就被浮躁的人们拿去“上分”“捕鱼”了,和我的初心有背,我不允许那么做,就算是蜘蛛这个英雄现在已经被玩烂了,我让人想对她好点。
                      如果你能顺着我后续讲解的思路,自己都知道怎么解决。


                      IP属地:江苏39楼2018-09-28 12:25
                      回复(2)
                        [mw_shl_code=cpp,true]"DOTAUnits"
                        {
                        // 这个单位包括了npc_units_custom中【所有的】键值
                        // 一般来说的是用不到全部的键值,所以这个模板仅供参考,你可以注释掉不用的部分
                        "npc_dota_base_units"
                        {
                        // 基础设置
                        //----------------------------------------------------------------
                        "BaseClass" "npc_dota_base" // 单位继承的类,是必须填写的,决定了单位的内置逻辑类型
                        "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" // 是否为远古生物是。"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" /


                        IP属地:江苏40楼2018-09-28 12:38
                        收起回复
                          // 属性设置
                          //----------------------------------------------------------------
                          "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_SMALLEST 4 // DOTA_HULL_SIZE_SMALL 8
                          // DOTA_HULL_SIZE_HERO 24
                          // DOTA_HULL_SIZE_HUGE 80
                          // DOTA_HULL_SIZE_BUILDING 8
                          // 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" // 最低跟随范


                          IP属地:江苏41楼2018-09-28 12:39
                          回复(15)
                            // 状态设置
                            //----------------------------------------------------------------
                            "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_SIEG
                            //英雄 DOTA_COMBAT_CLASS_ATTACK_HERO
                            "CombatClassDefend" "DOTA_COMBAT_CLASS_DEFEND_HERO" // 护甲类型,护甲类型表如下:
                            //名称
                            //普通 DOTA_COMBAT_CLASS_DEFEND_BASI
                            //建筑 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_BUILDIN
                            //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_DEFAULT
                            //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_HERO
                            //DOTA_NPC_UNIT_RELATIONSHIP_TYPE_WARD
                            // 视野设置
                            //----------------------------------------------------------------
                            "VisionDaytimeRange" "1200" // 白天视野范围
                            "VisionNighttimeRange" "800" // 夜晚视野范围


                            IP属地:江苏42楼2018-09-28 12:39
                            回复
                              广告
                              立即查看
                              以上是npc内单位的特特性,这些数据是可以改的(记得备份),仅本地有效,天梯和匹配时,游戏性以官方的为准(有内置npc文件管理),而还有一部分内容不会影响游戏性,算作个性化用户设置,对本地有效在官方服务器仍然继承,例如血条类型、组、底部圆圈大小、声音、血条高度、模型类型。


                              IP属地:江苏45楼2018-09-28 12:47
                              收起回复