# SmartOnmyoji **Repository Path**: xiaofeng221/SmartOnmyoji ## Basic Information - **Project Name**: SmartOnmyoji - **Description**: 阴阳师后台代肝脚本(支持后台运行、支持多开、支持模拟器) - **Primary Language**: Python - **License**: MIT - **Default Branch**: main - **Homepage**: https://github.com/aicezam/SmartOnmyoji - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 10 - **Created**: 2023-05-25 - **Last Updated**: 2023-05-25 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README ![SmartOnmyoji](https://socialify.git.ci/aicezam/SmartOnmyoji/image?forks=1&issues=1&language=1&name=1&pattern=Signal&pulls=1&stargazers=1&theme=Light) #
SmartOnmyoji
> 虽然有很多大佬有写过类似的脚本,但其实这是个学习项目,通过这个项目基本花了一个月学会了python,这里注释虽然不完整,代码不够简洁,功能也不够丰富,但是用更加优雅的方法继续完善~ ##
🎉安装方法
**推荐直接下载使用已编译打包的程序:https://github.com/aicezam/SmartOnmyoji/releases** 下载压缩包解压后双击运行 **smart_onmyoji_start.exe** 或启动windows命令行终端cmd或powershell,安装python,克隆仓库,进入根目录下,安装 requirements.txt 依赖库:pywin32、opencv-python、PyQt5、PyAutoGUI ``` 1. python安装(版本大于3.7.6都行):https://www.python.org/ftp/python/3.7.6/python-3.7.6-amd64.exe 2. 克隆或下载本项目 3. 运行power shell 或 cmd 进入主目录:cd .\SmartOnmyoji\ 安装依赖库:pip install -r requirements.txt 4. 运行power shell 或 cmd :python smart_onmyoji_start.py 5. 手动编译可使用:pyinstaller --distpath Release/ -w -i logo.ico --clean .\smart_onmyoji_start.py ``` ##
🎁使用方法
- **使用前警告:请谨慎使用辅助脚本,所有不公平游戏行为都可能被官方检测导致封号(坐标偏移量越小、点击频率越快,越容易被检测)** 1. 选择使用的客户端,推荐使用 **阴阳师桌面版**([NGA论坛](https://g.nga.cn/read.php?tid=29661629))、桌面版多开器推荐([V5多开器](https://soft.3dmgame.com/down/167157.html))、雷电模拟器([官网](https://www.ldmnq.com/))、MuMu模拟器([官网](https://yys.163.com/zmb/)) 2. 选择匹配目标Window或Android 3. 选择单开模式还是多开模式,初次使用建议单开 4. 点击选择窗体,在倒计时结束前点击窗体,结束后显示窗口标题 5. 选择目标名称,初次使用推荐选择 **[御魂]** 模式,在软件目录下打开 **./img/yuhun/** ,文件夹下的图片就是御魂模式需要匹配的目标 6. 调整脚本运行时间,默认即可,最好不超过三小时 7. 调整匹配间隔,默认3秒即可 8. 调整坐标偏移,可以在安全性和准确性之间权衡,默认即可 9. 选择运行模式,推荐正常模式 + 正常模式:即后台模式(不能点击最小化,可以被其他窗口覆盖,可以正常使用鼠标),但不支持部分窗体(如网易MuMu、网易云游戏) + 兼容模式:即前台模式(始终保持窗口最前,不能正常使用鼠标),支持所有窗体 10. 调整压缩截图,设置在0.6左右时,准确率和速度能兼顾,如果对匹配速度可以忍受,不建议修改压缩率(压缩率越低,准确度越低) 11. 设置匹配方法,初次使用推荐选择特征点匹配 + 模板匹配, 速度快,对目标图片要求一模一样 + 特征点匹配,速度慢,对目标图片要求看起来差不多就行了 12. 选择脚本结束后操作,默认即可,字面意思 13. 若你使用桌面版客户端,请勾选**桌面版防异常**,请打开配置文件**config.ini**修改window系统屏幕缩放率,即**[other_setting]** -> **srceen_scale_rate** 14. 最后点击开始,即可运行并且输出运行日志 ##
🧙关于脚本的防检测原理、算法
详细内容请查看此文章:https://github.com/aicezam/SmartOnmyoji/issues/45 ##
🚨注意事项
+ 本脚本运行逻辑为,定时获取窗口的截图,依次对目标图片进行匹配,匹配成功获取到图片中心坐标点,然后随机延迟并点击附近随机坐标 + 阴阳师电脑版使用模板匹配时,不要调分辨率,如果要调分辨率,需要重新截图,然后放到/img目录的对应文件夹下面 + 如果发现总是匹配失败,可能是/img模板图片问题,可以重新截图,或使用特征点匹配方法,或切换为 **兼容模式** ,也可自行调试代码看截图是否成功,找看看是哪儿的问题 + 特征点匹配方法适用窗体中没有多个相同的待检测目标,而且待检测目标与周围差异比较大,否则会不准确 + 支持安卓手机,需用USB连上电脑,并打开手机调试模式,使用 安卓-ADB 模式时,可以使用特征点匹配方式,不过有点慢,要不就重新截图替换/img目录下的全部图片 + 支持游戏多开,仅需要运行1个脚本,需勾选多开并点击“选择窗体”,以获取窗口句柄编号,每个编号将对应一个窗口(可能不支持模拟器多开,未测试) + 不想使用cmd编译的,可以自行编译为win程序,编译后需要把img文件夹和modules文件夹放进根目录中,手动编译可使用:pyinstaller --distpath Release/ -w -i logo.ico --clean .\smart_onmyoji_start.py + 除了阴阳师,也支持其他点点点的游戏 + **img/huntu/**图片集是转为挖土而制作的目标集,为本人运行8W体力逐步优化精选目标图片 + 由于图片匹配是依次的,在图片前缀命名不同的数字即可设置点击的优先级,具体可参考./img/huntu图片集 + 可设置匹配间隔为0.6秒,可媲美人手点击速度,(由于匹配频率不为点击频率,故匹配频率过快理论上不会收到鬼使黑的信),挖土有奇效 + 只要每天正常时间内,不刷满300次,理论上也不会收到鬼使黑的信,**请按正常时间正常频率使用脚本,偶尔还是用一下樱饼,总使用脚本有被封号的风险** ##
🔎功能预览
- UI界面、可配置参数:可修改执行时间、间隔时间、匹配方式、压缩率、执行完成后的操作等 ![3](https://user-images.githubusercontent.com/39365915/192139849-77b1adc0-22f2-4b3f-b397-143ae6ddc8b0.jpg) ![2](https://user-images.githubusercontent.com/39365915/192139814-8eee2bc4-f121-4b64-a75f-4f5675cc04b3.jpg) - 模板匹配方法:不能随意调整窗体分辨率,模板图片与窗体中的部分必须一致 ![image](https://user-images.githubusercontent.com/39365915/158008385-6d661a3f-51a7-44c0-9b8b-b872cfed60eb.png) - 特征点匹配方法:可以随便调整窗体分辨率,也可以对目标图片旋转、缩放,都可以匹配到 ![image](https://user-images.githubusercontent.com/39365915/158009257-97dbc188-aa5a-4eb6-a559-03cae7e0a5d1.png) ##
🙋‍♀️已知BUG
1. ~~如果运行过长时间(5小时以上),会有明显卡顿现象(连续肝了3天绘卷,消耗了5w体力)~~ 已修复 2. 如果电脑不能播放声音(比如设为静音),可能会停止运行(win10),可以在配置文件关闭“警告提示音”来解决 ##
🧩已实现功能
- [x] 支持abd模式,电脑连手机自动截图 - [x] 支持切换选择匹配模式,特征点匹配(自适应分辨率,不用重新截图,但速度略慢,且不太准确)、模板匹配(速度更快,更精确,但麻烦,不能改分辨率) - [x] 加载图片时记录所有图片的特征信息,优化识别速度 - [x] 支持压缩图片以提升脚本识别速度,默认为1不压缩 - [x] 所有图片转灰度图,并保存在内存里,识别速度快多了 - [x] 修复中文路径报错的问题 - [x] 兼容所有windows窗体的截图和点击 - [x] 使用QT5重构UI界面 - [x] 支持自定义匹配图片文件夹 - [x] 支持多开,多开可选择多个游戏窗口,将自动对多个窗口截图、找图、点击 - [x] 界面参数缓存,每次启动会加载上次使用的参数(可通过修改配置文件关闭此功能) - [ ] ~~优化百鬼夜行的选式神和砸豆子逻辑(yolov5),尝试跑了个模型,但是效果不好,会导致程序特别臃肿,而且运行速度特别慢~~ - [ ] ~~增加御灵、地域鬼王、逢魔、秘闻副本等默认场景,现支持自定义,可通过修改配置文件自定义场景~~ - [x] 兼容常用安卓模拟器后台点击 - [x] 支持手机端局域网内远程使用(不用在手机安装app),配置文件配置局域网IP即可 - [x] 增加真实点击模拟,混淆坐标点击轨迹(可自行设置) - [x] 更加真实的模拟人类交互行为 https://github.com/aicezam/SmartOnmyoji/issues/45 - [x] 支持自动“绿标”,需要设置 img_pos.json ##
📑更新记录
- 2023年02月10日 修复因设备、网络出现卡顿会多匹配几次的的情况,导致轮次统计不准的bug https://github.com/aicezam/SmartOnmyoji/issues/61 - 2022年12月11日 新增:支持设置轮次回合计算进度;img的json配置,增加flag标记,可为图片设置“mark(绿标)、start(回合开始)、skip(跳过)、stop(终止)”标记 - 2022年12月03日 屏幕压缩分辨率可在界面设置;增加匹配频率限制,可在配置文件修改默认参数;随机等待的最小触发时间改为150秒;优化异常抛错的显示,增加报错原因;修复因img文件夹下没有json文件导致脚本错误的bug;调整默认img的json文件偏移坐标默认参数; - 2022年11月25日 偏移算法优化:增加较大范围的偏移,配合匹配目标的json文件配置,用于点击空白处的情形;优化点击过程中,出现异常则重新匹配的机制~ - 2022年11月23日 优化点击算法:img文件夹中增加json配置,可配置该图片需要点击的坐标(相当于较大范围的偏移,偏移到空白处点击),基于正态分布点击模型算法基础上再优化的 - 2022年11月20日 新增点击日志分析工具,通过日志文件(不会上传到网络),本地生成散点图、每十分钟点击次数、每个匹配目标点击次数统计图,分析近期点击是否正常 - 2022年11月15日 微调点击模型参数,增加git有更新时的提示(从git获取最新版本号与当前版本号对比) - 2022年11月13日 支持匹配间隔设置为0.1s [#36](https://github.com/aicezam/SmartOnmyoji/issues/36) ,优化每次点击的时间为0.1-0.2s之间,部分代码简化 - 2022年11月02日 修复:安卓端不能正常使用的问题 [#35](https://github.com/aicezam/SmartOnmyoji/issues/35) - 2022年10月31日 优化:完善使用说明,新增:配置文件增加关闭记录日志的参数 - 2022年10月29日 优化:在随机偏移模型的基础上,将窗口划分为9宫格,如果点击坐标落在不同的位置,获取到的偏移模型会进行一定角度的偏转,最大限度的避免了因大量重复点击某个范围导致的规律性,同时又保留一定正态分布的规律性,可将click_log中的点击日志导出到excel表中生成散点图或热力图,分析点击结果 - 2022年10月16日 优化:限制点击模型边界范围(不超过偏移量)、优化点击位置在窗口的不同位置时,旋转点击位置,实现不同目标图片的点击,呈现不规律的正态分布 - 2022年10月15日 优化:更新点击模型,除正态分布外,参照人类行为,分布规律还应呈现一定的长尾效应 - 2022年10月15日 优化:重构混淆点击算法,使点击位置呈正态分布,而不是平均分布;增加点击日志记录(可用于excel表格中分析自己被封号的概率🤪)\smart_onmyoji_start\modules\click_log\click_log_221014.txt - 2022年10月09日 增加:5次匹配同一图片就停止脚本的开关配置 [#27](https://github.com/aicezam/SmartOnmyoji/issues/27);优化:脚本运行前90秒内不再触发随机等待; - 2022年10月05日 优化:90秒内最多触发1次随机等待(100次成功匹配内必定至少触发一次随机等待);增加随机触发的音效“ding.wav” - 2022年09月28日 优化:当连续匹配同一个图片超过5次,则脚本将终止运行 - 2022年09月27日 优化:匹配成功后的等待为随机(可配置概率),增加新功能(匹配指定目标图片名后停止脚本) [#23](https://github.com/aicezam/SmartOnmyoji/issues/23) - 2022年09月24日 增加:可自定义设置混淆额外点击的触发概率 - 2022年09月22日 增加:快捷打开“配置文件、img文件夹”的功能 - 2022年09月21日 修复长时间运行导致匹配速度变慢的[bug](https://github.com/aicezam/SmartOnmyoji/issues/22)(日志过多) - 2022年09月06日 修复Window系统分辨率导致的失真[bug](https://github.com/aicezam/SmartOnmyoji/issues/8),优化匹配时间间隔达到设定值 - 2022年08月11日 优化时间计算算法(之前根据次数计算,会因为设备性能原因导致计算不准确,现在说多久完成就多久,不再拖延) - 2022年08月05日 配置文件增加注释说明,增加混淆坐标点击的开关,配置文件中设为False后关闭该功能(小窗口容易点到其他地方,使匹配目标被遮挡导致识别失败) - 2022年07月07日 增加真实点击模拟,混淆坐标点击(怀疑痒痒鼠后台会记录坐标点击轨迹数据,如果太规律容易被ban号) - 2022年06月07日 模拟器兼容方法优化,修复可能存在的兼容点击失败问题 - 2022年05月22日 兼容常见模拟器:雷电模拟器、MuMu模拟器、夜神模拟器、腾讯手游助手、逍遥模拟器后台点击,只测试了前面2个~ - 2022年05月09日 修复不能识别雷神模拟器的bug,另外增加部分异常情况的提示音(不喜欢可以通过配置文件关闭) - 2022年05月07日 添加免责声明,优化运行日志显示 - 2022年05月04日 每次使用脚本时,参数会被记录在 config.ini 文件中,下次启动时会加载上次使用的参数,配置文件中也有其他配置,可修改以实现不同的需要 - 2022年04月30日 优化多开功能,仅需要运行1个脚本,需勾选多开并点击“选择窗体”,以获取窗口句柄编号,每个编号将对应一个窗口 - 2022年04月29日 更新支持多开方法(运行多个脚本,每个脚本对应一个窗口),兼容png格式的模板截图~ - 2022年04月26日 调整部分默认参数,更新雷电模拟器后台点击方法(感谢 @zyhazwraith https://github.com/zyhazwraith 提供的思路 https://github.com/aicezam/SmartOnmyoji/issues/7 ) - 2022年04月07日 更新防检测异常的逻辑(虽然可能没什么用) - 2022年04月03日 增加选择自定义匹配目标图片文件夹的功能 - 2022年04月02日 修复bug:停止匹配后,偶尔会触发继续匹配运行的bug - 2022年03月31日 移除重复的依赖,运行时检测是否使用管理员身份运行,脚本默认包含adb程序,为代码增加部分注释 - 2022年03月25日 使用PYQT5重构GUI,使用pyautogui替换pymouse库 - 2022年03月12日 增加兼容模式,支持在所有的 windows窗体 截图和点击,包括模拟器、云游戏、scrcpy 等, 兼容模式下 **窗体会自动置顶,不再支持后台点击** - 2022年03月10日 增加鼠标点击选择窗体的功能,(窗口标题名称 - 下拉选择 “开始后鼠标点击选择窗体”,5秒内点击要匹配窗体) - 2022年01月27日 修复opencv在中文路径下报错的问题 - 2022年01月26日 重新加入模板匹配方法,并设为默认方法,因为发现匹配速度有点慢,准确率不太高 - 2022年01月19日 优化匹配速度,截图和读取模板图片时先转灰度,支持对截图设置压缩率,进一步优化匹配速度;更换全部匹配方法为sift匹配;增加对安卓设备的支持,通过ADB实现; - 2022年01月15日 首次提交,自动截图、匹配、点击 ##
🤪其他说明
仅作学习用途,请勿用于其他非法途径!