Show Posts

This section allows you to view all posts made by this member. Note that you can only see posts made in areas you currently have access to.


Messages - digiTALker

Pages: [1] 2
1
вы уверены что ссылка правильная? не смог насчитать там 15 картинок.
Да я кусок кинул, разве это принципиально сколько их, хоть 4.

2
Скинь сюда пару скринов для наглядности. Так быстрее ктонибудь поможет. Скрины обязательно в bmp, ну или png.
https://i.imgur.com/JlhDi0b.png

Quote
Для начала проверить одинаковые ли картинки на 100% из разных мест.
Если одинаковые - снимать хэш каждой позиции. Имея 25 хэшей искать одинаковые.
Если с поиском беда, всё плывёт всё меняется, тогда гетскринить и сохранять все 25 образцов каждый под своим номером. Потом брать по очереди и искать с % допуска. Добиться нахождения 2-х картинок в каждом случае. Их и кликаем. Чтобы не искать повторно уже открытые, попутно вести базу открытых номеров и их пропускать при поиске.

2-й вариант, можно не сохранять сразу все 25, а делать по очереди. Но это если всё будет укладываться в время показа.

Почему картинок нечётное число? Разве так может быть? Или в центре картинки нет?
Картинок 15. По мере прогрузки они цветные, как только все прогружаются они становятся в градациях серого.
Как только появились они не меняются до полной смены сразу всех картинок разом (если не уложился во время).

3
Доброе время суток. Игра простая для тренировки памяти, появляется массив картинок, за несколько секунд надо найти две одинаковых. Потом все картинки меняются и снова надо найти две одинаковых.

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

4
Немножечко в тему топика )))
Вот как выглядит работающий скрипт для EVE-Online для прыгания по гейтам.
Не изучил пока как сделать чтоб  кодировка передавалась латиницы.
Code: (clickermann) [Select]
// ãîëóáåíüêàÿ ñêîðîñòü 16777087
// áåëûé öâåò â îâåðâüþ 16777215
begin:


GETSCREEN
COLORMODE(7)


IF(PXLXOR(0,0, $_xmax,$_ymax) = 8421504 )  // ïðîâåðêà ëèêâèäíîñòè
   goto(begin)
END_IF

IF(PXL(804,884) = 8388479)  // ïðîâåðêà ñâåòîôîðà

   IF_pixel_in(1258,117,1375,126,16777215)  // ïðîâåðêà îâåðâ

      IF_pixel_in(954,1013,964,1022,16777087)   //ïðîâåðêà ñèíåíüêîé
   
         WAIT(7)
         
         GOTO(begin)
      END_IF
      LOGWRITE ("ñèíåíüêîé ÍÅÒ ñîáèðàþñü êëèêíóòü")
      LOGSHOW (1)
      LCLICK(RND(1234,1504),RND(89,103))
      WAIT(RND(1,3))
      DBLCLICK(RND(1589,1613),RND(88,112))

      WAIT(4)
   ELSE

      GOTO(begin)
   END_IF
ELSE

HALT  // åñëè ñâîòîôîð ïðîïàë
   
END_IF


5
ограничения области используются для ускорения работы, а если результат работы непредсказуем, то это уже долгая лотерея.
Зачем изгаляться и писать скрипты определяющие годность GETSCREEN(600,600,900,900), когда можно просто написать GETSCREEN и относительно быстро получить нужный результат?
Ну первичная моя цель это обратить внимание разработчика. Знаешь как Хаус как то нанял себе полотёра вместо своих докторов, и советовался с ним. По сути ему не нужны были его советы, но он помогал творческому процессу своими бесполезными высказываниями. Может и мы копаясь скажем что-то от чего разработчик скажет - ЕВРИКА )), это может быть даже косвенно.

Quote
Больше того, номера бракованных скринов всегда одни и те же 2,3,5,7,10,13,16,25,27,30,33,37,57,86,100
Новый метод шифрования? ))
 
На самом деле можно наблюдать как мерцает изображение в лупе, думаю что та же причина что заставляет мерцать в квадрате превью действует и на битые скрины.

6
В свете недавнего обсуждения провёл серию опытов скрипта из двух строк.
Code: (clickermann) [Select]
GETSCREEN(600,600,900,900)
SCREENSHOT("test flash")

И выяснил что:
  • В случае привязки к окну Гетскриин делается всего окна целиком, не смотря на указанную область. ~98% всех снимков дают скрин окна а внутри просто черный цвет, и только пара процентов получается годных. (выборка 150 снимков)
  • Если активировать режим прозрачности в Clickermann, то выход годных поднимается и превышает 50%, но не системно. Уж не знаю возможно это совпадение, выборка была тоже не большая (150 снимков).
  • Если не привязывать к окну, то уже успешно делается снимок только нужной области и выдаёт 100% годных, никакого мерцания нет. Но цель работать именно с привязкой, чтобы можно было и другими делами заниматься на компе, ибо идея привязки очень импонирует.
    Если выключить Антиаляйсинг, то выход годных повышается в обоих случаях, но не значительно, на такой короткой выборке данным фактом можно пренебречь.

Родилась идея заставить его снимать скрины до тех пор, пока внутри будет хоть какой то цвет кроме чёрного, и только в этом случае разрешить приступать к алгоритму поиска нужной точки в этом скрине. Скажите плиз в какую сторону читать для реализации оного?

7
Ты в оконном режиме все это делаешь? Выключи его и проблемы исчезнут.
Если работать в фулл скрине, то тогда совсем грусно становится. Я лучше буду пытаться адаптировать скрипт под мерцание, например снимать три скрина подряд, и если хоть в одном есть нужная точка то условие будет выполнено например.

А чтобы работать без привязки, это надо второй монитор использовать, а это только когда вернусь домой (

8
Ох зря ты все это с юморком написал, что это должны сделать, а на самом деле НЕ должны...  ;D Найдутся СОТНИ, которые всё примут БУКВАЛЬНО  ;D А в некоторых случаях и Я буду в тех сотнях  ;D ;D ;D
Присоединяюсь, я вот нубас, но вроде со средним IQ, так читаю буквально, глаз режет, но повинуюсь.
Двигаюсь дальше, читаю, сталкиваюсь с логической не состыковкой, но читаю и внимаю - я же нуб, чужой монастырь и т.д.
Прочитав далее середины, в голове уже стек логических ошибок переполнен, мотаю в верх чтобы внимательно изучить название и предисловие - всё встало на свои места, а ведь некоторые поди не столкнутся с логическими несоответствиями.

9
Думаю что теперь будет нагляднее. Все предыдущие мои проблемы сводятся к одному - разнице в координатах.
В прикрепленных изибражениях видно что координаты с использованием лупы и без - разные.
Причем когда я использовал лупу, мне приходилось держать её заметно ниже нужной точки чтобы в квадратике отобразилось то что надо. Что важнее при использовании лупы? То что отображается в квадрате превью или то место где находится курсор фактически?

У меня превью лупы работает только если включен режим прозрачности.

На скринах не видно моего курсора, кстати он свой у игры, и пошукав по форуму, я понял что это важно упомянуть.

Область в которую успешно тыкает кликерман изображена прямоугольниками и для её определения я не пользовался лупой.

Я пробовал вставить координаты для определения наличия зеленой точки и без использования лупы (пришлось искать на ощупь, так как курсор тоже пришлось двигать ниже.

Где можно узнать сопоставление кодов цветов, и почему мне кликерман говорит что цвет 8388479 и это видно на скрине, но как заметил Vint такого цвета в этом диапазоне нет в принципе.
Спасибо за три варианта моего скрипта, но у меня все равно упирается получается в определение корректного цвета.

Вот что еще я обраружил, если использовать лупу, то изображение в квадрате превью мерцает, то есть то нет. Я подумал что это просто нюанс её работы, но теперь думаю что оно и правду там мерцает, потому как скрипт с использованием знака "=" в условии иногда запускается, а потом проделав несколько циклов, отрубается раньше времени. Т.е. ему то удовлетворяют условия чтобы выполняться, то вдруг нет. Думаю что иногда getscreen попадает в одно из таких "мерцаний" и естественно что там не обнаруживается моего цвета. Могла ли быть это защита от разработчиков игры?! Зная их, еще как!

Если мои домыслы верны, то как тогда получать достоверную картину, делать выборку из скриншотов и анализировать нет ли в одном из них?

10
Час от часу не легче, сохранил скриншот в файл, открыл Гимпом и посмотрел координаты нужной мне точки, они действительно оказались немного другими. Я вставил эти новые координаты и скрипт стал запускаться уже со снаком "=" но выполнял один цикл и вырубался. Я запросил через лог полученный цвет в новой моей точке, но цвет не изменился. Хотя это ничего не изменило. Странно то что в других то точках тойже системы координат все тыкает исправно!

11
ДРУГОЙ СПОСОБ ПОЛУЧЕНИЯ ЦВЕТА - сделать скрин в COLORMODE(7) и внимательно посмотреть, что видит кликер, так сказать в масштабе, а не по одному пикселю лупой ловить, для полноты восприятия можно сделать скрины и с другой коррекцией

"!" и "="  знаки неравно и равно, если начнём писать гайды по их интерпритации, то зависнем где-то между арифметикой 1 класс и смыслом жизни.

 и должно залипать если цикл неработает, ведь тогда без пауз
GETSCREEN
COLORMODE(7,782,844,822,880)
постоянно крутится.
 Если цвет пикселя принимает "якобы нужное" значение, а цикл неостанавливается, то налицо факт вредительства; или цвет модифицируется или изначально опредёлён неверно.

С залипанием мой косяк, почему то с прошлого раза не сохранилась настройка повторения  скрипта. Вот он и гонял его до залипания.

Code: (clickermann) [Select]
LOGWRITE ("öâåò â 803,861: ", PXL(803,861))
LOGSHOW(1)
мне выдал
Code: [Select]
18:15:36 цвет в 803,861: 8355711
18:23:38 цвет в 803,861: 8355711
18:29:38 цвет в 803,861: 8355711
18:33:48 цвет в 803,861: 8355711
18:35:58 цвет в 803,861: 8355711
18:41:29 цвет в 803,861: 8355711
18:41:40 цвет в 803,861: 8355711
18:42:29 цвет в 803,861: 8355711
18:42:43 цвет в 803,861: 8355711
18:42:50 цвет в 803,861: 8355711
18:46:59 цвет в 803,861: 8355711
18:48:10 цвет в 803,861: 8355711
18:49:49 цвет в 803,861: 8355711
18:50:57 цвет в 803,861: 8355711

12
Quote from: Vint
Нет никаких вариантов зелёного. В COLORMODE(7) есть только цвет 8388607, он и должен быть в условии. И по словесному описанию, там действительно должно быть "равно"
Code: (clickermann) [Select]
WHILE(PXL(803,861) = 8388607)
Цвет 8388479 я получил используя "лупу" в интерфейсе программы. Другой способ получения цвета мне не известен.


Quote
Ну так раз этот цвет пропал, его нет, то цикл и будет работать. Ставь вместо "!" знак  "=", и цикл будет работать пока цвет "точно" не пропадет.
И да , на всякий случай проверяй,  что у тебя там на самом деле за цвет.
При постановке знака "=" экран игры "залипает" ничего не происходит и не реагирует на нажатия мышки. как только останавливаю скрипт - сразу отпускает. Пробовал оба варианта цвета 8388607 и свой 8388479. Как это не удивительно, на данный момент мой первоначальный скрип пока рабочий, все остальные предложения не дали результата, а у меня осталась проблема с выходом из цикла. Еще подскажите где взять инфу о использовании знаков "!" и "=" может там еще что-то есть? В справке на этот счет тишина.

Quote
Бонус-проверка
Code: (clickermann) [Select]
SUB(условие, $a)
   IF(($a ! 8388479) | ($a ! 8388607))
      LOGWRITE ("Да")
   ELSE
      LOGWRITE ("Нет")
   END_IF
END_SUB

условие(0)
условие(8388479)
условие(8388607)
условие(999)
HALT

Не понимаю что делает эта проверка, и каков её механизм.

Quote
полюбому какието косяки у тебя с цветом. проверяй, уменьшай колормод.
куда еще то уменьшать, итак уже 7ка, дальше только двухцветка
или ты имеешь ввиду под уменьшением не упрощение цвета, а уменьшение значения переменной?


А вообще на самом деле цикл начинает работу независимо от наличия точки, и он же не заканчивает работу независимо от её наличия так же ))
Словно программа просто входит в цикл, а на детали условия ей начхать.
Наверно я что-то на так вам преподношу, отсюда получается сломанный телефон. Прям хоть видео записывай ))

Интересная вещь, если сделать привязку к окну то показывает одни координаты, если без привязки то похоже относительно экрана. В скрипте какие должны быть?
Но это не снимает вопроса почему скрипт запускается, ибо в округе подобного цвета нет всёравно.

13
! 8388479 - это означает, что когда цвет пропадает из точки поиска цикл только начинает, а не завершает работу.
8388607 - вот такой цвет попробуйте тоже учитывать, зелёный при COLORMODE(7) не всегда сводится к 8388479 или можно попробовать COLORMODE уменьшить по возможности, чтоб был один более точный цвет.
Code: (clickermann) [Select]
GETSCREEN
COLORMODE(7,782,844,822,880)
WHILE((PXL(803,861) ! 8388479) | (PXL(803,861) ! 8388607))
   LCLICK(RND(1234,1504),RND(89,103))
   WAIT(RND(1,3))
   DBLCLICK(RND(1589,1613),RND(88,112))
   WAIT(RND(25,33))
   GETSCREEN
   COLORMODE(7,782,844,822,880)
END_CYC

А вот родился еще вопрос. Как тогда цикл начинает работать, если я его запускаю при существующей точке?
И колормод 7 это уже семь цветов, на восьмом всё становится уже черно-белое. При просмотре через лупу я имею в нужном участке одноцветный зелёный достаточного размера. А если добавить варианты зелёного, то мне тогда придётся заморачиваться с поиском нужного, а это по идее утяжелит скрипт.

14
Спасибо всем большое! Жаль что нет фичи ткнуть спасибо и поднять карму на этом форуме. Странно.. А ведь эта мелочь мотивирует и доставляет пусть маленькую но всё же радость людям )

15
В настройках количество повторений единица.
Не смотря на то что цвет точно пропадает из точки поиска, цикл не завершает работу.


Code: (clickermann) [Select]
GETSCREEN
COLORMODE(7,782,844,822,880)


WHILE(PXL(803,861) ! 8388479)
   LCLICK(RND(1234,1504),RND(89,103))
   WAIT(RND(1,3))
   DBLCLICK(RND(1589,1613),RND(88,112))
   WAIT(RND(25,33))
   GETSCREEN
   COLORMODE(7,782,844,822,880)
END_CYC

Pages: [1] 2