Author Topic: Помощь по синстаксису  (Read 7481 times)

0 Members and 1 Guest are viewing this topic.

farmacedus

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помощь по синстаксису
« Reply #15 on: April 24, 2015, 12:26:52 PM »
Заметил еще одно, отсутствует UNDEFINE($ARR_SCAN) без этого на повторном проходе цикл снова отработает по старым координатам.

Code: (clickermann) [Select]
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)

KEYPRESS(#DELETE)

//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать

GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF
//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
   LOGWRITE ("Найден крестик")
   LCLICK($_return1, $_return2)
   WAITMS(100)
else
   WAITMS(50)
   LOGWRITE ("проверка на конверт и поиск кнопки отправить")
   //проверка на конверт и поиск кнопки отправить
   GETSCREEN
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
   $ARR_NUM = 0
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
      $X = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      $Y = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
         WAITMS(1)
      ELSE
         LOGWRITE ("проверка на конверт и поиск кнопки отправить")
         $ARR_NUM = 99999 // сброс цикла
         LCLICK($X, $Y)
         WAITMS(1000)
      END_IF
   END_CYC
   UNDEFINE($ARR_SCAN) // очищаем массив координат
END_IF

Еще у тебя написано "если есть конверт" на самом деле клик происходит если пиксель 16514039 не найден
Code: (clickermann) [Select]
IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
   WAITMS(1) // если найден то ничего
ELSE
   // если не найден то
   LOGWRITE ("проверка на конверт и поиск кнопки отправить")
   $ARR_NUM = 99999 // сброс цикла
   LCLICK($X, $Y)
   WAITMS(1000)
END_IF
Может быть тут корень проблемы?
Так в чем проблема? Этот код когда то вы мне и написали. И почему по отдельности работает а вместе нет? Может быть я покажу кому то в скайпе или ТВ в чем проблема?

farmacedus

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помощь по синстаксису
« Reply #16 on: April 24, 2015, 12:29:30 PM »
Я так делал, вот код.
И вот лог.
12:24:33 1
12:24:34 2
12:24:34 3
12:25:19 1
12:25:20 2
12:25:20 3
12:25:23 1
12:25:24 2
12:29:36 1
12:29:36 2
12:29:36 3

// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)

KEYPRESS(#DELETE)

//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
else
   WAITMS(50)
   //проверка на конверт и поиск кнопки отправить
   GETSCREEN
            LOGWRITE ("1")
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
   LOGWRITE ("2")
   $ARR_NUM = 0
   LOGWRITE ("3")
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
   LOGWRITE ("4")
      $X = $ARR_SCAN [$ARR_NUM]
      LOGWRITE ("5")
      INC($ARR_NUM,1)
      LOGWRITE ("6")
      $Y = $ARR_SCAN [$ARR_NUM]
      LOGWRITE ("7")
      INC($ARR_NUM,1)
      LOGWRITE ("8")
      IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
         WAITMS(1)
         LOGWRITE ("err")
      ELSE
         $ARR_NUM = 99999 // сброс цикла
         LCLICK($X, $Y)
         WAITMS(1000)
         LOGWRITE ("3")
      END_IF
   END_CYC
   UNDEFINE($ARR_SCAN)
END_IF

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помощь по синстаксису
« Reply #17 on: April 24, 2015, 12:50:46 PM »
Ну судя по логу "отправить2.bmp" не найдена, вследствие чего $ARR_SCAN пуст а значит и цикл выполняться не будет! С цифрами лога ты конечно переборщил  :D

Вот я добавил строку лога которая сообщает сколько найдено картинок. Уверен что у тебя там 0
Code: (clickermann) [Select]
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)

KEYPRESS(#DELETE)

//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
   LOGWRITE ("0")
   LCLICK($_return1, $_return2)
   WAITMS(100)
else
   LOGWRITE ("1")
   WAITMS(50)
   //проверка на конверт и поиск кнопки отправить
   GETSCREEN
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
   LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)
$ARR_NUM = 0
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
      LOGWRITE ("2")
      $X = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      $Y = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
         WAITMS(1)
         LOGWRITE ("err")
      ELSE
         $ARR_NUM = 99999 // сброс цикла
         LCLICK($X, $Y)
         WAITMS(1000)
         LOGWRITE ("3")
      END_IF
   END_CYC
   UNDEFINE($ARR_SCAN)
END_IF

farmacedus

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помощь по синстаксису
« Reply #18 on: April 24, 2015, 01:04:45 PM »
Ну судя по логу "отправить2.bmp" не найдена, вследствие чего $ARR_SCAN пуст а значит и цикл выполняться не будет! С цифрами лога ты конечно переборщил  :D

Вот я добавил строку лога которая сообщает сколько найдено картинок. Уверен что у тебя там 0
Code: (clickermann) [Select]
// вибор ника
LCLICK(1245,169)
WAITMS(500)
LCLICK(1245,169)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(1118,169)
KEYUP(#SHIFT)
WAITMS(50)
//вырезание ника
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#X)
WAITMS (50)
KEYUP (#X)
KEYUP (#CTRL)
WAITMS (50)

KEYPRESS(#DELETE)

//выделениеника в строке поиска
LCLICK(610,479)
WAITMS(500)
LCLICK(610,479)
WAITMS(50)
KEYDOWN(#SHIFT)
LCLICK(242,478)
KEYUP(#SHIFT)
WAITMS(50)
//удаление и вставка нового ника
KEYPRESS(#DELETE)
WAITMS (50)
KEYDOWN (#CTRL)
WAITMS (50)
KEYDOWN (#V)
WAITMS (50)
KEYUP (#V)
KEYUP (#CTRL)
WAITMS (50)
//поиск и нажатия на искать
GETSCREEN
IF_PICTURE_IN (231,488, 440,740, "искать.bmp", -1, 100)
   LCLICK($_return1, $_return2)
   WAITMS(100)
END_IF

//поиск изображения входящего сообщения
GETSCREEN
IF_PICTURE_IN (1173,293, 1258,938, "крестик.bmp", -1, 100)
   LOGWRITE ("0")
   LCLICK($_return1, $_return2)
   WAITMS(100)
else
   LOGWRITE ("1")
   WAITMS(50)
   //проверка на конверт и поиск кнопки отправить
   GETSCREEN
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
   LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)
$ARR_NUM = 0
   WHILE ($ARR_NUM < ARRSIZE($ARR_SCAN))
      LOGWRITE ("2")
      $X = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      $Y = $ARR_SCAN [$ARR_NUM]
      INC($ARR_NUM,1)
      IF_PIXEL_IN($X-599,$Y-0, $X+0,$Y+0, 16514039) // пиксель конверта (если есть конверт, то не жмет кнопку "отправить")
         WAITMS(1)
         LOGWRITE ("err")
      ELSE
         $ARR_NUM = 99999 // сброс цикла
         LCLICK($X, $Y)
         WAITMS(1000)
         LOGWRITE ("3")
      END_IF
   END_CYC
   UNDEFINE($ARR_SCAN)
END_IF
вот лог:
13:03:36 1
13:03:37 Найдено картинок: 0
13:03:39 1
13:03:40 Найдено картинок: 0

вопрос почему тогда если не найдено ни 1 картинки на искать оно нажимает нормально а значит и как минимум 1 картинку таки находит.
« Last Edit: April 24, 2015, 01:06:28 PM by farmacedus »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помощь по синстаксису
« Reply #19 on: April 24, 2015, 01:12:18 PM »
Это относится только к отправить2.bmp!
Code: (clickermann) [Select]
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
  LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)

Функция SCANPICTURE ищет все картинки отправить2.bmp на экране и складывает координаты в массив $ARR_SCAN. Две строки массива это 1 координата. Я просто написал функцию определения количества строк в массиве и поделить это на два ARRSIZE($ARR_SCAN)/2 таким образом мы можем узнать сколько найдено картинок "отправить2.bmp"

Как с тобой трудно... Разберись уже с картинками!

farmacedus

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помощь по синстаксису
« Reply #20 on: April 24, 2015, 01:14:01 PM »
Это относится только к отправить2.bmp!
Code: (clickermann) [Select]
   SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)
  LOGWRITE ("Найдено картинок: ", ARRSIZE($ARR_SCAN)/2)

Функция SCANPICTURE ищет все картинки отправить2.bmp на экране и складывает координаты в массив $ARR_SCAN. Две строки массива это 1 координата. Я просто написал функцию определения количества строк в массиве и поделить это на два ARRSIZE($ARR_SCAN)/2 таким образом мы можем узнать сколько найдено картинок "отправить2.bmp"

Как с тобой трудно... Разберись уже с картинками!
ну блин....почему же часть кода работает? Картинку находит....извини может я туплю но это ппц как мне не понятно. Давай покажу в скайпе всё.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помощь по синстаксису
« Reply #21 on: April 24, 2015, 01:19:12 PM »
Да просто графика может меняться! Сглаживание шрифтов там всякое и тд.

Code: (clickermann) [Select]
// Отдельным скриптом получаешь скорректированный снимок
GETSCREEN
COLORMODE(6) // уровень коррекции 6
SCREENSHOT
HALT
Из скриншота вырезаешь твою "отправить2.bmp"

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6) // такую же коррекцию указываешь в своем скрипте.
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 80) // а здесь мы снизим процент совпадения до 80% может и ниже

На самом деле тут ничего сложного.





farmacedus

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помощь по синстаксису
« Reply #22 on: April 24, 2015, 01:27:06 PM »
Да просто графика может меняться! Сглаживание шрифтов там всякое и тд.

Code: (clickermann) [Select]
// Отдельным скриптом получаешь скорректированный снимок
GETSCREEN
COLORMODE(6) // уровень коррекции 6
SCREENSHOT
HALT
Из скриншота вырезаешь твою "отправить2.bmp"

Code: (clickermann) [Select]
GETSCREEN
COLORMODE(6) // такую же коррекцию указываешь в своем скрипте.
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 80) // а здесь мы снизим процент совпадения до 80% может и ниже

На самом деле тут ничего сложного.
Сделал новый скрин. Сделал совпадения меньше, и как было так и осталось. Это магия(

farmacedus

  • Освоившийся
  • **
  • Posts: 40
    • View Profile
Re: Помощь по синстаксису
« Reply #23 on: April 24, 2015, 09:52:22 PM »
Ребят, помогите пожалуйста. Реал не понимаю в чем дело)

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Помощь по синстаксису
« Reply #24 on: April 24, 2015, 10:52:58 PM »
Добавь команду сохранить скриншот после снимка в скрипте, тогда сам сможешь увидеть что видел кликер в тот момент.

Code: (clickermann) [Select]
GETSCREEN
SCREENSHOT // сохранить снимок в файл
SCANPICTURE($ARR_SCAN, 0,0, $_xmax,$_ymax, "отправить2.bmp", -1, 100)