用Python做的大航海时代ol划船按键器
刚开始学Python。 最近闲来无事,做了一个大航海时代ol专用的练划船的按键器,和大家分享一下。我的配置是windows7 64位,Python3.6版本。在开始之前需要做的准备
1.安装puwin32和pyhook库:
pywin32库比较简单: pip install pywin32
pyhook比较麻烦,需要先下载,这是下载地址,选择自己对应Python对应的版本下载就好,然后打开cmd,转到pyhook安装包所在的目录,pip安装即可
2.安装pyuserinput库:
还是在前边的连接下载pyuserinput,pip安装即可
3.最后安装pyinstaller:
pip install pyinstaller
接下来开始写程序
首先用pyautogui抓取需要点击的点坐标和工具栏翻页键,将其保存到“大航海.txt”文件中。用pyautogui是因为Python3.6对可以记录鼠标点击坐标的pythoncom库支持不好,不能取得其他窗口的点击坐标(好像可以配置,但是太麻烦了~~)
import pyautogui as pag from time import sleep def findloc(filename,pointnum=18):X=[]Y=[]for i in range(pointnum+2):if i <pointnum:print("开始采集点击点之第 "+str(i+1)+' 个点:')else:print("开始采集翻页键之第 " + str(i - pointnum+1) + " 个点(先上后下,先右后左)")sleep(5)x, y = pag.position()X.append(x)Y.append(y)with open(filename,'w') as f_o:for x in X:f_o.write(str(x)+' ')f_o.write('\n')for x in Y:f_o.write(str(x) + ' ')f_o.write('\n')return pointnum if __name__ == '__main__':findloc('大航海.txt')
接下来读取txt文件(为什么要这样呢?因为不想每次都要重新抓取啊!):
from findloc_dahanghai import findloc as fl def load_node(filename):p = input("需要设置点击点个数么?默认为18个(y/任意键): ")if p == "y":pointnum = int(input("输入点击点个数: "))else:pointnum = 18 fl(filename,pointnum)return "采集点击点成功!" if __name__ == '__main__':load_node("pp.txt")
from input_point import load_node as LN def loadloc(filename):x = []try:open(filename)ms=input("已有数据,需要重新录入么?(y/任意键): ")if ms=='y':LN(filename)for line in open(filename):z=line.split()for zz in z:x.append(int(zz))X=x[0:int(len(x)/2)-2]FX=x[int(len(x)/2)-2:int(len(x)/2)]Y=x[int(len(x)/2):len(x)-2]FY=x[len(x)-2:len(x)]except FileNotFoundError:print("还没有数据,请录入数据并重启程序")print(LN(filename))for line in open(filename):z=line.split()for zz in z:x.append(int(zz))X=x[0:int(len(x)/2)-2]FX=x[int(len(x)/2)-2:int(len(x)/2)]Y=x[int(len(x)/2):len(x)-2]FY=x[len(x)-2:len(x)]return X,Y,FX,FY if __name__ == '__main__':X,Y,FX,FY=loadloc("大航海test.txt")print(X)print(Y)print(FX)print(FY)
最后调用调用抓取到的坐标,调用pyuserinput进行鼠标和键盘操作:
from pymouse import PyMouse from pykeyboard import PyKeyboard from loadnode_1 import loadloc from time import sleep m=PyMouse() k=PyKeyboard() x,y,fx,fy=loadloc("大航海.txt") j=1 t=3 pausetime=int(input("请输入间隔时间t,默认为3s,总时间T=(t+16)s.t= ")) while True:m.click(x[0], y[0], button=2, n=1)print("完成重新定位")for i in range(len(x)):sleep(pausetime)m.click(x[i],y[i],button=1,n=2)print("第 "+str(j)+" 次循环之第 "+str(i+1)+" 次点击")msg = ["划船", "救援", "灭火", "清洁", "补漏", "医治", "修理", "平叛", "钓鱼", "测量"]k.tap_key(k.function_keys[10])sleep(2)for jj in range(8):k.tap_key(k.function_keys[jj+1])print("完成 "+msg[jj]+" 检查")sleep(1)m.click(fx[0],fy[0],button=1,n=1)sleep(2)k.tap_key(k.function_keys[1])print("完成 "+msg[8]+" 检查")sleep(1)k.tap_key(k.function_keys[2])print("完成 "+msg[9]+" 检查")sleep(1)m.click(fx[1], fy[1], button=1, n=1)sleep(2)k.tap_key(k.function_keys[10])k.tap_key(k.function_keys[10])sleep(2)m.click(fx[0], fy[0], button=1, n=1)sleep(1)k.tap_key(k.function_keys[3])print("完成补充")sleep(1)m.click(fx[1], fy[1], button=1, n=1)sleep(1)k.tap_key(k.function_keys[10])j=j+1 print(j)
最最后一步,调用pyinstaller将dahanghai.py打包成exe文件,这样就可以在不同的电脑上运行了!
命令如下:
pyinstaller -F dahanghai.py
最后的运行结果如下:
就是这样了~~
用Python做的大航海时代ol划船按键器相关推荐
- 区块链进化论:极客与开源 - 区块链大航海时代
1976年当做区块链史前时代的元年,正式开启了整个密码学,包括密码学货币的时代. 1982年,Lamport提出拜占廷将军问题,标志着分布式计算的可靠性理论和实践进入到了实质性阶段. 1985年,Ko ...
- 和数集团积极赋能区块链价值传递 开启大航海时代
据海外媒体报道:经过无数探索和试错,区块链技术以日新月异的姿态不断前行迎来新一轮重大变革,开启了区块链大航海时代. 当下,区块链技术成为各个行业关注的重点.区块链技术被誉为互联网的第二次革命,其分布式 ...
- 大航海时代中国企业如何找到新机会,听听他们怎么说
价值君注:近期我们会陆续推荐钛媒体用一年时间,深耕产业,挖掘出来的真正具有产业变革意义的独角兽领军者.以及具有前瞻力的投资人和企业家,并且也会把他们请到2017钛媒体 T-EDGE年度国际盛典.嘉宾介 ...
- 【伟大报告】新消费大航海时代,新品牌如何变革发展
引言 面对消费两极分化趋势愈发显著,消费品企业也呈现出"两极化"状态.传统企业面对新消费人群,有些不知所措,只能选择"跟随模式",紧跟在新锐品牌与领先品牌之后. ...
- 大航海时代5服务器维护,大航海时代5经验获取心得以及进度状况讲解
大航海时代5经验获取心得以及进度状况讲解,在游戏中玩家们想要快速的升级不仅仅需要去获取金币还需要去获取大量的经验,不过在游戏中大量的经验玩家们想要获取就只有通过任务了,目前在游戏中一共有四种任务,现在 ...
- 大航海时代 安防企业如何唱响中国品牌?
5月2日,国务院批复国家发改委<关于设立"中国品牌日"的请示>,同意自2017年起将每年5月10日设为"中国品牌日",这是国家为推动自主品牌建设,逐 ...
- 新程序员大会(NPCon):从大模型到AGI,ChatGPT的大航海时代!
AI激荡70载,身处操作系统演变的中心位置,在ChatGPT.文心一言等AIGC产品,GPT-4.Stable Diffusion.Midjourney等AI大模型的加持下,程序员现有的编程范式将会遭 ...
- 【云栖大会】阿里云生态 开启智能“大航海时代”
行业自生长时,阿里云在构建生态:行业构建生态时,阿里云在形成开放生态.当行业认识到开放生态的意义时,阿里云又将发布怎样的生态升级战略? 10月12日,2017杭州•云栖大会生态峰会上,阿里云宣布云合再 ...
- 葡,西两国发展史(大航海时代)启示
葡,西两国发展史(大航海时代) 一个(葡萄牙)主要靠欧亚之间香料和瓷器贸易中巨额的利润,另一个(西班牙)主要靠开采金山银矿,不论是哪一种,都不需要费太大的力气.如果葡,西两国能够善用这些财富发展工业, ...
最新文章
- 《Python语言程序设计》——2.10 增强型赋值运算符
- scala中Stream理解
- 【FPGA】ROM/EPROM的设计(使用加载文件的方式初始化)
- 数据结构5: 链表(单链表)的基本操作及C语言实现
- linux下怎样查看环境变量,Linux下查看和添加环境变量(示例代码)
- 最优乘车pascal程序
- graph 关系图 设置
- JS_ECMA基本语法中的几种封装的小函数
- Python第三方包-你了解numpy吗(numpy进阶)
- 【Python CheckiO 题解】Roman Numerals
- 【今日头条】【抖音火山】前端开发实习生
- 【转】两厢车与三厢车安全性哪个好?
- 快捷键查看Emacs源码
- 从IPv4 到 IPv6 的过渡技术
- (最详细)红米手机5 Plus的USB调试模式在哪里开启的方法
- Qt系列文章之 QAbstractItemModel(下)
- mysql plus多表关联_结合mybatis-plus 实现实体操作多表关联查询
- 极客时间 Redis核心技术与实战 笔记(实践篇 集群)
- 利用CASS使用三种方法计算两期土方
- 网易2017春招笔试——赶去公司
热门文章
- 接线 科思模块怎么和plc_博途S1200数字量模块接线图,NPN和PNP不要接错了,快收藏吧...
- jom qt linux,【求助】Qt Creater编译问题——jom.exe退出
- 基于echarts 数据可视化大屏展示全国热点分布高亮地图特效
- 人工智能数学基础: 11-线性形式与对偶空间
- 【老生谈算法】matlab绘制心形曲线的程序源码——心形曲线
- 大数据舆情监测分析工作如何有效做好的解决方案
- 视觉slam框架:StructSLAM
- c语言switch和break用法,c语言里面你不知道的break与switch,contiune的用法
- 山东济南高新技术企业认定的标准
- CC2640R2F工程之间相互转换