不知名深林山老人 你明白这两个“cl_updaterate 101” “ex_interp 0.1”命令是什么意思吗?如何正确的使用吗?与第三方有个毛关系啊?还是让洒家来告诉你吧。
ex_interp:
把这个值设成0,CS会自动把你的“ex_interp”设成“1/cl_updaterate”(控制台会告诉你“ex_interp”被强制设成XX毫秒。)。这是因为两个数据包之间的时间间隔就正好是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。
1. ex_interp设置为0即为一个开关,作用是ex_interp开始根据你的cl_updaterate数值进行全自动调校,可以认为,此时的ex_interp实际值即为valve的推荐值,也是理论上最适合的值。
2.cl_updaterate 的概念为每秒从服务器接受的数据包数量。这个数值能否正常发挥其作用,取决于2个方面,一个是服务器的FPS是否大于你的cl_updaterate数值,一个是服务器端是否设置了sv_maxupdaterate 大于或等于你的cl_updaterate数值。
3.ex_interp的实际数值决定了插值运算的强度,ex_interp越小,在你看到一个人的完整运动轨迹之中,由插值运算所产生的比例越小。
4.ex_interp的数值(0.1,0.01等)实际上可加上一个单位s,其实0.1就代表0.1秒。
可以来对比一下两种情况下cl_updaterate和ex_interp的关系。
当cl_updaterate 为100时 ,ex_Interp最佳值为0.01 即0.01s=10ms
当cl_updaterate 为10时, ex_interp最佳值为0.1即0.1s=100ms
第一种情况,100X10=1000ms,第二种情况10X100=1000ms。
而1000ms=1秒。你可以试一下别的数值,最后的乘积一定也是1000ms。
注意到cl_updaterate为每秒从服务器接受的数据包数量。
所以可以这么解释,当客户端每接收到一个数据包之后,可以确定一次你的对手的真实位置。自你接收到第一个数据包开始xxms之内,你看到的对手运动轨迹为插值计算所得,这个xx=ex_interp的数值。举例说明,当clupdaterate 为100时,每隔1/100=10ms你接收
到一个数据包,所以ex_interp 设置为10ms为最合适的数值;因为刚好10ms之后你又能收到第二个数据包,从而完美的实现衔接过程。同理cl_updaterate为10时,ex_interp=0.1就是最佳的数值。
|