cillme
23-12-2012, 20:10
Собственно говоря идея состоит в автоматизации рутинной работы в онлайн игре. Программа пишется чисто ради любопытства и "жалких" попыток освоения программы AutoIt.
Итого у нас имеется:
4 кнопки передвижения, имеющих определенный цвет, который отслеживается программой и нажимается в рандомном порядке. - Назовем их кнопки B
1 кнопка того же цвета, имеющая более высокий приоритет , нежели предыдущие 4. (появляется рандомно) - назовем ее кнопка A
Пытался самостоятельно состряпать код, читая темки и вот, что вышло:
HotKeySet("{ESC}", "Terminate")
; Цвета, которые мы ищем
Dim $aArray[4]
$aArray[0]=0xFFF9CA
While 1
For $element In $aArray
$coord = PixelSearch( 282, 411, 294, 424, $element ) ; Кнопка с наивысшим приоритетом
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
;Следующие кнопки должны нажиматься рандомно.
While 2
For $element In $aArray
$coord = PixelSearch( 513, 161, 526, 174, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
While 3
For $element In $aArray
$coord = PixelSearch( 488, 184, 502, 196, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
While 4
For $element In $aArray
$coord = PixelSearch( 535, 184, 550, 196, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
While 5
For $element In $aArray
$coord = PixelSearch( 513, 208, 525, 221, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
next
WEnd
Func Terminate()
Exit 0
EndFunc
В итоге:
Если кнопка A есть:
Программа нажимает на кнопку и цикл останавливается.
Если кнопки A нет:
Программа не нажимает на кнопки B
Итого у нас имеется:
4 кнопки передвижения, имеющих определенный цвет, который отслеживается программой и нажимается в рандомном порядке. - Назовем их кнопки B
1 кнопка того же цвета, имеющая более высокий приоритет , нежели предыдущие 4. (появляется рандомно) - назовем ее кнопка A
Пытался самостоятельно состряпать код, читая темки и вот, что вышло:
HotKeySet("{ESC}", "Terminate")
; Цвета, которые мы ищем
Dim $aArray[4]
$aArray[0]=0xFFF9CA
While 1
For $element In $aArray
$coord = PixelSearch( 282, 411, 294, 424, $element ) ; Кнопка с наивысшим приоритетом
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
;Следующие кнопки должны нажиматься рандомно.
While 2
For $element In $aArray
$coord = PixelSearch( 513, 161, 526, 174, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
While 3
For $element In $aArray
$coord = PixelSearch( 488, 184, 502, 196, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
While 4
For $element In $aArray
$coord = PixelSearch( 535, 184, 550, 196, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
Next
WEnd
While 5
For $element In $aArray
$coord = PixelSearch( 513, 208, 525, 221, $element )
If Not @error Then
MouseClick("Left", $coord[0] , $coord[1])
EndIf
next
WEnd
Func Terminate()
Exit 0
EndFunc
В итоге:
Если кнопка A есть:
Программа нажимает на кнопку и цикл останавливается.
Если кнопки A нет:
Программа не нажимает на кнопки B