Вы используете устаревший браузер. Этот и другие сайты могут отображаться в нем неправильно. Необходимо обновить браузер или попробовать использовать другой.
Цикл нажатия клавиш до появления определённого цвета
Да я понял...
Только задался вопросом 0x31F731 это тот самый цвет который нужен или нет.
У меня есть скрипт с пилота:
While_not 630 107 3276593 and 637 106 3276593 and 643 106 3276593 and 648 107 3276593
Send {F1}
Wait 700
End_while
630 107 кооринаты пикселя, а 3276593 цвет.
Этот скрипт работал.
Цвет перевел в хекс получаем 0x31FF31, а AutoIt Window Info выдал 0x31F731.
Вот и думаю какой же правильный...
Добавлено:
Сообщение автоматически объединено:
По твоему скрипту определил все таки, что цвет 0x31FF31/
Теперь ушёл в поиски координат.
Добавлено:
Сообщение автоматически объединено:
Твой скрипт по этому цвету выдал:
680 132 49/255/49(0x31FF31)
680 132 49/255/49(0x31FF31)
680 132 49/255/49(0x31FF31)
680 132 49/255/49(0x31FF31)
Почему только 4 одинаковых координаты выдает?
Ведь данный цвет присутствует во множестве точках прямоугольника 592, 123, 701, 161.
В нём так же присутствуют точки 650, 109 и 643, 109 и 636, 109 и 629, 109.
У PixelSearch в отличии от PixelGetColor есть ещё один важный параметр - допустимое отклонение. Я делаю цикл по этому параметру. Поэтому вначале скрипт находит совершенно левые точки, которые допустимы с больши отклонением, а в конце файла, точки которые ближе всего по цвету.
Давай так. ты удали полученный файл color.txt
Я скрипт сделал немного понятнее. Запусти его ещё раз.
Код:
#include <Color.au3>
#Include <Misc.au3>
HotKeySet("{F3}", "fixcolor")
Func fixcolor()
For $i=100 To 0 Step -1
$coord = PixelSearch( 592, 123, 701, 161, 0x31F731, $i)
If Not @error Then
$color = PixelGetColor($coord[0],$coord[1])
FileWriteLine($file, "отклонение цвета - " & $i & "; координаты " & $coord[0] & "," & $coord[1] & "; цвет " & _ColorGetRed($color) & "/" & _ColorGetGreen($color) & "/" & _ColorGetBlue($color))
EndIf
Next
EndFunc
$file = FileOpen("color.txt", 1)
While 1
Sleep(60000)
Wend
FileClose($file)
отклонение цвета - 7; координаты 652,132; цвет 49/255/49
отклонение цвета - 6; координаты 652,132; цвет 49/255/49
отклонение цвета - 5; координаты 652,132; цвет 49/255/49
отклонение цвета - 4; координаты 652,132; цвет 49/255/49
отклонение цвета - 3; координаты 652,132; цвет 49/255/49
отклонение цвета - 2; координаты 652,132; цвет 49/255/49
отклонение цвета - 1; координаты 652,132; цвет 49/255/49
отклонение цвета - 0; координаты 652,132; цвет 49/255/49
Это цвет,который требуется найти, только есть одно но.
Координаты одинаковые...
Да, одинаковые, потому что точка та же самая.
В цикле уменьшается смещение по цвету, а не изменяется координата.
Вот ты нашел точку и цвет. То есть в твоём боте будет стоять
Код:
Func proverka()
Pixelsearch(652,132, 652,132, 0x31FF31)
if not @error then $trigger = 0
EndFunc
Если ты хочешь найти вторую точку для проверки, то тебе надо изменить область поиска
x1,y1 - x2,y2
Но фишка в том, что область поиска достаточно большая и там не только 1 точка данного цвета.
Вот скрин с примером выполненном на пилоте.
Требуется цикл нажатия F1 до момента пока не вылезут вот такие вопросы.
Остальные же пропускать.
Они высвечиваются тем же цветом, но в других пикселах.
Я брал на проверку область вокруг данных вопросов.
Требуется, чтобы были вот такие вопросы.
Остальные же умения должны прощелкиваться кнопой.
Пример умения:
Есть умения, которые не высвечиваются наверху.
Ну тогда ищи пиксели, которые в ? ? ? ? есть, а в остальных сообщениях отсутствуют.
Для прикола. А такое ты видел?
Код:
; Wait until something changes in the region 0,0 to 50,50
; Get initial checksum
$checksum = PixelChecksum(0,0, 50,50)
; Wait for the region to change, the region is checked every 100ms to reduce CPU load
While $checksum = PixelChecksum(0,0, 50, 50)
Sleep(100)
WEnd
MsgBox(0, "", "Something in the region has changed!")
Как ничего полезного?
Сканируешь и считаешь PixelChecksum картинки с ? ? ? ?,
а потом регулярно сканишь ту же область и если PixelChecksum изменилась, то большой привет!