Что нового

[Мышь, клавиатура] После нахождения пикселя скрипт останавливался

NeweR

Новичок
Сообщения
6
Репутация
0
Честно облазил тему про ботов. :'(
Нужно:в браузере
send ("d") потом проверка пикселя (586,549,0xEEE8BE) если нет то ещё раз send ("d") и опять проверку так раза 3
затем если пиксель не появился сделать тоже самое с send ("a")
При появление нужного пикселя стопор скрипта

что то на подобие
PixelSearch(586,549,0xEEE8BE)
if not @error then
send ("d")
PixelSearch(586,549,0xEEE8BE)
if not @error then
send ("d")
PixelSearch(586,549,0xEEE8BE)
if not @error then
send ("d")
PixelSearch(586,549,0xEEE8BE)
if not @error then
send ("a")
PixelSearch(586,549,0xEEE8BE)
if not @error then
send ("a")
PixelSearch(586,549,0xEEE8BE)
if not @error then
send ("a")
endif
 

firex

AutoIT Гуру
Сообщения
943
Репутация
207
В каком смысле стопор? Что делать если и три нажатия "a" ничего не дали?
Код:
While 1
	For $Idx = 1 To 6 Step 1
		PixelSearch( 586, 549, 0xEEE8BE )
		If Not @Error Then
			If $Idx > 3 Then
				Send( "d" )
			Else
				Send( "a" )
			EndIf
			ExitLoop 2 ;Твой ступор
		EndIf
		Sleep( ? )
	Next
	Sleep( ? )
WEnd
 
Автор
N

NeweR

Новичок
Сообщения
6
Репутация
0
Send( "a" ) проверка, Send( "a" ) проверка, Send( "a" ) проверка, Send( "b" ) проверка,Send( "b" ) проверка,Send( "b" ) проверка; (Повтор действий; При обноружение пикселя стоп скрипта).
чёт не фурычит :'(
:thumbs_up: Спасибо.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
207
NeweR [?]
Send( "a" ) проверка, Send( "a" ) проверка, Send( "a" ) проверка, Send( "b" ) проверка,Send( "b" ) проверка,Send( "b" ) проверка; (Повтор действий; При обноружение пикселя стоп скрипта).
Обновил пост.
 
Автор
N

NeweR

Новичок
Сообщения
6
Репутация
0
Слипы подправил пока на 200 чтобы скрипт запустился. Дальше он ругнулся на поиск пикселя сделал PixelSearch(586, 549,586, 549, 0xEEE8BE )
Вот только на этом и всё... ничего не происходит, клавиши не отсылает.
 

firex

AutoIT Гуру
Сообщения
943
Репутация
207
NeweR
Ну я попросту скопировал ваш поиск пикселя, координаты видимо указаны не верно. Используйте AutoIt Window Info и главное читайте справку по функции PixelSearch.
6InsD.png
 
Автор
N

NeweR

Новичок
Сообщения
6
Репутация
0
тут не в пикселе дело, он просто не жмёт (а) и (d), Вручную довожу до появления пикселя скрипт делает exit как я понял
через инфо
>>>> Mouse <<<<
Position: 663, 523
Cursor ID: 0
Color: 0xFF9429
в боте попробовал PixelSearch(0, 0,663, 523, 0xFF9429)
так и PixelSearch(663,523,663, 523, 0xFF9429)
результат 1 - (а) и (d) не жмёт, при появление пикселя скрипт отрубаеться(как и должен поидее)
 

firex

AutoIT Гуру
Сообщения
943
Репутация
207
Код:
While 1
    For $Idx = 1 To 6 Step 1 ;Запускаем 6 попыток найти пиксель
        PixelSearch( x1, y1, x2, y2, 0xEEE8BE ) ;Ищем пиксель
        If Not @Error Then ;Если пиксель найден
            If $Idx > 3 Then ;Если попытка 4, 5 или 6
                Send( "d" ) ;То жмем d
            Else ;Иначе ( если попытка 1, 2 или 3 )
                Send( "a" ) ;Жмем a
            EndIf
            ExitLoop 2 ;Пиксель был найден - завершаем работу скрипта
            ;Если требуется лишь прекратить текущий цикл и начать попытки с начала, то убрать 2 в ExitLoop
        EndIf
        Sleep( ? )
    Next
    Sleep( ? )
WEnd



Добавлено:
Сообщение автоматически объединено:

NeweR
http://autoit-script.ru/autoit3_docs/functions/PixelGetColor.htm

И тут лучше будет использовать эту функцию, так как вам точно известно расположение пикселя.

Код:
While 1
    For $Idx = 1 To 6 Step 1 ;Запускаем 6 попыток найти пиксель
        If PixelGetColor( 663, 523 ) = 0xEEE8BE Then ;Если пиксель найден
            If $Idx > 3 Then ;Если попытка 4, 5 или 6
                Send( "d" ) ;То жмем d
            Else ;Иначе ( если попытка 1, 2 или 3 )
                Send( "a" ) ;Жмем a
            EndIf
            ExitLoop 2 ;Пиксель был найден - завершаем работу скрипта
            ;Если требуется лишь прекратить текущий цикл и начать попытки с начала, то убрать 2 в ExitLoop
        EndIf
        Sleep( ? )
    Next
    Sleep( ? )
WEnd
 
Автор
N

NeweR

Новичок
Сообщения
6
Репутация
0
с пикселем всё в порядке, т.к скрипт отключаеться при его появление
______________________

Попробовал код №2
та же беда.
если вручную найти пиксель он 1 раз отсылает (а) (в обоих кодах такое)
такое ощущение что он постоянно делает проверку пикселя не используя "a" "d", а лиш по его нахождению использует "a" "d"

А если попробовать упростить часть с "a" "d" в виде:
"a" проверка если нет то "d" проверка и так до появления пикселя?
 

C2H5OH

AutoIT Гуру
Сообщения
1,473
Репутация
333
такое ощущение что он постоянно делает проверку пикселя не используя "a" "d", а лиш по его нахождению использует "a" "d"
Да, так и есть. :smile:
 

firex

AutoIT Гуру
Сообщения
943
Репутация
207
NeweR
Прочитал еще раз условие, да - не так все понял. Вот что вам нужно:

Код:
For $Idx = 1 To 6 Step 1 ;Запускаем 6 попыток найти пиксель
	If PixelGetColor( 663, 523 ) = 0xEEE8BE Then
		; "Стопор"
		ExitLoop ;Завершение работы скрипта
	ElseIf $Idx > 3 Then ;Если попытка 4, 5 или 6
		Send( "a" ) ;Жмем a
	Else ;Иначе ( если попытка 1, 2 или 3 )
		Send( "d" ) ;Жмем d
	EndIf

	If $Idx = 6 Then _ ;Перезапускаем цикл
		$Idx = 0
Next
 
Автор
N

NeweR

Новичок
Сообщения
6
Репутация
0
Спасибо огромное, завтра с утра проверю.
__________________
Всё работает как надо :beer:


Добавлено:
Сообщение автоматически объединено:

Дальше буду думать как это в неактивном окне слепить.
 
Верх