Что нового

Найти цвет в координатах и кликнуть по координате. Помогите решить проблему...

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Помогите найти проблему...
Вот код
Код:
MouseClickDrag("left", 1345, 268, 1345, 516)
$coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
Select
Case StringInStr($coord)
   MouseClickDrag("left", 1345, 516, 1345, 268)
   MouseClick("left", 572, 435, 1)
   EndSelect
MouseClickDrag("left", 1345, 516, 1345, 268)

По теории должен: перетаскивать в координаты
Найти в координатах 1006, 99, 1183, 715 цвет 0x3A00FF
Если есть, перетащить в координаты и кликнуть по координатам.
Если нет цвета, пропустить клик и перетащить в координаты.
Но почему-то не работает, такая ошибка
Код:
>"C:\Program Files (x86)\AutoIt3\SciTE\..\autoit3.exe" /ErrorStdOut "C:\Users\ПК3\Desktop\FT.au3"
C:\Users\??3\Desktop\FT.au3 (38) : ==> Incorrect number of parameters in function call.:
Case StringInStr($coord)
Case ^ ERROR
>Exit code: 1    Time: 65.428

Помогите решить... :search:
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
SHoCK13666,
Вы в "коде", в своем посте кликайте по функциям и внимательно читайте их описания.
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Да вроде всё читал, но не получается ничего... Вариантов больше нет...
 

Ksaan

Знающий
Сообщения
207
Репутация
15
Брррррр.....я чтото нифига не понял ты сначала зажимаеш ЛКМ в 1345 268 двигаеш курсор в 1345, 516 и отпускаеш
потом ищеш цвет в 1006, 99, 1183, 715 брррр.... дальше я запутался. Ты хоть распиши что должно быть в скрипте
а то то что ты написал не понятно.
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Зажимаю и двигаю лкм, но это работает нормально. Дальше скрипт должен искать в некоторых координатах пиксель цвета0x3A00FF.
Если нашёл, то перетащил обратно и и кликнул по координате. Если не нашёл, то пропустил этап кликанья просто перетащил обратно.
 

madmasles

Модератор
Глобальный модератор
Сообщения
7,790
Репутация
2,322
SHoCK13666,
За Вас справку читать никто не будет.
 

Ksaan

Знающий
Сообщения
207
Репутация
15
Бррр.... если я вас правильно понял то вот
Код:
HotKeySet('{DELETE}', '_Exit') ; 

MouseClickDrag("Left",1345, 268, 1345, 516)


While 1
   $coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
   If Not @error Then 
	  MouseClickDrag("left", 1345, 516, 1345, 268)
            		Sleep(10)	
            MouseClick("left", 572, 435, 1)
 Else
    Sleep(10)
 EndIf
  If IsArray ($coord) = False Then
			MouseClickDrag("left", 1345, 516, 1345, 268)
   Endif
   ExitLoop
Wend
		 
		 
Func _Exit()
   Exit
EndFunc

незнаю работает или нет писал с телефона на работе
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Уж простите меня, что я тут полный нуб... :smile:
Скрипт работает как надо, но у меня после этого кода есть ещё функции. А скрипт закрывается, если не нашёл цвет... Как сделать, чтобы он не закрывался?
 

Tyr

Новичок
Сообщения
43
Репутация
4
SHoCK13666 Просто в том месте где ELSE стоит в цикле там у тебя написано Sleep(10) ты там обратись к своим функциям

Ой вернее просто пиши свой код после Wend... так как это выход из цикла, но не из программы... твои же дальнейшие действия не в цикле
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Всё равно скрипт потом закрывается...
 

Tyr

Новичок
Сообщения
43
Репутация
4
SHoCK13666 Ещё раз проверь после Wend вот здесь пиши код:
Код:
Endif
   ExitLoop
Wend
         
;ТУТ ТВОЙ КОД 
        
Func _Exit()
   Exit
EndFunc
 

Whited

Знающий
Сообщения
79
Репутация
10
SHoCK13666 [?]
Всё равно скрипт потом закрывается...

У тебя в основном цикле программы если цвет не найден, то вся программа закрывается, как ты хочешь выполнять другие функции не понятно, сделай так:

Код:
Func _Start()
While 1
   $coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
   If Not @error Then 
      MouseClickDrag("left", 1345, 516, 1345, 268)
                    Sleep(10)   
            MouseClick("left", 572, 435, 1)
 Else
    Sleep(10)
 EndIf
  If IsArray ($coord) = False Then
            MouseClickDrag("left", 1345, 516, 1345, 268)
   Endif
   ExitLoop
Wend
EndFunc

While 1
Sleep(100)
Wend

_Start()
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Whited, в моём скрипте этот код несколько раз повторяется... Я его там, где надо ещё раз пишу. Но появляется ошибка
Duplicate function name.:
Func _Start()
Как можно сделать, чтобы можно было несколько раз ставить этот код туда, куда надо?
 

Ksaan

Знающий
Сообщения
207
Репутация
15
в моём скрипте этот код несколько раз повторяется.
Что все тоже самое должно повторятся несколько раз? Ну так скопируй все ниже и все
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Ksaan, не получается. Выдаёт ошибку
Duplicate function name.:
Func _Start()
 

Whited

Знающий
Сообщения
79
Репутация
10
SHoCK13666 [?]
Whited, в моём скрипте этот код несколько раз повторяется... Я его там, где надо ещё раз пишу. Но появляется ошибка Duplicate function name.:Func _Start()Как можно сделать, чтобы можно было несколько раз ставить этот код туда, куда надо?

надо писать _Start()
 
Автор
S

SHoCK13666

Новичок
Сообщения
108
Репутация
0
Код:
#include<Array.au3>
#include<IE.au3>

HotKeySet('{DELETE}', '_Exit') ; 

$oIE = _IECreate('https://fortunatime.com/knb/play')



MouseClick("left", 853, 78, 1)
MouseClick("left", 572, 435, 1)
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{0}")
Send("{.}")
Send("{0}")
Send("{1}")
MouseClick("left", 462, 523, 1)
Sleep(10000)

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(30000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(120000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(600000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(6000000)
   EndSelect



MouseClickDrag("Left",1345, 268, 1345, 516)

Func _Start()
While 1
   $coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
   If Not @error Then 
      MouseClickDrag("left", 1345, 516, 1345, 268)
                    Sleep(10)   
            MouseClick("left", 462, 523, 1)
 Else
    Sleep(10)
 EndIf
  If IsArray ($coord) = False Then
            MouseClickDrag("left", 1345, 516, 1345, 268)
   Endif
   ExitLoop
Wend
EndFunc

While 1
Sleep(100)
Wend

_Start()


$sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Вы проиграли')

        ; клик по ссылке
		 MouseClick("left", 572, 435, 1)
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{0}")
Send("{.}")
Send("{0}")
Send("{2}")
MouseClick("left", 462, 523, 1)
Sleep(10000)

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(30000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(120000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(600000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(6000000)
   EndSelect
   EndSelect

MouseClickDrag("Left",1345, 268, 1345, 516)

Func _Start()
While 1
   $coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
   If Not @error Then 
      MouseClickDrag("left", 1345, 516, 1345, 268)
                    Sleep(10)   
            MouseClick("left", 462, 523, 1)
 Else
    Sleep(10)
 EndIf
  If IsArray ($coord) = False Then
            MouseClickDrag("left", 1345, 516, 1345, 268)
   Endif
   ExitLoop
Wend
EndFunc

While 1
Sleep(100)
Wend

_Start()


$sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Вы проиграли')
        
MouseClick("left", 572, 435, 1)
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{0}")
Send("{.}")
Send("{0}")
Send("{5}")
MouseClick("left", 462, 523, 1)
Sleep(10000)

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(30000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(120000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(600000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(6000000)
   EndSelect
  EndSelect

MouseClickDrag("Left",1345, 268, 1345, 516)

Func _Start()
While 1
   $coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
   If Not @error Then 
      MouseClickDrag("left", 1345, 516, 1345, 268)
                    Sleep(10)   
            MouseClick("left", 462, 523, 1)
 Else
    Sleep(10)
 EndIf
  If IsArray ($coord) = False Then
            MouseClickDrag("left", 1345, 516, 1345, 268)
   Endif
   ExitLoop
Wend
EndFunc

While 1
Sleep(100)
Wend

_Start()


$sText = _IEBodyReadText($oIE)
Select
    Case StringInStr($sText, 'Вы проиграли')
        ; ставим с начала
MouseClick("left", 572, 435, 1)
Send("{BS}")
Send("{BS}")
Send("{BS}")
Send("{BS}") 
Send("{BS}")
Send("{BS}")
Send("{0}")
Send("{.}")
Send("{1}")
Send("{1}")
MouseClick("left", 462, 523, 1)
Sleep(10000)

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(30000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(120000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(600000)
EndSelect

   $sText = _IEBodyReadText($oIE)
Select
Case StringInStr($sText, 'Отмена')
   sleep(6000000)
   EndSelect
EndSelect

MouseClickDrag("Left",1345, 268, 1345, 516)

Func _Start()
While 1
   $coord = PixelSearch( 1006, 99, 1183, 715, 0x3A00FF)
   If Not @error Then 
      MouseClickDrag("left", 1345, 516, 1345, 268)
                    Sleep(10)   
            MouseClick("left", 462, 523, 1)
 Else
    Sleep(10)
 EndIf
  If IsArray ($coord) = False Then
            MouseClickDrag("left", 1345, 516, 1345, 268)
   Endif
   ExitLoop
Wend
EndFunc

While 1
Sleep(100)
Wend

_Start()

Это то, что по теории должно работать. Код поиска цвета встречается несколько раз. Но выдаёт ошибку...
 

Tyr

Новичок
Сообщения
43
Репутация
4
SHoCK13666
Функцию только 1 раз описывают в программе, желательно в конце после тела программы. Потом в любом месте к ней обращаются например командой
Код:
Call
.... если функции разные, то и имена должны быть разные, если отличаются только параметры. то в скобачках после имени функции задай их... Если не знаешь как - щелкни по слову Call - там описано.
 

Ksaan

Знающий
Сообщения
207
Репутация
15
Код:
#include <Array.au3>
#include <IE.au3>
HotKeySet( ' {DELETE} ', '_Exit' ) ;
$oIE = _IECreate( 'https://
fortunatime.com/knb/play' )
MouseClick("left" , 853, 78, 1)
MouseClick("left" , 572, 435 , 1 )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {0} ")
Send(" {.} ")
Send(" {0} ")
Send(" {1} ")
MouseClick("left" , 462, 523 , 1 )
Sleep( 10000 )
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 30000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 120000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 600000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 6000000)
EndSelect
MouseClickDrag("Left" , 1345, 268 ,
1345, 516 )
;=========
Call ( "_Start")
 ;=======
$sText = _IEBodyReadText( $oIE )
Select
Case StringInStr ( $sText , 'Вы
проиграли' )
; клик по ссылке
MouseClick( "left" , 572 ,
435, 1 )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {0} ")
Send(" {.} ")
Send(" {0} ")
Send(" {2} ")
MouseClick("left" , 462, 523 , 1 )
Sleep( 10000 )
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 30000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 120000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 600000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 6000000)
EndSelect
EndSelect
MouseClickDrag("Left" , 1345, 268 ,
1345, 516 )
;========
Call ( "_Start" )
;=========
$sText = _IEBodyReadText( $oIE )
Select
Case StringInStr ( $sText , 'Вы
проиграли' )
MouseClick("left" , 572, 435 , 1 )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {0} ")
Send(" {.} ")
Send(" {0} ")
Send(" {5} ")
MouseClick("left" , 462, 523 , 1 )
Sleep( 10000 )
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 30000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 120000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 600000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 6000000)
EndSelect
EndSelect
MouseClickDrag("Left" , 1345, 268 ,
1345, 516 )
;=========
Call ( "_Start" )
;==========
$sText = _IEBodyReadText( $oIE )
Select
Case StringInStr( $sText , 'Вы
проиграли' )
; ставим с начала
MouseClick("left" , 572, 435 , 1 )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {BS} " )
Send(" {0} ")
Send(" {.} ")
Send(" {1} ")
Send(" {1} ")
MouseClick("left" , 462, 523 , 1 )
Sleep( 10000 )
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 30000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 120000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 600000)
EndSelect
$sText = _IEBodyReadText ( $oIE )
Select
Case StringInStr ( $sText , 'Отмена' )
sleep ( 6000000)
EndSelect
EndSelect
MouseClickDrag("Left" , 1345, 268 ,
1345, 516 )
;===============
Func _Start ()
While 1
$coord = PixelSearch ( 1006, 99,
1183, 715 , 0x3A00FF )
If Not @error Then
MouseClickDrag( "left" , 1345,
516, 1345, 268)
Sleep( 10)
MouseClick( "left" , 462 ,
523, 1 )
Else
Sleep (10)
EndIf
If IsArray ($coord ) = False Then
MouseClickDrag( "left" ,
1345, 516 , 1345, 268 )
Endif
ExitLoop
Wend
EndFunc
While 1
Sleep( 100 )
Wend
;=================
Func _Exit()
Exit
EndFunc
 
Верх