楼主你好。你应该是游戏自带脚本设置为了ex_interp 0这个参数和cl_updaterate是互为倒数的。不过请看Gotfrag上John Mellin写的文章《Cs 1.6 NetCode Explained》(付费内容) ex_interp:Set this variable to 0 and nothing else. Counter-Strike will automatically set your ex_interp to 1/cl_updaterate (i.e. your console will say: ex_interp forced up to xx msec?. This is because the time in between each packet is exactly 1/(the # of updates per second), so this is how long you want your client to interpolate. Adjusting your cl_updaterate will automatically adjust your ex_interp (when ex_interp is set to 0). I recommend only changing your cl_updaterate, and letting Counter-Strike set your ex_interp. You cannot set this command lower than 1/cl_updaterate anymore, and setting it higher is an exploit. Using a valve above 1/cl_updaterate forces you to shoot behind the actual model displayed on your screen, which should be considered an exploit. For example, if you use cl_updaterate 101, the correct valve for ex_interp would be 1/101 = 0.009 (9 milliseconds), but by using the default valve of ex_interp 0.1 with this high cl_updaterate, the aforementioned exploit appears.
Recommendation:
ex_interp 0. 这么一段话的意思是: ex_interp:
把这个值设成0,CS会自动把你的“ex_interp”设成“1/cl_updaterate”(控制台会告诉你“ex_interp”被强制设成XX毫秒。原文“ex_interp forced up to xx msec”)。这是因为两个数据包之间的时间间隔就正好是1/(每秒更新次数),这就是你需要客户端做出插值预算的时间长度。调整“cl_updaterate”会自动调整“ex_interp”(当“ex_interp”设成0的时候)。我建议你只修改“cl_updaterate”,而让你的CS来自动修改“ex_interp”。你现在不能把“ex_interp”设置的低于“1/cl_updaterate”,而把它设高则导致了你射击对手的时候不得不瞄准出现在屏幕上的人的后面,这种行为通常被认为是exploit。比如,如果你的“cl_updaterate”是101,你“ex_interp”的正确值就是“1/101=0.009”(9毫秒)。而使用默认值0.1就形成了前面所说的exploit。注意到这里有段:而把它设高则导致了你射击对手的时候不得不瞄准出现在你屏幕上的人的后面。
这段话看起来是不是很别扭?字面上看还是设高了吃亏嘛,呵呵,别着急,这是这个外国人没解释好,一会我会给出中国人能看懂的解释。现在肯定有人想问,什么是exploit?我是搞计算机的,一般在网络攻击中,exploit是代表“溢出”,“漏洞”的意思。 参加 http://fight.pcgames.com.cn/cs/talk/0510/731226.html
你的cfg强制了ex_interp为0,而这代表ex_interp这个参数根据你的cl_updaterate值设定。即ex_interp=1/cl_updaterate所以无论你怎么设置这个数值,但是你的cl_updaterate没变,那么它还是会变回去,也就是提高你所说的12个点。解决办法就是把ex_interp设置改了,或者直接设置cl_updaterate为101