Author Topic: Использование "Clickermann" на игровом форуме  (Read 6758 times)

0 Members and 1 Guest are viewing this topic.

TriaM

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Доброй ночи друзья! Прошу вашего совета и наставления по созданию сценария на форуме. Буду благодарен толчкам в сторону правильного решения и помощи.

В двух словах, требуется чтобы кликер срабатывал при полном заполнении параметра "мана"
[spoiler][/spoiler]

Выбирал значение отсюда
[spoiler][/spoiler]

И выбирал пользователя (соответственно пользователи каждый раз меняются)
[spoiler][/spoiler]

Также хотелось бы узнать возможность реализации скрипта в фоновом режиме (привязка к определенной вкладке браузера)
« Last Edit: April 08, 2015, 04:14:29 AM by TriaM »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
В первом случаи можно использовать анализ крайнего пиксела, или функцию подсчета пикселов.
Во втором, если ничего не меняется написать простые клики.
В третьем требуется поиск фрагмента (требуется сделать скриншот, вырезать имя и искать его функцией.)

Вот приблизительная структура скрипта.

Code: (clickermann) [Select]
GETSCREEN
IF(PXL(10,10) = 255) // анализируем крайний пиксел маны
   WAITMS(500)
   // если нашли начинаем кликать
   
   LCLICK(237,530)  // Alt+Q вставляет в скрипт клик по текущем координатам
   WAITMS(100)
   LCLICK(599,822)  // 16777215 - и также закомментированный цвет пиксела для информации
   WAITMS(100)
   LCLICK(902,913)  // 16777215
   WAITMS(100)
   LCLICK(992,1005)  // 16250096
   WAITMS(100)  // не забывай про задержки!
   
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // далее идет поиск картинки пользователя
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   END_IF
   
ELSE
   // если не нашли (мана не заполнена) то задержка и снова ищем
   WAITMS(50)
END_IF

TriaM

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Основу понял, склеил, работает. Но остался один вопрос, эстетический по большей мере, чтобы искать что-либо на странице пришлось увеличить её размер почти до не читабельного, есть ли возможность реализовать поиска "листая" страницу? Единственное что мне пришло в голову это прокрутка "стрелочками" или "скроллом" занесенными в код скрипта... Возможно есть более эстетический вариант?

(перфекционист етить меня) ;D

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
PageUp PageDown еще.

Заменяем поиск картинки на цикл с поиском картинки.

Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100) // далее идет поиск картинки пользователя
      $check = 1 // нашли, прерываем цикл
      LCLICK($_return1, $_return2)
      WAITMS(1000)
   ELSE
      KEYPRESS(#PAGEDOWN) // не нашли, жмем PageDown и ищем снова
      WAITMS(500)
   END_IF
END_CYC
« Last Edit: April 08, 2015, 02:20:05 PM by Oraven »

TriaM

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Понял, что я нубяра и на своих "самообразовательных" знаниях далеко не уеду, хотя так научился многому. Кручу-верчу, что-нибудь получится...  ;D

Начну с начала, надеюсь на поддержку и настойчивое биение по макушке, ибо хочется разобраться и "въехать"

Итак вот игровой форум чтобы можно было понять зрительно:
[spoiler]
[/spoiler]
[spoiler][/spoiler]
[spoiler][/spoiler]

Вверху лишняя шапка которая не носит "кликабельной" полезности за исключение поля "мана" (но над этим полем находится строки вывода некоторых действий, а значит привязка по конкретному "Х", "У" не доступна)

Само поле "маны" (достоверна известна длина незаполненного поля)
[spoiler][/spoiler]
и чем оно заполняется
[spoiler][/spoiler]
Возможно ли сделать привязку "заполнителя" к шкале маны и соответственно начала работы скрипта?

Следующее поле (точнее два): выбор всей имеющейся маны кнопкой [spoiler][/spoiler] И кнопка подтверждения действия [spoiler][/spoiler]

Это для меня задача минимум в понимании, вот какой скрипт у меня получился:
 
НЕМНОГО подправил пошарив и почитав "литературу"
Code: (clickermann) [Select]
// как вариан вставка поиска иконки с полностью заполненной маной.

KEYPRESS(#PAGEDOWN) // избавляемся от бесполезной пока шапки и переходим сразу к нашим кнопкам !!! не хочет корректно работать
WAIT(1)

 $check = 0
WHILE($check = 0)
WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "max.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2) // тут возник вопрос, как сделать так чтобы он кликал в центре кнопки, а не на крайнем пикселе
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC

 WAIT(3)

$check = 0
WHILE($check = 0)
WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "1.bmp", -1, 100)
      $check = 1
      LCLICK($_return1, $_return2) // тот же вопрос с центром
      WAITMS(100)
   ELSE
      WAITMS(50)
   END_IF
END_CYC


Отрабатывает по частям, но когда пытаюсь собрать в кучу, происходит крах... :-\ Просто не находит кнопки ( пробовал ставить команду "Завершения", скрипт запускается, думает пару секунд и завершается)

Что я делаю не так друзья, поясните на пальцах, готов слушать и мотать на ус.
« Last Edit: April 08, 2015, 08:52:24 PM by TriaM »

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
Твои картинки что то не грузятся, вот хороший фото хостинг http://savepic.net/

Зачем тут цифра 1?
Code: (clickermann) [Select]
skip: 1
GOTO(skip) 1

Смещение сделать очень просто
Code: (clickermann) [Select]
LCLICK($_return1+5, $_return2+10)    // клик правее на 5 пикселов и ниже на 10
Не находит, значит изображение изменилось. Используй цветокоррекцию и процент совпадения.
В шаблонах есть скрипт цветокоррекции. Процент подберешь опытным путем, скажу только он должен быть в пределах 70-100% чем меньше процент тем медленнее поиск.



TriaM

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Цифру исправил, точнее убрал, понял смысл того что вы мне раньше присылали и применение циклу  ;D

Но не смог решить проблему с
Code: (clickermann) [Select]
KEYPRESS(#PAGEDOWN) он просто уносит меня в "подвал" страницы и даже не собирается по пути ничего искать :-\

TriaM

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
P.S. Хотелось бы уточнить вопрос о нагрузке и "удлинении" времени поисков заданных шаблонов картинок от их размера.

Oraven

  • Супермодератор
  • Герой форума
  • *
  • Posts: 3685
  • Котэ
    • View Profile
P.S. Хотелось бы уточнить вопрос о нагрузке и "удлинении" времени поисков заданных шаблонов картинок от их размера.

Размер фрагмента поиска должен быть маленьким. 50х50 или меньше. Чем меньше область поиска тем быстрее поиск. Глупо искать там где нашего объекта быть не может.

TriaM

  • Зашел в гости
  • *
  • Posts: 6
    • View Profile
Выражаю благодарность Oraven, мой план минимум осуществился, понял основные азы и что-куда-для-чего :D

Вот что получилось:
Code: (clickermann) [Select]
// Version: 1.0 (09.04.2015)

LCLICK(855,152)
WAIT(RND(1,2))
KEYPRESS(#PAGEDOWN)
WAIT(RND(1,2))

$check = 0
WHILE($check = 0)
   WAIT(1)
   GETSCREEN
   IF_PIXEL_IN(746,65, 749,800, 11493436)
      $check = 1
      LCLICK($_return1, $_return2)
      WAITMS(100)
   ELSE
      WAITMS(500)
   END_IF
END_CYC

WAIT(RND(1,5))

$check = 0
WHILE($check = 0)
   WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "max.bmp", -1, 80)
      $check = 1
      LCLICK($_return1+5, $_return2+5)
      WAITMS(100)
   ELSE
      WHEELDOWN
      WAITMS(500)
   END_IF
END_CYC

WAIT(RND(3,5))

$check = 0
WHILE($check = 0)
   WAIT(1)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "ok.bmp", -1, 80)
      $check = 1
      LCLICK($_return1+5, $_return2+5)
      WAITMS(100)
   ELSE
      WHEELDOWN
      WAITMS(50)
   END_IF
END_CYC

WAIT(3)

Теперь попробую следующий этап, возможно ли распознавание определенного текста? (известно каким он может быть, несколько вариаций) и поиск его "дублера", но уже другой шрифт + курсив или жирность