nut修改实例5:多动作技能(以红狗为例)

今天介绍一下多动作技能的写法,我们以血魔·弑天为例

首先还是先添加一个主动技能,skl文件准备过程先不详细介绍,咱们直接开始后面的添加。

技能注册之后,需要跑五国。

下一步是把技能添加到技能树nut修改实例5:多动作技能(以红狗为例),这是鬼剑士SP技能的技能树,nut修改实例5:多动作技能(以红狗为例)这表示的是未转职的鬼剑士,我们需要在狂战士技能树下添加。

nut修改实例5:多动作技能(以红狗为例)这个就表示是狂战士的技能树了,nut修改实例5:多动作技能(以红狗为例)[skill info]和[/skill info]之间为一个技能在技能树的信息,[index] 245 表示技能编号,[icon pos] 0 800 表示技能坐标,0是横坐标,800是纵坐标。

技能树内添加技能后保存

nut修改实例5:多动作技能(以红狗为例)五国完毕,准备开始nut部分

挂载部分已经完成,接下来需要写技能了,我们要写的是多动作技能,此处可以拿男法师的一个多动作技能来参考,把代码复制过来后进行一些删减,把我们不需要的部分都去掉,删减完成后,开始正式写技能

 

第一步,这段代码是技能的开始,obj.sq_IntVectClear();是清空了Int储存器,接下来的obj.sq_IntVectPush(0);则把0放入了储存器,最后的obj.sq_AddSetStatePacket则是设置了状态,调用onSetState_BloodRiven函数,我们顺着它的顺序,去看onSetState_BloodRiven函数。

 

nut修改实例5:多动作技能(以红狗为例)

 

第二步,onSetState函数内首先出现的是这两行代码,其中local subState = obj.sq_GetVectorData(datas, 0);表示的是获取datas 中编号为0的值,datas中的值来自于哪里呢?实际上就来自于obj.sq_IntVectPush(0),这个0就是datas中编号为0的那个值,同样地,如果我们多写几个obj.sq_IntVectPush,datas中就会有更多的值。

nut修改实例5:多动作技能(以红狗为例)

比如说我这样写:

obj.sq_IntVectClear();

obj.sq_IntVectPush(100);

obj.sq_IntVectPush(1000);

obj.sq_IntVectPush(10000);

obj.sq_AddSetStatePacket(STATE_BLOOD_RIVEN, STATE_PRIORITY_IGNORE_FORCE, true);

那么datas中就有了三个值,分别是100,1000和10000,此时我们使用obj.sq_GetVectorData函数来获取值就有三种情况:

obj.sq_GetVectorData(datas, 0)=100

obj.sq_GetVectorData(datas, 1)=1000

obj.sq_GetVectorData(datas, 2)=10000

我们继续往下看obj.setSkillSubState(subState);这行代码非常重要,它设置了技能的子状态,因为我们获取的第一个subState为0,所以我们写一个subState为0时的情况。我们先随便设置一个ani,当这个ani结束时,就会来到onEndCurrentAni_BloodRiven(obj)函数,我们按着顺序去看onEndCurrentAni_BloodRiven(obj)函数。

 

nut修改实例5:多动作技能(以红狗为例)前面我们设置了子状态,这个函数便可以获取到我们设置的子状态。因为我们要写多动作的技能,现在只有一个动作肯定是不够的,所以我们让它再次执行onSetState函数。

nut修改实例5:多动作技能(以红狗为例)第二次我们push的值变成了1,sq_AddSetStatePacket执行后我们回到onSetState函数,再次设置一个动作,此动作结束后又回到onEndAni,我们这次让人物站立。

nut修改实例5:多动作技能(以红狗为例)

 

先写这些代码,我们测试一下再继续。

在技能树内我们找到需要测试的技能,它的坐标就是(0,800)nut修改实例5:多动作技能(以红狗为例)

可以看到技能是灰的,如果遇到灰技能的情况,一定要检查nut关联,我们现在去检查一下。

nut修改实例5:多动作技能(以红狗为例)问题找到了,此处的挂载有问题,我们把ENUM_CHARACTERJOB_AT_MAGE换成鬼剑士应该就可以了。

 

现在技能已经可以使用了,但是按了之后人物动不了,却又没有任何效果。如果遇到这种情况,一定要检查技能脚本,尤其是大小写的问题。

nut修改实例5:多动作技能(以红狗为例)

可以看到,大小写没有统一,我们修改过来再测试一次。

根据刚刚测试的结果,现在技能已经没有问题了,接下来我们把动作换成大红狗的。

动作添加完成,我们开始换动作。Nut部分动作已经换完,我们测试一下。可以看到这个技能已经有点样子了,但是我们知道大红狗会有一段突进,而我们写的还没有这个效果,现在我们加上。

nut修改实例5:多动作技能(以红狗为例)

这一段代码是向前运动的代码,0之后的500,500表示运动速度,false之后的-150表示加速度,我们测试一下效果。

刚刚忘记保存了,我们再测试一下。

可以看到已经有向前移动的效果了。

本次就先到这里,下次继续完善大红狗。

 

相关文件下载(含视频教程):链接: https://pan.baidu.com/s/16qwvmtcbAKxjeU0lnhwTcg?pwd=cnie 提取码: cnie 复制这段内容后打开百度网盘手机App,操作更方便哦
–来自百度网盘超级会员v2的分享

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容