CS在进行绘图的时候,是一幅一幅画绘成的,但是如果你在网络游戏的时候,再宽的带宽也不允许你将每一个位置的数据进行传送。 因此CS使用了另一种绘图办法:在你得到敌人位置数据的时候,它不会仅仅在次位置绘制敌人的图像,他会继续平滑的在敌人行进路线上绘制 敌人平滑走动的图像,直到它接收到网络传来的下一个敌人的位置(两次间隔100ms即0.1秒),再以此位置进行下一次绘图。问题出现了,这 种办法,你会发现平滑图像上敌人走在了他实际位置的前面一点,其实这个距离很小只有100ms走过的那点距离。CS使用了补偿技术,就是故意 给你延时100ms以便找回平衡。ex_interp这个参数就起这个作用,他故意让画面有100ms延时,以使画面更加准确反映敌人的真实位置。
问题在于画面的延时不仅仅取决于这个参数,网络的快慢,你硬件的性能都会最终影响在你屏幕上绘出敌人的位置和真正hitbox位置 的延时。很多人将ex_interp从0.1改为 0.075 或者 0.05 我们看会产生什么后果。后果就是他们看见了"未来的世界",这也是这个参数造成的 不公平的地方,也是为什么大家称这个参数为神奇参数的原因。问题不是这么简单,再看下面的情况。
如果一个人150 ping另一个人10 ping在同一个服务器打,理论上说当两人同时照面时,10 ping的人会提前140ms发现对方,如果低 ping的人立刻做出反应进行射击,150 ping的人身上已经挨了好多木仓才看见对方,150 ping的人如果改动了ex_interp为0或者接近0的数,那么 他实际的补偿延时就减少了100ms,实际上他可以看见50 ping的人应该看见的图像,这样高ping的人就不是很吃亏了,尽管仍然不如10 ping的 人。所以保留这个参数是可能程序员考虑到这种情况,这样可以灵活调整,使ping对游戏者的影响不是那么大。但是CS并没有这种聪明的办法 自动给不同ping的人调整这个参数,无论如何这个参数还是保留了,不管是公开还是非公开的。
再考虑如下情况,两个人ping都很低,10 ping左右,那么如果有一个人把自己的ex_interp 调整为50 那么它会看到未来40 ms的景象 ,调整为0就会看到未来90ms的景象。这种情况下,进行这个参数的改动就会造成不公平。因为他可以比对方先看到对方的位置,然而这个位置 要比实际的hitbox的位置还要早,因此如果此时你想打中对方不能往你看到的目标上打,你要打提后量,就是对方刚才所处的位置。(这种情 况与高ping打提前量恰恰相反)有些人觉得这样并不便宜,因为你不能往你看到的图像上瞄准,你要打提后量,这样反而影响了射击。不错, 如果你不适应,你当然觉得这样更糟糕,那样你可以不修改为0改为0.075 0.05也可以使你受益不少,如果设置的正好可以抵消你ping值或其他 因素的延时,你会发现这确实是一个神奇的参数,因为你画面的显示和hitbox的位置完全重合了。如果某些人长期在低ex_interp下面打,并且 已经适应打提后量,这会怎么样?你会在服务器里看见一个反映力超强的超人。因为他的反映力快得以至于能预见未来![em05][em05][em05]