关于罗技的随机延迟 您所在的位置:网站首页 罗技鼠标连发cod17卡壳 关于罗技的随机延迟

关于罗技的随机延迟

2023-12-31 17:11| 来源: 网络整理| 查看: 265

总共讲四个问题: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 实验室设备网 版权所有