Автокликер Clickermann :: Форум

Основной раздел => Общие вопросы => Topic started by: Михаил on April 08, 2014, 04:53:39 PM

Title: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Михаил on April 08, 2014, 04:53:39 PM
Нужна помощь в доработке скрипта, заранее спасибо.
Игра про рыбалку.
При поклевке появляются 2 шкалы. G-тянуть катушкой, H-леской или наоборот, но это не важно. Если поклевка слабая то шкалы даже расти не будут (это нам не интересно). Но когда клюет что-то мощное, шкалы заполняются быстро. Если одна из шкал дойдет до 100% лопнет леска, короче будет плохо. Шкала когда растет от 0 до 100% меняет цвет от зеленого до ярко красного. По середине примерно пиксель с номером цвета где-то от 8000 и ниже (редко совпадает). Нужно чтобы нажатая кнопка G тянула шкалу до середины, потом отпускалась до нуля, в то время когда G находится на середине нажимается H, тянет шкалу до середины и т.д. пока не вытащишь.
Подсекаю в ручном режиме и запускаю скрипт
Скрипт:
GETSCREEN
$F<10000
$G<27000
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80) //После подсечки появляется характерное изображение с двумя шкалами
KEYDOWN(71)              //кнопка G           
IF_PIXEL_IN(20,524, 1018,534, $f)   //поиск пикселя в заданной области с номером цвета менее 27000
KEYUP(71)
WAITMS(10)
KEYDOWN(72)             //кнопка H                   
IF_PIXEL_IN(20,490, 1018,500, $g)  //поиск пикселя в заданной области с номером цвета менее 10000
KEYUP(72)
WAITMS(10)
END_IF
END_IF
END_IF

В итоге кнопкой G тянет процентов на 10-20, а H примерно на 80-100% обычно с обрывом снастей.
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Oraven on April 08, 2014, 08:22:47 PM
Ты там бред написал, переменные так не объявляют и нельзя в поиске указывать диапазон.
Тебе нужно не анализировать цвет от зеленого до красного а смотреть цвет серого фона!
Зажимаем кнопку и ждем пока серый цвет в шкале закроет поднявшийся уровень. В этом случае цикл прервется, идем дальше отпускаем клавишу и нажимаем другую кнопку и тоже самое.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)
   KEYDOWN(#G)
   WHILE(PXL(941,625) = 2696999) // координата и цвет пиксела пустой шкалы по середине (серый цвет)
      WAITMS(10)
      GETSCREEN
   END_CYC
   KEYUP(#G)
   WAITMS(50)
   
   KEYDOWN(#H)
   GETSCREEN
   WHILE(PXL(939,802) = 2696999) // тоже самое для второй шкалы
      WAITMS(10)
      GETSCREEN
   END_CYC
   KEYUP(#H)
   WAITMS(100)
END_IF
WAITMS(50)
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Михаил on April 09, 2014, 10:30:43 AM
Спасибо!!!!
Но есть проблемы:
1. Цвет пикселя при разных забросах разный (т.е. не равен 2696999). Как то бы указать диапазон цветов.
2. Не могу указать координаты пикселя, т.к. шкалы появляются в зависимости от заброса, т.е. по вертикали они всегда в одном месте, а по горизонтали в разном.
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Oraven on April 09, 2014, 11:01:59 AM
Спасибо!!!!
Но есть проблемы:
1. Цвет пикселя при разных забросах разный (т.е. не равен 2696999). Как то бы указать диапазон цветов.
2. Не могу указать координаты пикселя, т.к. шкалы появляются в зависимости от заброса, т.е. по вертикали они всегда в одном месте, а по горизонтали в разном.

Ну вот совсем никаких проблем тут нет  :)
1. Используй цветокоррекцию чтобы упростить цвета.

Code: (clickermann) [Select]
// Получение скриншота с цветокоррекцией
GETSCREEN
COLORMODE(6)
SCREENSHOT
HALT
С полученного скриншота возьми скорректированный усредненный цвет.
Можно поиграться с уровнем, но 6 это оптимально
Далее незабываем указать туже цветокоррекцию после GETSCREEN

2. Ты же вроде как используешь функцию поиска картинки этих шкал? Можно использовать возвращенные координаты шкал чтобы узнать их местоположение и относительно них искать в точке посредине шкалы.

Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)
   $x = $_return1 // записываем координаты в переменные
   $y = $_return2 // относительно этих координат нужно высчитать смещение на ценnр шкалы
   
   KEYDOWN(#G)
   COLORMODE(6)
   WHILE(PXL($x+40,$y+20) = 2696999) // координата и цвет пиксела пустой шкалы по середине (серый цвет)
      WAITMS(10)
      GETSCREEN
      COLORMODE(6)
   END_CYC
   KEYUP(#G)
   WAITMS(50)
   
   KEYDOWN(#H)
   GETSCREEN
   COLORMODE(6)
   WHILE(PXL($x+40,$y+30) = 2696999) // тоже самое для второй шкалы
      WAITMS(10)
      GETSCREEN
      COLORMODE(6)
   END_CYC
   KEYUP(#H)
   WAITMS(100)
END_IF
WAITMS(50)

Отдельным скриптом пишешь запись в лог координат и высчитываешь смещение.
Code: (clickermann) [Select]
GETSCREEN
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)
   print("Найден в координатах X=", $_return1, ", Y=", $_return2)
END_IF
HALT

Пример: на сколько пикселов от полученных координат нужно сдвинуться, чтобы попасть в центр шкалы.
Code: (clickermann) [Select]
$x+40,$y+20
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Михаил on April 09, 2014, 04:33:36 PM
Спасибо!!!! Все заработало. Ты гений!!!!
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: BigGul on April 16, 2014, 09:20:33 AM
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)

подскажите, что это -1, 80 ???
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Zets on April 16, 2014, 09:57:57 AM
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)

подскажите, что это -1, 80 ???

Читайте справку!

Синтаксис

IF_PICTURE_IN (x, y, x2, y2, "file", [bgcolor], [currency]) - производит поиск изображения в прямоугольной области буфера анализа


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

Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: BigGul on April 16, 2014, 11:38:26 AM
Спасибо!
У меня в справке вот-так:
Синтаксис

IF_PICTURE_IN (x, y, x2, y2, "file", [bgcolor]) - производит поиск изображения в прямоугольной области буфера анализа


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


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


Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: BigGul on April 16, 2014, 11:41:23 AM
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)

в этой строке -1 - это bgcolor. Верно? а что это за цвет -1?
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: aden on April 16, 2014, 12:58:25 PM
IF_PICTURE_IN (20,490, 1018,540, "I5.bmp", -1, 80)

в этой строке -1 - это bgcolor. Верно? а что это за цвет -1?

это значит bgcolor не задан то есть никакого цвета не игнорируется
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: Oraven on April 16, 2014, 01:59:19 PM
Спасибо!
У меня в справке вот-так:
Синтаксис

IF_PICTURE_IN (x, y, x2, y2, "file", [bgcolor]) - производит поиск изображения в прямоугольной области буфера анализа


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


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

Скачай последнюю версию 4.10
http://crapware.aidf.org/page/clickermann
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: BigGul on April 18, 2014, 06:39:31 AM
Спасибо! скачал. Всё ОК!
Title: Re: Помогите пожалуйста сделать скрипт при увеличении шкалы
Post by: ssanarhist on September 21, 2014, 09:37:06 AM
Спасибо!!!! Все заработало. Ты гений!!!!

Все вроде понятно. Но как выглядит файл I5?