如何成为一名合格的阴阳带师
本脚本仅供学习参考,不收取任何费用,如果你是付钱获取的,那么你可真的憨批。
——作者:李英俊小朋友(粉丝群:1060163543,神秘代码在b站上)
文章目录
写在前面 | Write Head
这是一个关于 阴阳师 的脚本,如果你不小心点进来了,赶紧出去,现在还来得急。
同时,该脚本可用于任何鼠标模拟,基于阴阳师,但超越阴阳师。
重要声明:
-
本软件不是无脑使用的软件,有学习门槛,不是基于图片识别而是基于鼠标模拟的软件, 不保证以后不使用图片识别、人工智能等技术。本软件注重于学习编程,也是我学习python的记录或者说笔记,而不是鼓励大家去用脚本来打破游戏平衡,降低自己和他人的游戏体验。(请怀着羞耻之心使用该脚本,顺带感谢一下无私的我)
-
仅供学习参考,不允许用于任何商业用途。 使用该脚本造成的任何后果与本人无关(主要是怕网易干我哈哈哈,网易如果想招我是可以考虑下的嘻嘻,毕竟去年面过网易)
-
严禁任何转载,毕竟万一以后火了,网易要打我,我只能说,与我无瓜,需要删除的话及时跟我说啊,我删除不就完了嘛。 如果非有人要转载我的,我也没办法了啊,我也没时间去告他对吧,所以如果有所传播,那网易你们去追责这些人嗷。(歪头)
-
发现任何bug都可以通过github、博客园或者csdn留言给我,联系方式在最后嗷,点我直达。最后,希望所有阴阳师玩家、爱好者都谨慎使用,技术无罪,怀璧其罪。(工作室biss)祝大家都能抽到喜欢的式神。
-
献给所有为了梦想的 程序员们 / 阴阳师们 ~
@李英俊小朋友 20210110,山东烟台
-
【20210212补充】因为是仅供学习参考,所以不会打包为.exe格式的嗷,现在不会,以后更不会,违者与我本人无关,请有关部门追究其相关的法律责任。(为什么不呢?都打包成.exe你跟我说你用来学习?学习?学个peach!但是打包的技术是要学习的,懂我的意思叭[暗示])
使用方法 | Using Method
设计思路 | Design
-
首先,我想做一个双开刷御魂的脚本。这就需要:识别挑战的位置
-
所以首先要做的就是:识别整个桌面上挑战的位置,然后点击,就可以开始刷图了对吧。
-
这个思路也是这个脚本的核心,那就是从桌面上找到目标图片(挑战截图)中心的位置,然后利用鼠标模拟点击,实现各种流程的控制。后面无论是刷御魂也好,刷结界突破也好,带狗粮也是,都是这个思路。
-
划重点了:
-
场景识别(通过多个点位识别):都返回True则场景识别返回True
l
:该点颜色与写入颜色一致则返回Truen
:该点颜色与写入颜色不一致则返回True
-
c
:单点点击m
:多点点击,m_1_2
,点击A后暂停1s,点击B后暂停2sp
:按下r
:释放pause
:暂停
-
组合step(步骤)为function(功能):
-
关联其他function(功能):
-
function配置举例:
[001@双人御魂(一个电脑)] step1 = 挑战@lc_1 step2 = 队员结算状态1@lc_3 step3 = 队长结算状态1@lc_3 step4 = 队员结算状态2@lc_1 step5 = 队长结算状态2@lc_1 step7 = 队员自动接受@lc_1 step8 = 队长自动邀请@l-m_1_1 step6 = 关闭加成@l-l-m_1_1_1 [002@斗鸡] step1 = 战@lc_1 step2 = 准备@lc_1 step3 = 胜利@lc_3 step4 = 奖励@lc_2 step5 = 失败@lc_3 step6 = 手动切自动@lc_1 step7 = 拔得头筹@lc_1 step8 = 段位保护的战@lc_1 step9 = 段位保护的战2@lc_1 [003@百鬼夜行] step1 = 邀请好友@lc_1-pause_1 step2 = 点击好友@lc_1-pause_1 step3 = 点击进入@n-l-c_1-pause_1 step4 = 选择中间的鬼王@l-c_1-pause_1 step55 = 开始@l-c_1-pause_1 step7 = 10个豆子@l-l-pr-pause_2 step5_u = 不是背景色就砸豆子1@l-nc_1 step8_u = 不是背景色就砸豆子2@l-nc_1 step9_u = 不是背景色就砸豆子3@l-nc_1 step10_u = 不是背景色就砸豆子4@l-nc_1 step11_u = 不是背景色就砸豆子5@l-nc_1 step6 = 点旁边退出@lc_1-pause_1 [004@刷图结算专用] step1 = 结算1@lc_3 step2 = 结算2@lc_3 step11 = 结算11@lc_3 step12 = 结算12@lc_3 step3 = 继续探索@lc_1 step41 = 关闭1号经验加倍1@lc_1 step42 = 关闭1号经验加倍2@lc_1 step51 = 关闭2号经验加倍1@lc_1 step52 = 关闭2号经验加倍2@lc_1 [005@蓝蛋上13] step1 = 继续育成@lc_1-pause_1 step2 = 确认@lc_1 [010@关闭悬赏邀请] step1 = 关闭@l-c_1
-
界面介绍 | Interface
-
主界面:
-
海的那边:
-
参考配置:
[001@双人御魂(一个电脑)] step1 = 挑战@lc_1 step2 = 队员结算状态1@lc_3 step3 = 队长结算状态1@lc_3 step4 = 队员结算状态2@lc_1 step5 = 队长结算状态2@lc_1 step7 = 队员自动接受@lc_1 step8 = 队长自动邀请@l-m_1_1 step6 = 关闭加成@l-l-m_1_1_1
-
选择功能后,自由之翼处会出现配置的各个step
- 红色:未配置点位
- 黑色:已配置点位
-
点位:选择的功能,对应的所有点信息
比如:
step8 = 队长自动邀请@l-m_1_1
就会在点位处显示:队长自动邀请[1]@l 队长自动邀请[2]@m1 队长自动邀请[2]@m2
解释:
- [1]、[2]代表
-
分隔的序号 @
后面代表操作的类型- 总体:该step定义了三个点位(
l
、m1
、m2
),完成识别了一个点的颜色之后(l
),进行 多重点击 操作(m1
、暂停1s、m2
、暂停1s)
- [1]、[2]代表
-
坐标:鼠标所在位置的坐标和颜色,右边的写入按键显示对应的前景色
-
运行:选择功能后,点击运行则可执行脚本(注意自由之翼位置,只有黑色的step才可以正常运行)
-
暂停/继续:字面意思,暂停和继续脚本
-
写入:将当前的坐标信息写入点位数据中
-
-
献出心脏:
-
自由之翼:
-
菜单:
-
置顶:字面意思,是否窗口最前
-
超时检查:字面意思,如果老是进行一个step,一直狂点,就会自动暂停
针对部分需要,就是要狂点的,可以取消该检查,或者在步骤名中加入
u
关键字:step5_u = 不是背景色就砸豆子1@l-nc_1
-
调整界面:字面意思,调整阴阳师的界面布局(这里我懒得解释了,很复杂),如果是1920*1080的话,按我的配置最好,如果还是想自己捣鼓,指路
configs.ini
自己研究,或者留言告诉我,我有空再详说[windows] # 第n个界面的坐标,单开取第一个 default_width = 521 win1_loc = -10, 0, 300, 521 win2_loc = -10, 700, 300, 521 win3_loc = 710, 0, 300, 521 # 写死结果,如果下面的值不是-1的话,则只用下面的值 # 写死第二个界面的第二个参数 win2_locked_2 = -1 # 写死第三个界面的第一个参数 win3_locked_1 = -1
-
下面未完成的,就是准备做但是没时间做、或者来不及做了,忽视它们
-
-
设置
-
选择用户配置:同上,只不过可以自己选了
-
重载功能:这个比较复杂,就是说,你现在载入了一个功能对吧,然后你想加点东西啥的,比如新增一个step,那么就要修改
functions.ini
,但是并没有生效啊,那么你就要重新打开,然后全部重新布局点位,是不是很麻烦。所以这个 重载功能 就是:你去修改
functions.ini
之后,然后点这个重载功能,就会发现,新增的step出现了,点位信息也有了,之前保存的step信息也还在,不用重新弄,只需要补充刚刚增加的step点位信息就行了。看不懂就别弄了,或者留言给我。
-
-
单项融合:就是当前你选的功能(选了、没选都可以,没选就是默认的functions.ini的所有功能,但是没有点信息),跟一个你选的另一个功能进行合并。
融合总结:
-
用户手册:字面意思呗,就是该文档
README.md
的html
格式,如果该软件是第一次打开,会自动弹出用户手册。(实际上没必要,因为使用时的计数器一直在增加,我也懒得归零)
操作说明 | Operation
- 见b站视频
- 注意:
- 设计时,尽量设计为:多类场景检测+单类点击事件+暂停事件
- 点击事件的优先顺序:
- 单点点击
- 多点点击
- 两点拖拽
- 暂停时间
快捷键位 | Hotkey
- 约定:小写字母代表
alt+字母
,大写字母代表alt+shift+字母
- 注意:该快捷键是全局高优先级快捷键,意思就是比如你正在微信聊天,想用
alt+C
关闭微信,但是会直接关闭该脚本,而不是微信。 - 懒得写了,自己研究叭
从零开始 | Start Zero
如果不懂编程的话,下面对你来说真的很难,但是没关系,所有的快乐都是努力之后得到的。成功的喜悦会覆盖所有的懊恼和气馁,一起加油叭。(有任何问题,很简单也不要紧,留言告诉我叭,我会在上面补充的。)
-
升级一下pip:
python -m pip install --upgrade pip -i https://pypi.douban.com/simple/
-
安装一个特殊的依赖包:在cmd中输入:
pip install pyHook-1.5.1-cp37-cp37m-win_amd64.whl
,注意,这里的pyHook是拖进来的显示的应该是绝对路径,如下图:((我在package文件夹中已经放入这个包了,不用你去下了)pyhook
安装地址) -
安装依赖包:
打开文件夹,看到这个
requirements.txt
了没,跟上面安装whl
一样,输入:pip install -r requirements.txt -i https://pypi.douban.com/simple/
,这里的requirements.txt
也是要拖进来的,反正是个绝对路径和相对路径的问题。如果有不懂的,留言,我慢慢补充。(tips:按住shift+右键,可以在当前路径召唤cmd
或者powershell
)(懂编程的人,自己看着下包就好了,我这里有很多跟这个项目无关的包,懒得改了)安装完毕:
项目计划 | Project Plan
版本控制 | Version
-
【v0.1】老张手里还有,这个版本我自己都没有了,界面过于挫
-
【v0.3】全(chuan)新的版本
计划列表 | Todo
逆序显示,最新的思路在最上面。
-
优化对UTF-8-BOM格式的处理
-
优化快捷键映射,尽量不使用system_hotkey的包
-
优化拖动流程,拖动的时候,不进行偏移点击
-
新增延时点击功能
- 第一次检测到的时候开始计时,N秒之后如果再检测到该点则点击
- 格式:
延时@l-d_N
-
新增倒计时功能
- 时间到了之后自动暂停
- 倒计时与l和n等价,即达到某个条件/场景,触发什么操作
-
保存鼠标位置
在点击之前保存现有位置,点击完成后回来(也要有随机值)
-
跳过检查
-
添加时间戳、预计运行时间、剩余体力检测
预计运行时间:每次战斗时间取均值
-
从有体力的界面中检测当前体力还剩多少,这样就可以自动计算脚本可以刷多久了
完成列表 | Finished
-
防检测处理:20210117
-
优化配置文件:20210121
-
调整窗口大小,在界面输入值进行调整,点击后更新大小:20210123
第一个窗口:
-10,0,300,width
第二个窗口:
-10,width-8,300,width
第三个窗口:
width+2,0,300,width
-
界面太长,需要重新布局:20210122
-
调试前:
-
调试后:
-
-
设置界面是否置顶的选项:20210123
-
给用户写死第二个界面纵坐标和第三个位置横坐标的配置参数:20210130
-
优化界面逻辑:20210208
-
优化配置文件:20210208
-
新增非逻辑识别,即根据标记检测该点,检测对应才操作,还是检测不对应就操作
-
可以配置多个流程
-
全空的流程无法运行
-
封装流程,保存多个流程
-
流程信息跟配置文件关联,一一对应
-
配置信息json构造设想,相关类放在structure文件夹中
[ # 多个function { "func_name": func_name, "func_code": func_code, # 是否展示该func "func_shown": func_shown, # 步骤分两种,一种是常规步骤 "steps": [ # 多个Step { "step_name": step_name, "points": [ # 每个步骤会有多个点位信息Point { "point_name": point_name, "point_type": point_type, "point_location": point_location, "point_color": point_color, # 0代表不点击 "click_times": click_times, } ], } ] # 另一种是关联步骤 "connections": [c1, c2, c3] } ]
-
如果导入流程,重名的取导入的,最新的要最新的,没有流程取旧的,配置信息全空。
-
-
优化点的坐标颜色信息:20210208
-
实现暂停功能:20210208
-
第一次打开软件时弹框警告,显示以下信息:20210208
致软件使用者: 本软件作者:李英俊小朋友。(给点尊重,认真读一下,就弹这一次) 1. 本软件不是无脑使用的软件,有学习门槛,不是基于图片识别而是基于自己想法的软件, 不保证以后不使用图片识别、人工智能等技术。本软件注重于学习编程,而不是鼓励大家 去用脚本来打破游戏平衡,降低自己和他人的游戏体验。 2. 本软件仅供学习参考,不允许用于任何商业用途。使用该脚本造成任何后果与本人无关。 3. 本软件不收取任何费用,如果你是付钱获取的,那么你可真的憨批。 4. 发现任何bug可以通过github或者csdn留言给我。 https://github.com/TinyHandsome/FxxkOnmyoji 5. 献给所有为了梦想的人们/阴阳师们。
-
使用新的环境(虚拟):20210212
更新requirements.txt
-
同一种情况(点击一处多次),算作超时,自动暂停脚本。:20210217
-
新建功能,融合载入配置:20210223
-
修改配置融合的逻辑:20210224
- 从 同名function替换 ,改为 同名function的同名step替换
- 需要注意的是,如果step中部分点或者没有点是有效的,则不进行替换(这与function有效性检测逻辑不同,function是只要不是所有点无效,就能运行)
-
修改funtions.ini配置逻辑:20210308
现在直接在section中命名即可
-
Step步骤参数重制:20210308
也就是说,-后面跟操作,比如说点击,比如某个其他的step,前面只有识别,后面只有操作。这里不大改,只是添加一项流程操作。
step1 = 名字@l-n-c_1 step2 = 名字@l-n-m_1_1_1 step3 = 名字@lc_1
-
优化部分按钮位置,移到菜单中去
-
界面更新:20210310
-
修正function实现方式为:20210310
- 场景识别
- 识别后操作:点击流程、
滚动后点击等 - 暂时不搞滚动了,滚动之后再实现
-
修改步骤逻辑:20210310
-
更换功能或载入配置的时候,停止所有正在运行的线程:20210311
-
最新界面更新,加入step状态显示:20210311
- 普通:黑色fg
- 未配置:红色fg
- 正在运行:黄色bg
-
优化update_config.ini的执行逻辑:20210312
- 运行时检测文件是否存在,不在就创建
- 运行时检测section是否都存在,不在就创建
- 运行时检测option是否都存在,不在就创建
-
对于需要连续点击的取消超时检测:20210321
- 对于百鬼夜行功能的优化
- 步骤key后加入_u实现不检测,例:
step3_u = ...
-
新增运行控制:20210321
- 当一个step在运行的时候,其他的step不能运行
-
优化重载功能:20210327
- 除了新增step,还需要更新step中新增的点
-
流程中增加时间控制:20210327
- 形式:
暂停@pause_2
- 单位:2秒
- 形式:
-
实现鼠标的拖动:20210327
- 形式:
拖动@l-pr
p
按下的点,r
弹起的点
- 形式:
-
优化m流程:20210327
将数字的含义改为暂停时间而不是点击次数
-
优化功能开始流程:20210410
运行新的功能时:
-
新增
elevate
优化UAC:20210516
现有问题 | Problems
- 现有问题:
-
无法进行图像识别,需要人工加点
-
调整阴阳师位置的时候,可能出现异常,不准确,忽大忽小
这是因为,阴阳师会自动调整比例,但是设置的时候,长和宽都要设置,所以造成缩放和移动的时候会出现:一会儿按长调整大小,一会儿按宽调整大小 的情况。
-
如果存在快捷键冲突的情况,比如微信的截图快捷键是
ALT + A
,会导致脚本的全局快捷键映射出错,从而所有的快捷键都失效。如果存在快捷键不能用的情况,请注意查看是否存在快捷键冲突。
-
问题跟进:
水友问题 | Watermelon
- 报错没有
system_hotkey
依赖包- 问题分析:安装包时使用的是虚拟环境的python,运行时使用的是系统的python
- 解决方案:找到虚拟环境的python的位置,拖入
cmd
中运行
- 之前打开没问题,之后打不开了
- 能识别但不能点击,右边步骤能显示黄色,然后报错超时
system_hotkey
快捷键冲突
联系方式 | Contact Me
- ☁️ 我的CSDN:https://blog.csdn.net/qq_21579045
- ❄️ 我的博客园:https://www.cnblogs.com/lyjun/
- ☀️ 我的Github:https://github.com/TinyHandsome
-
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。