Помогите разобраться

Закрыто
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Помогите разобраться

Сообщение Serg72 »

Вау! Сейчас все буду штудировать. Буква K это просто картинка но я ещё не забил для неё даже координаты :P
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Помогите разобраться

Сообщение Serg72 »

Проверил ваш когд, увы есть утерянные моменты.

Копирую ещё раз всю задачу.

Проверяем есть ли кнопка Некст, ждём пока не появится.
Жмём Некст. Проверяем прогрузилось ли меню. Ждём подтверждение о прогрузки.
В поле дефенс ищем цифры 1 2 3 4
Если цифры нет то жмём рефрешь и проверяем заново.
Если какая либо из цифр есть в области то проверяем зону клан, наличие заранее дружественных кланов ( проверка в альфа канале так как цвет разный может быть (белый; золотой))
Если дружественный тег клана обнаружен то возвращаемся к пункту рефрешь
Если тега нет то жмем attack.
Ждём 800 мс
проверяем по цвету пикселя загрузился ли бой
Проверяем букву “k” если нет этой буквы то переходим к самому первому пункту нажимаем некст
Если k есть в нужном месте то проверяем есть ли в нужном месте картинки 4 5 6 7
Если нет то переходим к первому пункту некст кнопка
Если есть какая либо из этих картинок цифр то подаём натификейшен (звук и вибро)
В течении 20 минут тыкаем каждые пол минуты в заданную точку (что бы была активность и система не уснула) и чередуем это уведомлениями.
После 20 минут останавливаем

Нет подтверждения о загрузке меню с противниками, через поиск картинки. 2) в первую очередь проверяется защита (деф) и если найден слабый противник то уже проверяем его тег (тег это u1k pnx Ukr ufu ) проверка альфа каналом с совпадением в 70 процентов. Это картинки. Если тег не найден идём дальше к атаке если это наш союзник то рефреш что бы обновить список противников
Последний раз редактировалось Serg72 06 окт 2022 20:18, всего редактировалось 2 раза.
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Помогите разобраться

Сообщение Serg72 »

Что касается «k»
Можно все сделать чисто в таком виде я думаю
while(hasImg(gold4, gold_P1, gold_P2) || hasImg(gold5, gold_P1, gold_P2)
|| hasImg(gold6, gold_P1, gold_P2) || hasImg(gold7, gold_P1, gold_P2)
&& hasImg(gold_k, k1, k2)
{
Это гласит о том что мы ищем либо 4 либо 5 либо 6 либо 7 картинку в заданных координатам но что бы обязательно была буква k с любой из этих комбинаций.
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Помогите разобраться

Сообщение Serg72 »

Что касается проверки загрузился ли бой,
hasImag(coin, coinP1, coinP2)
Admin
Главный админ
Сообщения: 214
Зарегистрирован: 28 окт 2021 14:01

Re: Помогите разобраться

Сообщение Admin »

Serg72 писал(а): 06 окт 2022 20:05 Копирую ещё раз всю задачу.
...
Нет подтверждения о загрузке меню с противниками, через поиск картинки.
Нет, так дело не пойдет! Копировать задачу, с какими-то новыми дополнениями в конце, не нужно." Нет подтверждения о загрузке меню с противниками", мне ничего не говорит. Для меня это пустые звуки. Потому что, во-первых, о нем вы ничего раньше не говорили, во-вторых, я без понятия, как это меню выглядит, и что там за картинку искать нужно. Код написан по тем пунктам, которые вы дали. Так как задача не была полностью описана, я вынужден был работать с тем что вы описали в первых своих сообщениях этой темы. И потратил на это больше часа. Поэтому обвинять меня "проверил ваш код, а он не работает" не нужно. Потому что вам были даны части кода по отрывкам пунктов из общей задачи. И конечно же они не будут работать из коробки, ведь там нету кучи информации о точках, цветах и изображениях, которые нужно искать. Их нужно дополнить настоящими данными с игры и собрать воедино.

Не сочтите за грубость, но либо вы даете мне ВСЕ данные к скрипту и описываете по пунктам когда и как эти данные должны быть применены, либо вам прийдется дописывать свой код, по примерам, самостоятельно. Так как без подробного ТЗ это будет пустая трата времени. Потому что пропущенные действия в скрипте мы будем несколько недель таким темпом отлавливать и переписывать.
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Помогите разобраться

Сообщение Serg72 »

Дополнил код

Код: Выделить всё

Image Next = Image.load("Next");

Image def1 = Image.load("1");
Image def2 = Image.load("2");
Image def3 = Image.load("3");
Image def4 = Image.load("4");

Image UKR = Image.load("UKR");
Image PNX = Image.load("PNX");
Image U1K = Image.load("U1K");
Image UFU = Image.load("UFU");

Image Attack = Image.load("Attack");
Image refresh = Image.load("refresh");

Image coin = Image.load("coin");
Image k = Image.load("k");

Image Gold4 = Image.load("Gold4");
Image Gold5 = Image.load("Gold5");
Image Gold6 = Image.load("Gold6");
Image Gold7 = Image.load("Gold7");

Point Next_Area_1 = Point.get(20,1700);
Point Next_Area_2 = Point.get(180,1920);

Point Attack_P = Point.get(871,1536);
Point Attack_Area_1 = Point.get(720,1420);
Point Attack_Area_2 = Point.get(990,1600);

Point refresh_P = Point.get(978,1730);
Point refresh_Area_1 = Point.get(900,1680);
Point refresh_Area_2 = Point.get(1020,1780);

Point clan_Area_1 = Point.get(210,1465);
Point clan_Area_2 = Point.get(350,1530);

Point defense_Area_1 = Point.get(270,1540);
Point defense_Area_2 = Point.get(298,1584);

Point coin_Area_1 = Point.get(990,180);
Point coin_Area_2 = Point.get(1055,246);

Point k_Area_1 = Point.get(964,164);
Point k_Area_2 = Point.get(999,244);

Point Gold_Area_1 = Point.get(898,197);
Point Gold_Area_2 = Point.get(932,237);

Point PS_1 = Point.get(207,1459);
Point PS_2 = Point.get(416,1590);
Point PS_3 = Point.get(822,54);
Point PS_4 = Point.get(1041,446);
startScreenCapture(2);
sleep(180);

while(!EXIT)
{
  if(hasImg(Next, Next_Area_1, Next_Area_2))
  {
     Point Next_P = findImg(Next);
     Point Next_Random_P = Point.get(Next_P.x + 41, Next_P.y + 63);
     click(randomize(Next_Random_P, 28);
     log("found and clicked Next");

       if(hasImg(def1, defense_Area_1, defense_Area_2) 
       || hasImg(def2, defense_Area_1, defense_Area_2) 
       || hasImg(def3, defense_Area_1, defense_Area_2) 
       || hasImg(def4, defense_Area_1, defense_Area_2))
       {
  }   
}
Последний раз редактировалось Serg72 08 окт 2022 18:33, всего редактировалось 1 раз.
Serg72
Сообщения: 25
Зарегистрирован: 12 сен 2022 04:26

Re: Помогите разобраться

Сообщение Serg72 »

1) запускаем кликер на стартовом экране
2) кликер должен найти изображение Next в зоне Next_Area_1~2
3) пока изображения не найдено (кликер - далее К) не переходит к следующим действиям
4) после того как изображение Next найдено - определяем его координаты - создаём точку с центром картинки Next
5) нажимаем Next с функций рандома
6) ждём с функцией рандома 50-200 мс
7) проверяем в совпадение цвета в точке (х у) (задам координаты точки позже), делаем эту проверку до тех пор пока цвет не появится в нужной точк
Таким образом проверяем прогрузилось ли меню с противниками.
8) ждем рандомное время (50-180мс)
9) начинаем подбор противника, в зоне defense_Area_1~2 ищем изображения def1~2~3~4, что бы перейти к следующему этапу в коде необходим факт нахождения одной из картинки.
10) Если картинка не найдена то нажимаем с рандомным показателем (18) в точку refresh_P, ждем рандомное время 50-180 мс, и повторяем операцию в пункте «9»
11) если изображение найдено то начинаем поиск группы изображений (ukr , pnx, u1k , ufu) поиск в альфа канале потому что в рандомное время может присутствовать другой цвет и наложенный градиент. Так же для лучшего результата точность поиска устанавливаем 70.
12) Если изображение найдено то делаем принтскрин в зоне PS_1~2 (что бы в первое время проверить правильность отсеивание противников) и выполняем «10» пункт ( именно нажимаем refresh)
13) если изображение НЕ найдено то нажимаем с рандомным показателем (по у - 36 по х - 80 ) от центральной заданной точки Attack_P
14) ждём с рандомным временем 100-300
15) ижем изображение coin в зоне coin_Area_1~2, ищем до тех пор пока не найдём.
16) coin найден! Переходим к поиску одного из изображений Gold4~5~6~7 в зоне Gold_Area_1~2 и обязательно в любой совокупности изображение k в зоне k_Area_1~2
17) если совокупность не найдена то ждём рандомное время 50-180, делаем принтскрин в зоне PS_3~4 и преступаем к выполнению 2 пункта (мегацикл)
18) если совокупность изображений найдена то в течении 20 минут, каждые полминуты начиная с момента обнаружение подходящего противника посылаем вибро и аудио уведомления а так же нажимаем в точку x,y.
Закрыто