PageRenderTime 48ms CodeModel.GetById 21ms RepoModel.GetById 0ms app.codeStats 0ms

/archive/CafeWorld.ahk

http://github.com/camerb/AHKs
AutoHotKey | 243 lines | 187 code | 47 blank | 9 comment | 38 complexity | 76ecda44f238098f9d16c15b5d43302f MD5 | raw file
  1. while true
  2. {
  3. WinWait, Café World on Facebook - Google Chrome,
  4. IfWinNotActive, Café World on Facebook - Google Chrome, , WinActivate, Café World on Facebook - Google Chrome,
  5. WinWaitActive, Café World on Facebook - Google Chrome,
  6. ImageSearch, outx, outy, 0, outy+1, 1000, 1000, *5 images\cafeworld\stove2.bmp
  7. if ErrorLevel
  8. outy:=0
  9. else
  10. MouseMove, outx, outy
  11. Sleep, 100
  12. if (ClickIfImageSearchOffsetExact("images\cafeworld\clickstove8.bmp", 0, 36)
  13. OR ClickIfImageSearchToolTip("images\cafeworld\clickstove7.bmp", outx, outy)
  14. OR ClickIfImageSearchToolTip("images\cafeworld\clickstove6.bmp", outx, outy)
  15. OR ClickIfImageSearchToolTip("images\cafeworld\clickstove1.bmp", outx, outy))
  16. InactivityCounter:=0
  17. else
  18. InactivityCounter++
  19. ClickIfImageSearch("images\cafeworld\SkipButton.bmp")
  20. ClickIfImageSearch("images\cafeworld\Checkmark.bmp")
  21. ImageSearch, XCoordinate, YCoordinate, 0, 0, 1000, 1000, *0 images\cafeworld\Cookbook.bmp
  22. if NOT ErrorLevel
  23. MakePurchaseFromCookbook("images\cafeworld\Cheeseburger.bmp")
  24. ClickIfImageSearch("images\cafeworld\CloseWindow.bmp")
  25. ; CloseCafeWorldPopups()
  26. if % InactivityCounter>20
  27. {
  28. debug("Cafe World Macro says: I can't find anything to do, I'll chill out for a couple minutes")
  29. ;exit
  30. InactivityCounter:=0
  31. Sleep, 1000*60*8
  32. }
  33. }
  34. MakePurchaseFromCookbook(FoodToPurchase="images\cafeworld\FruitSalad.bmp")
  35. {
  36. ;if we didn't find it, move back to the beginning
  37. Loop 20
  38. {
  39. Sleep 1000
  40. if ClickIfImageSearchDownRight(FoodToPurchase, "images\cafeworld\buy.bmp")
  41. return
  42. if NOT ClickIfImageSearch("images\cafeworld\LeftArrowActive.bmp")
  43. MoveToRandomSpotInWindow()
  44. if ClickIfImageSearch("images\cafeworld\LeftArrowInactive.bmp")
  45. break
  46. }
  47. ;page through to the end
  48. Loop 20
  49. {
  50. Sleep 1000
  51. if ClickIfImageSearchDownRight(FoodToPurchase, "images\cafeworld\buy.bmp")
  52. return
  53. if NOT ClickIfImageSearch("images\cafeworld\RightArrowActive.bmp")
  54. MoveToRandomSpotInWindow()
  55. if ClickIfImageSearch("images\cafeworld\RightArrowInactive.bmp")
  56. debug("error")
  57. }
  58. }
  59. ClickIfImageSearchNormal(filename, variation=50)
  60. {
  61. ImageSearch, XCoordinate, YCoordinate, 0, 0, A_ScreenWidth, A_ScreenHeight, *%variation% %filename%
  62. if NOT ErrorLevel
  63. MouseClick, left, XCoordinate, YCoordinate
  64. return NOT ErrorLevel
  65. }
  66. ClickIfImageSearchOffset(filename, OffsetX, OffsetY)
  67. {
  68. WinGetActiveStats, no, WidthOfWindow, HeightOfWindow, no, no
  69. Sleep 100
  70. ImageSearch, XCoordinate, YCoordinate, 0, 0, %WidthOfWindow%, %HeightOfWindow%, *50 %filename%
  71. if NOT ErrorLevel
  72. MouseClick, left, XCoordinate+OffsetX, YCoordinate+OffsetY
  73. return NOT ErrorLevel
  74. }
  75. ClickIfImageSearchOffsetExact(filename, OffsetX, OffsetY)
  76. {
  77. WinGetActiveStats, no, WidthOfWindow, HeightOfWindow, no, no
  78. Sleep 100
  79. ImageSearch, XCoordinate, YCoordinate, 0, 0, %WidthOfWindow%, %HeightOfWindow%, %filename%
  80. if NOT ErrorLevel
  81. MouseClick, left, XCoordinate+OffsetX, YCoordinate+OffsetY
  82. return NOT ErrorLevel
  83. }
  84. ;Designed to click on an image that is in several places on the screen
  85. ;but is uniquely identified by another image immediately up and to the left of it
  86. ClickIfImageSearchDownRight(IdentifierFilename, ImageToClickFilename)
  87. {
  88. WinGetActiveStats, no, WidthOfWindow, HeightOfWindow, no, no
  89. Sleep 100
  90. ImageSearch, XCoordinate, YCoordinate, 0, 0, %WidthOfWindow%, %HeightOfWindow%, *50 %IdentifierFilename%
  91. if ErrorLevel
  92. return false
  93. ImageSearch, XCoordinate, YCoordinate, XCoordinate+1, YCoordinate+1, %WidthOfWindow%, %HeightOfWindow%, *50 %ImageToClickFilename%
  94. if NOT ErrorLevel
  95. MouseClick, left, XCoordinate, YCoordinate
  96. return NOT ErrorLevel
  97. }
  98. ClickIfImageSearchToolTip(filename, altx=0, alty=0)
  99. {
  100. WinGetActiveStats, no, WidthOfWindow, HeightOfWindow, no, no
  101. Sleep 100
  102. ImageSearch, XCoordinate, YCoordinate, 0, YCoordinate+1, %WidthOfWindow%, %HeightOfWindow%, *50 %filename%
  103. if altx<>0
  104. XCoordinate:=altx
  105. if alty<>0
  106. YCoordinate:=alty
  107. if NOT ErrorLevel
  108. MouseClick, left, XCoordinate, YCoordinate
  109. return NOT ErrorLevel
  110. }
  111. ClickIfImageSearchMultiple(filename, down=1, right=1)
  112. {
  113. YCoordinate:=-1
  114. WinGetActiveStats, no, WidthOfWindow, HeightOfWindow, no, no
  115. Sleep 100
  116. while (counter < down)
  117. {
  118. ImageSearch, XCoordinate, YCoordinate, 0, YCoordinate+1, %WidthOfWindow%, %HeightOfWindow%, *50 %filename%
  119. counter++
  120. }
  121. counter:=0
  122. while (counter < right)
  123. {
  124. ImageSearch, XCoordinate, YCoordinate, XCoordinate+1, YCoordinate, %WidthOfWindow%, %HeightOfWindow%, *50 %filename%
  125. counter++
  126. }
  127. if NOT ErrorLevel
  128. MouseClick, left, XCoordinate, YCoordinate
  129. return NOT ErrorLevel
  130. }
  131. ClickIfImageSearch(filename, altx=0, alty=0, times=1)
  132. {
  133. YCoordinate:=-1
  134. WinGetActiveStats, no, WidthOfWindow, HeightOfWindow, no, no
  135. Sleep 100
  136. while (counter < times)
  137. {
  138. ImageSearch, XCoordinate, YCoordinate, 0, YCoordinate+1, %WidthOfWindow%, %HeightOfWindow%, *50 %filename%
  139. counter++
  140. }
  141. if altx<>0
  142. XCoordinate:=altx
  143. if alty<>0
  144. YCoordinate:=alty
  145. if NOT ErrorLevel
  146. MouseClick, left, XCoordinate, YCoordinate
  147. return NOT ErrorLevel
  148. }
  149. Remap(input, remap1, replace1, remap2=0, replace2=0, remap3=0, replace3=0, remap4=0, replace4=0, remap5=0, replace5=0, remap6=0, replace6=0)
  150. {
  151. if input=remap1
  152. return %replace1%
  153. if input=remap2
  154. return %replace2%
  155. if input=remap3
  156. return %replace3%
  157. if input=remap4
  158. return %replace4%
  159. if input=remap5
  160. return %replace5%
  161. if input=remap6
  162. return %replace6%
  163. return input
  164. }
  165. MoveToRandomSpotInWindow()
  166. {
  167. Random, xCoordinate, 0, A_ScreenWidth
  168. Random, yCoordinate, 0, A_ScreenHeight
  169. MouseMove, xCoordinate, yCoordinate
  170. }
  171. WeightedRandom(OddsOfa1, OddsOfa2, OddsOfa3=0, OddsOfa4=0, OddsOfa5=0)
  172. {
  173. Random, input, 1, 100
  174. ;debug(input)
  175. OddsOfa2+=OddsOfa1
  176. OddsOfa3+=OddsOfa2
  177. OddsOfa4+=OddsOfa3
  178. OddsOfa5+=OddsOfa4
  179. if % input<=OddsOfa1
  180. return 1
  181. if % input<=OddsOfa2
  182. return 2
  183. if % input<=OddsOfa3
  184. return 3
  185. if % input<=OddsOfa4
  186. return 4
  187. if % input<=OddsOfa5
  188. return 5
  189. return 6
  190. }
  191. Debug(text)
  192. {
  193. MsgBox, , , %text%, 1
  194. }
  195. ;Would like to include the functions that were moved to the general functions in WorksInProgress.ahk;but this would register duplicate hotkeys during a normal run
  196. ;#include WorksInProgress.ahk