返回列表 发布新帖
查看: 16|回复: 0

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

2

听众

405

主题

4万

积分

名望
8796
贡献
8796
学分
8681

最佳新人活跃会员热心会员推广达人宣传达人灌水之王

学无止境发表于 2024-8-19 19:58:01 | 查看全部 |阅读模式
今天介绍一下多动作技能的写法,我们以血魔·弑天为例
首先还是先添加一个主动技能,skl文件准备过程先不详细介绍,咱们直接开始后面的添加。
技能注册之后,需要跑五国。
下一步是把技能添加到技能树,这是鬼剑士SP技能的技能树,这表示的是未转职的鬼剑士,我们需要在狂战士技能树下添加。
这个就表示是狂战士的技能树了,[skill info]和[/skill info]之间为一个技能在技能树的信息,[index] 245 表示技能编号,[icon pos] 0 800 表示技能坐标,0是横坐标,800是纵坐标。
技能树内添加技能后保存
五国完毕,准备开始nut部分
挂载部分已经完成,接下来需要写技能了,我们要写的是多动作技能,此处可以拿男法师的一个多动作技能来参考,把代码复制过来后进行一些删减,把我们不需要的部分都去掉,删减完成后,开始正式写技能
第一步,这段代码是技能的开始,obj.sq_IntVectClear();是清空了Int储存器,接下来的obj.sq_IntVectPush(0);则把0放入了储存器,最后的obj.sq_AddSetStatePacket则是设置了状态,调用onSetState_BloodRiven函数,我们顺着它的顺序,去看onSetState_BloodRiven函数。
第二步,onSetState函数内首先出现的是这两行代码,其中local subState = obj.sq_GetVectorData(datas, 0);表示的是获取datas 中编号为0的值,datas中的值来自于哪里呢?实际上就来自于obj.sq_IntVectPush(0),这个0就是datas中编号为0的那个值,同样地,如果我们多写几个obj.sq_IntVectPush,datas中就会有更多的值。
比如说我这样写:
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)函数。
前面我们设置了子状态,这个函数便可以获取到我们设置的子状态。因为我们要写多动作的技能,现在只有一个动作肯定是不够的,所以我们让它再次执行onSetState函数。
第二次我们push的值变成了1,sq_AddSetStatePacket执行后我们回到onSetState函数,再次设置一个动作,此动作结束后又回到onEndAni,我们这次让人物站立。
先写这些代码,我们测试一下再继续。
在技能树内我们找到需要测试的技能,它的坐标就是(0,800)
可以看到技能是灰的,如果遇到灰技能的情况,一定要检查nut关联,我们现在去检查一下。
问题找到了,此处的挂载有问题,我们把ENUM_CHARACTERJOB_AT_MAGE换成鬼剑士应该就可以了。
现在技能已经可以使用了,但是按了之后人物动不了,却又没有任何效果。如果遇到这种情况,一定要检查技能脚本,尤其是大小写的问题。
可以看到,大小写没有统一,我们修改过来再测试一次。
根据刚刚测试的结果,现在技能已经没有问题了,接下来我们把动作换成大红狗的。
动作添加完成,我们开始换动作。Nut部分动作已经换完,我们测试一下。可以看到这个技能已经有点样子了,但是我们知道大红狗会有一段突进,而我们写的还没有这个效果,现在我们加上。
这一段代码是向前运动的代码,0之后的500,500表示运动速度,false之后的-150表示加速度,我们测试一下效果。
刚刚忘记保存了,我们再测试一下。
可以看到已经有向前移动的效果了。
本次就先到这里,下次继续完善大红狗。
相关文件下载(含视频教程) 链接:https://pan.baidu.com/s/1CpEzzLxitanfmSUw3Ywdgg
提取码:zbga
--来自百度网盘超级会员V1的分享

学无止境社区免责声明
1 本社区名称:学无止境
2 永久网址: bbs.chaobaindnf.cn
3 本社区提供的一切软件、教程和内容信息仅限用于学习和研究目的;
4 不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
5 本社区信息来自网络收集整理,版权争议与本站无关。
6 通过使用本站内容随之而来的风险与本站无关,您必须在下载后的24个小时之内,从您的电脑/手机中彻底删除上述内容。
7 本如果您喜欢该程序和内容,请支持正版,购买注册,得到更好的正版服务。
8 我们非常重视版权问题,如有侵权请与我们联系删除。敬请谅解!联系邮箱:849991827@qq.com或者QQ:849991827

名望值排行榜:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

投诉/建议联系

admin@chaobaindnf.cn

未经授权禁止转载,复制和建立镜像,
如有违反,追究法律责任
  • 加入Q群
  • 添加微信客服
Copyright © 2001-2024 学无止境技术分享 版权所有 All Rights Reserved. 皖ICP备2024057715号
Copyright 2024 bbs.chaobaindnf.cn 版权所有 作者:学无止境技术分享 皖ICP备2024057715号|皖ICP备2024057715号
关灯 在本版发帖
扫一扫添加微信客服
返回顶部
快速回复 返回顶部 返回列表