当前位置: 首页 > 工具软件 > AutoPy > 使用案例 >

python 游戏脚本制作(一)autopy包的使用

连时铭
2023-12-01

目前主流的游戏外挂或者脚本的制作方式主要有:

1、利用CE等修改内存中的值,使游戏里的属性或者金币增加。主要适用于单机游戏。

2、利用自动点击脚本模拟人进行点击,完成每日任务等。主要适用于回合制网游。

3、大型网络游戏脚本,比如LOL自动躲技能脚本,原理是截取数据包,然后识别技能范围、路线,进行躲避规划。

  首先我们先开始学习做类型2的脚本,这类脚本通常是通过定位坐标去寻找任务或者活动的图标位置,然后使用模拟点击鼠标去实现自动点击脚本。主要工具包也是这次学习的autopy包主要用来模拟鼠标和键盘的点击操作

开发环境:windows

开发语言:python3.6

 

autopy包的安装

pip install autopy

如果python2安装失败:

https://www.lfd.uci.edu/~gohlke/pythonlibs/

找到:

autopy‑0.51‑cp27‑cp27m‑win_amd64.whl

下载成功后,找到文件位置,在当前位置打开命令行之后 

pip install autopy‑0.51‑cp27‑cp27m‑win_amd64.whl

autopy包的使用

屏幕

import autopy as at

print(at.screen.scale())
#1.0 表示一个坐标点包含1.0个像素点,
#像素是指由图像的小方格组成的,这些小方块都有一个明确的位置
#和被分配的色彩数值,小方格颜色和位置就决定该图像所呈现出来的样子

print(at.screen.size())
#(1920.0, 1080.0)
#屏幕的大小

scale=at.screen.scale()
print(at.screen.size()[0]*scale,at.screen.size()[1]*scale)
#像素点的大小,因为一个坐标点包含1.0个像素点,所以也是 1920.0, 1080.0

print(at.screen.is_point_visible(1919,1079))
#判断是否超出范围

print(at.screen.is_point_visible(1920,1080))
#判断是否超出范围

print(at.screen.get_color(100,1))
#16进制图片颜色属性
print(at.color.hex_to_rgb(at.screen.get_color(1,1)))
#RGB图片颜色属性

鼠标

#at.mouse.move(100,100)
#鼠标迅速移动到(100,100)

#at.mouse.smooth_move(100,100)
#鼠标移动到(100,100)有移动过程

#at.mouse.toggle(autopy.mouse.Button.LEFT, True)  #按下指定鼠标键
#at.mouse.toggle(autopy.mouse.Button.LEFT, False)  #释放指定鼠标键
#注意释放,要不然会电脑会一直按着那个键,直到你终止程序
#参数
#at.mouse.Button.LEFT   鼠标左键
#at.mouse.Button.RIGHT  鼠标右键
#at.mouse.Button.MIDDLE  鼠标中键
#None 默认左键

print(at.mouse.location())
#获取鼠标当前位置

at.mouse.smooth_move(221.0, 786.0)
at.mouse.click(None)
#点左键一下,然后松开

#at.mouse.click(at.mouse.Button.LEFT, 3)
# 按住左键保持3秒,然后松开

at.key.type_string('Hello123',0)
#输入相应的字符串, 0表示速度 ,0最快

键盘
 

autopy.key.toggle(autopy.key.Code.UP_ARROW, True, [])  #按下方向键
autopy.key.toggle(autopy.key.Code.UP_ARROW, False, [])  #释放方向键

autopy.key.toggle(autopy.key.Code.UP_ARROW,True,[autopy.key.Modifier.CONTROL],0)  #按键或者释放键
#参数1  键盘代码(看下表)或键名
#参数2  True表示按下,False松开
#参数3  同时按下的修饰键
#参数4 延迟n秒后再往下执行
autopy.key.toggle(autopy.key.Code.UP_ARROW, False, [autopy.key.Modifier.CONTROL], 0)
#注意释放,要不然会电脑会一直按着那个修饰键,直到你终止程序

autopy.key.tap(autopy.key.Code.CONTROL, [], 2)  #对autopy.key.toggle进行的封装,方便使用,按下并自动释放.
print('xx')

autopy.key.type_string('Hello123', 0)   #输入相应的字符串
#参数2  每分钟的字符个数,0表示最快

键盘代码建议百度。

图片

a=at.bitmap.capture_screen(None)

a.save('screen.png')
#截取当前屏幕,在本文件目录下生成了一个名为some的png图片

photo1 = at.bitmap.Bitmap.open('screen.png')
photo2 = at.bitmap.Bitmap.open('1.png')

i=photo1.find_every_bitmap(photo2)
#在图片1中寻找图片2的坐标
print(i)
#打印坐标
at.mouse.smooth_move(1269.0, 76.0)

 

 类似资料: