黑暗之魂3吧 关注:455,675贴子:21,071,910
  • 6回复贴,共1

【技术】关于魂3 PVP 数据交换方法的推断

只看楼主收藏回复

相信大家很多人都遇到过这样的情况:明明作为暗灵被世界主召唤成功了,对面却看不到你,你砍他也没伤害
这引起了我的思考,魂3的PVP,到底是怎么判定自己收到伤害的呢?为什么有时会出现对面延迟半秒突然受伤的情况呢?
根据我上面说的情况,我推断每个人的本机负责计算自己是否收到伤害,然后把收到伤害的相关信息传输到对面进行一个显示
也就是说对自己的伤害判定是在自己电脑上进行的,而如果锁定这部分判定,就能达到外挂锁血的功能
而本机是怎么进行伤害计算的呢?大家都知道,游戏里要判定两个实体是否击中,肯定还是要看模型碰撞的,那既然是在本机判定,那使用的,一定是你当前的模型和对面在你机子上的模型
例如我上面说的情况,之所以你砍他没有伤害,是因为他那边根本看不到你,根本不存在你这个暗灵,他那边的电脑就不会进行攻击判定和相关计算,所以不管你对着他怎么砍也不会有用
然后我重复地看我之前的PK的录像,发现只有我砍对面,会有0.2s到0.5s的延迟才会出现伤害判定,但是我被对方击中却是几乎立即出现伤害,这符合我之前的推断,你砍对面,要看到反馈的结果,需要等你做出的动作传递到对面电脑上,然后由映射在对面电脑上的你的模型进行攻击判定,然后把结果返回到你的电脑上进行展示,这个过程自然会有网络传输的延迟,而我相信你被对方击中虽然在你自己看是立即出现伤害,但是在对面看应该也是会有一个延迟的
而我经过找人实验,分别录制两方同一场战斗,事后查看录像,确认了这个事实
所以你们不要老是说什么次元斩次元斩的,明明就是你们没躲过攻击而已


IP属地:广西1楼2016-05-05 03:31回复
    你说的这种情况,也只是其中的一种而已。延迟斩空气斩都是网络不好的情况下,对方模型位置和动作都延迟严重,但是这时候你在攻击范围外一样吃伤害,其实伤害判定都是对面干的,因为你在对面眼里其实就在攻击范围内。


    IP属地:广西来自Android客户端2楼2016-05-05 04:00
    收起回复