欢迎任何批评建议~
在 constants/constants
里有一些参数可以设置...
可以先跑一跑 demo/
下的一些文件
目前手牌识别只能识别这幅套牌里的牌(需要自行测试哈希然后记下来)
目前幸运币不支持带皮肤……
神秘代码:
AAECAa0GCMi+A/rfA/PuA6bvA6iKBMGfBPCfBKOgBAuvugPXvgPcvgPmvgPLzQP44wOS5AOY6gOb6wOEnwSFnwQA
我觉得需要经过一下几步:
demo/identify_cards.py
去读取手牌卡画哈希constants/hash_vals.py
中card.py
name2card.py
好像有点麻烦...
运行 main.py
即可,注意本脚本需要屏幕分辨率为 1920 * 1080、炉石全屏,在运行时按下 Ctrl+Q 可以退出脚本。
需要把炉石放在最前台。
最好把暴雪战网也最大化放在炉石后面...因为有时会因为网络问题炉石退出,这时程序会试图重新打开炉石
demo/catch_screen_demo.py
: 运行此文件会获取炉石传说进程的整个截屏
(无论是在前台还是后台),并画上一些坐标基准线,方便判断想实现的操作的坐标值demo/count_cards_demo.py
: 数出有几张手牌,需要在对战界面调用demo/count_minion_demo.py
: 数出有几个随从,需要在对战界面调用demo/find_avaiable_demo.py
: 测试一下场上的我的怪都能不能动,需要在对战界面调用demo/get_minion_attack_and_health.demo.py
: 测出场上的怪的攻击和血量,需要在对战界面调用demo/get_taunt_and_divin_shield_demo.py
: 测出场上的怪是否是嘲讽或者圣盾,需要在对战界面调用demo/get_window_name.py
: 显示当前所有窗口的名称和编号,可以用来看炉石传说叫什么名字……demo/identify_cards_demo.py
: 测出手里的手牌都是什么,需要在对战界面调用demo/mouse_control_demo.py
: 一个样例程序展现了如何控制鼠标使用的是win的接口。在矩阵里第一维是行号,而在opencv里,windows接口里和mouse接口里第一维是列号。
矩阵里的色彩排序为(B,G,R)
原本想通过发送信号的方式在让炉石在后台也能接收到鼠标点击
但是发现炉石应该是所谓的接受直接输入的进程,信号模拟它不会接收……
所以只能使用很low的鼠标点击了
也许能直接模拟网络发包?
一打开炉石就会建立两个TCP连接,这两个所有的数据都是加密的。像分解卡牌, 只有退出了某个卡牌的分解界面(就是可以撤销的界面)才会发包确认分解结果。
实验下来感觉只有其中一条连接在真的交换数据。
点击匹配会新建一个连接,这个连接是加密的。在匹配完成后连接就销毁。
进入对战会又新建一个连接,这个是纯TCP没有加密,不过我仍然无法解析数据交换的格式……(总之不是json..……)。
任何一个操作都会触发数据传输(比如空中乱晃鼠标……),而如果什么都不做炉石也会每个5秒跟服务器互相ping一下,应该是在确认是否掉线
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。