用Python写一个游戏脚本,你会吗?
off999 2024-10-11 14:05 45 浏览 0 评论
前言
本文的文字及图片来源于网络,仅供学习、交流使用,不具有任何商业用途,版权归原作者所有,如有问题请及时联系我们以作处理。
听说pywin32写脚本还不错
pywin32主要代码
我以楚留香的电脑版为例,记录脚本的编写之路吧。
因为主要游戏都在windows跑,没什么好说的,第一步应该是获取窗口句柄。
在按键精灵帮助下,我们知道了游戏窗口句柄的类名和名字分别为"Messiah_Game",“楚留香”。
利用win32gui的函数,获取到窗口句柄,并稍微调整一下我们理想的大小。
import win32con import win32gui import win32api hwnd=win32gui.FindWindowEx(0,0,"Messiah_Game","楚留香") win32gui.SetForegroundWindow (hwnd) if(win32gui.IsIconic(hwnd)): win32gui.ShowWindow(hwnd, win32con.SW_RESTORE) win32gui.SetWindowPos(hwnd, win32con.HWND_TOPMOST, 300,200,1200,800,win32con.SWP_SHOWWINDOW)
这样就完成对窗口的激活和尺寸,位置设定了。
接下来我们先做一个模块的功能,比如自动摆摊购买,因为端游模式和手游模式摆摊位置不同,我们首先确定为端游模式的坐标。
自动购买第一步,首先是鼠标能移动到‘’藏宝阁‘’图标上
然后我们关注我们需要抢购的东西,再拿他与我们需求的价格做对比,如果小于我们理想的价格,则让脚本自动购买。
所以模拟键盘鼠标的操作和价格识别就显得尤为重要。以下为关注界面,每点击一次关注就会刷新,似乎有点击事件间隔限制。
'''我们希望脚本是在端游模式跑起来的,方便测试,先默认一个Mode为端游模式,后期可以设置一个检查模式功能''' Mode='端游模式' if(Mode=='端游模式'): win32api.SetCursorPos([557, 584]) win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP | win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0)
启动脚本后,发现鼠标虽然移动成功,但是单击命令似乎只能在游戏之外的窗口才会执行?
为什么呢?
这是由于游戏屏蔽了系统API提供的模拟输入,包括键盘鼠标的模拟操作都不会生效。
看起来事情并不简单。
那怎么办?如果你学习也迷茫。可以去小编的Python交流.裙 :一久武其而而流一思(数字的谐音)转换下可以找到了,里面有最新Python教程项目
别急,我们可以模拟键盘鼠标驱动的硬件操作。
以下理一下我们思路
目的:我们希望模拟键盘和鼠标的操作。
可以使用方式或库:
- pyinput
- autopy
- win32api
- winio
- vb类似于按键精灵的模式
前面三种已经证明不可行,因为都是api层面的操作,一定都会被游戏系统屏蔽。
关于第四种可以实现IO驱动的模拟
介绍winio
但是进入github查看说明文档发现:
也就是说,winio的python接口还不支持win10,其他语言倒是可以支持,但是我们的代码不就前功尽弃了吗?
因此联想到可以使用vb的按键精灵模式来实现模拟输入。
在这里我们并不是要推翻整个代码重写,更不是把语言换成vbscript,我们可以通过调用按键精灵某些插件实现模拟的键盘鼠标输入。
今天就分析到这里,下一篇我们来讲讲怎么使用python调用vb脚本实现键盘鼠标的dx游戏模拟输入吧。
最后,小编想说:我是一名python开发工程师,整理了一套最新的python系统学习教程,想要这些资料的可以关注私信小编“01”即可,希望能对你有所帮助。
相关推荐
- 懂行的人建议买华为还是惠普电脑
-
华为电脑好。华为笔记本电脑主打的就是轻薄,质感,多屏协同生态,面向商务人群和学生党。目前在售的机型并不多,但每一台机子本身都不错,不过因为被制裁的缘故,定价过高,性价比打折扣。惠普笔记本好,惠普除了家...
- 如何把win系统换成安卓(怎么把系统改为win10)
-
方法/步骤分步:1首先点击打开酷安应用市场;2点击打开位于屏幕右下方的“应用游戏”选项;3选择想要下载的软件或者游戏app,点击进入;4选择“下载”按钮,点击开始下载;5APP下载完成后,系统会自动跳...
-
- 如何复制粘贴(如何复制粘贴excel表格内容)
-
需要复制文字的时候只要先选中文字,然后同时按住Ctrl+C键,然后松手就已经复制了文字,在需要粘贴的地方同时按住:Ctrl+V就可以看到文字被粘贴了,非常的方便。扩展资料:Alt键,这个键叫做改变,很多快捷键都需要使用到这个键,矩形...
-
2025-11-14 05:51 off999
- hotmail电子邮箱登录(hotmail邮箱在线登录)
-
***@hotmail.com1、其中***是你自己申请的邮箱的用户名。2、hotmail要写在符号@后面。3、最后加上.com,这样就是一个完整的hotmail邮箱的格式。4、比如:zhangj...
- win10iso文件(win10iso文件怎么安装)
-
安装Win10ISO系统文件需要以下步骤:1.首先需要从Microsoft官网下载Win10ISO系统文件,打开网站后选择Win10的版本、语言和架构(32位或64位),点击下载即可。2.下载...
- 英特尔显卡性能排行(英特尔显卡性能排行天梯图)
-
IRIS(英特尔第四/五代集成显卡)英特尔第四代集成显卡,分为HD4200/4400/4600,HD5100/5200。代号为GT2/3/3e,中文名为锐炬。hd420044004600和台式...
- 电脑做系统u盘启动选项(做系统开机u盘怎么选择)
-
操作须知:1、设置U盘启动分很多种:传统legacy机型设置、uefi新机型设置、uefi机型改legacy启动设置2、由于电脑品牌以及机型非常多,这边仅列举一部分电脑的设置方法,3、如果是uefi机...
- 未安装nvidia控制面板(电脑未安装nvidia控制面板)
-
如果你使用的是Nvidia显卡,但未安装Nvidia控制面板,则可能会遇到以下问题:1.无法进行高级显卡设置:Nvidia控制面板提供了高级显卡设置选项,例如显卡超频、显示器分辨率和刷新率、视频调整...
- u盘检测不到怎么修复(u盘检查不了是什么原因)
-
以下是可能的解决办法:1.更换不同的USB端口。有时候电脑某个USB端口可能出现问题,试试换一个不同的端口。2.重启电脑。有时候出现问题的USB端口可能需要重启才能正常。3.插拔几次U盘。有时候...
- win7 共享设置(win7共享设置详细步骤)
-
1.进入控制面板家庭组页打开控制面板找到网络和Internet下面的家庭组和共享选项并打开?2.进入更改高级共享设置打开以后选择更改高级共享设置功能进入?3.开启文件和打印机共享开启文件和打印机共享,...
- 电脑硬盘怎么装步骤图(电脑硬盘怎么装步骤图片)
-
1、查看硬盘的各项信息。硬盘的背面会有硬盘的存储容量以及电压,功率,转速等基本信息。2、购买到的一整块硬盘里面包括硬盘、对接线跟螺丝钉。将对接线和螺丝钉摆在一旁。3、在硬盘的上方会有两个SATA接口,...
- 小马win10永久激活(小马win10永久激活工具使用方法)
-
很简单,重装系统win7,这个可以激活的,然后根据推送升级win10,如果有强迫症可以升级以后重新安装win10系统,以后都是自动联网激活的。安全。小马激活工具win10版是小马专门为windowns...
欢迎 你 发表评论:
- 一周热门
-
-
抖音上好看的小姐姐,Python给你都下载了
-
全网最简单易懂!495页Python漫画教程,高清PDF版免费下载
-
Python 3.14 的 UUIDv6/v7/v8 上新,别再用 uuid4 () 啦!
-
python入门到脱坑 输入与输出—str()函数
-
飞牛NAS部署TVGate Docker项目,实现内网一键转发、代理、jx
-
宝塔面板如何添加免费waf防火墙?(宝塔面板开启https)
-
Python三目运算基础与进阶_python三目运算符判断三个变量
-
(新版)Python 分布式爬虫与 JS 逆向进阶实战吾爱分享
-
慕ke 前端工程师2024「完整」
-
失业程序员复习python笔记——条件与循环
-
- 最近发表
- 标签列表
-
- python计时 (73)
- python安装路径 (56)
- python类型转换 (93)
- python进度条 (67)
- python吧 (67)
- python的for循环 (65)
- python格式化字符串 (61)
- python静态方法 (57)
- python列表切片 (59)
- python面向对象编程 (60)
- python 代码加密 (65)
- python串口编程 (77)
- python封装 (57)
- python写入txt (66)
- python读取文件夹下所有文件 (59)
- python操作mysql数据库 (66)
- python获取列表的长度 (64)
- python接口 (63)
- python调用函数 (57)
- python多态 (60)
- python匿名函数 (59)
- python打印九九乘法表 (65)
- python赋值 (62)
- python异常 (69)
- python元祖 (57)
