Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

对雷电模拟器脚本建议加入时间间隔随机数 #1

Open
a0wsxz9 opened this issue Sep 20, 2020 · 4 comments
Open

对雷电模拟器脚本建议加入时间间隔随机数 #1

a0wsxz9 opened this issue Sep 20, 2020 · 4 comments

Comments

@a0wsxz9
Copy link

a0wsxz9 commented Sep 20, 2020

首先很感谢分享,在这里提一个小建议:可以把每组操作最后加时间延迟的地方换成随机时间,可以避免对发包时间的检测。

@a0wsxz9
Copy link
Author

a0wsxz9 commented Sep 20, 2020

还有一个问题,请问点击范围的坐标比例是用什么算的啊?有个地方需用改进一下,因为模仿操作的话是不会判断体力是否耗尽,因此只能手动要据理智剩余设置操作次数,如果理智已为0而继续操作的话会弹出恢复理智的选项,而确定选项在设置的点击范围内,所以最好点击范围去除确定选项的判定范围。

@Cybw
Copy link
Owner

Cybw commented Sep 20, 2020

还有一个问题,请问点击范围的坐标比例是用什么算的啊?有个地方需用改进一下,因为模仿操作的话是不会判断体力是否耗尽,因此只能手动要据理智剩余设置操作次数,如果理智已为0而继续操作的话会弹出恢复理智的选项,而确定选项在设置的点击范围内,所以最好点击范围去除确定选项的判定范围。

非常感谢您的建议。这个脚本目前确实只能根据人为判断理智的剩余。这里我其实是投机取巧的,因为我设置的那几个点,一旦理智耗尽之后,再次重复点击就不会有任何反应了。所以我就算循环了10次,但是只有八次的体力,最后的两次也不会有任何的影响的。这个是受雷电模拟器自带的重复点击功能所限制的,如果想要自动读取数值,就要使用模拟器外部的程序,那么首先它很难放到后台自己运行,另外也需要占用额外的运算资源。所以我最后还是选择了自动生成json的这种,每天生成一下新的,然后点击一下运行,一般20次1-7,消耗120体力就可以请掉每日任务了。
至于确定范围的比例是这样的,这个雷电模拟器不论你选择怎样的分辨率,它的采样率都是一样的,都是1920X1080。记录在json中的点的值也都是一样的,就是这1920X1080个点。我一开始是通过按键精灵的坐标抓取功能,计算出了刷一遍图所需要的每一个点的坐标,然后根据这个框体左上和右下的点的坐标,就可以计算出一个比例,通过这个比例就可以得出相对距离了。至于点击范围是我根据每一次点击的有效范围自己粗略估算的,并没有严格的数学模型。
另外对于随机时间我会再进行调试的。目前明日方舟我用了半年是没问题的,但如果随机性更强的话,确实有助于移植到其他游戏。

@a0wsxz9
Copy link
Author

a0wsxz9 commented Sep 20, 2020

十分感谢,那我就放心了,因为我也只是粗略用雷电模拟器抓了一下点到确定碎石需要的坐标,算了一下你的坐标范围,感觉有可能落入里面所以才发问的。至于随机时间间隔的话,我想了一下,在你91行,就是最后一次操作的时间上,加上一个随机数应该就行了,这样每次发包就都有一个随机间隔了。没有完全细看你的代码,可能有错误,不过试下来还是可以的。
click_tablet[0][3] = time + btime + atime + np.random.randint(5)*1000
不过对于发包间隔是否有检测确实不确定,也只是个人拙见了。hhhhhh

@Cybw
Copy link
Owner

Cybw commented Sep 21, 2020

十分感谢,那我就放心了,因为我也只是粗略用雷电模拟器抓了一下点到确定碎石需要的坐标,算了一下你的坐标范围,感觉有可能落入里面所以才发问的。至于随机时间间隔的话,我想了一下,在你91行,就是最后一次操作的时间上,加上一个随机数应该就行了,这样每次发包就都有一个随机间隔了。没有完全细看你的代码,可能有错误,不过试下来还是可以的。
click_tablet[0][3] = time + btime + atime + np.random.randint(5)*1000
不过对于发包间隔是否有检测确实不确定,也只是个人拙见了。hhhhhh

是的,这个就是一个自己用的脚本,确实还很不成熟,注释也不到位,但确实是可以用的,而且确实节省了很多时间,点个运行然后最小化,真的比盯着手机点舒服多了。有空我再调试一下,其实我后续是想做成带图形界面的,这样就不用依赖于jupyternotebook了。我的研究就是在本地的jupyterlab上做的,所以对我来说还好。

另外我知道网易的阴阳师确实是抓的超级严,很多同学用自动点击的都翻车了,甚至加随机都不好用。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

2 participants