Кибор » Скрипты на заказ » Заказать скрипт » Бот для игры GTA V

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

21. Kinoman - 21 Июля, 2019 - 05:19:13 - перейти к сообщению
 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 если цвета не найдены
}

Суть в том, чтобы оно ещё прожимало эту цифру...
22. Zireael - 21 Июля, 2019 - 05:28:06 - перейти к сообщению
 Цитата:
Суть в том, чтобы оно ещё прожимало эту цифру...

Так и в чём проблема?
CODE:
num=find(3882184, 6081000, 40, 35); // красный, жёлтый, разбежность для красного, разбежность для жёлтого
messagebox(num);
if(num!=-1)key(format(num)); // нажать клавишу
23. Kinoman - 21 Июля, 2019 - 08:21:24 - перейти к сообщению
Проблема в том что я не знаю как это склеить Радость
Я даже готов доплатить чтоб вы мне объяснили что там к чему и помогли сделать готовый скрипт.
Ну или просто сделали, а я уже с гуглом через CTRL C буду искать каждую функцию и выкупать что к чему Ха-ха
(Добавление)
Вот собственно сам процесс, я уже кидал. (для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
 Zireael пишет:
 Цитата:
Суть в том, чтобы оно ещё прожимало эту цифру...

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

То что сделал Кибор, мне как то более понятно... Но и у тебя идея не плохая, но в силу своей неграмотности в коде, я не могу склеить ни идею Кибора с прожиманием клавиши ни твою.
24. Kibor - 21 Июля, 2019 - 11:12:24 - перейти к сообщению
 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 если цвета не найдены
}
25. Kinoman - 21 Июля, 2019 - 16:16:34 - перейти к сообщению
Ну вот что получилось в итоге)
Немного надо доработать цвета и прочее дабы всегда точно отмечало.
Спасибо!(для просмотра ссылки Вам необходимо авторизоваться) (Добавление)
А ещё такой вопрос, как поставить на цикл таймер? Ну чтобы он выполнялся не подряд, а раз в 3 секунды наример...
Просто как я понял, ошибки вызванны не из-за кода... а из-за того, что скрипт начинает сканировать данные и в этот момент появляются новые...
(Добавление)
Разобарлся, параметр sleep. Ещё раз благодарю!
26. Zireael - 21 Июля, 2019 - 16:58:16 - перейти к сообщению
Проблема в том что слова 'Выбрано' и 'Ошибки' тем же цветом что и цифры.
Например, ищем красные и жёлтые цифры, а на экране жёлтые, зелёные и слово 'Ошибки' красным. В итоге будет считаться что на экране красные и жёлтые, т. е. неправильно.
Надо проверять чтобы разница по Y между цветами не была большой. Ну и заодно что первого цвета больше чем второго в несколько раз.
27. Kinoman - 21 Июля, 2019 - 19:06:33 - перейти к сообщению
 Zireael пишет:
Проблема в том что слова 'Выбрано' и 'Ошибки' тем же цветом что и цифры.
Например, ищем красные и жёлтые цифры, а на экране жёлтые, зелёные и слово 'Ошибки' красным. В итоге будет считаться что на экране красные и жёлтые, т. е. неправильно.
Надо проверять чтобы разница по Y между цветами не была большой. Ну и заодно что первого цвета больше чем второго в несколько раз.

А как проверить эту разницу? Я уже немного разобрался в коде и кажется понял примерно что к чему...
28. Zireael - 22 Июля, 2019 - 02:51:48 - перейти к сообщению
 Цитата:
А как проверить эту разницу?

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

Примерно так, подбирайте цвета и разбежность.
29. Kinoman - 22 Июля, 2019 - 07:20:41 - перейти к сообщению
Ну... у меня точно всё верно?(для просмотра ссылки Вам необходимо авторизоваться) Удочку могу убрать, просто экран выше задрать... но это не сильно помогает.
Мне даже кажется , что старый скрипт ошибок допускает меньше... особенно на ночном небе.
Капееееец, а казалось всё так просто Белый флаг Белый флаг
30. Zireael - 22 Июля, 2019 - 18:14:31 - перейти к сообщению
Жёлтая удочка, при том что ищем желтые цифры, даже не знаю что сказать.
Начало зоны поиска вообще не понятно откуда начинается, конец зоны, скопированный из блокнота, вообще ни о чём не говорит. Все координаты надо получать и вставлять в скрипт из вкладки 'Шпион'.
Большая часть цветов вообще найдена, это написано в левом верхнем углу, либо цвет не тот, либо разбежность недостаточна.
Подбирать параметры вообще лучше на скринах, а уже потом в игре пробовать. А также не все цвета сразу. Оставьте в скрипте только, к примеру, красный и жёлтый, если будут нормально определяться, то уже другие добавлять.

Powered by ExBB FM 1.0 Final