Advertisement
Guest User

Untitled

a guest
Apr 27th, 2017
73
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.99 KB | None | 0 0
  1. #NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
  2. ; #Warn ; Enable warnings to assist with detecting common errors.
  3. SendMode Input ; Recommended for new scripts due to its superior speed and reliability.
  4. SetWorkingDir %A_ScriptDir% ; Ensures a consistent starting directory.
  5. #Persistent
  6. SetDefaultMouseSpeed, 5
  7. SetBatchLines, 20ms
  8. CoordMode, Pixel, Client
  9. CoordMode, Mouse, Client
  10.  
  11. global Mainstat1 := [2140, 446, 0] ; -1 = infinite points
  12. global Vitality1 := [2140, 570, -1]
  13. global Movement1 := [2140, 690, 50]
  14. global Ressource1 := [2140, 815, 0]
  15.  
  16. global Mainstat2 := [2140, 446, -1]
  17. global Vitality2 := [2140, 570, 0]
  18. global Movement2 := [2140, 690, 0]
  19. global Ressource2 := [2140, 815, 0]
  20.  
  21. global ParagonMenu := [2323, 1138, 0x000000]
  22. global ParagonReset := [1720, 980]
  23. global ParagonAccept := [1550, 1090]
  24. global ParagonCore := [1250, 140]
  25.  
  26. global firstrun := true
  27. global isFullScreen
  28. global DiabloWidth
  29. global DiabloHeight
  30.  
  31.  
  32. If (firstrun = true)
  33. {
  34. isFullScreen := isWindowFullScreen( "Diablo III" )
  35. ConvertCoordinates(Mainstat1)
  36. ConvertCoordinates(Mainstat2)
  37. ConvertCoordinates(Vitality1)
  38. ConvertCoordinates(Vitality2)
  39. ConvertCoordinates(Ressource1)
  40. ConvertCoordinates(Ressource2)
  41. ConvertCoordinates(Movement1)
  42. ConvertCoordinates(Movement2)
  43. ConvertCoordinates(ParagonMenu)
  44. ConvertCoordinates(ParagonReset)
  45. ConvertCoordinates(ParagonAccept)
  46. ConvertCoordinates(ParagonCore)
  47. firstrun := false
  48. }
  49.  
  50. ^1::
  51. WinActivate, Diablo III
  52. WinWaitActive, Diablo III
  53. Send, {p}
  54. MouseGetPos x, y
  55. First:
  56. PixelGetColor, ParagonMenuOpen, ParagonMenu[1], ParagonMenu[2]
  57. If (ParagonMenuOpen = ParagonMenu[3])
  58. {
  59. MouseClick, Left, ParagonCore[1], ParagonCore[2]
  60. MouseClick, Left, ParagonReset[1], ParagonReset[2]
  61. Sleep, 150
  62. If (Movement1[3] != 0)
  63. MouseClick, Left, Movement1[1], Movement1[2], Movement1[3]
  64. If (Ressource1[3] != 0)
  65. MouseClick, Left, Ressource1[1], Ressource1[2], Ressource1[3]
  66. If (Vitality1[3] != 0)
  67. If (Vitality1[3] = -1)
  68. {
  69. Vitality1:
  70. Send, {Shift down}
  71. MouseClick, Left, Vitality1[1], Vitality1[2], 100
  72. Send, {Shift up}
  73. PixelSearch, , , Vitality1[1], Vitality1[2], Vitality1[1], Vitality1[2], 0x4AABE4, 5
  74. If (ErrorLevel = 0)
  75. GoTo, Vitality1
  76. }
  77. Else
  78. {
  79. MouseClick, Left, Vitality1[1], Vitality1[2], Vitality1[3]
  80. }
  81. If (Mainstat1[3] != 0)
  82. If (Mainstat1[3] = -1)
  83. {
  84. Mainstat1:
  85. Send, {Shift down}
  86. MouseClick, Left, Mainstat1[1], Mainstat1[2], 100
  87. Send, {Shift up}
  88. PixelSearch, , , Mainstat1[1], Mainstat1[2], Mainstat1[1], Mainstat1[2], 0x4AABE4, 5
  89. If (ErrorLevel = 0)
  90. GoTo, Mainstat1
  91. }
  92. Else
  93. {
  94. MouseClick, Left, Mainstat1[1], Mainstat1[2], Mainstat1[3]
  95. }
  96. MouseClick, Left, ParagonAccept[1], ParagonAccept[2]
  97. }
  98. Else
  99. GoTo, First
  100. Send, {Space}
  101. MouseMove %x%, %y%
  102. KeyWait Control
  103. Return
  104.  
  105. ^2::
  106. WinActivate, Diablo III
  107. WinWaitActive, Diablo III
  108. Send, {p}
  109. MouseGetPos x, y
  110. Second:
  111. PixelGetColor, ParagonMenuOpen, ParagonMenu[1], ParagonMenu[2]
  112. If (ParagonMenuOpen = ParagonMenu[3])
  113. {
  114. MouseClick, Left, ParagonCore[1], ParagonCore[2]
  115. MouseClick, Left, ParagonReset[1], ParagonReset[2]
  116. Sleep, 150
  117. If (Movement2[3] != 0)
  118. MouseClick, Left, Movement2[1], Movement2[2], Movement2[3]
  119. If (Ressource2[3] != 0)
  120. MouseClick, Left, Ressource2[1], Ressource2[2], Ressource2[3]
  121. If (Vitality2[3] != 0)
  122. If (Vitality2[3] = -1)
  123. {
  124. Vitality2:
  125. Send, {Shift down}
  126. MouseClick, Left, Vitality2[1], Vitality2[2], 100
  127. Send, {Shift up}
  128. PixelSearch, , , Vitality2[1], Vitality2[2], Vitality2[1], Vitality2[2], 0x4AABE4, 5
  129. If (ErrorLevel = 0)
  130. GoTo, Vitality2
  131. }
  132. Else
  133. {
  134. MouseClick, Left, Vitality2[1], Vitality2[2], Vitality2[3]
  135. }
  136. If (Mainstat2[3] != 0)
  137. If (Mainstat2[3] = -1)
  138. {
  139. Mainstat2:
  140. Send, {Shift down}
  141. MouseClick, Left, Mainstat2[1], Mainstat2[2], 100
  142. Send, {Shift up}
  143. PixelSearch, , , Mainstat2[1], Mainstat2[2], Mainstat2[1], Mainstat2[2], 0x4AABE4, 5
  144. If (ErrorLevel = 0)
  145. GoTo, Mainstat2
  146. }
  147. Else
  148. {
  149. MouseClick, Left, Mainstat2[1], Mainstat2[2], Mainstat2[3]
  150. }
  151. MouseClick, Left, ParagonAccept[1], ParagonAccept[2]
  152. }
  153. Else
  154. GoTo, Second
  155. Send, {Space}
  156. MouseMove %x%, %y%
  157. KeyWait Control
  158. Return
  159.  
  160. ConvertCoordinates(ByRef Array)
  161. {
  162. WinGetPos, , , DiabloWidth, DiabloHeight, Diablo III
  163. If (isFullScreen = false)
  164. {
  165. DiabloWidth := DiabloWidth-16
  166. DiabloHeight := DiabloHeight-39
  167. }
  168. Array[1] := Round(Array[1]*DiabloHeight/1440+(DiabloWidth-3440*DiabloHeight/1440)/2, 0)
  169. Array[2] := Round(Array[2]*(DiabloHeight/1440), 0)
  170. }
  171.  
  172. isWindowFullScreen( winTitle )
  173. {
  174. ;checks if the specified window is full screen
  175.  
  176. winID := WinExist( winTitle )
  177.  
  178. If ( !winID )
  179. Return false
  180.  
  181. WinGet style, Style, ahk_id %WinID%
  182. WinGetPos ,,,winW,winH, %winTitle%
  183. ; 0x800000 is WS_BORDER.
  184. ; 0x20000000 is WS_MINIMIZE.
  185. ; no border and not minimized
  186. Return ((style & 0x20800000) or winH < A_ScreenHeight or winW < A_ScreenWidth) ? false : true
  187. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement