dota2地图编辑器吧 关注:1,670贴子:6,689

【技能】制作自定义技能实例

只看楼主收藏回复

学了两天的编辑器,略有心得,特来分享
这不是系统的技能教程,系统教程看置顶链接
楼下开坑


IP属地:上海1楼2015-06-23 21:23回复
    【准备工作】
    1.首先你得创建一个自己的dota2项目,然后在dota2安装目录找到
    "common\dota 2 beta\game\dota_addons\chicken_fight\scripts"这个文件夹里面有两个文件夹npc和vscripts
    2.打开npc文件夹,里面有个npc_abilities_custom.txt
    在这个txt里可以写你技能的一些基本信息,冷却啊,持续时间啊什么的。
    3.打开vscripts文件夹,新建一个文本,重命名为hero_ability.lua
    这个就是技能关联的lua脚本,很多事都要靠它。
    4.打开下面这个网站,在npc_abilities_custom.txt里面写数据需要用的资料,相信我你不可能全部背下来的
    https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools:zh-cn/Scripting:zh-cn/Abilities_Data_Driven:zh-cn
    5.打开下面这个网站,在hero_ability.lua里面写数据需要用的资料
    https://developer.valvesoftware.com/wiki/Dota_2_Workshop_Tools/Scripting/API:zh-cn
    ------------------------------------------------
    ok接下来可以正式开始了


    IP属地:上海2楼2015-06-23 21:43
    收起回复
      广告
      立即查看
      【凝光之耀】
      持续时间内提升攻击力并吸收一部分伤害,吸收的伤害转化为下一次的攻击力
      ----------------------------
      1.我们打开“npc_abilities_custom.txt”发现里面已经有写东西了。什么Templar Assassin: Refraction Holdout,这是一个圣堂刺客折光的示范例子,但却不是原版折光,不同在于这个技能是吸收固定量伤害,比如1000之后就爆了,原版是抵挡伤害次数。好吧,都是题外话,这不是一个好的技能示范,因为效果实现的代码都看不见。我们不管这些。
      2.我们在"Version" "1"这个下一行开始写我们的技能,首先我们得给技能取个英文名字,啊拼音名字也是不错的选择,我这里装下b使用的百度翻译就命名为Converge Light。聚光!
      3.我们写下这些代码,截图限制,后面还有之后会说。


      IP属地:上海3楼2015-06-23 22:18
      回复
        终于有个实用教程了。。顺便楼主说一下怎么添加给英雄。。进游戏就可以测试了。。完整的说一下


        IP属地:江苏来自Android客户端4楼2015-06-23 22:38
        收起回复
          我们分析一下上面的代码,//后面的都是注释- -
          【第8行】引号里的字段就是这个技能的名字,不能使用空格,取你喜欢的名字吧
          【第10行】技能模版,这一行很重要!玩过we的都知道,要自定义一个技能就要选一个技能模版复制,然后进行修改。这里也是如此。这里写的ability_datadriven的意思就相当于你用we的通魔做技能模版(当然还是有差别的啦,通魔限制太多)。你可以自定义各种数据从定制出你想要的技能。值得一提的是这里如果填入dota2原有的技能,比如templar_assassin_meld(这是圣堂刺客的隐匿)那么就可以直接修改其技能数据,比如减多少甲啊,额外伤害是多少啊,冷却啊之类的,但是不能给其加一个原来没有的数据,比如加护甲。
          【第11行】技能行为,这个可以说半天。我只简单说一下里面的意思。
          DOTA_ABILITY_BEHAVIOR_NO_TARGET 不需要指定目标就能释放的技能,当按下技能按钮的时候,这个技能就会被释放
          DOTA_ABILITY_BEHAVIOR_IMMEDIATE 这个技能将会被立即释放,不会进入操作序列。
          这里写其他的东西可以定义技能是否是对点施放技能或对单位施放技能,具体请看2楼第4点的链接里的技能行为,里面有详细说明。
          特别提醒!两条代码中间不是有个“|”吗,左右记得各有个空格哦,很重要!
          【第12行】技能图标,填入dota2原有技能的名字就能使用它的图标,这里的templar_assassin_refraction是圣堂刺客的折光
          【第13行】技能类型,这行可以不写,就是用来区分大招和小技能。暂时没什么用
          DOTA_ABILITY_TYPE_BASIC 普通技能,英雄等级1可学习,每2级可升级
          DOTA_ABILITY_TYPE_ULTIMATE 终极技能,英雄等级6可学习,每5级可升级也会在HUD中被标记为大招
          DOTA_ABILITY_TYPE_ATTRIBUTES 用于属性奖励
          DOTA_ABILITY_TYPE_HIDDEN 隐藏?
          【第14-16行】最大等级,可以学习的等级,每多少级可以学习,这个we也有把。没什么好说的,按你喜欢填就对了。但是最大等级多于7,比如9,下面的点不会显示九个的会显示两个...
          【第17行】施法前摇,其实上面写了立即施放,这里就没用了
          【第18行】技能动画,这里用攻击
          【第19-20行】冷却和魔法消耗,没什么好说的,如果是定值写一个就够了。


          IP属地:上海5楼2015-06-23 22:49
          回复
            【第21行】"AbilitySpecial"这个很好用。里面可以写一些技能数据
            【第25行】var_type后面的值只有两种,如果下面的数据是整数那么填FIELD_INTEGER,如果有小数,那么填FIELD_FLOAT
            【第26行】damage_absorb这个可以自己定义,你想打什么都行,前提是自己能看懂,我们技能有个持续时间,这里就可以写duration。后面的的填数字,规则和上面提到的冷却时间一样。上面不是有"01""02"吗。如果你想有更多的描述,就写"03""04""05"都行
            比如我们的凝光之耀,有持续时间duration,有伤害吸收比例transform,也有增加的固定伤害bouns_damage
            命名方式自己喜欢就好,什么chixu、xishou、shanghai。。。。。


            IP属地:上海6楼2015-06-23 23:05
            回复
              分析上面的代码
              【第1行】格式就是这样写的,上图只有一个buff,也就是3-11行,如果有两个buff请复制粘帖那一段。
              【第3行】这是你buff的名字。我习惯用modifier_xx_xx的格式
              【第5行】这个buff的持续时间,这里先不谈被动效果或者光环那种没有时间条的。直接看后面的的%duration
              还记得6楼AbilitySpecial里写的的duration吗。这里在前面加个%就是获取其中的数据。当然你也可以写一个定值。
              【第6行】这个是设置是否隐藏这个buff图标,1是隐藏。还有很多可设置的选项,具体可设置的属性请2楼第4点链接找到Modifier。
              【第7行】这个重点了!!!看到MODIFIER_PROPERTY_PREATTACK_BONUS_DAMAGE
              这个意思给单位增加额外攻击力也就是绿字的攻击力。后面的bouns_damage跟第5行的duration一样都在6楼的AbilitySpecial里定义了。这里还可以加很多条其他属性。加攻速等等,具体列表又在2楼4链接里的Modifier 属性列表


              IP属地:上海9楼2015-06-23 23:43
              回复
                【lua脚本】
                上面大概介绍完了。等下直接上全部代码
                这里在说一下hero_ability.lua里要写什么
                因为楼主有一点其他编程语言的基础,所以这里还能理解一点。我已经尽量每一行都注释了。其实依样画葫芦摸索摸索就能抓到规律的。
                这里的的function后面高亮的高亮的就是函数的名字。可以在modifier里使用。。


                IP属地:上海10楼2015-06-24 00:00
                回复
                  广告
                  立即查看
                  这是所有的代码。把他放到上面提到的文件夹就能生效,里面有详细注释
                  http://pan.baidu.com/s/1sjmM05B
                  http://pan.baidu.com/s/1c0GtiMk


                  IP属地:上海11楼2015-06-24 00:07
                  收起回复
                    【给单位添加技能】
                    既然技能做完了。怎么给单位添加呢
                    找到上面提到的npc文件夹。找到npc_heroes_custom.txt
                    打开,里面应该已经写了东西,直接把后面的名字改成你技能的名字就ok了。然后进游戏选圣堂刺客吧- -
                    "Ability1" "templar_assassin_converge_light"
                    还是上图把。


                    IP属地:上海12楼2015-06-24 00:13
                    回复
                      可能很多地方看不懂把。也不知道从何说起- -
                      直接问我好了。。
                      真的好难解释啊

                      完。


                      IP属地:上海13楼2015-06-24 00:27
                      收起回复
                        全懂了


                        IP属地:江苏来自iPhone客户端14楼2015-06-24 03:16
                        回复
                          关键是触发那里难


                          IP属地:江苏来自iPhone客户端15楼2015-06-24 03:16
                          收起回复
                            辛苦了


                            来自Android客户端16楼2015-06-24 07:33
                            回复
                              广告
                              立即查看
                              今晚下班试一下


                              IP属地:江苏来自Android客户端17楼2015-06-24 08:15
                              回复