Author Topic: Запись "сложного" скрипта.  (Read 11682 times)

0 Members and 5 Guests are viewing this topic.

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #30 on: December 02, 2019, 11:36:10 PM »
Если на середину там разница 200 пикселей, нужно по оси х отнять 200 пикселей
Code: (clickermann) [Select]
LCLICK($_return1 - 200, $_return2 + 145) // Клик по напасть (средняя кнопка)
Не могу понять как заставить скрипт работать на закрытие диалогового окна в миссиях. При запуске он как положено ждет прохождения миссии и после того как миссия пройдена и появляется кнопка продолжить жмет пропустить. Все ок. Но вот не нажимает после этого на кнопку закрыть. Хотя я поставил смещение курсора как положено.
Code: [Select]
// Ожидаем появления продолжить
$check = 0
WHILE($check = 0)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "продолжить.bmp", -1, 60)
      LCLICK($_return1 + 10, $_return2 + 10) // Клик по продолжить
      WAITMS(500)
      LCLICK($_return1 - 5, $_return2 + 5) // Клик по пропустить
      WAITMS(500)
      LCLICK($_return1 + 360, $_return2 - 510) // Клик по закрыть
      $check = 1
   ELSE
      WAITMS(50)
   END_IF
END_CYC
 
HALT
И почему то при параметрах картинки -1,70 или больше(80,90) он на нее не нажимает. Я так понял что вторая цифра отвечает за процент совпадения пикселей в игре и картинки? и чем меньше значение тем дольше он ее анализирует? Просто при выскакивании картинки "Продолжить" в игре, нажатие на нее происходить лишь спустя секунды 3-4 а то и все 5.
« Last Edit: December 02, 2019, 11:38:05 PM by lahesis333 »

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #31 on: December 03, 2019, 12:08:40 PM »
Там такое условие, запуск игры появляется окно с крестиком, первое всегда, второе может быть а может и нет, 5 сек хватает что бы 2 окна поймать, надо проверить первое и закрыть потом в течении 5 сек чекать второе, если есть закрыть, если нет пойти дальше.
Так можно это проверять? Вроде работает, но не уверен что сделал правильно.
Code: (clickermann) [Select]
$check = 2
$time = $_time_t + 8 // таймер на 8 секунд
WHILE($time > $_time_t) | ($check > 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
      INC($check,-1)
      LCLICK($_return1 + 10, $_return2 + 10)
      WAITMS(1500)
   ELSE
      WAITMS(1500)
   END_IF
END_CYC
IF($time ! 0)
END_IF

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #32 on: December 03, 2019, 12:11:05 PM »
Проверяй такой вариант
Code: (clickermann) [Select]
#name "Хроники хаоса"

// Проверяем и закрываем рекламу
$check = 2
$time = $_time_t + 8 // таймер на 8 секунд
WHILE($time > $_time_t) | ($check > 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
      INC($check,-1)
      LCLICK($_return1 + 10, $_return2 + 10)
      WAITMS(1500)
   ELSE
      WAITMS(1500)
   END_IF
END_CYC
IF($time ! 0)
END_IF
WAITMS(800)

// Ищим арену
GETSCREEN
COLORMODE(6)
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Арена.bmp", -1, 90)
   LCLICK($_return1 + 15, $_return2 + 15) // Клик по арена
   WAITMS(1500)
   LCLICK($_return1, $_return2 + 145) // Клик по напасть
   WAITMS(1500)
   LCLICK($_return1 + 280, $_return2 + 205) // Клик по в бой
   WAITMS(1200)
END_IF

// Ожидаем появления паузы
$check = 0
WHILE($check = 0)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Пауза.bmp", -1, 90)
      LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза
      WAITMS(500)
      LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить
      $check = 1
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

HALT // Удали это если надо что бы скрипт работал без остановки

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #33 on: December 03, 2019, 12:14:08 PM »
Подскажите пожалуйста, как вы высчитываете нужные координаты куда кликнуть после нахождения нужной картинки? на этом примере:
Code: [Select]
// Ожидаем появления паузы
$check = 0
WHILE($check = 0)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Пауза.bmp", -1, 90)
      LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза
      WAITMS(500)
      LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить
      WAITMS(1500)
      LCLICK($_return1 - 32, $_return2 + 44) // Клик по закрыть
      $check = 1
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
"Пауза.bmp", -1, 90 - Это нахождение части картинки(что такое -1,90?пытался понять через справку, но еще больше запутался)
LCLICK($_return1 + 10, $_return2 + 10) // Клик по пауза - Это клик непосредственно по нашедшейся картинке(почему стоит смещение +10 и +10?или это не смещение?)
LCLICK($_return1 - 460, $_return2 + 340) // Клик по пропустить - Это клик по кнопке пропустить. -460 и +340 смещение относительно какой точки? И можно ли быстро узнать на сколько идет смещение до нужно точки нажатия? А то вчера полвечера просидел с калькулятором считал куда нажать ;D

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #34 on: December 03, 2019, 12:35:17 PM »
Это из справки кликермена
IF_PICTURE_IN ... END_IF

Производит поиск изображения в прямоугольной области буфера анализа.

Синтаксис

IF_PICTURE_IN (x, y, x2, y2, file, [bgcolor], [currency] )
...
END_IF



Параметры
x, y - числовые координаты левого верхнего угла области поиска
x2, y2 - числовые координаты правого нижнего угла области поиска
file - bmp файл, поиск которого будет осуществляться
bgcolor - необязательный параметр; игнорируемый цвет фона входного изображения
currency - необязательный параметр; точность поиска в процентах (1..100)



Возвращаемые параметры
$_return1 - x координата найденного изображения
$_return2 - y координата -//-



Пример
Code: (clickermann) [Select]
getscreen

IF_PICTURE_IN (10,20, 300, 300, "somefile.bmp")
 move($_return1, $_return2)
END_IF


Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #35 on: December 03, 2019, 12:53:45 PM »
После поиска картинки, переменные примут значения координат, найденной картинки (левый верх куска картинки) и дальнейшие расчеты надо делать относительно этих координат. например картинка, которую мы ищем, находится в координатах 10 10 переменные  $_return1 и $_return2 присвоили значение 10 10, что бы попасть по картинке, желательно прибавить к ним пару пикселей получится ($_return1 + 5, $_return2 + 5) теперь нам надо кликнуть ниже и правее от найденной картинки на 10 по х и на 20 по у, мы помним что $_return1 и $_return2 = х10 у10 значит надо прибавить получится ($_return1 + 10, $_return2 + 20) и скажем нужно еще кликнуть левее на 20 и ниже на 30 получится ($_return1 - 20, $_return2 + 30). что бы узнать координаты искомой картинки, можно после поиска картинки, прописать запись в лог такую строчку
Code: (clickermann) [Select]
GETSCREEN
 IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
  LOGWRITE ($_return1, " х ", $_return2)
END_IF
или такую
Code: (clickermann) [Select]
GETSCREEN
 IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Крестик.bmp", -1, 90)
  MOVE($_return1, $_return2) // Курсор прыгнет на эти координаты, потом можно запомнить их или нахать Alt+Q они запишутся в открытом редакторе кликермана
END_IF

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #36 on: December 03, 2019, 12:59:50 PM »
Quote
И можно ли быстро узнать на сколько идет смещение до нужно точки нажатия? А то вчера полвечера просидел с калькулятором считал куда нажать ;D
Есть проги которые все это высчитывают, я привык сам с добрым калюкулятором, нахожу координаты картинки потом от них отнимаю те в которые надо нажать после поиска, если значение положительное тогда прибавляешь к $_return если отрицательно то отнимаешь все просто

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #37 on: December 03, 2019, 01:26:30 PM »
Да и еще, учти такой момент, когда ты найдешь картинку переменные $_return запомнят координаты картинки 1 и все расчеты производишь относительно этих координат, но когда ты запустишь поиск второй картинки или пикселя,в переменные $_return запишутся уже координаты картинки 2.

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #38 on: December 03, 2019, 08:54:29 PM »
Да и еще, учти такой момент, когда ты найдешь картинку переменные $_return запомнят координаты картинки 1 и все расчеты производишь относительно этих координат, но когда ты запустишь поиск второй картинки или пикселя,в переменные $_return запишутся уже координаты картинки 2.
Я не совсем понял как пользоваться логом для поиска координаты искомой картинки...В лог то прописал команду чтобы курсор прыгнул на картинку но не знаю как применить чтобы все работало...
И еще вопрос. Как сделать условие:если картинка найдена, то мы нажимаем на нее. а если не найдена то нажимаем на другую(или ESC)?
И как бы сделать так, чтобы при нажатии на картинку, если она снова появляется в том же месте, на нее нажималось именно столько раз, сколько она будет появляться?
« Last Edit: December 03, 2019, 11:31:42 PM by lahesis333 »

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #39 on: December 04, 2019, 11:54:58 AM »
Не совсем понятно, что ты не понял, вроде я довольно понятно все написал.
По поводу если не найдена картинка:
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // Если найдено
   LCLICK($_return1, $_return2) // Клик по картинке
   WAITMS(100)
ELSE  // Если не найдено
   WAITMS(300)
   KEYPRESS(#ESC) // Жмем ESC
   WAITMS(50)
END_IF
Quote
И как бы сделать так, чтобы при нажатии на картинку, если она снова появляется в том же месте, на нее нажималось именно столько раз, сколько она будет появляться?
Напиши прямо куда нажимать? Ты про подарки от друзей? Добавь меня в скайп ggk-vova, вечером если не буду занят, пообщаемся, и попробуем собрать то что тебе нужно.

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #40 on: December 04, 2019, 07:25:26 PM »
Напиши прямо куда нажимать? Ты про подарки от друзей? Добавь меня в скайп ggk-vova, вечером если не буду занят, пообщаемся, и попробуем собрать то что тебе нужно.
Когда заходишь в ежедневные задания, то там есть кнопки завершить(когда выполнил арену и миссии и тд). Там может быть 3,4,5,6 и тд картинок завершить. Когда на нее нажимаешь, она пропадает и на ее месте появляется следующая(если еще есть такие). Нужно чтобы нажималось на одинаковую картинку ЗАВЕРШИТЬ, пока она будет появляться. Как только они закончатся то начать ESC. У меня идея только продублировать несколько раз поиск этой картинки. И везде вставить ELSE с нажатием ESC. Но скрипт и так большой получается а тут еще и 6-7 штук одного и того же. Может можно как то более грамотно организовать?
А также вопрос по мигающей кнопке. Есть мигание, но оно каждый день в другом место. Цвет один и тот же. Нужно найти пиксель(и) в произвольной точке и нажать. Пробовал скринить в тот момент когда появляется "свечение" кнопки, но не находит...
« Last Edit: December 04, 2019, 07:55:15 PM by lahesis333 »

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #41 on: December 04, 2019, 09:01:24 PM »
Пробуй так
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   COLORMODE(6)
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "Завершить.bmp", -1, 95)
      LCLICK($_return1, $_return2)
      WAITMS(500)
      MOVE($_return1 - 50, $_return2)
   ELSE
      KEYPRESS(#ESC)
      $check = 1
      WAITMS(150)
   END_IF
END_CYC
Quote
А также вопрос по мигающей кнопке.
А ее надо увидеть что бы понять что с ней делать

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #42 on: December 05, 2019, 11:26:00 AM »
А ее надо увидеть что бы понять что с ней делать
Вот она. Она постоянно мерцает от менее желтой рамки к более желтой. Нужно нажимать на саму картинку в центре.
« Last Edit: December 05, 2019, 12:18:28 PM by lahesis333 »

Ramzesia

  • Активный участник
  • ***
  • Posts: 263
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #43 on: December 05, 2019, 12:48:36 PM »
Целиком окно заскринь, и как ты скрины делаешь?
Если через пеинт то при сохранении выбери BMP формат

lahesis333

  • Освоившийся
  • **
  • Posts: 55
    • View Profile
Re: Запись "сложного" скрипта.
« Reply #44 on: December 05, 2019, 01:15:22 PM »
Целиком окно заскринь, и как ты скрины делаешь?
Если через пеинт то при сохранении выбери BMP формат
Это я чисто для форума быстро скриню с работы. У нас тут плагин установлен и он сразу сохраняет автоматом.
Вот все окно