分享一下疫情期间自己玩游戏时用按键精灵制作脚本常用的关键字,函数和设计方式。

版本:按键精灵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
Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐