Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Подскажите решение

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

1. l2mrakg - 17 Мая, 2019 - 08:01:46 - перейти к сообщению
Приветствую, подскажите адекватное решение, в котором с высокой степенью вероятности скрипт остановиться.

Задача остановить скрипт в результате появления на экране вот такой ауры
скрин, но иконка оружия может быть любая.
Желательно с двумя проверками, но при этом не сильно затянутые.
(Добавление)
сложность в том, что это динамическая аура, пример
Нажмите для увеличения
2. Budni - 17 Мая, 2019 - 12:54:29 - перейти к сообщению
Если она появляется в определенном месте то достаточно найти пару цветов от ауры (findheapcolor) в том самом месте ну и выставить разбежность. Тестируй тут двойная проверка не к чему.

Я бы так сделал) Ток код не рабочий, не заданы значения, но остановить скрипт можно командой break; закрыть скрипт (выключить Кибор) командой close;
CODE:

loop () {
if finde()=1) break;
}

function finde () {
int // твои значения для переменных чтобы заработал))
int k=findheapcolor(20, #color[0], #kol[0], 3, min_col, #x[0], #y[0], 15, 15, 50, 50, 0, 0, xw, yw, r, r, r, r, r, r, -1);
if(k>0) return 1;
return 0;
}
3. Zireael - 17 Мая, 2019 - 18:53:16 - перейти к сообщению
 Цитата:
if finde()=1

Нет открывающей скобки. ==, а не =.
 Цитата:
Задача остановить скрипт в результате появления на экране вот такой ауры

findcolor вполне подойдёт. Для примера, скрипт ожидает появления указанного цвета с учётом разбежности:
CODE:
int color=16739508; // цвет для поиска (можно подобрать во вкладке графика)
int coord[4]={1256, 676, 1327, 740} // область поиска
int r=40; // разбежность
int x[999], y[999];

// пока не найдено хотя бы 10 пикселей указанного цвета
while(findcolor(sizearray(x), #x[0], #y[0], coord[0], coord[1], coord[2], coord[3], color, r,r,r,r,r,r, -1) < 10)sleep(10);
4. l2mrakg - 18 Мая, 2019 - 04:17:32 - перейти к сообщению
не могу заставить его остановиться....

Проблема в том, что данные настройки заставляют практически все делать в слепую...

Было бы неплохо, если бы при включенной отладке выделялись рамкой области в которых задан поиск цвета, ибо иногда встречаются баги со смещением координат в окне и помогает перезапуск скрипта.

Простоя я не уверен, что я делаю поиск именно в нужном мне месте, тут же есть ограниченное количество времени появления этой ауры, происходит ли момент поиска вовремя тоже вопрос.

Очень проблематично такое реализовать можно так сказать вслепую....
5. Kibor - 18 Мая, 2019 - 04:20:19 - перейти к сообщению
Смотрите по значениям переменных в логе.
6. l2mrakg - 18 Мая, 2019 - 04:51:33 - перейти к сообщению
 Kibor пишет:
Смотрите по значениям переменных в логе.


Спасибо с помощью переменных в логе смог понять, когда начинается поиск непосредственно и настроил как надо, но вот точно определить где именно кибор визуально создает участок поиска не удается.
7. Kibor - 18 Мая, 2019 - 04:54:40 - перейти к сообщению
 l2mrakg пишет:
где именно кибор визуально создает участок поиска не удается.

? Включите галку сканировать переменные.
И смотрите какие зоны в функциях. А вообще не понятно. Вы какую там логику зон указали что не можете знать где ищет? Рандомную?
8. l2mrakg - 18 Мая, 2019 - 05:02:55 - перейти к сообщению
 Kibor пишет:
 l2mrakg пишет:
где именно кибор визуально создает участок поиска не удается.

? Включите галку сканировать переменные.
И смотрите какие зоны в функциях. А вообще не понятно. Вы какую там логику зон указали что не можете знать где ищет? Рандомную?


Вы меня не поняли, координаты я знаю, но все же когда реально видна зона поиска визуально, очень бы упростило процесс.
Мне вообще процесс поиска по цветами очень тяжело воспринимается.
9. Kibor - 18 Мая, 2019 - 05:50:12 - перейти к сообщению
 l2mrakg пишет:
Вы меня не поняли, координаты я знаю, но все же когда реально видна зона поиска визуально, очень бы упростило процесс.

нарисуйте себе сами
CODE:
#define PS_SOLID 0

external(INT, "GetDC", "GetDC", "User32.dll" );
external(INT, "CreatePen", "CreatePen", "Gdi32.dll" );
external(INT, "SelectObject", "SelectObject", "Gdi32.dll" );
external(INT, "MoveToEx", "MoveToEx", "Gdi32.dll" );
external(INT, "LineTo", "LineTo", "Gdi32.dll" );
int hdc_dialog=GetDC(0); // дескриптор контекста
int pen=CreatePen(PS_SOLID, 2, 1376392); // часовая стрелка
SelectObject(hdc_dialog, pen);

int x1=10, y1=20, x2=150, y2=200;

loop()
{

////////
findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], x1, y1, x2, y2, -1);
RES(x1, y1, x2, y2);
/////////




sleep(10);
}



function RES(int x1, int y1, int x2, int y2)
{
MoveToEx(hdc_dialog, x1, y1, 0); // из центра круга
LineTo(hdc_dialog, x2, y1); // рисуем линию
LineTo(hdc_dialog, x2, y2); // рисуем линию
LineTo(hdc_dialog, x1, y2); // рисуем линию
LineTo(hdc_dialog, x1, y1); // рисуем линию
}



10. l2mrakg - 18 Мая, 2019 - 05:56:28 - перейти к сообщению
вроде как получилось задуманное на тестах с обычным цветом, но вот уверенности с другим цветом нет, который изредка появляется.
Реализация хромает конечно....

Суть такова, взял прямоугольник как зона поиска 200х100.

Выбрал 1 цвет при поиске, погрешность 10.
Зона поиска 10 px.

Powered by ExBB FM 1.0 Final