|
给大家详细介绍一下关于各个rate的意思,
其实各个rate都与服务器的一个参数sv_maxupdaterate 和服务器的运行fps有关。
服务器fps与的意思是,每秒钟,服务器接受和发送用户数据,并进行计算的游戏帧数。这个数可以理解成服务器每秒钟最多可以给每个玩家发送其他玩家的位置,动作,和接受每个玩家动作的次数。这个值会根据服务器运算量的大小而发生变化。
hlds默认的fps是60.用hl booster等插件可以提高这个值,但会增加对服务器资源的需求。我认为60其实也应该不太够,0.017秒的间隔,我的服务器都用booster定在200。
下面介绍sv_maxupdaterate,这个也是服务器参数,客户端是没有的,这是限制发送给每个玩家最高update速率的值。比如服务器fps是100,sv_maxupdaterate 是50,对客户端来说,每秒钟最多可以得到的更新就是50次而不是100次。如果这个值高于服务器的fps,那是没有意思的。
对于客户端来说,每秒钟得到越多的更新数据,在玩家屏幕上与其他玩家的位置就与服务器里真正的位置更接近。
现在介绍cl_updaterate,cl_update是客户端的值了,客户可以根据自己的需要设置,默认值是30,也就是最多每秒从服务器接受更新的次数,或者说是要求服务器每秒发送更新的次数。最好是设成与服务器sv_maxupdaterate一样,因为我们要得到尽量多的更新来刷新我们屏幕上敌人的位置。但设比sv_maxupdaterate高是没有用的。(所以我自己的CS1.6客户端都是设置成100),另外这个值比你的fps_max高或比你显卡能够达到的fps高也是没有太大的意义,反正显示不出来。
cl_cmdrate
这个也是客户端的值,是每秒钟发送给服务器的客户端动作的值(移动、瞄准、与射击等动作),忘了默认值是多少,我都是设置是30,我想我每秒钟最多做那么多动作吧(这个值设高了会导致ping升高,再高会出现choke),是否收sv_maxupdaterate限制,俺也不清楚。
解释一下choke,choke与loss不一样,choke是值应该发送给客户或服务器而没有发送出去的数据包,loss是发送了但没有收到。
这个值有很多原因引起,而且一般情况下,不会影响游戏的可操作性(就算是稳定在100)
比较常见的原因是CS服务器管理员的参数调整不正确,服务器配置不对,服务器里还有一个参数是sv_maxrate,很多服务器为了节省带宽,设置了比较低的sv_maxrate,但却设置一比较高的sv_maxupdaterate,但客户端设置cl_update比较高时,因为sv_maxrate的限制,不购带宽传出全部足够的数据,导致了choke,同理,如果用户端设置过高的cl_cmdrate,也会因为带宽的限制不能传出全部的数据,也会出现choke..
如果你真的很在意choke,首先检查你的cl_rate,默认都是9999也就是9K(与服务器端的sv_maxrate,sv_minirate类似,向服务器传送带宽使用限制,你1秒钟不可能发送超过7K的数据的,放心好了),
减低你的cl_updaterate(默认值是30)和cl_cmdrate(我建议大家这个值放30就可以了,这个参数太高ping会高起来)。
最后向大家推荐一下我的服务器:
=Solar=厦门飞扬1#服务器 218.5.83.7:27019
=Solar=厦门飞扬2#服务器 218.5.83.8:27020
各位有空来逛逛..... |
|