由于大部分人都是在互联网上打CS的,服务器一般的sv_maxupdaterate都是30(没有专门调过的服务器的fps不会大于100,sv_maxupdaterate达不到100),也就是服务器每秒只向各位的电脑发出30个数据包,每33ms一个数据包。如果此时还是设置ex_interp为0.01会如何?大家应该会有经验,这时候会看到屏幕上人物的移动一闪一闪的不连续。原因很简单,由于数据采样时间只有10ms,而数据包间隔却有33ms,电脑将无法采用哪怕最基本的两点线性插值。电脑只能用另一个方法,根据当前人物的位置和速度来预估计算这33ms中人物的移动(其实当网络传输过程中丢包过多时,电脑也会用同样的处理办法)。自然,这肯定会跟实际情况有很大出入。当服务器新一轮的数据包传到后,服务器会强制你的电脑对人物的位置进行修正,这时候就出现了人物动作发闪不连续的现象。
讲解到这里新的问题又重新产生,我们知道如果做为公平性来讲那么我们必须要将ex_interp设置成0.01并且在开CD的情况下那么前面所说的人物闪动不连续的情况更加的严重。这又是为什么呢?
很简单因为CD的工作原理是在启动的时候强制hl.exe程序反复的进行跟CD内部代码反复验证来获取是否在作弊,于是CD的工作图就是:
HL.exe程序启动==》通过防火墙==》被客户端CD拦截(开始识别比对,错误即拦截)==》进入服务器(开始传送经过服务器端加密的代码)==》返回到CD客户端==》通过有验证即继续返回,感觉有敏感代码即拦截。==》最后返回到HL.exe程序调用的cstrike文件夹内容。