Author Topic: Помогите плз.  (Read 3690 times)

0 Members and 1 Guest are viewing this topic.

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Помогите плз.
« on: March 09, 2018, 01:00:28 PM »
Нет времени разобраться,помогите новичку,спасибо.
Задача,выполнять цикличное нажатие по заданным координатам,при условии что в определенной области цвет пиксела отличный от заданного.При условии что цвет пиксела совпадает с заданным,запускается другой скрипт,после выполнении которого запускается изначальный скрипт(цикличного нажатия по заданным координатам).СПАСИБИЩЕ!
« Last Edit: March 09, 2018, 01:22:16 PM by контакт »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите плз.
« Reply #1 on: March 09, 2018, 01:56:31 PM »
Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(400,400, 500,500, 255)
   // сюда вписываешь другой скрипт
ELSE
   LCLICK(10,10)
   WAITMS(100)
END_IF

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #2 on: March 09, 2018, 02:35:38 PM »
ОоО!Получается (читаю скрипт)"при условии что если в области 400.400-500.500 цвет 255 то "скрипт"."ELSE"(иначе) левой клавишей по координатам 10.10 с задержкой 100.Верно?

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #3 on: March 09, 2018, 03:14:22 PM »
Если вот так,то скрипт тупо гоняет без соблюдения условия (запуска доп скрипта) :-\

GETSCREEN
IF_PIXEL_IN(664,143, 709,165, 20730)
   
$S_CORR = 0

waitms(2 + $S_CORR)
move(121,721)
-----------
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:55:29
ELSE
GETSCREEN
  WAIT(4)
$S_CORR = 0

waitms(3 + $S_CORR)
----------
eleted
waitms(0 + $S_CORR)
// deleted
waitms(395 + $S_CORR)
  keyUp(18)
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:43:57
END_IF
« Last Edit: March 09, 2018, 03:43:21 PM by контакт »

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #4 on: March 09, 2018, 07:52:02 PM »
ОоО!Получается (читаю скрипт)"при условии что если в области 400.400-500.500 цвет 255 то "скрипт"."ELSE"(иначе) левой клавишей по координатам 10.10 с задержкой 100.Верно?
У меня вопрос,это если ВСЯ область 400.400 имеет цвет 255,или если в области 400.400 появляется пиксел цвета 255?

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите плз.
« Reply #5 on: March 09, 2018, 08:09:18 PM »
второе

Qwerry

  • Активный участник
  • ***
  • Posts: 117
    • View Profile
Re: Помогите плз.
« Reply #6 on: March 09, 2018, 09:10:53 PM »
Если вот так,то скрипт тупо гоняет без соблюдения условия (запуска доп скрипта) :-\

Code: (clickermann) [Select]
GETSCREEN
IF_PIXEL_IN(664,143, 709,165, 20730)
   
$S_CORR = 0

waitms(2 + $S_CORR)
move(121,721)
-----------
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:55:29
ELSE
GETSCREEN
  WAIT(4)
$S_CORR = 0

waitms(3 + $S_CORR)
----------
// deleted
waitms(0 + $S_CORR)
// deleted
waitms(395 + $S_CORR)
  keyUp(18)
waitms(0 + $S_CORR)
  keyUp(164)
// FINISH AT 14:43:57
END_IF

Не великий знаток, но попробую прочитать скрипт:
"Сфоткать экран. Проверить наличие пикселя. Если есть - присвоить значение $S_CORR = 0, подождать 2 миллисекунды (почему настолько мало, может не надо вообще?), переместить курсор  в координаты (121,721), подождать 0 милисекунд (ааааа!), отпустить  ненажатую клавишу (и не существующую в природе - где вы 164 нашли?).
Если пикселя нет - то сфоткать экран (и не анализировать его потом. хм...), подождать 4 секунды (ну хоть нормальная задержка),  присвоить значение $S_CORR = 0 (зачем? почему не сделать это над условиями, раз совпадает?), подождать 3 раза по чуть-чуть (суммарно менее половины секунды), отпустить виртуальную клавишу Alt (18 существует - уже спасибо)), подождать нисколько, отпустить несуществующую клавишу.
Повторять бесконечно".

Если резюмировать, то ваш скрипт ничего и не должен делать (ну кроме перемещения мышки в координаты  (121,721), если  был найден пиксель, а курсор не там находился).
« Last Edit: March 09, 2018, 09:15:53 PM by Qwerry »

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #7 on: March 09, 2018, 10:34:58 PM »
Как оказалось иконка в игре в которой скрипт ищет заданный цвет пикселя,хитрая.Цвет вроде один и тот же,но при наведении курсора код цвета не бывает одинаков.Вернее он(код цвета) вообще в заданной области не повторяется,хотя по виду имеет один и тот же цвет. Как такое может быть?И как в конце концов с этим бороться?
http://prntscr.com/ip137y

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Помогите плз.
« Reply #8 on: March 10, 2018, 10:06:02 AM »
Можно попробовать использовать цветокоррекцию (COLORMODE), чтобы"упростить" цвета
Правда все равно не факт, что они не будут меняться
Черно - белый режим может все решить, но в вашем случае он может не подойти
Либо сделать черно - белую цветокоррекцию и искать не пиксель, а маленький кусочек вашей кнопки в виде картинки, размером буквально 10х10 пикселей, а то и меньше. Ищет тоже быстро
« Last Edit: March 10, 2018, 10:08:04 AM by James »

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #9 on: March 10, 2018, 11:37:48 AM »
Очень интересно!Как реализовать? маленький код плз.Еще наверное будет смысл сделать скриншот и при совпадении картинки,чтоб запускался доп скриптик.Как будет выглядеть такой скриптик и чем сделать скрин шот?

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #10 on: March 10, 2018, 08:00:28 PM »
Вот так пробую
WAIT(1)
GETSCREEN(675,145,690,165)
COLORMODE(7,675,145,690,165)
IF_PIXEL_IN(675,145, 690,165, 219622) и тд.
Вопрос,как узнать цвет моего пикселя для COLORMODE 7?Я ж так понимаю произойдет корекция цвета после запуска скрипта?

James

  • Освоившийся
  • **
  • Posts: 45
    • View Profile
Re: Помогите плз.
« Reply #11 on: March 10, 2018, 09:39:14 PM »
Насчёт кода я надеюсь вам подскажут сторожилы форума, я синтаксис подзабыл уже, могу накосячить :)
Чтобы посмотреть как видит кликер, вам нужно использовать инструмент лупа, там под ней есть +- и циферка, которая будет меняться от нажатий. Эта циферка и есть колормод. И вы будете видеть как видит сам кликер и какой он видит цвет. Его и нужно вписывать.
« Last Edit: March 10, 2018, 09:41:57 PM by James »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помогите плз.
« Reply #12 on: March 11, 2018, 07:54:58 AM »
Вот так пробую
WAIT(1)
GETSCREEN(675,145,690,165)
COLORMODE(7,675,145,690,165)
IF_PIXEL_IN(675,145, 690,165, 219622) и тд.
Вопрос,как узнать цвет моего пикселя для COLORMODE 7?Я ж так понимаю произойдет корекция цвета после запуска скрипта?

Либо использовать скрипт для получения скриншота
Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией (фильтр 7)
GETSCREEN
COLORMODE(7)
SCREENSHOT
HALT

Либо в редакторе под окном лупы изменить % 0 на % 7
Включи лупу и увидишь как кликер видит при цветокоррекции в реальном времени.

Кстати вот таким кодом можно сохранять скорректированный снимок нужного размера.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(7)
SCREENSHOTEX(675,145,690,165, "Image_", 0)
HALT
« Last Edit: March 11, 2018, 07:56:48 AM by Oraven »

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #13 on: March 16, 2018, 02:57:14 PM »
Здорово!Спасибо выручили.

контакт

  • Зашел в гости
  • *
  • Posts: 15
    • View Profile
Re: Помогите плз.
« Reply #14 on: March 18, 2018, 08:29:16 PM »
Проверьте синтаксис плз.
FOR($a=0, $a<3)
FOR($a=0, $a<4)
скрипт 1
END_CYC
скрипт 2
END_CYC
скрипт 3

Задача скрипт 1 выполняется 4 раза,затем один раз скрипт 2.Это все действие повторяется 3 раза.Затем один раз выполняется скрипт 3.И все это начинается заново до бесконечности.
На деле происходит выполнение скрипта 1,4 раза.Затем один раз скрипт 2.И сразу начинается скрипт 3.Нет повторения скриптов 1,2 положенных трех раз.

« Last Edit: March 18, 2018, 08:30:58 PM by контакт »