cs1.6传输参数的数字,是高数字代表速率快还是低代表速率快

cl_cmdrate 后面的数字。。。。

我来说两句好了。
首先,cl_cmdrate控制一秒钟内客户端向服务器提交的数据次数, 也就是客户端告知服务器玩家在一秒内干了什么
cl_updaterate控制一秒钟内服务器向客户端提交数据的次数, 也就是服务器告诉玩家现在整个地图中的变化情况(队友的行动, 敌人的行动)

那么在游戏中我们打开net_graph 3来测试。
很显然,IN和cl_updaterate有关,out和cl_cmdrate有关。

调低cl_updaterate,IN数据流量降低。
调低cl_cmdrate,IN和OUT数据流量同步降低。
调低FPS,IN和OUT数据流量同步降低。

第一种情况很正常。
第二种情况我想应该是由于客户端向服务器提交数据次数降低,那么服务器判定客户端的带宽比较低,因此也降低了对客户端的传输数据频率。
第三种情况也很容易理解,每秒客户端画面刷新率降低,相应要求的数据量肯定要降低。

我想所有的玩家关心这些参数的原因是这些参数改动是否能够影响自己CS的水平,会不会改变弹道?会不会增大延迟?会不会。。。?

从我掌握的情况来看,我认为cmdrate控制的每次发送数据都相当于一个关键帧,而子弹的发射都是存在于关键帧上,那么,cmdrate降低带来的数据流量减少应该是游戏细节的损失,子弹发射这样的关键数据不应该被省略掉。损失的细节则由服务器来进行插值计算。

为什么呢?我想大家应该有注意到这一点,CS中主枪开一发(甚至两发)以最快速度切换到手枪,你再切换回来,会发现你的子弹“没有打出去”,弹夹中的子弹数量和你开枪前是一样的。而你打的那一枪有没有效呢?事实证明,那棵子弹完全有效。这种情况只出现在别人做SERVER,你加入的情况下。如果你做了一个listenserver,几乎不会出现这种情况。因为你自己是SERVER,自己和自己传输数据,不用那么曲折吧?但这里为什么说几乎呢,因为我试了20次,还是有一次成功了(如果不是我看花眼的话)如果你JOIN到别的SERVER,那么这个试验成功率高达70%。很遗憾,在cl_cmdrate 10和cl_cmdrate 100的情况下成功率差别不大。

造成这个BUG的原因,我想应该是由于有关数据包是先后发出的,1.打出子弹.2.切换.3.换成手枪4.子弹数目-1。前三个步骤的数据包都发出去了,第四个数据包被忽略了。由此看出,计算子弹数目的数据包优先级是很低的,而有关子弹发出的数据则是关键的。
再看另外一个BUG,如果你在别人的SERVER里,用USP+AWP对着墙打就可以发现。如果以尽量快的速度猛扣3枪USP再马上切换出AWP开一枪,你会发现AWP一枪打出了2-3发子弹,墙壁上有5-6个弹孔。而实际上应该发出了4发子弹。原因呢,请各位思考一下,但和上面的例子不尽相同。我举这个例子是为了说明子弹发射作为关键帧的重要性盖过了其他的数据。

再举一个证明服务器进行了插值计算的例子,如果你有录过DEMO就会发现,如果cl_cmdrate和cl_updaterate比较低的话,虽然你玩的时候感觉画面是平滑的,但用playdemo播放你录的DEMO就会发现,DEMO一顿一顿的。但是你用VIEWDEMO播放呢,感觉如何了?又变平滑了。这就是因为VIEWDEMO对DEMO的播放过程进行了插值计算,使其变的平滑。同理,你打的时候之所以平滑也是因为服务器进行了插值计算。实际上,你的DEMO才真正反映了你当时的情况,只不过你被“幻象”所蒙蔽了。那么由此可想而知,你的枪瞬间在你眼里是指在他身上的,但是在服务器的“眼里”是吗?那就难说了。

而如果cl_cmdrate和cl_updaterate足够高,你的DEMO也会达到正常的平滑程度。也就是说,你可以做到更精确。 说了这么多,其实以最简单的思路来看。以上两个参数低,则每秒接受和发出的数据量都低,那么就必定有数据被忽略,就必定会影响游戏的效果和精确度。而现在你也知道FPS对你CS水平的影响不仅仅在于准心回复的速度了吧?所以我建议cl_cmdrate和cl_updaterate还是在100的好,fps_max呢,如果你的显卡和CPU足够好(MX400至少要搭配athlon 1600xp,显卡再高档呢,CPU就可以降),设置为100,但如果不够好,比如你是tnt2那就60好了,MX200用71比较合适,否则得不偿失哦。
温馨提示:答案为网友推荐,仅供参考
相似回答