python
用py写的fifaol3辅助脚本(2)
标签(空格分隔): python
快要期末考了,所以填完这个坑以后也就扎银卡卸载游戏弃坑了。还有很多乱七八糟的坑要填啊。
这次主要介绍:
- 应用pyhook获取鼠标坐标,做一个鼠标版的按键精灵
- 应用pyetesser来做ocr,实现当前拥有ep的检测
经常上不了sourceforge,所以pyhook的帮助文档真是坑杀我也。需要注意的就是pyhook是用钩子的形式来获取键盘输入的,而鼠标模拟点击也同样是运用钩子的形式来进行的。虽然不是特别理解这钩子到底是什么,但是总之监听和模拟是不能同时进行。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| def onWheel(event): global hm nl = [] if event.Wheel == -1: hm.UnhookMouse() print 'stop recording...' print 'after 5 sec it will start...' for i in [5,4,3,2,1]: print i time.sleep(1) while True: for (x,y) in mouseposition: mouse_click(x,y) time.sleep(distance) print 'HIT!' pressHoldRelease('enter') print 'ENTER!' time.sleep(0.2) pressHoldRelease('enter') print 'ENTER!' if EXIT: sys.exit() return True
|
需要注意的就是其中的true```也是绝对必要的。1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20
| 处理完这个小问题,我就来谈谈我大概的解决思路啦——每次点击鼠标左键,就给两个全局变量添加参数,其中一个是当前鼠标的坐标,另一个则是```time.time()```后者是用来计算鼠标点击的时间间隔的,然后当鼠标中键往后滚动的时候脱钩,处理得到时间间隔,开始模拟点击。需要注意的是,按下鼠标左键以及中键对应的子类分别是```MouseLfetDown```以及```MouseWheel```具体的实现代码可以看[我的github][1]。 还有就是ocr咯,我用的是pytesser。无他,不需要编译,不需要pip,使用起来方便(反正都是对付近似印刷体的纯数字,难度较低)。 有了pytesser其他就都是小事了,直接调用就好了。贴下我的图片二值化代码以及提取纯数字的代码。 ```python #二值化 def imgConvert(file): im = Image.open(file) im = im.convert("I") im2 = Image.new("P",im.size,255) for x in range(im.size[1]): for y in range(im.size[0]): pix = im.getpixel((y,x)) if pix>50 and pix<170: #这个区间是主要字体的颜色,可以通过qq截图获得 im2.putpixel((y,x),0) im = im2 return im
|
def OnlyNum(s):
s = s.lower()
format = '1234567890'
for c in s:
if not c in format:
s = s.replace(c,'')
最后照例秀下成果
