关于罗技的随机延迟 | 您所在的位置:网站首页 › 罗技鼠标连发cod17卡壳 › 关于罗技的随机延迟 |
总共讲四个问题:1种固定延迟 + 3种随机延迟 (正态分布随机数部分参考https://github.com/Github-Afool4U) (延迟不准部分参考https://github.com/Github-CHN-FengGe) 不讲废话,用得到罗技里面随机数的,大多出现在需要连点的情况,比如: 这样是以固定10ms的延迟进行连点,这样就引出第一个问题 Sleep()函数其实并不准确 Win10 1909系统以前,Sleep(1) = 1ms,之后的Sleep(1) = 15.6 ms 所以你调好的参数,会因为不同系统对Sleep()函数反馈不同,从而导致效果不同 解决方案:利用GetRunningTime() 解决 GetRunningTime() 获取脚本运行时间,本身就是精确到毫秒的,两者相减,如果小于我们所需的延迟,那么什么都不干,就相当于延迟。可以保证没有上面提到的 1 : 15.6 的差距。 下面说第一种随机延迟 这样就引出第二个问题 math.random(m,n)真的是随机数吗 如图,不用过多解释,脚本运行两次,单次里面确实都是随机数,但是第二次与第一次随机的完全重合 如何解决这个问题,就引出第三个问题 math.randomseed()随机数种子 可以看到,随机数种子math.randomseed(1) 与 math.randomseed(50),种子不同,得到的随机数也不同, 但我们不可能每运行一次,就手动更改一次种子,所以 GetDate() ,获取当前日期时间,"%H%M%S,输出成时分秒格式,比如现在是下午三点三十分三十秒,输出153030, 这样可以保证每次种子都不同,但是只有秒在变化,153030与153031差别是在太小,所以 :reverse() 逆序,153030,153031 变成了 030351,130351,这样差别就很大了 运行两次,不用手动修改种子,随机数完全不同 第四个问题 随机数是以怎样的概率分布的 随机分布的,比如math.random(1,10),1ms ~ 10ms 这10个数中,每个数出现的概率是相同的, 如果画一张图,x轴代表数字,y轴代表改数字出现的次数 大致长这个样子,而人手点出来,一定不是这个样子。 比如人类稳定发挥可以每5ms点击一次, 偶尔发挥失常会大于5ms,鹅偶尔发挥超长会小于5ms,大部分都在5ms左右: 应当符合正态分布,所以应该如何实现呢? 解决方案: 定义一个random()来代替罗技自带的math.random(),使得输出的随机数概率符合正态分布,更像人手点击,不容易被检测,前提是你的随机数范围是人类能点击的区间。 感谢阅读 |
CopyRight 2018-2019 实验室设备网 版权所有 |