账号注册

大芒果魔兽|大芒果中国|魔兽世界单机|大芒果单机|大芒果GM命令|大芒果技术

查看: 873|回复: 1

大芒果魔兽修改与自制技能的一些心得体会

[复制链接]

278

主题

9

回帖

1820

DKP

管理员

Rank: 9Rank: 9Rank: 9

积分
4383
发表于 2021-1-25 19:56:17 | 显示全部楼层 |阅读模式
修改或自制一些技能是一件很有意思但很累的事情,尤其是当自已一知半解的时候。

      关于技能制作,论坛里的基础教程有挺多,但要真正去随心所欲地去制作一个理想的技能,这些基础教程便有些吃力了,后面的一些更深入的东西很难从网上获取一些有用的信息,当你面对几列几十列你几乎没有任何信息的数据时,你所能做的,只能是根据少量信息去猜测--验证。这几天来我做的正是这些。

      一、如何用一个技能去修改另一个技能

      这个主要是用在装备上,比如一件装备的绿字技能是火球术伤害+100%,当你穿上它时,你的火球术的伤害就被修改了。这其实是我很早以前想弄明白的,也发过帖子求助,无人回应。后来发现可以照抄一些现成的例子来修改技能,但是局限性比较大,你不能选择你想修改的技能(可能没有对应的已存实例)、你不能选择你想修改的效果(比如目标人数修改、CD、施法时间等等)。

      我人比较犟,每天晚上花点时间,对着技能的DBC文件看来看去,希望发现一点什么。我是做数据分析的,可能有职业加持吧,还真发现了点东西。一般职业技能在210-212列有一个十六进制的数,就是0x开头的,而在我观察的实例中的123-131列中,也有一些十六进制的数,一开始我也没想它们有什么联系,但偶然一次发现这两个地方的数字有些相同,然后经过多次对比发现,就是一样的。

      整理下就是:210-212列的数字是一个职业技能的标识(mask),用以在众多技能中识别它。与ID不同的是,十六进制数(指0x1,0x2,0x4这种)相加后依旧可对每个个体进行识别,ID作为十进制数相加后的数字无意义。而且,在210-212中的哪一列也至关重要,例如对术士来说,210的0x1对应暗影箭,211列的0x1对应吸取生命,而209列是表示职业。为方便说明,我们要制作一个技能1来修改技能2。

      123-131是确定被修改技能2的区域,就是说在这几列里我们就要指明我们要修改的技能是技能2,可划分三组,123-125,126-128,129-131,分别对应技能1的三个效果,比如效果1是改伤害,效果2是改CD,效果3是改目标数量。我们在一个技能中有以下三个链条:72-96-111-(123-125)、73-97-112-(126-128)、74-98-113-(129-131)。每一个链条表示一个效果。而210-212列对应着上面的(123-125),(126-128),(129-131)。

      111-113表示什么呢?就是指明修改效果,0默认表示修改伤害,1修改持续时间,7修改技能爆击,10修改施法时间,22修改持续性伤害,28修改被驱散几率等等,种类非常多。

      下面实例:我们要制作一个技能,使混乱之箭和暗影箭伤害增加50%,且混乱之箭必定暴击,同时使献祭的持续性伤害增加100%。

      混乱之箭在211列是0x20000,暗影箭在210列是0x1,献祭在210列是0x4。

      这个技能有三个效果,直接伤害增加,暴击率增加,持续性伤害增加,三个链条我们全用上。

      链条1:6-108-0-(0x1,0x20000,0)

      链条2:6-107-7-(0,0x20000,0)

      链条3:6-108-22-(0x4,0,0)

      修改的数值在81-83列是指明,这里没列出。最主要的是技能mask在210-212的位置要与括号中的位对应,如两个技能都在某一列,直接相加即可。

      TIPS:(1)貌似直接修改伤害是指修改伤害中固定的部分和武器百分比部分,法伤加成系数和攻击加成系数不受些影响,也就是如果一个技能的伤害是固定1点加攻强的100%,那么这种修改方式基本不影响最终的伤害,有待验证;(2)有关宠物的技能,一律在111-113中填8(即修改效果比例),96-98一般填107,填108的话没效果,107反倒是百分比修改了,这个已验证。

      至此,我们已可以对技能进行比较全面的基本性修改了,之所以叫基本的修改,是因为这些修改还没脱离技能原来的框架。我们若是想添加一些其他效果呢?请看下面吧。

      二、如何用一个技能对另一个技能添加一些额外的效果

      这些额外的效果是指”当你施放XX法术时”、“当你XX法术打出爆击时”,甚至是XX技能被闪避、招架等等时会触发的效果,例如术士的爆燃天赋,施放燃烧后,下三次毁灭系法术的施法时间和公共CD缩短30%。

      我先前做过一些诸如“你的近战攻击会触发某某效果”的技能,所以认为以上这些效果很容易实现。呃,事实上确实很容易实现,懂得机制后什么事情都容易多了。这两类技能思路大体一样,但细节上差的有点大。

      不同一:这是通过另外一个技能去修改燃烧技能,不是直接去修改燃烧这个技能本身;不同二:这里不是法术命中后、近战命中后等触发条件,不能简单在35列进行设置;不同三:这里是指定某个或某些技能来触发。

      为这个,头疼了几天。爆燃天赋的DBC翻译出来就是你发出有害魔法命中后会触发技能54277,这个54277就是使下三次毁灭系法术的施法时间和公共CD缩短30%的技能,问题是哪里指明了是施放燃烧之后呢?我一列列的看过去,没有,在54277的列里找来找去也没找到。然后我想,一定在某个地方有个文件在控制着这个机制,然后从DBC文件里翻,去数据库里找,找到一个spell-linked-spell,也没有,在spell-proc-event里,一开始以entry搜也没有,后来不经意到看这里有三列名叫spellfamilymask,对,这个就是上面说的210-212的名字,然后我将燃烧的0x800000转换成十进制,以spellfamilymask1进行检索时,有三行纪录跳了出来,然后他们的entry对应的法术分别是爆燃、清算、火焰冲撞。后面的就顺理成章了。

      在spell-proc-event里的procEX控制着触发方式,比如0x2表示爆击,0x10表示闪避等等,转换成十进制填进去就好啦。其他的就简单了,略过。

      希望我走的这些有些弯的路能帮到和一样对这些感兴趣的朋友,也希望大家能分享一些你们的体会。

      好了好了,我要问问题了,哪位大神能赐教下,96列的4和72列的3到底是个什么?我学计量学过dummy variable,但这个dummy aura我现在还是弄不明白,头疼啊!!求大神赐教!




上一篇:魔兽世界燃烧的远征各职业T套装代码
下一篇:自制装备和问号补丁最方便快捷的办法
大芒果魔兽世界怀旧服论坛 http://damangos.com
回复

使用道具 举报

1

主题

15

回帖

66

DKP

注册会员

Rank: 2

积分
178
发表于 2021-10-24 22:13:24 | 显示全部楼层
辛苦了,感谢分享
大芒果魔兽世界怀旧服论坛 http://damangos.com
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 账号注册

Archiver|手机版|小黑屋| 大芒果魔兽 ( 苏ICP备23526329 ) |网站地图

GMT+8, 2024-12-27 21:59 , Processed in 5.051336 second(s), 28 queries .

Powered by Discuz! X3.4

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表