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 - Aspirant

Pages: [1]
1
Кажись допёрло:
Code: [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file1.bmp", -1, 100)
      $check = 1 
   ELSE
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file2.bmp", -1, 100)
      $check = 1 
   ELSE
      WAITMS(500)
    END_IF
   END_IF
END_CYC

Что-то такое должно быть ?

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

Обычный поиск картинки в цикле
Code: (clickermann) [Select]
$check = 0
WHILE($check = 0)
   GETSCREEN
   IF_PICTURE_IN (0,0, $_xmax,$_ymax, "file.bmp", -1, 100)
      $check = 1 
   ELSE
      WAITMS(500)
   END_IF
END_CYC

Скрипт ничего не делает кроме как тормозит выполнение пока картинка не будет найдена. Нет необходимости анализировать что то раз 5 сек. Тут все сводится к степени нагрузки на процессор. Если анализировать раз в 100-500 мс то никакой нагрузки практически не будет.

Опять же за место области 0,0, $_xmax,$_ymax весь экран, лучше указать конкретную область. Это ускорит поиск. Зачем искать картинки там где их быть не может.


Вот ещё, что, как я понимаю IF_PICTURE_IN  ищет только одну картинку, а как можно сделать чтобы он искал либо 1-ю либо 2-ю картинку? Оператор OR тут неприменим ?

3
Да с кавычками косяк :)) Увлёкся, когда писал. Реально, когда добавил эти параметры такой вакханалии, как была до этого уже не стало. По поводу виртуалки, и запуска там этого добра, блюстакс и так ресурсы кушает, а так ещё больше будет потреблять. Так, что пока не знаю потянет ли нормально эту ляпоту. Сейчас пойду допилингом заниматься по вашим рекомендациям. У меня первый язык программирования который учил был бейсик, по этому пихал GOTO везде, где можно и где не нужно :) В общем благодарю, пошёл допиливать, чтоб это и работало и выглядело красиво :)

4
Или это благодаря блюстаксу такая веселуха ?! Может ему ещё сюда привязку к окну добавить в код...
Ага, добавь. Веселуха увеличится раз в десять.

Я пробовал, правда для MUemu и там постоянно ошибки вылазили. Где-то тут на форуме находил тему по теме привязки, там так красиво расписано было для чего это придумано. Былобы хорошо запустить всю эту радость, свернуть и заниматься своими делами, чтобы в виртуалке не поднимать весь этот огород :)

5
Добавил пару параметров в строку "IF_PICTURE_IN(0,0,$_xmax,$_ymax,"72.bmp, -1, 15") и сумашествие закончилось. Стал работать как надо :) Но есть ещё 1 вопрос. Бой может длиться от 30 сек до 60. Думаю теперь как добавить проверку с шагом в 5 сек, закончился бой или нет, чтобы производить дальнейшие действия для сбора плюх. А то скрипт начинает это делать до того как бой кончился из-за того, что он превысил время задержки. Или есть уже готовые решения на эту тему ?

6
Скрипт стал работать стабильные, но чудеса не прекращаются. Он находит нужный уровень, начинает кликать и высаживает войска. На следующий заход он может проигнорировать противника с нужным уровнем. А может пролистав 2-3 противников, на нужном высадить войска. И если он пролистал где-то около 5 соперников, он уже остановиться не может, продолжает их листать. Может есть некоторые проблемы с нахождением картинки с уровнем, хоть она и подрезана по максимуму, чтоб небыло лишнего фона? Или это благодаря блюстаксу такая веселуха ?! Может ему ещё сюда привязку к окну добавить в код, хотя он и так тут работает, но если пробую на другом эмуле (MEmu), вроде что-то происходить но кликов не происходит.

7
Благодарю  :) Код работает, только осталась одна проблемка, даже если он находит нужный (72) уровень, он всё равно выполняет дальнейший перебор соперников. Добвил запись в лог удачные срабатывания счётчика, и он дошёл до 5, и начался непрерывный перебор соперников. Что ещё заметил, если два или более раз подряд не находит нужный уровень при переборе, так на переборе и застревает.

8
Доброго времени суток. Имеется бот, который запускается в бою, подбирает определённый уровень врага по картинке и вступает в бой, если уровень не совпадает, то бот перебирает противников, пока не найдётся нужный уровень. Но есть два момента это стабильность, даже если на экране враг нужного уровня он может его игнорировать и дальше перебирать до бесконечности врагов. Момент номер два, хотелось бы в код добавить счётчик, который бы считал количество удачных подборов врага нужного уровня, то есть скажем мне нужен противник 72 уровня и каждый раз, когда он попадается и высаживаются войска к атаке счётчик увеличивался на единицу для дальнейшего добавления функционала. Разбирался с кликером пару дней получилось вот такое, хотелось бы получить советы как оптимизировать код для стабильности и добавление счётчика.
Код бота следующий:
Code: [Select]
// New Script
// Author: Anonymous
// Version: 1.0 (12.03.2017)

#name "Bot"
START:
// Ищем 72 уровень

WAIT(5)

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"72.bmp")
   WAIT(4)
         WAITMS(500)
LCLICK(1200,672)
         WAITMS(500)
LCLICK(1200,672)
         WAITMS(500)
LCLICK(1200,672)
WAITMS(500)
LCLICK(1200,672)
WAITMS(500)
LCLICK(1200,672)
WAITMS(500)
LCLICK(1200,672)
WAITMS(500)
LCLICK(824,638)
   WAIT(5)

WAIT(60)

GOTO(SUNDUK)

ELSE

   LCLICK(1177, 362)
   WAIT(4)

GOTO(START)

SUNDUK:
//Ищем фрагмент кнопки для открытия сундука
WAIT(2)

GETSCREEN
IF_PICTURE_IN(0,0,$_xmax,$_ymax,"otkr.bmp")
    LCLICK($_return1, $_return2)
   WAIT(4)
END_IF


//Возврат поиску противника
LCLICK(680,659)

WAIT(3)

LCLICK(1236,646)

WAIT(2)

LCLICK(832,549)

WAIT(5)


GOTO(START)

Pages: [1]