1. //当然,首先是获取窗口句柄,注意2种方式获得的句柄的区别:
  2. 调用插件命令 hwnd1=window.foreground()
  3. //上面这句获得的窗口句柄可以移动窗口,但是无法在窗口点击鼠标
  4. 调用插件命令 hwnds1=window.mousepoint()
  5. //现在用这句得到的句柄,可以在窗口内点击鼠标,但是无法移动这个窗口
  6. //所以,如果你需要移动窗口,使用的句柄应该是hwnd1,而点击使用的是hwnds1
  7. //当然,这2种方式取得的窗口,大小是一样的,所以坐标的计算就无所谓了
  8. //获得鼠标位置,并转换为窗口坐标
  9. 调用外部VBScript子程序 得到鼠标当前位置(xget,yget)
  10. 调用插件命令 clixy=BGKM5.ScrToCli(hwnds1,xget,yget)
  11. 调用外部VBScript子程序 得到鼠标当前位置(xget,yget)
  12. 调用外部VBScript子程序 得到鼠标当前位置(xget,yget)
  13. 调用外部VBScript子程序 得到鼠标当前位置(xget,yget)
  14. //脚本开始寻找精确的挖矿点
  15. 锁定鼠标位置
  16. 鼠标相对移动 60 , 0
  17. //锁定鼠标,并将鼠标移动开,防止矿锄的颜色、“挖矿”这样的字眼影响取色判断
  18. 调用插件命令 wkxy=BkgndColor.FindColor(hwnds1,x,y,x+4,y+32,"000000")
  19. //以鼠标最开始的点为左上角,在 4x32的范围内寻找黑色
  20. //这么做的目的是找到地块格子的第一个黑色点,所以要求打开地块显示
  21. wkxyarray=Split(wkxy,"|",-1,1)
  22. hsx=wkxyarray(0)
  23. hsy=wkxyarray(1)
  24. 标记 寻找挖矿点
  25. //在找到黑色的点之后,分别取这个点的左、右和左上的点的颜色
  26. //具体的相对坐标,见脚本中
  27. 调用插件命令 colorzuo=BkgndColor.GetPixelColor(hwnds1,hsx-4,hsy)
  28. 调用插件命令 coloryou=BkgndColor.GetPixelColor(hwnds1,hsx+4,hsy)
  29. 调用插件命令 colorzuoshang=BkgndColor.GetPixelColor(hwnds1,hsx-4,hsy-2)
  30. //这个目的是为了找到当前格子最下面的2个黑色点
  31. //如果你截图放大会很清楚的看到格子的边框是由黑色的点组成
  32. 如果表达式 (colorzuo=0) 为真,则
  33.     xwk=hsx-2
  34.     ywk=hsy
  35.     跳转到标记 找到
  36. 条件结束
  37. 如果表达式 (coloryou=0) 为真,则
  38.     xwk=hsx+2
  39.     ywk=hsy
  40.     跳转到标记 找到
  41. 条件结束
  42. //无论左边的点还是右边的点是黑色,都证明已经找到格子的最下方
  43. //把准确的挖矿点的坐标(xwk,ywk)定义好,跳出判断
  44. //在左边和右边都不是黑色的情况下,说明不是格子最下方
  45. //此时左上角的点或者右上角的点必定为黑色
  46. //如果左上角的点是黑色,说明此点偏左上,将此点的坐标向右下移动,继续判断
  47. //如果左上角不是黑色,那么必然是右上角是黑色,此点坐标向左下移动
  48. 如果表达式 (colorzuoshang=0) 为真,则
  49.     延时10毫秒
  50.     hsx=hsx+4
  51.     hsy=hsy+2
  52.     跳转到标记 寻找挖矿点
  53. 否则
  54.     hsx=hsx-4
  55.     hsy=hsy+2
  56.     跳转到标记 寻找挖矿点
  57. 条件结束
  58. //设置这个标记的目的是用来释放鼠标
  59. //其中鼠标相对移动回原来的位置可要可不要,因为是后台
  60. 标记 找到
  61. 鼠标相对移动 -60 , 0
  62. 解除鼠标锁定
  63. 标记 开始挖矿
  64. 调用子程序 体力
  65. //选择矿锄(F1)
  66. 调用插件命令 BGKM5.KeyClick(hwnds1,112)
  67. 延时100毫秒
  68. //挖矿
  69. 调用插件命令 BGKM5.MMove(hwnds1,xwk,ywk)
  70. 调用插件命令 BGKM5.LClick(hwnds1,xwk,ywk)
  71. //延迟时间可自己修改,或用自定义变量在最开始设置
  72. 延时6800毫秒
  73. //以下4次点击,是在格子的4个角各点击一次拿矿
  74. //经过测试,包括男女普通角色、男女豆丁都没问题
  75. 调用插件命令 BGKM5.MMove(hwnds1,xwk,ywk)
  76. 调用插件命令 BGKM5.LClick(hwnds1,xwk,ywk)
  77. 延时80毫秒
  78. 调用插件命令 BGKM5.MMove(hwnds1,xwk,ywk-30)
  79. 调用插件命令 BGKM5.LClick(hwnds1,xwk,ywk-30)
  80. 延时80毫秒
  81. 调用插件命令 BGKM5.MMove(hwnds1,xwk+15,ywk-20)
  82. 调用插件命令 BGKM5.LClick(hwnds1,xwk+15,ywk-20)
  83. 延时80毫秒
  84. 调用插件命令 BGKM5.MMove(hwnds1,xwk-15,ywk-20)
  85. 调用插件命令 BGKM5.lClick(hwnds1,xwk-15,ywk-20)
  86. 延时80毫秒
  87. //切换一次食物,玩庄园的都知道,是为了防止连续挖矿造成人物抽动
  88. 调用插件命令 BGKM5.KeyClick(hwnds1,113)
  89. 延时200毫秒
  90. 跳转到标记 开始挖矿
  91. //体力补充
  92. 子程序 体力
  93.     调用插件命令 color7=BkgndColor.GetPixelColor(hwnds1,90,62)
  94.     //对血条取色90,60大概是10%体力的位置,可以自己修改
  95.     //如果颜色为黑,吃血
  96.     如果表达式 (color7=2106400) 为真,则
  97.         //选择食物(F2)
  98.         调用插件命令 BGKM5.KeyDown(hwnds1,113)
  99.         调用插件命令 BGKM5.KeyUp(hwnds1,113)
  100.         延时200毫秒