

首先要声明一点,这是本人参考了网上的帖子后,自己摸索的。
不一定对,也不一定对你适用,供你参考吧。
////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////
CS网络联机游戏的基本原理:
一个完整的网络联机CS游戏包含一个服务器和数个客户端,服务器就是通常说的CS服,客户端就是我们每个人打CS时所使用的电脑。
这两者分工不同,客户端将玩家的游戏信息(包括该玩家的位置,速度,生命值,射击等等)通过数据包发给服务器,然后再接收服务器发过来的数据包(包含其他玩家的位置,速度,开枪有无击中等等)。
服务器收集整理所有玩家的信息,然后经过计算,再将计算结果通过数据包发给每个玩家。
所有的结果都是由服务器判断产生的,包含玩家是否击中对方,是否打死对方等等。
几个参数解释:
cl_cmdrate:
客户端每秒钟向服务端发送数据包的数量。很明显地,这个参数的数值设定得越高,服务器就能越快的更新你的信息。所以,数值设定得高是没什么错的。
cl_updaterate:
客户端每秒钟从服务端接收数据包的数量。cl_updaterate的数值设定得越高,你和服务器的同步率就越高。举个例子,此刻在你的电脑上看到的是敌人在你准星里,你准备开枪射击。但是实际上那个敌人(另外一个玩家)已经移动了,已经不在你的准星里了。只是你自己电脑网络延迟的原因,还没有从服务器收到这个敌人移动的信息,所以此时你开枪,是不会击中敌人的。
sv_maxupdaterate:
指定服务端每秒发送多少数据包到客户端上(对服务端进行控制)。因此,客户端cl_updaterate的数值设定比服务端sv_maxupdaterate的数值要高,是不能增加客户端接受的更新数据包数量的。 比如服务器设定60,你自己设定的是80。那你每秒钟从服务器得到的数据包不是80个,而是60个。
ex_interp:
interp是interpolate的缩写。interpolate(窜改, 插入)的词义如下:
to estimate values of (a function) between two known values, 评估两个已知值之间的量的关系。
本参数解释如下: 无论你的网络环境是多好,网速是多快,你的电脑得到的别人的信息,总是要比真实的情况要慢一点。举个例子,玩家A与服务器之间的延迟是1秒(举个例子,不要当真),他在此刻按了鼠标左键开枪,1秒后,服务器收到了他开枪的这个信息。玩家B与服务器的延迟也是1秒,1秒后他从服务器得到了玩家A开枪的信息。也就是说,玩家A开枪2秒钟后,玩家B的电脑上才显示开枪。当然了,服务器计算一切结果,以服务器为基准,玩家B是在A开枪1秒后得到的信息。
因此,为了弥补这个延迟,让你的CS运行的更加流畅,CS程序提供了预测模拟,ex_interp。在接收到下一个数据包之前,CS程序对相关的信息进行了预测模拟。比如敌人此刻在1的位置,他正向2的位置前进。虽然你还没有从服务器收到他是否运动到位置2的信息,但是你自己的电脑已经模拟出他已经运到到位置2的结果,并将这个结果反应到你的电脑屏幕上。对于ping好的玩家来说,ex_interp可以设置的很小,0.01。因为他可以很快的从服务器端得到最新的数据包。而那些ping比较大的玩家,为了让CS更加流畅,而不是看起来一卡一卡的,不得不设置高一点的ex_interp,比如0.1。这样做的好处是画面流畅了,不是一卡一卡的,但缺点也是很明显的,因为你的电脑的预测模拟很可能错了,并且模拟的时间越长,错误的可能性就越大!接着上面那个例子,实际敌人并没有运动到位置2,而是去了位置3,并且向你开了枪。而你因为延迟的原因,这些信息都不知道,你还在对着你屏幕上位置2的敌人开枪,然后抱怨为什么打不死人。
==================================================================================
好了,上面是我看了一些不清不楚的文章后,自己揣摩的意思,很有可能是错误的,你凑合看吧:D
下面就是设置步骤,很简单。先这样设置:
rate 20000 (不懂,别问我为什么,反正比赛都是这个)
cl_cmdrate 101 (据反应这个设置成101没有副作用)
cl_updaterate 101 (这个是暂定的,先设置成最高)
ex_interp 0 (设置成0,系统会根据你的cl_updaterate自动调节成最优的值)
下面开始:
在cl_updaterate 101 情况下,拿AK(M4)对着墙扫一梭子,注意不要压枪,鼠标不要动。
多扫几梭子,记住这个弹道。
然后设置cl_updaterate 90(系统会自动帮你把ex_interp修改了),同样拿枪对着墙扫几梭子,记住这个弹道。
以此类推,cl_updaterate 80, cl_updaterate 70, cl_updaterate 60....
到30为止,再低也没意义了。
基本上你会看到弹道的连续变化,逐渐变差,或逐渐变好,或先变好在变差。
然后选择那个最优弹道对应的cl_updaterate和ex_interp值。
这个就是你最优的CS网络参数了。
注意,以上设置需要进入服务器后,再设置。
并且,只有当你把cl_updaterate从大往小调的时候,ex_interp才会自动调整。反过来,ex_interp不会自动调整。
