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

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

 Страниц (1): [1]   

> Без описания
Alexey_Tish
Отправлено: 11 Мая, 2024 - 15:41:57
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2023  
Откуда: Россия, с Воронцовка
Репутация: 0




В игре есть пиксельный прямоугольник, который рандомно движется: то вправо, то влево, по прямой, а также поплавок в виде круга, который движется вправо, при нажатии кнопки и влево, при бездействии, вдоль одной прямой с прямоугольничком. Если поплавок попал в прямоугольник, то он меняет цвет с зеленого на красный. Нужно сделать так, чтобы поплавок был в зоне прямоугольника определенное время, но при этом если поплавок будет вне зоны прямоугольника, то спустя какое-то время рыбалка завершается неудачей. Проблема в том, что прямоугольник движется довольно быстро и я не могу найти решение, которое будет достаточно быстро обрабатываться и срабатывать, чтобы большую часть времени поплавок был в нужной зоне. Я буду очень благодарен, если вы подскажете с помощью какой логической цепочки это можно реализовать. При надобности могу дать видео из игры или фото. Если вы можете предоставить готовое решение тг: @Lexa_Kalxoznik
 
 Top
GreatProgram
Отправлено: 11 Мая, 2024 - 16:26:41
Post Id



Пользователь
Участник


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




Для какой игры бот?
(Если не хочешь распространяться, можно через ЛС форума...)
 
 Top
Alexey_Tish
Отправлено: 11 Мая, 2024 - 20:59:31
Post Id



Пользователь
Наблюдатель


Покинул форум
Сообщений всего: 48
Дата рег-ции: Июль 2023  
Откуда: Россия, с Воронцовка
Репутация: 0




Ссылка на гугл диск с видео из игры Подмигивание
 
 Top
GreatProgram
Отправлено: 12 Мая, 2024 - 09:15:46
Post Id



Пользователь
Участник


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




В принципе логику придумал, но хромает знание синтаксиса и знание возможностей кибора...
(Добавление)
Можно реализовать через scanpixel, посекторно, но это муторное занятие...
Либо через findimage:
CODE:
int PosX, PosY;
int SCREEN[70][70];
int ZonaX1=100, ZonaY1=500, ZonaX2=170, ZonaY2=570;
screen (#SCREEN[0][0], ZonaX1, ZonaY1, ZonaX2, ZonaY2, -1);//Делаем скрин зоны в которой ищем. 70 на 70

findimage(1, #Image[n][0][0], -1, #PosX, #PosY, 0, 0, ZonaX2-ZonaX1, ZonaY2-ZonaY1, #SCREEN[0][0]);


Вопрос можно ли вытащить в переменные эти значения (выделил красным):
findimage(1, #Image[n][0][0], -1, #PosX, #PosY, 0, 0, ZonaX2-ZonaX1, ZonaY2-ZonaY1, #SCREEN[0][0]);
(Добавление)
[code]int PosBX, PosBY;//Коричневый
int PosGX, PosGY;//Зеленый
int PosPX, PosPY;//Поплавок
int Image[3][7][5];
int SCREEN[673][6];
loadimage (#Image[0][0][0], "C:\ZO\Img0.bmp" ); // Можно ли так записать или нет?
loadimage (#Image[1][0][0], "C:\ZO\Img1.bmp" ); // Можно ли так записать или нет?
loadimage (#Image[2][0][0], "C:\ZO\Img2.bmp" ); // Можно ли так записать или нет?
int screen (#SCREEN[0][0], 624, 895, 1297, 901, -1);

findimage(1, Image[0][0][0], -1, PosBX, PosBY, 0, 0, 673, 6, #SCREEN[0][0]);// Можно ли так записать или нет?
findimage(1, Image[1][0][0], -1, PosGX, PosGY, 0, 0, 673, 6, #SCREEN[0][0]);// Можно ли так записать или нет?
findimage(1, Image[2][0][0], -1, PosPX, PosPY, 0, 0, 673, 6, #SCREEN[0][0]);// Можно ли так записать или нет?

Далее можно сравнивать полученные значения PosBX, PosGX, PosPX.
И исходя из полученных значений принимать решение — нажать на кнопку мыши, что бы поплавок пошел вправо или нет...
Да это надо бы заключить в цикл, но сейчас не об этом.
 
 Top
GreatProgram
Отправлено: 12 Мая, 2024 - 18:01:42
Post Id



Пользователь
Участник


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




Так в общем то что было выше, было не правильно.

Вот рабочий вариант, но его придется понастроить под себя, так как разрешение для которого я делал у меня 1920x1080.
Насколько я понял что бы вправо шел поплавок надо удерживать ЛКМ?
Если отпустить то будет откатываться постепенно влево?

Если так то вот изображения для работы скрипта ссылка

и код:
 Цитата:

pause(1500);
int PosX[3],PosY[3];
int Img[3][7][5];
int SCREEN[673][6];
for (int n=0; n<3; n++)loadimage(#Img[n][0][0], "C:\ZO\Img"+format(n)+".bmp" );
int r=15;

againfish:;
screen (#SCREEN[0][0], 624, 895, 1297, 901, -1);
for (n=0; n<3; n++)findimage(1, #Img[n][0][0], -1, #PosX[n], #PosY[n], 0,0, 673,6, r,r,r,r,r,r, 60, 1, #SCREEN[0][0]);


if(PosX[0]>PosX[1])//если есть зеленая, но нет коричневой полосы
{
if(PosX[2]<PosX[0]+70){mousedown(LEFT,1650,800);pause(1200);mouseup(LEFT);}//если поплавок в зеленой зоне, но меншье чем (зеленая с +70 пикселей)
else pause(400);
}


if(PosX[0]<PosX[1])//если есть Коричневая, но нет зеленой полосы
{
if(PosX[2]<PosX[1]){mousedown(LEFT,1650,800);pause(1200);mouseup(LEFT);}
else pause(400);
}

if(PosX[2]>0 && PosX[2]<672) goto againfish;

//отладка:
//{int k=findimage(1, #Img[n][0][0], -1, #PosX[n], #PosY[n], 0,0, 673,6, r,r,r,r,r,r, 99, 1, #SCREEN[0][0]); messagebox(k);}
//messagebox(format(PosX[0])+"=PosX[0]green"+"^r^n"+format(PosX[1])+"=PosX[1]Brown"+"^r^n"+format(PosX[2])+"=PosX[2]poplavok" );

(Отредактировано автором: 12 Мая, 2024 - 18:04:43)

 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 2 (гостей: 2, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by