【原创】正确CS1.6客户端网络参数与chock正确的解释
给大家详细介绍一下关于各个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
各位有空来逛逛..... 第一个顶~~~~~~~~
2005年2月25日补充,辅助大家理解
根据你的实际网速,设定你的客户端参数
转自:http://cs.rin.ru/forum/viewtopic.php?t=11558
56k
rate 3000
cl_cmdrate 15
cl_updaterate 10
cl_rate 9999
cl_cmdbackup 2
_
112k
rate 6000
cl_cmdrate 20
cl_updaterate 15
cl_rate 9999
cl_cmdbackup 2
_
256k
rate 9000
cl_cmdrate 25
cl_updaterate 20
cl_rate 9999
cl_cmdbackup 2
_
384k
rate 15000
cl_cmdrate 30
cl_updaterate 25
cl_rate 9999 *OR* 15000
cl_cmdbackup 2
_
650k
rate 17000
cl_cmdrate 35
cl_updaterate 30
cl_rate 9999 *OR* 17000
_
768k
rate 20000
cl_cmdrate 40
cl_updaterate 35
cl_rate 9999 *OR* 20000
cl_cmdbackup 2
_
1MB+
rate 23000
cl_cmdrate 45
cl_updaterate 40
cl_rate 9999 *OR* 23000
cl_cmdbackup 2 不错,一直想弄明白这个事 Post by larnk
cl_cmdrate
这个也是客户端的值,是每秒钟发送给服务器的客户端动作的值(移动、瞄准、与射击等动作),忘了默认值是多少,我都是设置是30,我想我每秒钟最多做那么多动作吧(这个值设高了会导致ping升高,再高会出现choke 嗯,amxmodx.org有个high_ping_kick插件,具体好像叫high_ping_kick2,它不仅检查ping,还检查cl_cmdrate,如果不符合,会强行将客户端的cl_cmdrate改为你预设的值。(默认是40)。现在再想这个插件挺不错的。 兄弟,谢谢你。 谢谢你才对。
呵呵,我可掌握你规律了,几天不见你,你就肯定有[行动],哈哈 Post by BoeZombie
嗯,amxmodx.org有个high_ping_kick插件,具体好像叫high_ping_kick2,它不仅检查ping,还检查cl_cmdrate,如果不符合,会强行将客户端的cl_cmdrate改为你预设的值。(默认是40)。现在再想这个插件挺不错的。
还有这个功能啊,真是好主意,强行设置。我马上也这么干。连进服务器,先调了他的这几个数再说。 找到了,叫Yet another High Ping Kicker
http://www.amxmodx.org/forums/viewtopic.php?t=7865
//////////////////////////////////////////////////////////////
还有Low Ping Kick,专踢ping低的,逗死我了
http://www.amxmodx.org/forums/viewtopic.php?t=10977 我看了一头雾水?????????????????? Post by larnk
还有这个功能啊,真是好主意,强行设置。我马上也这么干。连进服务器,先调了他的这几个数再说。 呵呵,现在我也想这样了....