# new_yysscript **Repository Path**: hicaiyx/new_yysscript ## Basic Information - **Project Name**: new_yysscript - **Description**: 阴阳师脚本工具。 低调护肝的工具。 编写语言:python。 界面语言:pyqt5。 支持功能:自动升级狗粮,自动御魂挖土,自动结界突破,自动业原火,自动御灵,自动困28,自动日轮之城。 - **Primary Language**: Python - **License**: GPL-3.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 28 - **Forks**: 4 - **Created**: 2021-01-01 - **Last Updated**: 2026-01-05 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # yys自动化工具 阴阳师护肝的自动化脚本集合。 功能包含(不局限): 1. 御魂挂机,组队,单人 2. 结界突破 3. 业原火 4. 御灵 5. 活动预留功能 PS:**为了维护公平的游戏环境,鼓励大家手动游戏**。 脚本有风险,尽量仅学习 Python 使用。 使用帮忙见:[常见问题及解决方法](#常见问题及解决方法) ## 主版本更新记录 ### 2021.07.22 sp面灵气活动 1. 增加活动预留-sp面灵气活动挂机 ### 2021.07.06 阿修罗活动 1. 增加活动预留-sp面灵气活动挂机 ### 2021.05.31 后台处理+妖气封印 1. 添加后台处理 2. 添加妖气封印 ### 2021.04.27 使用原始窗体大小 1. 使用原始界面的窗体进行重新程序修改 ### 2021.01.01 增加点击模式和日轮之城 1. 增加通用点击模式 2. 新增日轮之城的挑战 2021.03.25 补充: 1. **工具不再进行更新**,也不再提供程序下载。 2. 仓库暂时不撤掉,供学习 python 的有缘人一起交流学习。 ## 软件介绍 ### 支持的功能 当前软件支持的功能: 1. 御魂 2. 困28单人,困28组队 3. 御灵 4. 业原火 5. 结界突破 6. 点击模式 7. 活动预留 还有一些功能没有适配**后台运行**,所以可能存在问题,或者是未支持。 其他功能: 1. 业原火 + 换狗粮 2. 日轮之城 + 组队 + 换狗粮 ### 硬件环境 - 软件环境:win7 , win10 - 硬件要求:非 4K 屏显示器(之前有朋友反馈 4K 屏不能正常使用) - 分辨率:要求 1080p ,其他分辨率图片会匹配不上,暂不考虑支持 - 软件依赖:官方版本的阴阳师 PC 客户端 - 软件获取: - 群文件,点击链接加入群聊:暂不再提供加群链接, python 爱好都可以私信。 - 开发者可自行编译打包,详见开发部分文档 - 项目 gitee 链接:https://gitee.com/chike567/new_yysscript ### 重要声明 - 本项目仅供学习用,请勿传播 - **使用脚本工具破坏游戏平衡,且有鬼使黑警告风险。若因使用脚本被封号,本人概不负责。** - **不保证绝对安全。没有留后门。**有感兴趣且懂技术的可以自动查找源代码。 ### 使用技术说明 图像识别 + 图像匹配(opencv) + 模拟人工操作 + 自动循环检测执行。 具体说明: 图片识别 + 图像匹配 + 自动点击。 通过将事先截好的游戏画面的图,与当前执行的阴阳师客户端的界面进行比对。如果图像匹配上,按照设定的方法去自动执行,如点击,拖拉等。最终是通过模拟人为操作,去实现一系列循环的操作。 其他自动点击是在图像匹配的区域去随机点击。举例说明:如匹配到挑战按钮,识别一个矩形框,随机在框内进行点击。 ### 软件结构介绍 主要包括四个文件或目录 1. conf 配置文件,可能通过修改参数进行定制化的功能修改。配置文件为 **config.ini** 2. screenshot 程序用到的截图文件。一般情况下不建议自行替换截图文件。如部分图片匹配不上时,可自行截图替换。**并反馈修改。** 3. exe 文件即可执行文件,点击运行脚本 4. debug.log 运行中产生,发生异常时可以用来追踪一些问题 拿到软件包之后的具体操作步骤如下: 解压(不能有中文路径) -> 双击可执行文件 -> 选择功能 -> 选择参数 -> 点击开始 解压后的文件结构,debug.log 可能需要运行时才会出现: ![软件文件列表](./docs/images/ui/软件文件列表.jpg) 成功打开后的界面如下: 启用一个功能的顺序: 1. 选择对应功能 2. 参数设置的那6个选项中设置对应的参数 3. 点击开始进行挑战 ### config.ini 配置文件说明 参数在 conf 文件夹下面的 config.ini 文件中,右键用记事本打开,下图是用 notepad++ 打开。 ini格式说明: 1. [general],[]包含的是哪个功能配置,general是通用信息,用来设置界面 1. title,窗口标题 2. attention,注意事项 3. width,height,窗体大小(不能更改) 4. **licence**,认证码,用来限定认证过期时间 5. 其他#开头的是注释说明 6. 其他没有特别说明可能是冗余配置,没有实际作用 ### 脚本的执行概述 执行步骤如下: 1. 选择功能,设置参数。 2. 点击开始,开始加载截图和配置项 3. 界面截图并比对截图,如匹配上截图执行对应的操作。如果一直没有比对到截图,一定时间后会自动退出程序 4. 执行操作后重复执行 3 ,直到触发结束标志 结束标志可能有: 1. 达到配置的循环次数 2. 功能预定的结束点,如结界突破没有挑战券了 3. 达到一定次数没有匹配上截图 ## 功能使用 ### 御灵使用 使用方法: 循环状态:只要符合下面状态时,才可以正常进入循环挑战。 注意事项:如果对应的类型没有开放的话,会自动切换类型,默认优先级顺序是豹子 -> 狐狸 -> 凤凰 -> 神龙。 ### 御魂 使用方法 参数说明: 总共涉及的参数有下面几个: 1. 单人,双人,三人 2. 队长,队员 3. 循环次数 循环状态:只要符合下面状态时,才可以正常进入循环挑战。 注意事项 1. 因为组队挑战的话,涉及邀请组队和接受邀请组队的情况。如果此时有其他人邀请你打妖气封印的话,会点击接受,从而退出挑战。 2. 所以如果你好友比较多,大家都喜欢拉你打个妖气封印,金币妖怪,经验妖怪什么的,**需要定期查看是否有热心好友邀请**。 3. 组野队小心被举报。 ### 业原火 使用方法 更换狗粮说明: 业原火我都是拿来作为狗粮,如果选择不带狗粮的话就不用看后面的了。 带狗粮的话,我一般是1+1+3。所以我限定的狗粮区域只有3只会去替换。更换狗粮时根据选择的狗粮类型进行替换。 参数说明: 总共涉及的参数有下面几个: 1. 更换狗粮,不更换 2. 循环次数 3. 狗粮类型,如果选择不更换,这个参数没有什么意思。 循环状态: 只要在符合下面两个图中状态,都是可以正常进入循环挑战。 注意事项: 1. 业原火的狗粮替换目前没有遇到说满级的狗粮没有更换的情况。 2. 涉及更换狗粮的场景,一律推荐使用白蛋。 ### 结界突破 使用方法: 结界突破的流程: 1. 进行寮突破,直接全部完成,或者是6次用完了 2. 进行个人突破,直接没有挑战券或者是9个格子中有挑战失败的情况 3. 当进入一个挑战时,锁定**第四个位置** 4. 如果存在挑战失败,**自动点击刷新**。如果刷新还在CD,等待一段时间后再进行匹配。 循环状态: ### 升级狗粮 使用方法: 参数说明: 总共涉及的参数有下面几个: 1. 升级狗粮可选,2->3表示2星升3星;3->4表示3星升4星,升级仅使用N卡狗粮。 3. 循环次数 执行流程: 1. 切换到式神录界面 2. 切换到按星级排列,宽松排列 3. 识别到是2->3还是3->4 4. 选择一只满级狗粮,并点击育成 5. 切换到N卡,喂狗粮,点击确认,确认升级 6. 点击确认,重复3-6,直到狗粮不够或者是达到指定数量的狗粮 循环状态: ### 困28-换狗粮 使用方法: 参数说明: 总共涉及的参数有下面几个: 1. 单人,双人 2. 队长,队员 3. 循环次数 4. 狗粮类型 注意事项: 1. **存在一定概率不替换狗粮**。困28组队时,刚进入预选界面时,达摩会跳啊跳的,可能识别出错 2. 无法完全挂机,暂不修复 ### 点击模式-暂不可用 使用方法: 这个功能需要自行截图和修改配置文件。 使用步骤: 1. 截图并放在指定目录下, src\screenshot\pattern 2. 截图命名添加到 config.ini 文件中,标签名 loop_keys 1. 如截图命名为 step1.jpg , step2.jpg , step3.jpg , loop_keys=step1,step2,step3 2. 记得要找标签是 [pattern] 下面的 loop_keys 3. 启动游戏,注意配置的次数可能无效 配置举例: ``` [pattern] loop_times=50 # 截图的名称,不要留空格 # loop_keys=step1,step2,step3,step4,step5,step6,step7 # 每次点击之后要休眠的时间,单位是S,只能传整数 sleep_seconds=1 # 一轮循环的标志,暂不支持 loop_key=s7 attention=注意事项说明:\n1. 该模式只适用于识别图片并点击的功能\n2. 含有复杂逻辑时时不能用该模式\n3. 0604活动,锁定阵容即可,放在挑战的界面上 # None指截全图 win_name=阴阳师-网易游戏 ``` 注意事项: 因为每个图的回调都是点击,防止图片过小被鼠标遮挡,每次点击都会往右下角移动一定距离。 winname 实在不好设置时,设置成 None ,这个是截取整个屏幕。 ### 活动预留-根据活动调整 给每个活动预留的功能,根据活动来调整。 ## 功能更新预告 - [x] 开发文档合入readme - [x] 优化代码结构,精简化 autogui.py ,将界面类,通用操作类,专属操作剥离出来。 - [ ] 点击模式优化,命令和对应的操作函数可配 - [ ] 添加一键环境配置文档 - [x] 功能扩展-日轮之城 - [ ] 功能扩展-永生之海 - [x] 功能扩展-狗粮升级 - [ ] 功能扩展-业原火换狗粮 ## 常见问题及解决方法 ### 认证失败 添加了对应的认证模式,遇到也联系我吧。 第一步:通过==菜单栏->工具->生成机器码==进行生成机器码。 这个步骤等价于打开一个空的记事本文件,把下面两行添加进行,然后修改成 uuid.bat ,执行之后把得到的方字。 ``` wmic csproduct get uuid Pause ``` 第二步:将生成的机器码拷贝给我。我由此生成一个认证码。比如最终生成的认证码如下: ``` ZGQ3ZTRmZTVmYmViMjdiY2Q4MTQ4NmZmYmI4YzU1ZTZfMTY0MDk2NjQwMA== ``` 每三步:替换掉 config.ini 的 [general] 下的 licence 。 可以手动替换,举例 config.ini 文件中修改到下列串。 ``` [general] licence=ZGQ3ZTRmZTVmYmViMjdiY2Q4MTQ4NmZmYmI4YzU1ZTZfMTY0MDk2NjQwMA== ``` 也可以通过==菜单栏->工具->输入认证码==来直接设置,设置之后会重新加载一次配置,即时生效。 ### 窗口调整失败 原因分析:没有管理员权限。 解决方法:右键程序,使用管理员身份运行程序。 ### NoneType 截图对比失败 原因分析: 可能原因:程序放在了中文路径下; 解决方法:更换到英文路径下。 可能原因:包不完整。 确认方法:查看文件夹下是否有 screenshot , config 目录,并查看 screenshot 下是否有对应功能的截图 解决方法:将程序放在英文路径下。 可能原因:分辨率不是 1080p 确认方法:回到桌面 -> 右键(显示设置)-> ==缩放要求100%== -> ==分辨率(1920*1080)==。 解决方法:多显示器可以在 1080p 的显示器上再运行程序。只有一个显示器的设置分辨率,如无法设置建议换电脑再跑程序。 ### 狗粮更换失败 问题表现:没有更换狗粮 原因分析:困28有一定概率无法识别到狗粮,比如刚进图的时候,达摩还在跳;比如无法识别到不同式神头上的“满”字。 优化:目前做的优化项是匹配多轮,具体优化点如下 1. 第一轮匹配到0只满级狗粮,就再进行一轮匹配,如果依然是0只就认为没有满级狗粮 2. 如果当前轮数的匹配跟上一轮匹配的值不一样,就继续进行下一轮的匹配,交将当次的结果作为下一轮的匹配项 3. 因为目前默认是匹配两轮,所以第2步也不支无限匹配下去 解决方法:手动更换狗粮,或者自动等下一轮匹配。 ==最新版本的阴阳师版本,使用官方的轮换功能配合即可==。 ### 卡在结算界面 原因:开启了个性化结算 解决方法:在阴阳师的设置中关掉去掉个性化结算。 ### 其他问题 请先认真比对上述问题是否能够解决你的问题。如无法解决,反馈给作者或加群反馈。 ## 如何双开游戏? ### 双开阴阳师 这里只举例一种: 将下面代码拷贝到新建文件中,修改名称为 ==open_yys.bat== 。双击就可以打开一个新的阴阳师程序了。 ```bash start bin\onmyoji.exe ``` ### 双开脚本方式一 方式一: 使用步骤如下: 1. 你开两个脚本,两个阴阳师;多开同理 2. 先选中阴阳师窗体1 (点击这个阴阳师窗体即可),脚本程序1,启动功能 3. 先选中阴阳师窗体2 (点击这个阴阳师窗体即可),脚本程序2,启动功能 ### 双开脚本方式二 通过==菜单栏->工具->帮助与反馈->阴阳师窗体名称获取==先获取到双开的两个阴阳师游戏窗体的句柄。如下面所示,两个句柄分别为 264012 , 262362 ``` (264012, 'Win32Window', '阴阳师-网易游戏') (262362, 'Win32Window', '阴阳师-网易游戏') ``` 脚本程序1,通过==菜单栏->工具->输入阴阳师句柄==输入句柄 264012 ,这样第一个脚本程序1就绑定 264012 这个阴阳师窗体。这个时候可以先用脚本程序1启用功能。 脚本程序2,通过==菜单栏->工具->输入阴阳师句柄==输入句柄 262362 ,这样第一个脚本程序2就绑定 262362 这个阴阳师窗体。因为配置是共用的,所以**必须在脚本程序1启用之后再修改脚本程序2**。或者是将脚本程序拷贝两份,不共用一份配置。 ## 其他工具使用 ### 修改程序标题 通过==菜单栏->工具->修改程序标题==可以修改脚本程序的名称。可以降低风险。 ### 修改阴阳师窗体名称 通过==菜单栏->工具->修改阴阳师窗体名称==可以修改获取阴阴师窗体程序的名称。==使用场景是使用沙盒打开阴阳师。== 现在可以使用脚本双开方式二中的方法来打开指定窗体,不建议使用这个功能。 建议使用句柄方式打开。见 [双开脚本方式二](#双开脚本方式二) ## 如何提交意见和反馈? 加群 -> 描述问题 -> 群里咨询 , 暂不再提供加群链接, python 爱好都可以私信。 需要软件的爱好者,或者有其他问题,可以给我发邮件: chik567@163.com 如何加群?加 [QQ 群](https://jq.qq.com/?_wv=1027&k=JzQxBbZx)。 或者直接点击菜单栏中有加群的反馈选项。 如何描述问题? 1. 问题要描述清楚,如何操作以及具体问题现象。 2. 将生成的 debug.log 文件一并附上 3. 配上具体截图效果更好。 示例: 问题描述:启用功能时报 NoneType 截图信息: 报错操作:启用程序 -> 启用御灵功能 -> 报错 ## 编译方法 编译时,先激活 venv 的 python 环境。 ```shell python -m venv .venv source .venv/Scripts/activate pip install -r requirements.txt ```