Автокликер Clickermann :: Форум
Основной раздел => Общие вопросы => Topic started by: АНТИКЛАН on March 06, 2015, 11:22:41 AM
-
Всем привет! С вами снова я АНТИКЛАН! :D
Давным-давно... В далекой-далекой галактике... Хотя о чем это я? :D
Короче, други, проблемка нарисовалась! :D
Не работает вот этот кусок кода:
THREAD(BANKI_MP, 1)
GETSCREEN
IF(PXL(36,59) ! 8796421)
KEYPRESS(#F10)
WAIT(5)
END_IF
WAITMS(5)
END_THREAD
Код должен следить за пикселем на экране и как только он станет другого цвета выполнить действие. При запуске поведение очень странное... Скрипт либо вообще ничего не делает, даже когда наступает момент, что должно сработать, либо его заклинивает и он начинает работать без остановки не взирая на условия. Пробовал и так и сяк даже отдельно без потока в новом чистом скрипте. Значение цвета брал прям из полноэкранного режима по Alt+Q. Делал серию скриншотов и сравнивал нужный пиксель, нигде он не меняется ни от поворота камеры ни от смены места. Применять COLORMODE тоже пробовал эффект один.
Кто сталкивался с таким уже поделитесь опытом.
-
И даже с еденицей не работает? ;)
А ты не гробишь всё делая гетскрин через каждые 5 миллисекунд?
-
и даже с еденицей не работает? ;)
С единицей где?
-
С единицей где?
Здесь
THREAD(BANKI_MP, 1)
Сначала был 0, пока я писал ответ, ноль сменился на один.
-
Здесь
THREAD(BANKI_MP, 1)
Сначала был 0, пока я писал ответ, ноль сменился на один.
А ну это я специально поставил чтобы вы не сбивались на то что мол я его не включил :D Так то этот кусок - часть скрипта, там управление по горячим клавишам реализовано так что на старте этот поток выключен.
А ты не гробишь всё делая гетскрин через каждые 5 миллисекунд?
Ну насколько я понимаю то GETSCREEN выполняется только после того как отработают все предыдущие команды в цикле(условие, задержка)... Или я не прав?
-
Я не про то. Не слишком ли часто? Такая маленькая задержка.
-
Я не про то. Не слишком ли часто? Такая маленькая задержка.
Я тоже не точно выразился. Я точно не знаю ждет ли кликерман пока функция GETSCREEN завершится или нет и сразу переходит к следующей команде. По идее должно быть так: делаем снимок, проверяем пиксель ждем 5 мс, делаем снимок и т.д. Вообще ощущение что где-то кто-то кого-то не ждет ;D
-
...Я точно не знаю ждет ли кликерман пока функция GETSCREEN завершится или нет и сразу переходит к следующей команде...
Ждёт. Но отдельный поток с гетскрином всего экрана через каждые 5 мс сильно грузить должен.
На поиск влиять, правда, не должно. Расставляй логи, а не только по нажатиям ориентируясь. Может нажатия не срабатывают и их нужно растянуть во времени.
Скриншот в конце концов.
-
Зону GETSCREEN нужно ограничить, тогда нагрузка будет минимальной
THREAD(BANKI_MP, 1)
GETSCREEN(36,59,37,60) // вот именно так на 1 пиксель больше
IF(PXL(36,59) ! 8796421)
KEYPRESS(#F10)
WAIT(5)
END_IF
WAITMS(5)
END_THREAD
Проблема может быть в том что в других потоках тоже есть GETSCREEN
-
Проблема может быть в том что в других потоках тоже есть GETSCREEN
Находить это ему не помешает в данном случае.
-
Ждёт. Но отдельный поток с гетскрином всего экрана через каждые 5 мс сильно грузить должен.
На поиск влиять, правда, не должно. Расставляй логи, а не только по нажатиям ориентируясь. Может нажатия не срабатывают и их нужно растянуть во времени.
Скриншот в конце концов.
Про растянуть во времение можно поподробнее, а то я не понял пока что?
Зону GETSCREEN нужно ограничить, тогда нагрузка будет минимальной
THREAD(BANKI_MP, 1)
GETSCREEN(36,59,37,60) // вот именно так на 1 пиксель больше
IF(PXL(36,59) ! 8796421)
KEYPRESS(#F10)
WAIT(5)
END_IF
WAITMS(5)
END_THREAD
Проблема может быть в том что в других потоках тоже есть GETSCREEN
Ну пока что GETSCREEN только один в будующем я думаю его в отдельный поток оформить вообще. А просто один пиксель можно за зону взять?
-
А просто один пиксель можно за зону взять?
А я тебе что написал?! Снимок всего 1 пиксела!
-
А я тебе что написал?! Снимок всего 1 пиксела!
Там вроде четырех получается... Если я правильно думаю...
-
Просто верь.
На сегодняшний день там один.
-
Просто верь.
На сегодняшний день там один.
А так тогда сколько?
GETSCREEN(36,59,36,59)
-
0
-
Просто верь.
На сегодняшний день там один.
0
Поверить то можно, но логика какая-то железная получается :))) Там где 1 пиксель - ноль, а там где их 2 - один.
-
Просто верь.
На сегодняшний день там один.
0
Поверить то можно, но логика какая-то железная получается :))) Там где 1 пиксель - ноль, а там где их 2 - один.
Блин, ну ошибка в программе. Недавно сами нашли. Надеюсь в новой версии поправят.
Зачем искать логику в ошибке/опечатке.