@恶魔的圣焰
网游分为客户端计算和服务器计算两种
服务器计算的网游,客户端一般只存放图片等信息,伤害的计算由服务器完成
而客户端计算的网游,客户端要存放算法,服务器只负责收发包,和鉴定包的真伪
DNF属于客户端计算的,也就是你所有的伤害都是在自己电脑算完了,才去发给TX的
(比如有时候你掉线了但还能打怪还能打出伤害,但是怪死了会变白而不会爆东西)
但是组队情况下,不能所有的伤害数据都交给一个玩家的电脑计算,应该是所有队员都在计算各自的伤害。
而DNF的机制是,举个例子吧:
怪物A和怪物B,玩家甲和玩家乙,A仇恨落在甲身上,B的仇恨落在乙身上
那么A受到的全部伤害都是由甲的电脑计算,包括甲打A和乙打A的,所以组队有时候玩家乙明明放了技能却打不到A的情况,就是因为产生了延迟,怪物A在甲电脑上的位置和乙电脑的位置不一样,以甲电脑为准……
下面说说DNF仇恨问题……
DNF的仇恨BUG就是起源于这个计算的机制,比如以前没修复时的虫链就是由于那时客户端里漏了“计算队友伤害时要算虫链”这一项:再举个栗子:
甲和乙都带虫链,A的仇恨在甲身上,甲和乙都打A,那么在甲的电脑上会这样计算:
甲打A的伤害:甲的攻击力受各种加成,最后乘(1+8%)这样算虫链
乙打A的伤害:乙的攻击力受各种加成,最后算法里没有虫链这一项,所以不算它
所以在甲返回给服务器再发给乙的数据包里,这个伤害的数值就是不受虫链加成的,但是甲的伤害却受虫链加成,这就是所谓的“虫链仇恨BUG”
下面再说魂链……
魂链要牵扯到面板的问题。
先说一个大家可能接受不了的事实,你的面板攻击力是只在自己电脑有效的,也就是说,你看见的面板和队友看见的面板是不一样的!!!面板是不可信的!!!
对,比如某些视频里的炼金、骨戒,地灵,子午这些(colg不能宣传BUG你懂的) 队友都是看不见的……
可惜魂链做不到这种测试,因为魂链触发的面板会实时地更新到服务器……
所以呢?
所以,假如客户端里“计算队友伤害时要计算魂链”这一条也漏掉了的话,那么魂链也是有仇恨BUG的,和虫链同理,只不过这次队友能看得见你的面板……
还是A的仇恨在甲身上,甲和乙都带魂链,那么甲的电脑:
算甲的伤害:魂链有加成
算乙的伤害:魂链无加成(因为客户端没告诉我要算那!)
同理地,卡炼金、卡地灵、卡子午这些也都是有仇恨BUG的,不是说组队无效,而是只对自身仇恨的怪物有效……
转载至colg
http://bbs.colg.cn/thread-3894646-1-1.htmlID:47578878
发表于 2014-12-29 03:54