Что нового

Выполнение определённого действия при нахождении цвета

Сообщения
8
Репутация
-1
Добрый день. Нужно написать скрипт с данной функцией:
Активация скрипта( разовая)на !е
Полная остановка скрипта (без выхода) на !9
При запуске скрипта нажимается {numpad1} каждые 30 секунд не зависимо от этого нажатия скрипт ищет пиксель 0хff0000 в координатах 811,759 , при нахождении этого цвета выполняется нажатие Лёвой кнопки мыши с интервалом 0,03 сек

Наброски:

Код:
HotKeySet(“!”, “_pause”); не знаю правильно написано или нет
HotKeySet(“!e”, “_Action”)
While 1
Sleep (10)
WEnd
Func _Action()
While 1
$colour = PixelGetColor(811, 759)
If $colour = 0xFF0000 Then
MouseClick(“left”)
Sleep(30)
EndIf
WEnd
EndFunc
 

All2khoff

Продвинутый
Сообщения
352
Репутация
65
Попробуйте такой вариант, через пару минут дополню комментариями.
Код:
HotKeySet("!9", "_pause")    ;ALT+9
HotKeySet("!e", "_Action")    ;ALT+e
Global $adata = 0

While 1
   Sleep (100)            ;слишком маленькие "слипы" в бесконечных циклах не рекомендуются 100 идеально в данном случае
   _numpad()            ;вызов функции нажатия на кнопку
WEnd

Func _numpad()
   If $adata = 300 Then        ;если счеткик 300 то
      Send("{NUMPAD1}")        ;жмем на кнопку
      $adata = 0            ;после срабатывания нажатия обнуляем счетчик
   Else
      $adata = $adata + 1    ;счетчик завязанный на первый слип 100*300 получаем 30000 что равно 30 секундам
   EndIf
EndFunc

Func _pause()                ;функция паузы, включается и выключается одной кнопкой
    $Paused = Not $Paused
    While $Paused
        Sleep(100)
        ToolTip('Скрипт приостановлен')
    WEnd
    ToolTip("")
 EndFunc

Func _Action()
   While 1                                ;бесконечный цикл в котором проверяем наличия цвета
      $colour = PixelGetColor(811, 759)
      If $colour = 0xFF0000 Then        ;если цвет найден
         MouseClick("left")                ;тычем мышкой каждые 30 милисекунд
         Sleep(30)
      Else
         $adata = 0                        ;обнуляем счетчик чтобы функция numpad начала отсчет с начала.
         ExitLoop                        ;иначе выходим из бесконечного цикла на предыдущий
      EndIf
   WEnd
EndFunc
 
Последнее редактирование:
Верх