找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 927|回复: 14

记录一次多段技能伤害丢失bug的解决

[复制链接]

869

主题

7800

回帖

2万

积分

登峰造极

积分
26843
发表于 2024-12-23 11:52:39 | 显示全部楼层 |阅读模式
最近刚加入台服吧,用G佬的神迹版本用腾讯服务器搭了个私服跟几个好兄弟一起玩。
由于我个人非常喜欢漫游这个职业,所以首先起的就是漫游,但是在玩的时候发现了二觉主动-第七翼动有个问题,第七翼动丢失了后六段伤害,最后两段动画只有动作没有伤害,如下视频:
https://www.bilibili.com/video/BV1Yc411y7Ug/
可以看到第五个动作完成后,打出了一共16次连击,攻击反馈与伤害数字都是正常的。


但是从第六个动作开始,到第七个动作结束,完全丢失了攻击反馈与伤害数字,也不再显示连击提升。




这意味着第七翼动伤害打了接近对折,这对于很喜欢漫游的我来说是不能接受的,我决定想办法解决这个问题,碰巧我之前刷B站无意中看到了Z佬的专栏(https://www.bilibili.com/read/cv3486413/?spm_id_from=333.999.0.0)——【咸鱼Z教程】1.Nut入门级之添加技能及伤害应用,添加技能及伤害应用,那么第七翼动这个问题有可能是伤害没能正常作用到技能释放的过程上,那么结合这篇文章或许可以解决该问题,二楼开始详细解决思路和步骤。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

869

主题

7800

回帖

2万

积分

登峰造极

积分
26843
 楼主| 发表于 2024-12-23 11:53:20 | 显示全部楼层
666
回复

使用道具 举报

869

主题

7800

回帖

2万

积分

登峰造极

积分
26843
 楼主| 发表于 2024-12-23 11:54:00 | 显示全部楼层
目前的情况是,第七翼动能正常学习,释放,前五个动作伤害正常,后两个动作伤害丢失,那么Z佬的文章里增加技能,绑定动作等部分就不用看了,直接看nut部分,pvfutility打开封包,找到sqr/character/gunner/seventhflow/seventhflow.nut(这个nut的作用的话,我目前的理解应该是按下第七翼动这个技能后,DNF程序所做的操作应该都在这个nut里),然后找到Z佬专栏里提到的应用伤害部分的函数onSetState_seventhflow。


整个函数接近300行,我翻了个遍,卧槽,怎么找不到Z佬说的添加攻击判定信息的SetCurrentAttackInfo函数,说实话,这个时候有点小难受,但是不要怕,本人碰巧也是搞IT的,虽然不是搞C的,但是仔细看看应该还是有机会。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

847

主题

7740

回帖

2万

积分

登峰造极

积分
26542
发表于 2024-12-23 11:54:29 | 显示全部楼层
可以看看调用的ani,是不是没设置打击判定【attack box】
回复

使用道具 举报

1309

主题

9861

回帖

3万

积分

管理员

积分
34974
发表于 2024-12-23 11:54:52 | 显示全部楼层
666大佬们好
回复

使用道具 举报

869

主题

7800

回帖

2万

积分

登峰造极

积分
26843
 楼主| 发表于 2024-12-23 11:55:03 | 显示全部楼层
冷静一下,我们仔细看一下这个onSetState_seventhflow函数,先看Z佬有写的部分。


" class="BDE_Image" onload="EditorUI.resizeImage(this, 560)" unselectable="on"/>
函数开始部分,与Z佬的写法如出一辙,先停止动作,下面这个substate,英文直译是子状态,这个时候我看到Z佬的第二篇专栏,多段动作技能教程——【咸鱼Z教程】2.Nut入门级之多动作技能及强制中断,想了一下,第七翼动显然是个多动作技能,那么这个substate很有可能记录的是当前技能的释放状态,开枪打到第几个阶段了,往后看,substate参与了多个if-else的判断,并且是与SUB_STATE_SEVENTHFLOW_0、SUB_STATE_SEVENTHFLOW_6、SUB_STATE_SEVENTHFLOW_7等状态作比较,那么我们已经可以确认这一点了。
继续往后看,找到switch(substate)


" class="BDE_Image" onload="EditorUI.resizeImage(this, 560)" unselectable="on"/>
这块就比较好懂了,在第七的第一个起手动作的时候,加载了当前等级技能的四个数据,这四个数据就是游戏内技能面板显示的数据,


然后,我们可以看到技能数据被以此push到了obj里一个叫做atkinfo的vector里,实现了对技能数值的初始化,仔细看atkinfo的添加顺序,obj先是清空了atkinfo,然后依次加入了射击攻击力、最后一击攻击力、移动加速率、上限速率,这个时候在seventhflow.nut整个文件中,
obj.getVar('atkinfo').get_vector(0)=射击攻击力,
obj.getVar('atkinfo').get_vector(0)=最后一击攻击力,
obj.getVar('atkinfo').get_vector(0)=移动加速率,
obj.getVar('atkinfo').get_vector(0)=上限速率,
继续往后看,可以发现,在onSetState_seventhflow中每一个case SUB_STATE_SEVENTHFLOW_,实际上都是在设置当前阶段的动作,和移动信息。


看完整个onSetState_seventhflow也没有找到有设置攻击的部分,说明onSetState_seventhflow不是我们要找的函数。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

1309

主题

9861

回帖

3万

积分

管理员

积分
34974
发表于 2024-12-23 11:55:18 | 显示全部楼层
天书奇谭

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

869

主题

7800

回帖

2万

积分

登峰造极

积分
26843
 楼主| 发表于 2024-12-23 11:56:13 | 显示全部楼层
我们继续看下一个函数onKeyFrameFlag_seventhflow,


我们看到了老熟人substate,这是当前技能的释放状态,继续往后看,我们可以很快找到第七翼动前五个动作的攻击信息设置,


上一步提到了在seventhflow.nut整个文件中,obj.getVar('atkinfo').get_vector(0)=射击攻击力、obj.getVar('atkinfo').get_vector(1)=最后一击攻击力,这与代码中的设置:
obj.sq_WriteDword(obj.getVar("atkinfo").get_vector(0));
相吻合,同时,目前游戏里前五个动作伤害是正常的,说明这一块的配置是标准的,可以对照前五个动作的攻击设置代码去找第67个动作的代码问题。


很快,我们找到了设置第6个动作攻击判定的代码,并且对照前五个动作,很容易找到问题,就是这个JsValue1这个变量,整个onKeyFrameFlag_seventhflow函数体中都未对其进行定义,程序执行到这一步时将会报错,导致第67个动作的攻击判定加载失败,进而可能引起游戏中伤害丢失。
对照前五个动作的设置,我们将其设置为:obj.sq_WriteDword(substate);


然后重新封包,传至服务器,重新跑五国。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

869

主题

7800

回帖

2万

积分

登峰造极

积分
26843
 楼主| 发表于 2024-12-23 11:56:59 | 显示全部楼层
上线测试,果然,第七翼动丢伤害的问题解决了,第六第七段伤害正常






问题解决

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

发表于 2024-12-23 11:57:39 | 显示全部楼层

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

772

主题

7426

回帖

2万

积分

登峰造极

积分
25333
发表于 2024-12-23 11:57:54 | 显示全部楼层
大佬,剑魂60技能那个,最后一击斩的时候,速度太快怎么修复啊
回复

使用道具 举报

847

主题

7740

回帖

2万

积分

登峰造极

积分
26542
发表于 2024-12-23 11:58:34 | 显示全部楼层
楼主有遇到鳗鱼70级以后的技能不触发死亡左轮的问题吗?
回复

使用道具 举报

1309

主题

9861

回帖

3万

积分

管理员

积分
34974
发表于 2024-12-23 11:59:27 | 显示全部楼层
大佬牛逼,给大佬递茶🍵
回复

使用道具 举报

1431

主题

1万

回帖

3万

积分

登峰造极

积分
39303
发表于 2024-12-23 11:59:33 | 显示全部楼层
大佬,起床玩顺火暖手游了

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

×
回复

使用道具 举报

1431

主题

1万

回帖

3万

积分

登峰造极

积分
39303
发表于 2024-12-23 12:00:30 | 显示全部楼层
就是说打满伤害是22连击吗
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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