人机模式是有延迟的,我认为是服务器存储的AI行为去控制客户端人机的移动和攻击,具体的话
比如1个客户端和1个人机,人机在服务器上是坐标+攻击范围+技能CD。服务器每个一个间隔时间不断判断和接收到客户端真人的坐标
当人机和真人坐标小于攻击范围时,服务器下发人机攻击的指令比如平A,平A造成伤害比如是在1s后,那么服务器在下发指令的1秒后让真人直接减血。
如果服务器下发人机的攻击指令是技能,那么服务器接收这个技能造成伤害的事件时间间隔,比如一个魔法阵,到达该间隔时间,服务器立即判断这个魔法阵范围是否有客户端敌人的坐标,如果有则按照逻辑扣血。
这样的话会产生一个延迟问题,一个持续2S的魔法阵在服务器上已经结束了,服务器不再循环1S判断一次扣血。客户端就算在理想情况下,魔法阵的生成时间总会比服务器晚
–如果这时候,服务器在第2S最后一次扣血的同时,让客户端进行消除掉魔法阵的指令,那么客户端的魔法阵持续时间是少于2S的。
如果魔法阵持续时间是客户端计算的,那么服务器的逻辑魔法阵消除了,客户端的魔法阵持续时间是2S


