Что нового

[Мышь, клавиатура] Неприрывный поиск цвета при выполнении скрипта.

arconas

Новичок
Сообщения
11
Репутация
0
Здраствуйте гуру, подскажите есть ли возможность реализовать непрерывный поиск цвета при выполнении скрипта. Вот пример:

Код:
sleep (7000); тут начать искать
sleep (500)
Send("{4}")
sleep (500)
Send("{2}")
sleep (1500)
Send("{LSHIFT down}")
MouseClick("left", Round(801), Round(882));1 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
Send("{3}")
sleep (500)
MouseClick("left", Round(801), Round(882))
sleep (2000)



Send("{LSHIFT down}")
MouseClick("left", Round(1066), Round(845));2 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
MouseClick("left", Round(1066), Round(845))
sleep (2000)

Send("{LSHIFT down}")
MouseClick("left", Round(1073), Round(731));3 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
MouseClick("left", Round(1073), Round(731))
sleep (2000)

Send("{LSHIFT down}")
MouseClick("left", Round(1174), Round(606));4 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
Send("{3}")
sleep (500)
MouseClick("left", Round(1174), Round(606)) ;а тут закончить.
sleep (2000)


Или придется делать так?

Код:
sleep (7000)
sleep (500)
Send("{4}")
sleep (500)
Send("{2}")
sleep (1500)
Send("{LSHIFT down}")
MouseClick("left", Round(801), Round(882));1 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
Send("{3}")
sleep (500)
MouseClick("left", Round(801), Round(882))
sleep (2000)

$Variable = PixelSearch(1190, 671, 1218, 705, 0xF5CB8F, 2)
	    If IsArray($Variable) = True Then
        MouseMove($Variable [0], $Variable [1], 10)
        Mouseclick("Left") 

Send("{LSHIFT down}")
MouseClick("left", Round(1066), Round(845));2 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
MouseClick("left", Round(1066), Round(845))
sleep (2000)
$Variable = PixelSearch(1190, 671, 1218, 705, 0xF5CB8F, 2)
	    If IsArray($Variable) = True Then
        MouseMove($Variable [0], $Variable [1], 10)
        Mouseclick("Left") 

Send("{LSHIFT down}")
MouseClick("left", Round(1073), Round(731));3 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
MouseClick("left", Round(1073), Round(731))
sleep (2000)
$Variable = PixelSearch(1190, 671, 1218, 705, 0xF5CB8F, 2)
	    If IsArray($Variable) = True Then
        MouseMove($Variable [0], $Variable [1], 10)
        Mouseclick("Left") 

Send("{LSHIFT down}")
MouseClick("left", Round(1174), Round(606));4 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
Send("{3}")
sleep (500)
MouseClick("left", Round(1174), Round(606))
sleep (2000)
 

BIOS

Жизнь - игра. График - супер, но сюжет - хреновый.
Сообщения
173
Репутация
69
Покури тему циклов, в частности
Код:
While
 

Whited

Знающий
Сообщения
79
Репутация
10
Научитесь хотя бы создавать функции с передаваемыми переменными, а то уж совсем говнокод.
 
Автор
A

arconas

Новичок
Сообщения
11
Репутация
0
Научитесь хотя бы создавать функции с передаваемыми переменными, а то уж совсем говнокод.
Прошу пример, а то такое сообщение тянет на тролинг.
 

Mur

Осваивающий
Сообщения
132
Репутация
32
Прошу пример, а то такое сообщение тянет на тролинг.
Код:
$text = 1234
MsgBox(0, "cifry", $text)

Обычная переменная, значение которой выводится нам в сообщении. Чаще всего их обозначают:
Код:
Local
Global
Dim
 

Whited

Знающий
Сообщения
79
Репутация
10
Whited [?]
Научитесь хотя бы создавать функции с передаваемыми переменными, а то уж совсем говнокод.

Код:
Func _Other()
Send("{LSHIFT down}")
MouseClick("left", Round(1066), Round(845));2 шаг
sleep (500)
Send("{LSHIFT up}")
sleep (500)
MouseClick("left", Round(1066), Round(845))
sleep (2000)
EndFunc



Потом вместо тысячи твоих строк, вызывай функцию:
Код:
_Other()

Ну а в цикле вот так:

Код:
While 1
_Other()
Wend


Если у тебя меняется только цифры в Round(1066), то делай так:

Код:
Func _Other($x,$y)
MouseClick("left", Round($x), Round($y));2 шаг


И в теле цикла пиши так:

Код:
_Other(1066,845)


В итоге весь твой код сократится до 1 функции, которую 1 раз написал и забыл, и строчек 8-12 всей программы.
 
Автор
A

arconas

Новичок
Сообщения
11
Репутация
0
За оптимизацию кода спсибо. Но всеже остается открыт 1 вопрос. Как зделать так чтобы искать цыет неприрывно, и при нохождении выполнить определённую функцию. :stars:
 

Mur

Осваивающий
Сообщения
132
Репутация
32
Чтобы искать непрерывно, как уже говорили, создаёшь цикл:
Код:
While 1
WEnd

Чтобы при успехе выполняло функцию, тебе надо создать условие.
Например такое:
Код:
If 
Then
или любое другое, на твой вкус.
 

Whited

Знающий
Сообщения
79
Репутация
10
arconas [?]
За оптимизацию кода спсибо. Но всеже остается открыт 1 вопрос. Как зделать так чтобы искать цыет неприрывно, и при нохождении выполнить определённую функцию.
stars.gif

Код:
While 1
$s = PixelSearch(100,100,200,200,цвет)
if IsArray($s) Then
_Other(1068,855)
EndIf
Wend
 
Верх