• 按键公众号 :
按键精灵电脑版
立即下载

软件版本:2014.06
软件大小:22.9M
更新时间:2021-12-03

按键精灵安卓版
立即下载

软件版本:3.7.2
软件大小:46.2M
更新时间:2023-05-10

按键精灵iOS版
立即下载

软件版本:1.8.0
软件大小:29.2M
更新时间:2023-03-21

按键手机助手
立即下载

软件版本:3.8.0
软件大小:262M
更新时间:2023-05-30

快捷导航

登录 后使用快捷导航
没有帐号? 注册

发新话题 回复该主题

【官方】高级教程——自动打怪实战脚本(2D网游篇)上 [复制链接]

1#
自动打怪实战脚本系列第三弹!2D游戏依然主流网游市场之一,这个教程突破了以往的找怪思路,适用于各种2D甚至2.5D的游戏,如《剑侠世界》、《大明龙权》等等

如无法观看,请点击下载:按键精灵视频教程全集



视频版本:
http://www.aipai.com/c9/ODY9JSkgKmgnai8v.html






-------------------------应网友的要求,这里解说一下怎么计算“实际游戏与小地图的比例”---------------------------







计算出比例:263/17=15.47,所以比例大概是16:1或者15:1这样。
由于存在一些像素偏差,真正精确的比例需要结合脚本效果来测试;如果脚本运行过程中发现有时候点不到怪,就把比例适当调大或者调小一点。

对视频中的计算公式比较疑惑的,也可以不用考虑当中的运算过程,只要直接代公式即可。


----------------------------------------------------------------------------------------------------------------


源代码:
  1. Hwnd = Plugin.Window.Find(0, "剑侠世界")
  2. sRect = Plugin.Window.GetClientRect(Hwnd)
  3. Dim MyArray
  4. MyArray=Split(Rect,"|")
  5. Ux = Clng(MyArray(0))
  6. Uy = Clng(MyArray(1))

  7. Rem 战斗开始
  8. Call 吃药()


  9. KeyPress "Space", 1
  10. Delay 50
  11. KeyPress "Space", 1
  12. Delay 50
  13. KeyPress "Space", 1
  14. Delay 50

  15. Rem 出界判定


  16. Cx = 662 + Ux
  17. Cy = 44 + Uy
  18. Call 坐标读取()
  19. Zx = group
  20. Cx = 686 + Ux
  21. Call 坐标读取()
  22. Zy = group


  23. If Zx > 201 Then
  24. MoveTo 30 + Ux, 300 + Uy
  25. Delay 50
  26. LeftClick 1
  27. Delay 2000
  28. End If


  29. If Zx < 198 Then
  30. MoveTo 770 + Ux, 300 + Uy
  31. Delay 50
  32. LeftClick 1
  33. Delay 2000
  34. End If


  35. If Zy > 232 Then
  36. MoveTo 400 + Ux, 100 + Uy
  37. Delay 50
  38. LeftClick 1
  39. Delay 2000
  40. End If



  41. If Zy < 231 Then
  42. MoveTo 400 + Ux, 500 + Uy
  43. Delay 50
  44. LeftClick 1
  45. Delay 2000
  46. End If


  47. If Zx > 197 And Zx < 202 And Zy > 230 And Zy < 233 Then
  48. Delay 50
  49. Else
  50. Goto 出界判定

  51. End If


  52. FindColor 706+Ux,86+Uy,738+Ux,102+Uy,"FF59D6",intX,intY
  53. If intX > 0 And intY > 0 Then

  54. Qx=(intX-Ux-724)*16+374+Ux
  55. Qy=(intY-Uy-94)*16+290+Uy

  56. MoveTo Qx, Qy

  57. Delay 50
  58. LeftClick 1

  59. a = 0


  60. Rem 战斗中
  61. Call 吃药()


  62. Delay 1000

  63. a = a + 1
  64. If a > 10 Then
  65. Goto 战斗开始

  66. End If


  67. IfColor 97,110,"B5B6B5",0 Then

  68. Goto 战斗中

  69. End If

  70. Else

  71. Call 寻怪()
  72. End If
  73. Delay 50
  74. Goto 战斗开始
  75. Sub 寻怪()
  76. Randomize

  77. //获得0-3的随机数
  78. n = Int(rnd * 4)

  79. If n = 0 Then
  80. MoveTo 208+Ux, 140+Uy
  81. Delay 50
  82. LeftClick 1
  83. End If


  84. If n = 1 Then
  85. MoveTo 559+Ux, 128+Uy
  86. Delay 50
  87. LeftClick 1
  88. End If


  89. If n = 2 Then
  90. MoveTo 559+Ux, 426+Uy
  91. Delay 50
  92. LeftClick 1
  93. End If


  94. If n = 3 Then
  95. MoveTo 227+Ux, 428+Uy
  96. Delay 50
  97. LeftClick 1
  98. End If

  99. Delay 1800


  100. End Sub

  101. Sub 坐标读取()


  102. group=""
  103. For 3
  104. code=""
  105. y=Cy
  106. For 8
  107. x=Cx
  108. For 5
  109. color=GetPixelColor(x,y)
  110. If color="00FF00"
  111. i="1"
  112. Else
  113. i="0"
  114. End If
  115. code=code & i
  116. x=x+1
  117. Next
  118. y=y+1
  119. Next
  120. NO0="0111010001100011000110001100011000101110"
  121. NO1="0010001100001000010000100001000010001110"
  122. NO2="0111010001100010001000100010001000011111"
  123. NO3="0111010001000010011000001000011000101110"
  124. NO4="0001000110010100101010010011110001000011"
  125. NO5="1111110000100001111000001000011000101110"
  126. NO6="0111010010100001111010001100011000101110"
  127. NO7="1111110010000100010000100001000010000100"
  128. NO8="0111010001100010111010001100011000101110"
  129. NO9="0111010001100011000101111000010100101110"
  130. If code=NO0
  131. number="0"
  132. ElseIf code=NO1
  133. number="1"
  134. ElseIf code=NO2
  135. number="2"
  136. ElseIf code=NO3
  137. number="3"
  138. ElseIf code=NO4
  139. number="4"
  140. ElseIf code=NO5
  141. number="5"
  142. ElseIf code=NO6
  143. number="6"
  144. ElseIf code=NO7
  145. number="7"
  146. ElseIf code=NO8
  147. number="8"
  148. ElseIf code=NO9
  149. number="9"
  150. Else
  151. number="?"
  152. End If
  153. Cx=Cx+6
  154. group=group & number
  155. Next


  156. End Sub

  157. Sub 吃药()
  158. IfColor 312+Ux,20+Uy,"AD",1 Then
  159. KeyPress "1", 1
  160. Delay 50
  161. End If
  162. End Sub
复制代码

2#

11111111111111

3#

支持一下

4#

夜深了还在学

5#

rdgdg

6#

rfrffffffffff

7#

99999999999999999999

8#

回复 4楼leidazhang的帖子

我也是撒 准备学习到半夜3点

9#

回复 5楼1356641030的帖子

支持一下

10#

回复 7楼lengxueming的帖子

赞赞攒 大力支持

11#

回复 4楼leidazhang的帖子

刚刚接触到好兴奋,,顺着这股劲 一起拿下

12#

请问设置初始点后为什么坐标要加UxUy?

13#

看看看看都起开2

14#

回复 12楼韩泽民的帖子

你前面都没学会,就跑后面来了啊- -

15#

你好这两张截图 上边的字被挡住了 具体使用什么工具或者那个功能测量出来的263 实在是太难了 真没看懂

16#

你好 374是怎么来的啊

17#

俗话说,三人行必有我师焉 小白的加个qq 5997377168 一起探讨

18#

学习了 真不错

19#

教程代码不带注释是耍流氓。

20#

第4行代码少个s,应该是
MyArray=Split(sRect,"|")

发新话题 回复该主题