使用版本:2014.06:19549

python写梦幻西游脚本教程 梦幻游戏脚本制作教程_按键事件

图1 4399一步两步

1 脚本前准备

一步两步在h5页面中的目标是通过点击1步/2步,避免掉下去的情况下得到高分,另外能吃到硬币有额外加分,那么如何用鼠标控制的脚本逻辑来实现呢?在开始游戏期间,能操作的只有前进步数选择,只要前方1格出现平台,那就跳1步,否则2步。然后根据游戏节奏,越后面平台的掉落间隔时间越短,直到达到设定下限。所以设置游戏时,除了点击前进步数,还要合理设置间隔时间。那我们第一步要做的则是得到前方平台的位置和图形。


python写梦幻西游脚本教程 梦幻游戏脚本制作教程_按键事件_02

图2 我的游戏界面

我电脑的游戏界面如图2所示,通过使用画图软件,知道了前方1步平台(图中红框的)的左上坐标和右下坐标,方便之后用按键找图用。接着,在按键用抓图功能把图中红框(大概范围)的图片截取下来并保存为"platform.bmp",然后在附件中添加该图片。

2 脚本逻辑

为了让读者更明白脚本逻辑,特地制作了一份流程图来告知本节内容。

 


python写梦幻西游脚本教程 梦幻游戏脚本制作教程_python写梦幻西游脚本教程_03

图3 逻辑流程图

首先要做的是定义脚本变量,分别有点击1步的坐标,点击2步的坐标,查找的平台区域,然后就可以开始游戏了

Dim oneStep, twoStep, LandSpace
oneStep = Array(301, 681)
twoStep = Array(1200, 681)
LandSpace = Array(500, 600, 700, 750) //参考图2

Call StartGame

开始游戏最好是在游戏初始界面中,由脚本点击开始游戏。这时只要鼠标移到开始游戏处左键单击1下即可,然后开始进入GameStatus大循环

Sub StartGame
    MoveTo 436, 791 // 坐标指向开始游戏
    LeftClick 1
    Delay 1000
    Call GameStatus
End Sub

循环时,根据图3流程,先进行结束判断(或放在走步后),然后检查前方是否有平台(CheckStep)并进行跳跃

Sub GameStatus
    Dim Alive, minD, defD, decD
    defD = 800 //默认延迟
    decD = 1 //每次延迟减少量
    minD = 500 //最小延迟
    Alive = True //游戏未结束标志
    While Alive //如果游戏未结束
        Call CheckStep //检查前方是否有平台并跳跃
    	Delay defD
    	If StrComp(GetPixelColor(749, 457), "2DC0FB") <> 0 Then
            //判断游戏结束,检查(749, 457)像素点颜色(可找平台绿点)
            Alive = False
        Else 
            If defD >= minD + decD Then //未达到下限时减小延迟
                defD = defD - decD
            End If
	End If
    Wend
    //拓展:这里可以设置再玩一次
End Sub

Sub CheckStep
    FindPic LandSpace(0), LandSpace(1), LandSpace(2), LandSpace(3), "Attachment:\platform.bmp", 0.4, rx, ry
    If rx > 0 Then 
        Call Click(1)
    Else 
        Call Click(2)
    End If
End Sub

Sub Click(s)
    If s = 1 Then 
        MoveTo oneStep(0), oneStep(1)
    Else 
        MoveTo twoStep(0), twoStep(1)
    End If
    LeftClick 1
End Sub

该教程适合初入按键精灵脚本制作的网友,简单易入门,完成后可以尝试挂着试试,如果只能进行2000分左右,表示delay出现问题或电脑配置问题。最后,本文只适用于单台电脑,没有拓展性,也不可用于商业用途,仅供学习,源码都在文中,只有跟着操作了。