如何修复镇魂下线卡角色

先说说如何修复镇魂下线卡角色吧

这修复方法实际上是那位大神的,我直接公布出来,希望他不要介意

当初我发布地图修改方法的时候,已经说明,如果镇魂卡角色了,可以在数据库把village的值从13改成11

那么原理是什么呢?

很简单,pvf对各个城镇都给了一个编号,比如

修南,编号11

时间门,编号12

镇魂区,编号13

发电站,编号14

而在这些城镇中,只有部分城镇才有赛利亚房间,比如修南,比如发电站

在df_game_r里面,有个子程序,会对角色下线位置进行判断

其中有一条是,当下线位置的城镇编号等于12时,把编号变成11

因此,在不同城镇下线,就有不同结果

在修南下线,编号11,有赛利亚房间

在时间门下线,编号12,变成11,有赛利亚房间

在镇魂下线,编号13,没有赛利亚房间(卡角色)

在发电站下线,编号14,有赛利亚房间

正常的修改思路是,让子程序判断,当下线位置的编号等于12或者13时,把编号变成11

但是,我们没办法增加语句,我们只能修改

因此,那位大神提供的思路是,当下线位置的编号大于等于12时,把编号变成11

也就是说

在修南下线,编号11,有赛利亚房间

在时间门下线,编号12,变成11,有赛利亚房间

在镇魂下线,编号13,变成11,有赛利亚房间

在发电站下线,编号14,变成11,有赛利亚房间

缺陷就是,在发电站下线,再上线时,变成在修南的赛利亚房间了。

地址是602DAF,子程序是setCharacInfoDetail,意思就是设置角色的详细信息

修改思路就是:把逻辑判断的等于,改成大于等于

再来说说如何防止升到71的时候服务端崩溃吧,也是那位大神的贡献

在原始df_game_r中,子程序isThereDailyTrainingQuestList的功能是给角色提供日常训练任务

当中有个逻辑判断,大概意思是

当等级 >0 或者 等级<=70时, 给角色提供对应等级的日常任务

服务端崩溃的原因就在于,没有70以上的日常任务,导致segment fault

这边我就不卖关子了,直接上修改方法

地址31C128, 7E改成7F

地址31C129, 06改成10

魔兽世界寂寞帝: 我…….艸? 70以后不是也有每日任务吗

两包咖啡: 回复 魔兽世界寂寞帝 :我只能说,那时候用的pvf没有添加70以上任务,你懂的。

331776064: 好像70原版就是7F 10吧,到85又给改成了7E 06了

两包咖啡: 回复 331776064 :抱歉,弄反了。的确是7F改成7E,还有10改成06.你是对的

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

请登录后发表评论

    暂无评论内容