qq三国吧 关注:943,623贴子:57,612,769
  • 7回复贴,共1

细数三国的那些陈年老bug,以及bug的原因

取消只看楼主收藏回复

1. 移动机制类bug
典型:
- 单骑救主副本,第一关赵云,跳桥跳不起来。
- 十里坡队友加速拉回。
- YY释放80/xs释放技能拉回
- 明明敌人在群攻范围内就是没命中
复现的方法有,YY在释放80的期间按住【左】/【右】移动键,在释放技能完成后一段距离会被拉回。
这类bug都是属于移动机制bug,出现的原因是:
服务器的帧和客户端帧不一致。且游戏以服务端运算下发为主。
首先,了解一下帧的概率:
一定看过那种翻页就能动的小人书吧,比如下面这个动画:

一秒能翻多少张,就代表帧数有多少。如果一秒翻60页,那说明就是60帧,帧数越高,画面越流畅。
三国为了防止快攻,加速齿轮等外挂。选择运算以服务器帧为准,以渲染和输入输出以客户端为准。
如果服务器的帧比客户端慢会发生什么?
假设一个极端的场景,客户端是稳定的50帧,那么每帧的时间就是20毫秒,假设一个技能的动作需要1010毫秒。
那么客户端就需要1010/20=50.5帧。在客户端渲染到50帧的时候,如果玩家输入释放另外一个技能,会发现前面
的技能动作才完成了50帧*20毫秒=1000毫秒,也就是说技能动作尚未完成,那么客户端就忽略这次输入。
当客户端渲染到51帧的时候,此时技能动作已经完成了1020秒,大于技能动作1010秒,那么就可以将玩家的释放技能指令发送给服务器。
客户端帧数越高,意味着响应玩家输入的速度也越快。在50帧的情况下释放一个1010毫秒的技能,需要1020毫秒,会浪费10毫秒。
假设服务器的帧数是8帧,即1000/8=125毫秒刷新一帧,就会出现一个很有意思的情况,服务器需要1010/125=8.08帧,也就是最少需要9帧。也就是最少需要1125毫秒。也就是说,客户端提早了1125-1020 =105毫秒告诉服务器移动指令。
此时服务器是怎么处理的(拒绝掉此次移动指令)而客户端在发起移动时提前预测服务器是返回成功的,结果走到一半,发现服务器拒绝了。所以客户端选择回滚此次移动,人物被拉回了。
基于上述理论,继续分析十里坡和单骑赵云跳桥跳不起来的问题。
在移动时,服务器还应该需要校准玩家发起移动时的各个参数。(移动速度跳跃等)而玩家的速度跟状态相关,
而有些状态,则跟人物位置相关。
十里坡的加速是,当附近的军团成员距离小于x时,则给玩家附加XX状态。而在运动时的玩家,他的位置也是一帧更新一次。服务端由于使用了更低的帧,这导致了客户端觉得我应该拥有XX加速状态,那么移动的时候就告诉服务器我此时的速度应该是人物速度x+状态速度x = 2x。而服务器缺觉得某个玩家距离某个位置的距离还不够附加状态。所以服务器觉得人物速度应该是x。
总的来说,就是在2023年计算能力相较15年前已经提升了数千倍。而三国依然没有想着提升自己的服务器tick。隔壁的CF已经从8 tick 提升到30(尽管现在主流游戏早已经64 甚至128tick为主)


IP属地:上海1楼2023-06-07 20:20回复
    第二个bug就是cd bug
    在使用HJ140后,如果捡起斧头,会减少140的cd时间。
    但是你会发现就算你cd转好了,但是你按键盘140还是不会释放。不过如果你在卡键里放140的话,cd转好会立马释放


    IP属地:上海2楼2023-06-07 20:23
    收起回复
      第三个bug
      控制类状态bug
      由于这款陈年老游戏使用的服务端结算。即使客户端认为自己没有五鬼。但依然什么都操作不了(即外挂本质不能免疫控制),因为每个操作指令都会被服务器驳回。
      but有没有一种可能,服务端觉得你没被控,但客户端觉得你被控了。
      玩过HJ/统御的就知道的,在人很多的群架明明自己开了免控。下去还是被气绝/五鬼晕的动不了。甚至状态栏里的翔龙等免控图标还没结束,人物依然在免控期间被控制。
      这种pk体验真的是依托答辩


      IP属地:上海9楼2023-06-07 20:42
      收起回复
        第五个 bug
        在某些情况下,人物在附加2层的5级形若坚冰状态时,会有概率在接下来一段时间内一直有2层状态,从而实现在被攻击时一直对方miss的效果。


        IP属地:上海16楼2023-06-07 21:18
        收起回复
          第六个 bug
          当怪物超过极限tab距离(380?),若怪物被角色击杀,此被击杀的怪物不会扣疲劳,也不会算任务怪,当然经验也不会给你。
          主打的就是游戏特色,不知道的还以为一排怪被人偷了一只


          IP属地:上海18楼2023-06-07 21:21
          收起回复
            第七个 bug
            cd类bug的变种,当你的快捷栏里下面一排放了道具,上面一排也放了道具,你会2排道具的cd是一种薛定谔的共享状态。
            比如alt+a 是一个消耗品,a也是消耗品,按A时,a道具进入cd。但是alt+a的道具不会。
            当你在a的道具cd按下alt+a,你会神奇的发现a的道具会重新计算(非常🐂b


            IP属地:上海20楼2023-06-07 21:24
            收起回复
              第八个 bug
              清灵散bug。在人物被恐惧的时候,使用清灵散可以解除恐惧,但是也就自己能看到自己没恐惧,别人看你还是在恐惧状态的。
              这波是清了,但没完全清


              IP属地:上海23楼2023-06-07 21:44
              收起回复
                第九个 bug
                北山汗水复活后的是灰化,且自己不可移动和发动攻击状态,但是可以被别人攻击。死了还得在泉水被挂个负面


                IP属地:上海26楼2023-06-07 21:54
                收起回复