Автоматизация и боты

 Помощь      Поиск      Пользователи
Сайт Кибор     Программируемый кликер Кибор     Видео обучение     Заказать бот

 Страниц (4): « 1 2 [3] 4 » 

> Описание: Прохождение капчи
Kinoman
Отправлено: 21 Июля, 2019 - 13:19:13
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019  
Репутация: 0




 Zireael пишет:
Алгоритм стырил с форума другого кликера.
Например, для красных и жёлтых цифр:
1. Ищем все красные и жёлтые пиксели.
2. Сравниваем минимальную координату по X, если красный меньше значит желтая цифра 0.
3. Сравниваем максимальную координату по X, если красный меньше значит желтая цифра 9.
4. Если пункты 2 и 3 не подошли, т. е. жёлтая цифра не 0 и не 9, то считаем среднее расстояние между цифрами.
Из минимальной координаты по X жёлтого цвета вычитаем минимальную координату по X красного и делим на среднее расстояние между цифрами. Получим позицию жёлтой цифры.

CODE:
int num;
int coord[4]={574, 380, 1813, 875} // координаты поиска, левый верхний угол и правый нижний
pause(1000);


//////////////
num=find(3882184, 6081000, 40, 35); // красный, жёлтый, разбежность для красного, разбежность для жёлтого
messagebox(num);
// тоже самое для других цветов, подобрать нужную разбежность


function find(int color1, int color2, int r1, int r2)
{
int x1[9999], y1[9999], x2[9999], y2[9999];
int count1=findcolor(sizearray(x1), #x1[0],#y1[0], coord[0], coord[1], coord[2], coord[3], color1, r1,r1,r1,r1,r1,r1, -1);
int count2=findcolor(sizearray(x2), #x2[0],#y2[0], coord[0], coord[1], coord[2], coord[3], color2, r2,r2,r2,r2,r2,r2, -1);
//messagebox(format(count1)+" "+format(count2)); // сколько найдено цветов
if(count1 && count2) // если найдены
{
if(x1[0]>x2[0])return 0;
if(x1[count1-1]<x2[count2-1])return 9;
int mid=(x1[count1-1]-x1[0]) / 9.5; // среднее расстояние между цифрами
return (x2[count2-1] - x1[0]) / mid;
}
return -1; // вернёт -1 если цвета не найдены
}

Суть в том, чтобы оно ещё прожимало эту цифру...
 
 Top
Zireael
Отправлено: 21 Июля, 2019 - 13:28:06
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
Суть в том, чтобы оно ещё прожимало эту цифру...

Так и в чём проблема?
CODE:
num=find(3882184, 6081000, 40, 35); // красный, жёлтый, разбежность для красного, разбежность для жёлтого
messagebox(num);
if(num!=-1)key(format(num)); // нажать клавишу
 
 Top
Kinoman
Отправлено: 21 Июля, 2019 - 16:21:24
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019  
Репутация: 0




Проблема в том что я не знаю как это склеить Радость
Я даже готов доплатить чтоб вы мне объяснили что там к чему и помогли сделать готовый скрипт.
Ну или просто сделали, а я уже с гуглом через CTRL C буду искать каждую функцию и выкупать что к чему Ха-ха
(Добавление)
Вот собственно сам процесс, я уже кидал. (для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
 Zireael пишет:
 Цитата:
Суть в том, чтобы оно ещё прожимало эту цифру...

Так и в чём проблема?
CODE:
num=find(3882184, 6081000, 40, 35); // красный, жёлтый, разбежность для красного, разбежность для жёлтого
messagebox(num);
if(num!=-1)key(format(num)); // нажать клавишу

То что сделал Кибор, мне как то более понятно... Но и у тебя идея не плохая, но в силу своей неграмотности в коде, я не могу склеить ни идею Кибора с прожиманием клавиши ни твою.
 
 Top
Kibor
Отправлено: 21 Июля, 2019 - 19:12:24
Post Id



Администратор
Эксперт


Просматривает форум
Сообщений всего: 8217
Дата рег-ции: Март 2013  
Откуда: Одесса
Репутация: 357




 Kinoman пишет:
Проблема в том что я не знаю как это склеить

цвета подставьте другие кроме красного желтого

 Цитата:
int num;
int coord[4]={574, 380, 1813, 875} // координаты поиска, левый верхний угол и правый нижний
pause(1000);


//////////////
loop()
{
sleep(100);
num=find(3882184, 6081000, 40, 35); // красный, жёлтый, разбежность для красного, разбежность для жёлтого
if (num!=-1){key(format(num)); pause(2000); continue;} // нажать клавишу
num=find(3882184, 6081000, 40, 35); // Второй цвет
if (num!=-1){key(format(num)); pause(2000); continue;} // нажать клавишу
num=find(3882184, 6081000, 40, 35); // Третий цвет
if (num!=-1){key(format(num)); pause(2000); continue;} // нажать клавишу
num=find(3882184, 6081000, 40, 35); // Четвертый цвет
if (num!=-1){key(format(num)); pause(2000); continue;} // нажать клавишу
}






//messagebox(num);
// тоже самое для других цветов, подобрать нужную разбежность


function find(int color1, int color2, int r1, int r2)
{
int x1[9999], y1[9999], x2[9999], y2[9999];
int count1=findcolor(sizearray(x1), #x1[0],#y1[0], coord[0], coord[1], coord[2], coord[3], color1, r1,r1,r1,r1,r1,r1, -1);
int count2=findcolor(sizearray(x2), #x2[0],#y2[0], coord[0], coord[1], coord[2], coord[3], color2, r2,r2,r2,r2,r2,r2, -1);
//messagebox(format(count1)+" "+format(count2)); // сколько найдено цветов
if(count1 && count2) // если найдены
{
if(x1[0]>x2[0])return 0;
if(x1[count1-1]<x2[count2-1])return 9;
int mid=(x1[count1-1]-x1[0]) / 9.5; // среднее расстояние между цифрами
return (x2[count2-1] - x1[0]) / mid;
}
return -1; // вернёт -1 если цвета не найдены
}
 
 Top
Kinoman
Отправлено: 22 Июля, 2019 - 00:16:34
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019  
Репутация: 0




Ну вот что получилось в итоге)
Немного надо доработать цвета и прочее дабы всегда точно отмечало.
Спасибо!(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
А ещё такой вопрос, как поставить на цикл таймер? Ну чтобы он выполнялся не подряд, а раз в 3 секунды наример...
Просто как я понял, ошибки вызванны не из-за кода... а из-за того, что скрипт начинает сканировать данные и в этот момент появляются новые...
(Добавление)
Разобарлся, параметр sleep. Ещё раз благодарю!
 
 Top
Zireael
Отправлено: 22 Июля, 2019 - 00:58:16
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




Проблема в том что слова 'Выбрано' и 'Ошибки' тем же цветом что и цифры.
Например, ищем красные и жёлтые цифры, а на экране жёлтые, зелёные и слово 'Ошибки' красным. В итоге будет считаться что на экране красные и жёлтые, т. е. неправильно.
Надо проверять чтобы разница по Y между цветами не была большой. Ну и заодно что первого цвета больше чем второго в несколько раз.
 
 Top
Kinoman
Отправлено: 22 Июля, 2019 - 03:06:33
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019  
Репутация: 0




 Zireael пишет:
Проблема в том что слова 'Выбрано' и 'Ошибки' тем же цветом что и цифры.
Например, ищем красные и жёлтые цифры, а на экране жёлтые, зелёные и слово 'Ошибки' красным. В итоге будет считаться что на экране красные и жёлтые, т. е. неправильно.
Надо проверять чтобы разница по Y между цветами не была большой. Ну и заодно что первого цвета больше чем второго в несколько раз.

А как проверить эту разницу? Я уже немного разобрался в коде и кажется понял примерно что к чему...

(Отредактировано автором: 22 Июля, 2019 - 03:07:02)

 
 Top
Zireael
Отправлено: 22 Июля, 2019 - 10:51:48
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




 Цитата:
А как проверить эту разницу?

code (Отобразить)

Примерно так, подбирайте цвета и разбежность.

(Отредактировано автором: 22 Июля, 2019 - 10:56:30)

 
 Top
Kinoman
Отправлено: 22 Июля, 2019 - 15:20:41
Post Id



Пользователь
Прохожий


Покинул форум
Сообщений всего: 20
Дата рег-ции: Июль 2019  
Репутация: 0




Ну... у меня точно всё верно?(для просмотра ссылки Вам необходимо авторизоваться) Удочку могу убрать, просто экран выше задрать... но это не сильно помогает.
Мне даже кажется , что старый скрипт ошибок допускает меньше... особенно на ночном небе.
Капееееец, а казалось всё так просто Белый флаг Белый флаг
 
 Top
Zireael
Отправлено: 23 Июля, 2019 - 02:14:31
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4464
Дата рег-ции: Нояб. 2017  
Репутация: 585




Жёлтая удочка, при том что ищем желтые цифры, даже не знаю что сказать.
Начало зоны поиска вообще не понятно откуда начинается, конец зоны, скопированный из блокнота, вообще ни о чём не говорит. Все координаты надо получать и вставлять в скрипт из вкладки 'Шпион'.
Большая часть цветов вообще найдена, это написано в левом верхнем углу, либо цвет не тот, либо разбежность недостаточна.
Подбирать параметры вообще лучше на скринах, а уже потом в игре пробовать. А также не все цвета сразу. Оставьте в скрипте только, к примеру, красный и жёлтый, если будут нормально определяться, то уже другие добавлять.
 
 Top
Страниц (4): « 1 2 [3] 4 »
Сейчас эту тему просматривают: 5 (гостей: 5, зарегистрированных: 0)
« Заказать скрипт »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.




Powered by