分享一下疫情期间自己玩游戏时用按键精灵制作脚本常用的关键字,函数和设计方式。
版本:按键精灵2014
#按键精灵语法大小字母写无影响,变量可以用汉字。
#按键精灵2014和按键精灵9语法上有一定区别,以下适用于按键精灵2014,不适用与按键精灵9
#屏幕拖动需要使用平滑移动
#尽量不要用区域找图,并且区域设置范围不要太大,采用多点找色更加稳定
#多做容错机制,把功能定义在函数中,给函数设置返回值来判断功能是否执行成功
#SayString方法会偶尔出现输入错误的情况,原因不详,可能是因为SayString最后输出位置会在鼠标位置上,所有尽量把鼠标放在输入框最后。
#如果电脑上安装了Visual Stadio ,使用VS之后可能会无法进行按键精灵调试,重启电脑即可,原因可能是系统库干扰,不重启可以运行,但是不能调试。
#没有使用插件,验证码部分使用的是第三方打码,打码平台会提供相应代码,操作简单方便。大漠做字库需要自己做,初学者稍微麻烦,用自己做的字库,识别效率高,可拓展性强。
Global:用于定义全局变量,类型不限
Global 自动挖矿线程, 人机验证线程 //定义线程ID接收器
自动挖矿线程 = BeginThread(自动挖矿)
人机验证线程 = BeginThread(人机验证)
Global 账号(18), 密码(18) //定义长度为18的数组
账号(0)="************"
密码(0)="************"
UBound(账号) //返回数组最大可用下标
Global 首次登陆, 每日首登, 换号记录, 换号次数 //定义变量
换号次数=0
首次登陆 = True
每日首登 = True
换号记录=0
Dim:用于定义局部变量,类型不限
dim mx
dim x,y
dim tx,ty
TracePrint:输出log,用于调试,参数必须为String类型,拼接字符串使用 &
TracePrint "开始获取个人信息界面"
TracePrint "已经换号:" & CStr(换号次数) & "次"
Delay:延时执行,单位毫秒
Delay 20000
Rem :标记一个位置
Goto :前往标记处
Rem 继续
Goto 继续
发声提示,参数1:频率 ,参数2:时间(毫秒)
Call Plugin.Media.Beep(200, 1000)
获取句柄
Hwnd =Plugin.Window.Find ("Qt5QWindowIcon","夜神模拟器")
句柄窗口前置,Hwnd为句柄参数
Plugin.Window.Show Hwnd
移动句柄窗口,Hwnd为句柄参数
Plugin.Window.Move Hwnd, 0, 0
区域找图(实际制作脚本时推荐使用多点找色)
参数1-4:区域坐标(左上,右下XY),
参数5:图片路径,
参数6精确度(0.1-1,精确逐渐增高,一般0.9为好,自行调节)
参数7-8,返回的XY坐标
FindPic 611,736,989,859,"D:\images\进入游戏.bmp",0.9,intX,intY
If intX > 0 And intY > 0 Then
MoveTo intX, intY
Delay 1000
LeftClick 1
TracePrint "进入游戏成功"
Else
TracePrint "没找到进入游戏,重新再找"
Goto 进入游戏
End If
鼠标移动
MoveTo 800, 800
鼠标左键点击
LeftClick 1
鼠标左键压下
LeftDown 1
鼠标左键抬起
LeftUp 1
鼠标拖动屏幕使用单纯的压下抬起是无效的,要使用平滑移动
//鼠标移动至起始位置,然后左键下压
MoveTo 900, 500
LeftDown 1
Call 平滑移动鼠标to(450, 350, 1000, 900, 500,10)
LeftUp 1
Function 平滑移动鼠标to(终点坐标px,终点坐标py,移动时间,起点坐标beginx,起点坐标beginy,平滑灵敏度)
dim mx
dim x,y
dim tx,ty
x=起点坐标beginx
y=起点坐标beginy
tx=abs(x-终点坐标px)
ty=abs(y-终点坐标py)
if tx>=ty
mx=tx
else
mx=ty
end if
if mx>0
for i = 0 to mx step 平滑灵敏度
sx=int((终点坐标px*i+x*(mx-i))/mx)
sy=int((终点坐标py*i+y*(mx-i))/mx)
moveto sx,sy
delay int(移动时间/mx*平滑灵敏度)
Next
else
delay 移动时间
end if
MoveTo 终点坐标px, 终点坐标py
平滑移动鼠标to=true
End Function
定义函数
给函数名赋值表示函数返回值
Function 收矿
//业务代码
收矿=true //函数返回值
End Function