qq三国吧 关注:942,835贴子:57,569,282

细数三国的那些陈年老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
    收起回复


      IP属地:福建来自iPhone客户端3楼2023-06-07 20:23
      回复
        单骑 yx秒怪后经常立马移动,会让你后悔人生


        IP属地:江西来自Android客户端4楼2023-06-07 20:23
        收起回复


          IP属地:广东来自Android客户端5楼2023-06-07 20:26
          回复
            这游戏已经不打算升级了,基础的配置和服务器都还是十多年前的,就想着出新东西赚玩家钱


            IP属地:湖南来自Android客户端6楼2023-06-07 20:30
            收起回复
              这是游戏机制,不是bug,要是bug,以三国产研能力早修复了


              IP属地:广东来自Android客户端7楼2023-06-07 20:33
              收起回复
                不升级服务器 还出个q宠大乐斗自动放技能的pk活动圈钱 真的恶心


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


                  IP属地:上海9楼2023-06-07 20:42
                  收起回复
                    单骑跳桥,按一下方向就可以解决了,别按住,


                    IP属地:广东来自iPhone客户端10楼2023-06-07 20:50
                    收起回复
                      刚开始可丝滑了 什么拉回都没有


                      IP属地:浙江来自Android客户端11楼2023-06-07 20:55
                      回复
                        yx的90技能有时候放了,打怪没伤害的,有一次我在别人90技能里也没掉血


                        IP属地:浙江来自Android客户端12楼2023-06-07 20:56
                        收起回复
                          修复bug有刺激玩家之间在游戏和贴吧PK重要吗?


                          IP属地:辽宁来自iPhone客户端13楼2023-06-07 21:01
                          回复
                            真搬到贴吧来啊


                            IP属地:陕西来自iPhone客户端14楼2023-06-07 21:12
                            回复
                              第五个 bug
                              在某些情况下,人物在附加2层的5级形若坚冰状态时,会有概率在接下来一段时间内一直有2层状态,从而实现在被攻击时一直对方miss的效果。


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