Author Topic: Виртуальная привязка области  (Read 7679 times)

0 Members and 10 Guests are viewing this topic.

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Виртуальная привязка области
« on: September 06, 2018, 05:40:28 PM »
Нужно задать зону выполнения для скрипта, то есть все выполнялось в той зоне

1) поиск  будет картинка "1"это будущий 0,0 .проверить виден пиксель от картинки на 900,600. это зона выполнения скрипта будет

2) не находит картинку или пиксель
   2.1) Не находит картинку этот шанс мал но может быть, ск прикрыта другим(и) окном пусть по ищет другую картинку "2" которая находится с права если по координаторам то будущий 900,0 и кликнет, выведет окно на передний план (если искать пиксель есть большой шанс что найдет другое ?)
   2.2) не  находит нижний пиксель, пусть пои щит картинку "2" которая указывала 900,0 нашлась, значит полосу прокрутки прокрутить вниз надо, найти и опустить на 20пх в низ. И повтор с пункта (1)
После повторов раз 10, стоп и сообщение не магу вывести зону, или что-то подобное

Конечно не плохо бы реализовать нижнюю прокрутку и расширения окна в лево

И приведите пару примеров поиска и клика.
Пожалуйста комментируйте строки
« Last Edit: September 07, 2018, 10:19:22 AM by Vint »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Виртуальная привязка области
« Reply #1 on: September 06, 2018, 07:17:50 PM »
Нужно задать зону выполнения для скрипта, то есть все выполнялось в той зоне

1) поиск  будет картинка "1"это будущий 0,0 .проверить виден пиксель от картинки на 900,600. это зона выполнения скрипта будет

2) не находит картинку или пиксель
   2.1) Не находит картинку этот шанс мал но может быть, ск прикрыта другим(и) окном пусть по ищет другую картинку "2" которая находится с права если по координаторам то будущий 900,0 и кликнет, выведет окно на передний план (если искать пиксель есть большой шанс что найдет другое ?)
   2.2) не  находит нижний пиксель, пусть пои щит картинку "2" которая указывала 900,0 нашлась, значит полосу прокрутки прокрутить вниз надо, найти и опустить на 20пх в низ. И повтор с пункта (1)
После повторов раз 10, стоп и сообщение не магу вывести зону, или что-то подобное

Конечно не плохо бы реализовать нижнюю прокрутку и расширения окна в лево

И приведите пару примеров поиска и клика.
Пожалуйста комментируйте строки
Я вот посмотрел твои предыдущие сообщения и темы, ну вроде ж писал хоть какието скрипты, и толковые, и помогали же.
А судя по запросам в этой теме, ты уже захотел чтобы все писали за тебя?  :o
Может седует начать хоть с чегото? Выложить наработки, какието простейшие скрипты. А потом уже вместе будем дополнять, исправлять, налаживать.
Даже неохота было вникать в суть задачи. :(

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Виртуальная привязка области
« Reply #2 on: September 06, 2018, 07:59:13 PM »
Давай по другому объясню. Нужна полноценная привязка, привязка к игре запрещена то есть черный экран.
Чтобы работало как полагается да и остальные мелочи доделать нужна виртуальная привязка.
Чтоб некоторые вещи убрать из скрипта в первую очередь картинки много, можно заменить на пиксели, да и поиск можно на ожидание менять спокойно. Проблема одна малейший сдвиг грубо говоря не работает. поэтому пака написан па простому код время выполнения дольше да и ошибки есть

пример прошу на всякий случай вдруг не пойму как писать с этим кодом
сейчас для хроников почти написал
еще не думал ка там сборку делать
осталось в хрониках дирижабль сделать

с привязкой это бы лоб легче на много

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Виртуальная привязка области
« Reply #3 on: September 06, 2018, 08:31:32 PM »
Нужна полноценная привязка, привязка к игре запрещена то есть черный экран.
Чтобы работало как полагается да и остальные мелочи доделать нужна виртуальная привязка.
Ок, давай начнем с этого. Что в твоем понимании значит "виртуальная привязка"? И чем она отличается от существующей "обычной привязки"?

Чтобы работало как полагается да и остальные мелочи доделать...
То есть без привязки не работает???

Или работает, но хочется чтоб пк не был занят только лишь ботом? В этом случае (если проблемы при работе с привязкой), логичнее было бы поставить виртуальную машину, и проблема решится.



Quote
Проблема одна малейший сдвиг грубо говоря не работает. поэтому пака написан па простому код время выполнения дольше да и ошибки есть
Ты серьезно? Кто нибудь из присутствующих хоть немного понял из написанного? Остальное в том же духе  :-\ . Ты извини, я не в обиду, но если ты пишешь свои мысли как они есть, то это не значит что все поймут что это все значит...



Так, прошу прощения. Посидел пять минут всматриваясь в эти два предложения, скорее всего понял.
Правильно примерно так:
"Проблема одна - малейший сдвиг грубо говоря не работает. Поэтому пака написан по простому код. Время выполнения дольше, да и ошибки есть."

« Last Edit: September 06, 2018, 08:51:29 PM by dramster »

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Виртуальная привязка области
« Reply #4 on: September 06, 2018, 09:37:22 PM »
Чтобы я мог перенести на любой комп, передвинуть окно, итд
Надо нашёл картинку перевести координаты переменную $XY00 =  $_return1, $_return2
И чтобы плясал весь поиск и выполнения (Скрипт) от переменной $XY00
Хотя эта переменная находится X600,Y100. я чтоб писал , якобы она находится X0,Y0
Как написать эту переменную так чтобы работал на весь код или вписать


И это просил как правильно написать IF_PIXEL_IN ($X1-96,$Y1-8, $X2+120,$Y2+19, 4145895) может понял бы как то все написать


dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Виртуальная привязка области
« Reply #5 on: September 06, 2018, 10:17:52 PM »
Чтобы я мог перенести на любой комп, передвинуть окно, итд
Надо нашёл картинку перевести координаты переменную $XY00 =  $_return1, $_return2
И чтобы плясал весь поиск и выполнения (Скрипт) от переменной $XY00
Хотя эта переменная находится X600,Y100. я чтоб писал , якобы она находится X0,Y0
Как написать эту переменную так чтобы работал на весь код или вписать


И это просил как правильно написать IF_PIXEL_IN ($X1-96,$Y1-8, $X2+120,$Y2+19, 4145895) может понял бы как то все написать
добавлено: Кирил уже предложил, я более подробно расписал.


Сложно...

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

WNDPOS (hwnd, x, y)  - помещает окно на экране в указанные координаты.
hwnd - HWND окна
x, y - экранные координаты

Определить hwnd можно двумя способами:

1. по координатам
HGET (x, y) - функция. Возвращает hwnd для элемента по заданным координатам.

2. по заголовку
WNDFIND (title, [begin] ) - Функция. Возвращает HWND окна с заданным заголовком.
title - заголовок окна либо его часть
begin - необязательный параметр; флаг сообщает о том что строка title может находиться ТОЛЬКО в начале заголовка

Если это чтото типа эмулятора, где размеры окна не статичны (меняются мышкой в углу), изображение при этом масштабируется, то требуется задать нужные размеры окна.
WNDSIZE (hwnd, w, h) - задает размер окна.
hwnd - HWND окна
w, h - ширина, высота окна

В этом случае нужно учитывать размеры самой рамки окна и размер заголовка. Зависит от ОС и стиля оформления.

В общем, твой код будет выглядеть примерно так:
Code: (clickermann) [Select]
$hwnd = WNDFIND ("Заголовок окна, то что сверху на нем написано.")

WNDPOS ($hwnd, 0, 0) //либо другие координаты

WNDSIZE ($hwnd, 800, 600) //либо другой размер. Использовать только в случае, если разрешение окна не статично.

//далее твой скрипт с нужными координатами

//пример
GETSCREEN(0, 0, 800, 600) // естественно, область снимка свою пиши
IF_PIXEL_IN (0, 0, 800, 600, 4145895) // естественно, область поиска свою пиши
//и так далее
//..........
//..........
В этом случае, на любом пк твое окно в начале переместится в нужные координаты. И если требуется, изменит свои размеры. И будет счастье  :D .


KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Виртуальная привязка области
« Reply #6 on: September 06, 2018, 11:09:56 PM »
Что-то подобное, но не то у одноклассников заголовок, может несколько вариантов.

Вот набросал начальный код заново
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "0000.bmp", -1, 100)  // ищет картинку нашол значит и есть начальные координаты
      $check = 1
      LOGWRITE ("1")
      $X = $_return1+999
      $Y = $_return2+597
     
      $X00 = $_return1
      $Y00 = $_return2
      WHILE(PXL ($X, $Y) ! 1653112)  // проверка что вся область которая нужна видна
         WAITMS (100)
      END_CYC
      WAITMS(100)
   ELSE
      WAITMS(50)
// след код корректировки     
   END_IF
END_CYC
HALT

// от этого чтоб все остальное работало снимки поиски выполнения итд, как сделать
$X00     
$Y00
до остального думаю додумаюсь сам
« Last Edit: September 06, 2018, 11:22:39 PM by KingDrakonov »

dramster

  • Герой форума
  • *****
  • Posts: 1134
    • View Profile
Re: Виртуальная привязка области
« Reply #7 on: September 07, 2018, 12:00:03 AM »
Что-то подобное, но не то у одноклассников заголовок, может несколько вариантов.
Может я чего то не знаю, и у одноклассников есть какоето приложение специальное. Но если это просто страница открытая в браузере, то обычно заголовк окна браузера выглядит примерно так - "Название страницы - Mozilla Firefox" или "Название страницы - Opera"

К примеру вот такой код :
Code: (clickermann) [Select]
$hwnd = WNDFIND ("Mozilla Firefox")

WNDPOS ($hwnd, 0, 0) //либо другие координаты

WNDSIZE ($hwnd, 800, 600) //либо другой размер.

halt

Переместит браузер и изменит размеры независимо от открытой в нем страницы.

Если всеже у ОК есть какоето свое приложение, и заголовок в самом деле меняется постоянно (в чем я сомневаюсь), то никто не запрещает получать hwnd по HGET (x, y).



По поводу кода выше, по поиску картинки с начальными координатами тоже можно использовать. Но такой подход немного сложнее в написании. И этот цикл с ожиданием  пикселя WHILE(PXL ($X, $Y) ! 1653112) както бредово выглядит, тем более без GETSCREEN. Но видимо тебе виднее.

Сейчас пытался тебе написать как должен работать этот "// от этого чтоб все остальное работало снимки поиски выполнения итд, как сделать", уже начал писать... И понял, что все же для тебя это будет слишком сложно. Я не смог даже толком описать принцип написания такого скрипта, так как там требуется в начале высчитывать (искать) нужные координаты, а потом только вписывать эти данные в код. Короче гемор еще тот...

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Дирижабль для хроников
« Reply #8 on: September 07, 2018, 09:56:56 AM »
// от этого чтоб все остальное работало снимки поиски выполнения итд, как сделать
$X00     
$Y00
Вот прямо так и делай. Используй эти переменные, что тебе мешает?
Прописывай в скрипте где нужно.


Я все универсальные скрипты делал на таких опорных изображениях. Выставление окна или получение его координат у меня не прижилось ввиду ограниченности использования. Если окно виндовое мы сразу зависим от темы оформления и версии OS. Да и с окном флеша на странице (для казуальных игр) никак не поможет перемещения браузера.
Вариант с использованием браузера где флеш можно открыть в отдельном немодальном окне тоже не прижился. Не заставишь всех использовать непревычный браузер.
« Last Edit: September 07, 2018, 10:01:19 AM by Vint »


KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Виртуальная привязка области
« Reply #9 on: September 07, 2018, 10:13:24 AM »
спасибо кирил почти то что надо попробую.
все равно прокрутка нужна плавная вертикальная на ноуте не вписывается, колесом и стрелками не катит крутить

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Виртуальная привязка области
« Reply #10 on: September 07, 2018, 10:26:57 AM »
На ноутах с высотой экрана 768 лучше использовать полноэкранный режим нажав F11
Скролить окно туда сюда на пару строк не вариант. Ну и в любом случае делать это не колесом, а стрелками на клавиатуре.
Для мозилы есть плагин плавного скрола "SmoothWhell".


KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Виртуальная привязка области
« Reply #11 on: September 07, 2018, 11:29:03 AM »
На ноутах с высотой экрана 768 лучше использовать полноэкранный режим нажав F11
Скролить окно туда сюда на пару строк не вариант. Ну и в любом случае делать это не колесом, а стрелками на клавиатуре.
Для мозилы есть плагин плавного скрола "SmoothWhell".
да плангина твоего на оф саите не вижу
есть программа для винды но она на все влияет
к стате особенно на ноуте мене нужно пустое место хоч этих 250-300пх удобней с левой стороны для мониторинга
если не надо не чего кроме игры, использую полный экранный режим игры использую. это уже другой скрипт

Vint

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3935
  • Лечу куда хочу. cman 4.13.014x32, 4.14.003 W10
    • View Profile
Re: Виртуальная привязка области
« Reply #12 on: September 07, 2018, 12:18:04 PM »
да плангина твоего на оф саите не вижу
А там и нет
http://smoothwheel.mozdev.org/


Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Re: Виртуальная привязка области
« Reply #13 on: September 07, 2018, 12:25:03 PM »
да плангина твоего на оф саите не вижу
А там и нет
http://smoothwheel.mozdev.org/

На какой версии ты сидишь? В мазилле давно уже есть встроенная плавная прокрутка. Сам использую 47 версию.

KingDrakonov

  • Освоившийся
  • **
  • Posts: 39
    • View Profile
Re: Виртуальная привязка области
« Reply #14 on: September 07, 2018, 12:56:11 PM »
Справку не читал среди обычных выполнений плавной прокрутки не замечал а так 52.9 вроде последния версия которая поддерживает мои дополнения