1
Общие вопросы / Re: Как сделать keypress и move одновременно
« on: June 04, 2021, 01:06:54 PM »
большое спасибо за труд Cleoss, щас буду изучать все что вы написали и пытаться применить
Добавлена тема оформления "Clickermann" для кода с подсветкой синтаксиса. Выбирается из выпадающего списка "Код" (рядом с "цвет", "размер" и "шрифт") в режиме редактирования поста. Либо просто BB-тегом "code=clickermann"
This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.
Я тоже подготовил включение в самом скрипте, не пропадать жеCode: (clickermann) [Select]#ps2_mouse
#ps2_keyboard
//ожидание нажатия единицы
WHILE(ISKEYDOWN (#1) = 0)
waitms(50)
END_CYC
WHILE(ISKEYDOWN (#1) = 1)
waitms(50)
END_CYC
//
//дальше твой код
wait(2)
KEYPRESS(#c)
wait(1)
KEYPRESS(#w)
wait(1)
KEYPRESS(#q)
Ему на каждый цикл скрипта нужно будет жать клавишу "1"
нет, небыло такой цели, если здесь запрещено называть другие программы то извините, уберу. Просто сказал на всякий случай, вдруг у кого проц грузиться будетнашел причину почему проц грузился, надо было почиститься прогой HiJackThis после нее проц не грузится даже при 30мс, странно конечно, но видимо из за забитого реестра что то не так работалоЭто реклама программы?
"в зацикленном скрипте"... смотря что в этом скрипте.спасибо за пояснение
Как минимум должна быть одна задержка в каждом цикле FOR/WHILE, если в цикле анализ экрана или клики или запись/чтение файлов. Задержка должна выполняться всегда, пока цикл не завершился.
Если отключена задержка в конф. файле, как у меня, то обязательна задержка практически после каждого клика/нажатия клавиатуры. Да и вообще желательно, все клики разные и стандартная задержка всем не подходит.
Желательно разбавить скрипт в местах последовательных GETSCREEN. Если идут функции работы с экраном несколько штук подряд, то нужно учесть и варианты когда по логике скрипт будет проскакивать условия ничего не делая или в которых задержки не будут работать.
Пример:
[spoiler]Code: (clickermann) [Select]GETSCREEN
[/spoiler]
IF(PXL(100, 100) = 255)
$n = $s * 10 + 320
END_IF
IF(PXL(100, 100) = 14284031)
$n = $s * 5 + 160
mysub($n)
END_IF
GETSCREEN
IF_PIXEL_IN(0,0,$_xmax,$_ymax, 255)
MOVE(10,10)
WAITMS(30)
END_IF
GETSCREEN
IF_PICTURE_IN (0,0,$_xmax,$_ymax, "file1.bmp")
LCLICK($_return1,$_return2)
WAITMS(100)
END_IF
Если при работе этого кода все поиски ничего не дадут и условия не выполнятся, то загрузка проца вырастет из-за череды GETSCREEN-поиск/условие
bbb:
GETSCREEN
IF_PIXEL_IN (167,9,167,9,760320)
KEYPRESS(#N)
waitms(160)
goto(aaa)
ELSE
waitms(160)
goto(aaa)
END_IF
aaa:
GETSCREEN
IF_PIXEL_IN (167,30,167,30,760320)
KEYPRESS(#M)
waitms(160)
goto(ccc)
ELSE
waitms(160)
goto(ccc)
END_IF
ccc:
GETSCREEN
IF_PIXEL_IN (167,51,167,51,760320)
KEYPRESS(#J)
waitms(160)
goto(bbb)
ELSE
WAITMS(160)
goto(bbb)
END_IF
50 мс обычно хватаетодин waitms(50) в конце скрипта, или их несколько должно быть? у меня с одним всеравно грузит +10-15% к цп