开始着手用Python写一个游戏脚本(一)

学习python有一段时间了,由于python语言的强大和简洁,是一个不错的脚本语言,就准备做个游戏脚本练练手。
听说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提供的模拟输入,包括键盘鼠标的模拟操作都不会生效。
看起来事情并不简单。
那怎么办?

别急,我们可以模拟键盘鼠标驱动的硬件操作。
以下理一下我们思路
目的:我们希望模拟键盘和鼠标的操作。
可以使用方式或库:

  • pyinput
  • autopy
  • win32api
  • winio
  • vb类似于按键精灵的模式
    前面三种已经证明不可行,因为都是api层面的操作,一定都会被游戏系统屏蔽。
    关于第四种可以实现IO驱动的模拟
    介绍winio
    但是进入github查看说明文档发现:
    不支持
    也就是说,winio的python接口还不支持win10,其他语言倒是可以支持,但是我们的代码不就前功尽弃了吗?
    因此联想到可以使用vb的按键精灵模式来实现模拟输入。
    在这里我们并不是要推翻整个代码重写,更不是把语言换成vbscript,我们可以通过调用按键精灵某些插件实现模拟的键盘鼠标输入。
    今天就分析到这里,下一篇我们来讲讲怎么使用python调用vb脚本实现键盘鼠标的dx游戏模拟输入吧。
  • 41
    点赞
  • 264
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 我可以提供一些建议来帮助你使用Python桌面脚本管理:1. 详细研究Python语言及其标准库,以及相关的第三方库; 2. 使用Python调用操作系统的API,以便访问和控制操作系统的底层资源; 3. 使用Python开发一些实用的脚本,以简化计算机的日常使用; 4. 使用Python构建可扩展的跨平台的桌面应用,以便实现复杂的桌面任务。 ### 回答2: 使用Python一个桌面脚本管理器,可以帮助用户在桌面上管理和执行各种脚本。以下是一个简单的实现示例: 首先,我们需要使用Python的GUI库(如Tkinter)创建一个用户界面。用户界面可以包括一个输入框和一个按钮。输入框用于用户输入脚本的名称,按钮用于执行脚本。 当用户点击按钮时,程序将会读取用户输入的脚本名称,并执行该脚本。为了实现这一点,我们可以使用Python的subprocess库来运行外部命令。 在执行脚本之前,为了确保脚本文件存在且可执行,我们可以使用Python的os库来检查文件的存在性和权限。如果脚本文件不存在或不可执行,程序可以弹出一个错误提示框。 一旦脚本执行完成,程序可以显示执行结果或弹出一个通知框,告诉用户脚本已经执行完毕。 除了执行脚本,我们还可以加入其他功能。例如,用户可以添加新的脚本到脚本管理器中,或者删除不再需要的脚本。这些功能可以通过在用户界面上添加更多的输入框和按钮来实现。 另外,我们可以使用Python的文件操作库来保存和读取脚本名称及其对应的执行命令。这样,在每次启动程序时,用户之前定义的脚本都能够被加载并正常使用。 综上所述,通过使用Python一个桌面脚本管理器,我们可以帮助用户更方便地执行和管理各种脚本。这个脚本管理器可以提供简单的用户界面,实现脚本的执行、添加和删除等基本功能。 ### 回答3: 使用Python一个桌面脚本管理器可以方便地管理和运行各种桌面脚本。以下是一个简单的实现思路: 首先,可以使用Python的tkinter库来创建一个用户界面,用于展示和管理桌面脚本。可以创建一个窗口,并在其中添加各种按钮和菜单等组件。 其次,可以创建一个脚本管理的数据结构,可以使用Python的字典或列表来存储脚本的相关信息,比如文件路径、名称、描述等。 然后,可以给界面中的按钮和菜单等组件添加相应的功能。比如,可以添加一个"添加脚本"的按钮,点击后可以通过文件选择对话框选择需要添加的脚本文件,并将其信息添加到脚本管理的数据结构中。还可以添加一个"运行脚本"的按钮,点击后可以选择要运行的脚本,并调用Python的subprocess模块来执行相应的命令行。 此外,还可以为每个脚本添加更多的功能,比如编辑、删除、复制等操作。可以为每个脚本项创建一个右键菜单,包含这些功能。 最后,可以将脚本管理器的代码打包成可执行文件,方便其他用户使用。可以使用PyInstaller或其他类似工具将Python代码打包成Windows、Mac或Linux等平台的可执行文件。 综上所述,使用Python一个桌面脚本管理器需要构建用户界面、脚本管理数据结构、与外部命令交互,并实现相应的功能按钮等。这样可以方便地管理和运行各种桌面脚本。
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值