- 跳转到标记 end
- 条件结束
- 跳转到标记 寻找敌人
- //程序结束
- 标记 end
- //计算挂机时间和播报战果
- howlong=datediff("n",timestart,now)
- 调用外部VBScript子程序 messagebox("请将鼠标放在游戏窗口内启动脚本。")
- 脚本停止运行
- //
- //
- //战斗子程序
- 子程序 战斗
- //点击怪物
- 调用插件命令 Bkgnd.MoveTo(hw,xanimy,yanimy)
- 延时50毫秒
- 调用插件命令 Bkgnd.LeftClick(hw,xanimy,yanimy)
- 延时50毫秒
- 调用插件命令 Bkgnd.MoveTo(hw,xwinsize/2,ywinsize/2)
- //
- time1=now
- //怪物血条出现表示攻击真正开始
- 标记 等待怪物血条出现
- 调用插件命令 color1=BkgndColor.GetPixelColor(hw,xbar,ybar)
- 如果表达式 (color1<>clng("&H" & colorbar)) 为真,则
- 如果表达式 (datediff("s",time1,now)<3) 为真,则
- //有时候怪物血条可能出现滞后,因此这里也增加检查血量的工作保证安全
- 调用子程序 检查血量
- 延时20毫秒
- 跳转到标记 等待怪物血条出现
- 否则
- //如果点击怪物以后超过5秒还不出现怪物血条,说明有可能点空了,则退出战斗重新找怪
- 跳转到标记 战斗结束
- 条件结束
- 条件结束
- //打怪数量加1
- killanimy=killanimy+1
- 标记 等待战斗结束
- //战斗中随时检查血量,小于设定值立刻补血
- 调用子程序 检查血量
- //怪物血条消失才表示战斗结束,否则继续等待
- 调用插件命令 color1=BkgndColor.GetPixelColor(hw,xbar,ybar)
- 如果表达式 (color1=clng("&H" & colorbar)) 为真,则
- 延时20毫秒
- 跳转到标记 等待战斗结束
- 条件结束
- killanimy=killanimy+1
- 延时500毫秒
- 标记 战斗结束
- //战斗结束了还需要检查一下血量,因为有可能怪物死前最后一击导致已经很少血,下次攻击开使的时候可能来不及加
- 调用子程序 检查血量
- 子程序结束,回到调用处
- //
- 子程序 检查血量
- 调用插件命令 color1=BkgndColor.GetPixelColor(hw,xred,yred)
- 如果表达式 (color1<>clng("&H" & colorred)) 为真,则
- 按键<1>
- //如果喝血,血瓶数量减1
- redbt=redbt-1
- 延时500毫秒
- 条件结束
- 子程序结束,回到调用处
- //
- 子程序 人物移动
- //人物移动可采用随机方式,当然也有各种方法可以实现智能一点的移动方式,节省时间,但智能化较复杂,此处省略
- //为了获得最大的移动距离,此处可取游戏屏幕的四个角点为随机移动点,随机坐标可用如下公式获得
- randomize
- //获得0-3的随机数
- randpoint=cint(rnd*3)
- //巧妙的利用游戏窗口的尺寸参数和两个函数来得到移动距离最长的随机点
- xmove=xwinsize*(randpoint\2)
- ymove=ywinsize*(randpoint mod 2)
- //上面的公式的效果是,随机数0的时候左上角点,随机数1的时候左下角点,随机数2的时候右上角点,随机数3的时候右下角点
- 调用插件命令 Bkgnd.MoveTo(hw,xmove,ymove)
- 延时100毫秒
- 调用插件命令 Bkgnd.LeftClick(hw,xmove,ymove)
- 延时1000毫秒
- 调用插件命令 Bkgnd.MoveTo(hw,xwinsize/2,ywinsize/2)
- 延时2000毫秒
- 子程序结束,回到调用处