Что нового

Выполнение разных действия в одном условии, после его проверки!

LightDemon

Новичок
Сообщения
24
Репутация
1
В цикле есть условие:
Код:
$Color3 = PixelGetColor (544,387)
				If $Color3 == $colour3 Then
					Sleep(1000+Random(-500,500,1))
				MouseClick ("left",509+ Random(-10,10,1), 386+Random(-10,10,1),1)
				EndIf

Задача стоит в том, чтобы первые два раза при выполнении условия осуществлялся клик мыши, приведенный в изначальном коде, а на третий раз клик был по другим координатам. Как это реализовать, подскажите?
 

sngr

AutoIT Гуру
Сообщения
985
Репутация
392
может вот так:
Код:
Global $q=1
While 1
	If $Color3 == $colour3 Then
Switch $q
	Case 1 to 2
		Sleep(1000+Random(-500,500,1))
		MouseClick ("left",509+ Random(-10,10,1), 386+Random(-10,10,1),1)
		$q=$q+1
	Case 3
		;что-то другое
		$q=1
EndSwitch
	EndIf
WEnd
 
Автор
L

LightDemon

Новичок
Сообщения
24
Репутация
1
По логике вроде все так, но на практике получается, что каждое действие выполняется поочередно по одному разу, пробовал так же через If...ElseIf...EndIf:
Код:
$k=0
While 1
$Color3 = PixelGetColor (544,387)
	If $Color3 == $colour3 Then
	Sleep(1000+Random(-500,500,1))
		If $k==2 Then 
		MouseClick ("left",509+ Random(-10,10,1), 386+Random(-10,10,1),1)
		$k=0
		ElseIf $k<2 Then 
		MouseClick ("left",482+ Random(-10,10,1), 340+Random(-10,10,1),1) 
		$k=$k+1
		EndIf					
	EndIf

Но результат тот же, каждое действие по одному разу...
 

sngr

AutoIT Гуру
Сообщения
985
Репутация
392
Код:
Global $q=1
While 1
;~ $Color3 = PixelGetColor (544,387)
;~ 	If $Color3 == $colour3 Then
Switch $q
	Case 1 to 2
		MsgBox(0,"","1",1)
;~ 		Sleep(1000+Random(-500,500,1))
;~ 		MouseClick ("left",509+ Random(-10,10,1), 386+Random(-10,10,1),1)
		$q=$q+1
	Case 3
		MsgBox(0,"","2",1)
		;что-то другое
		$q=1
EndSwitch
;~ 	EndIf
WEnd

Попробуй вот это.
 
Автор
L

LightDemon

Новичок
Сообщения
24
Репутация
1
Проблема решена! :smile: Цикл проходил круг быстрее чем исчезал пиксель, поэтому пришлось сделать так:
Код:
Global $q=1
While 1
    If $Color3 == $colour3 Then
Switch $q
    Case 1 to 2
        Sleep(1000+Random(-500,500,1))
        MouseClick ("left",509+ Random(-10,10,1), 386+Random(-10,10,1),1)
        Sleep (1000)
        $q=$q+1
    Case 3
        ;что-то другое
        Sleep (1000)
        $q=1
EndSwitch
    EndIf
WEnd

После этого все заработало, спасибо за помощь!
 
Верх