路西先生 路西先生
127.0.0.1
关注数: 162 粉丝数: 98 发帖数: 1,324 关注贴吧数: 21
我来猜一下赢了显示输或者结算损兵跟战斗中不一样的bug。一般 我来猜一下赢了显示输或者结算损兵跟战斗中不一样的bug。 一般一个游戏分为客户端和服务端,客户端负责显示服务器负责处理数据。假如两个人对战,a和b,比如a在某点用冰女放了一个暴风雪,那这个暴风雪每个冰雹砸了多少伤害肯定不是a说了算。一般客户端只告诉服务器在什么时候什么位置放了一个暴风雪,让服务器计算伤害。但是弓手的每一箭,剑士的每一刀总不能都让服务器计算然后发回给客户端。所以我估计双方客户端和服务器有一个统一的随机初始值,就是srand(123)。这样的话比如第一大队23号弓箭手第12次射击有没出暴击呢,射出去的箭有没被对方拥有23%闪避率的剑士闪避呢。假如双方客户端和服务器拥有相同的随机数初始值和计算函数,那结果都会是一样的。所以大部分的时候,结果和战斗过程展现的都是同步的结果。 但是实际过程中,可能有客户端卡顿,服务器卡顿,线路问题,莫名其妙的其他bug等等,还有放技能的时候不知道大家有没发现,如果你点技能点的快的话,可以在一个cd内放两个技能出来,这种情况你客户端已经放出来了,那可能服务器就会拒绝你一个cd内放的第二个技能的请求,这样客户端和服务器就会不同步。就会导致结果的不同步。 猜的。
1 下一页