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

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

 Страниц (13): В начало « 5 6 7 8 [9] 10 11 12 13 »   

> Описание: Не могу понять как высчитывать координаты точек
Barabachka
Отправлено: 16 Октября, 2013 - 22:18:43
Post Id



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


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




//Переменные определения окон и координат активации
CODE:
int Pusk[17][18];//Рисунок определения местоположения окна
int PuskX_0[2], PuskY_0[2];//Массив координаты местоположения окна
int akt1_X[2], akt1_Y[2];//Масив координаты активации окна
//=========================================================
//Переменные определения необходимых параметров бота
int Panel_kn[24][14];//Рисунок панели быстрого доступа
int Panel_kn_X[2], Panel_kn_Y[2];//Координаты панели быстрого доступа
int Fk1_X[2], Fk1_Y[2];//Координаты кнопок панели быстрого доступа
int Fk2_X[2], Fk2_Y[2];//Координаты кнопок панели быстрого доступа
int Fk3_X[2], Fk3_Y[2];//Координаты кнопок панели быстрого доступа
int Fk4_X[2], Fk4_Y[2];//Координаты кнопок панели быстрого доступа
int Fk5_X[2], Fk5_Y[2];//Координаты кнопок панели быстрого доступа
int Fk6_X[2], Fk6_Y[2];//Координаты кнопок панели быстрого доступа
int Fk7_X[2], Fk7_Y[2];//Координаты кнопок панели быстрого доступа
int Fk8_X[2], Fk8_Y[2];//Координаты кнопок панели быстрого доступа
int Fk9_X[2], Fk9_Y[2];//Координаты кнопок панели быстрого доступа
int Fk10_X[2], Fk10_Y[2];//Координаты кнопок панели быстрого доступа
int Fk11_X[2], Fk11_Y[2];//Координаты кнопок панели быстрого доступа
int Fk12_X[2], Fk12_Y[2];//Координаты кнопок панели быстрого доступа


//=========================================================
loadimage(#Pusk[0][0], "C:\L2_online_win_7_64\Pusk.bmp");
//=========================================================
int akt;
akt=findimage(-1, #Pusk[0][0], 0, #PuskX_0[0], #PuskY_0[0], 0, 0, 1920, 1080, -1);

akt1_X[0]=PuskX_0[0]-5;
akt1_Y[0]=PuskY_0[0]+5;

akt1_X[1]=PuskX_0[1]-5;
akt1_Y[1]=PuskY_0[1]+5;
//=========================================================
[i](Добавление)[/i]
//=========================================================
messagebox ("уберите все окна кроме одного-1"); sleep(1000);
mouse(LEFT, akt1_X[0], akt1_Y[0]); sleep(1500);
if (Load_Image()==-1){messagebox("Не найдены рисунки в C:\L2_online_win_7_64."); goto error;}

if (Pozicion_Image()==-1) goto error;//Расчет координат используемых объектов
sleep(100);

messagebox ("уберите все окна кроме одного-2"); sleep(1000);
mouse(LEFT, akt1_X[1], akt1_Y[1]); sleep(1500);
if (Load_Image()==-1){messagebox("Не найдены рисунки в C:\L2_online_win_7_64."); goto error;}

if (Pozicion_Image()==-1) goto error;//Расчет координат используемых объектов
messagebox ("Oкна найдены, координаты установлены."); sleep(3000);
//=========================================================
//=========================================================

loop:
mouse(LEFT, akt1_X[0], akt1_Y[0]); sleep(500);
messagebox("активировано 1е окно"); sleep(1000);
Clic_Mouse(akt1_X[0], akt1_Y[0]); sleep(100);
Clic_Mouse(Fk12_X[0], Fk12_Y[0]); sleep(2000);


mouse(LEFT, akt1_X[1], akt1_Y[1]); sleep(500);
messagebox("активировано 2е окно"); sleep(1000);
Clic_Mouse(akt1_X[1], akt1_Y[1]); sleep(100);
Clic_Mouse(Fk12_X[1], Fk12_Y[1]); sleep(2000);

goto loop;

error:;
[i](Добавление)[/i]
//=========================================================
//=========================================================
//=========================================================
//=========================================================
function Load_Image()//Грузятся рисунки
{
if (loadimage (#Panel_kn[0][0], "C:\L2_online_win_7_64\Panel_kn.bmp")==-1)return -1;//Панель быстрого доступа

return 0;
}
//=========================================================

//=========================================================
function Pozicion_Image()//Узнать позиции рисунков на экране для обозначения координат окна игры и необходимых элементов для работы бота
{

if (findimage(2, #Panel_kn[0][0], 0, #Panel_kn_X[0], #Panel_kn_Y[0], 0, 0, 1920, 1080, -1)==0){messagebox("Не найден в игре рисунок панели быстрого доступа."); return -1;}

//Координаты кнопок панели быстрого доступа
Fk1_X[0]=Panel_kn_X[0]+45; Fk1_Y[0]=Panel_kn_Y[0]+24;
Fk2_X[0]=Panel_kn_X[0]+84; Fk2_Y[0]=Panel_kn_Y[0]+24;
Fk3_X[0]=Panel_kn_X[0]+122; Fk3_Y[0]=Panel_kn_Y[0]+24;
Fk4_X[0]=Panel_kn_X[0]+158; Fk4_Y[0]=Panel_kn_Y[0]+24;
Fk5_X[0]=Panel_kn_X[0]+200; Fk5_Y[0]=Panel_kn_Y[0]+24;
Fk6_X[0]=Panel_kn_X[0]+240; Fk6_Y[0]=Panel_kn_Y[0]+24;
Fk7_X[0]=Panel_kn_X[0]+280; Fk7_Y[0]=Panel_kn_Y[0]+24;
Fk8_X[0]=Panel_kn_X[0]+313; Fk8_Y[0]=Panel_kn_Y[0]+24;
Fk9_X[0]=Panel_kn_X[0]+356; Fk9_Y[0]=Panel_kn_Y[0]+24;
Fk10_X[0]=Panel_kn_X[0]+395; Fk10_Y[0]=Panel_kn_Y[0]+24;
Fk11_X[0]=Panel_kn_X[0]+428; Fk11_Y[0]=Panel_kn_Y[0]+24;
Fk12_X[0]=Panel_kn_X[0]+467; Fk12_Y[0]=Panel_kn_Y[0]+24;

return 0;
}

(Добавление)
Вот такая штука, а клавишу
CODE:
Clic_Mouse(Fk12_X[0], Fk12_Y[0]); и Clic_Mouse(Fk12_X[1], Fk12_Y[1]);
не жмет и почему?
 
 Top
Kibor
Отправлено: 16 Октября, 2013 - 23:11:32
Post Id



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


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




Kote_UA ,
В принципе все прекрасно понимаете.
Если функция используется к примеру в сравнение, то необходимо для любого выхода из функции присваивать значение. Мало ли что может возвратить функция без указания возвращаемого значения...

CODE:
if (func()=="ответ один")
{
messagebox("ответ один");
}
else messagebox("ответ второй");
///////////////////////////////////

function func()
{
if (5==2)return "ответ один";
return "ответ второй";
}


К примеру что такое объявление переменной...
Это получение указателя на участок неиспользуемой компьютерной памяти.
Если переменной не присвоить значение какое то, то по этому адресу может находиться что угодно, что осталось от прошлого ее использования.

Можете не указывать return "ответ второй";, а потом думать почему программа бывает работает неправильно...
(Добавление)
Barabachka ,
 Barabachka пишет:
Вот такая штука, а клавишу
CODE:
Clic_Mouse(Fk12_X[0], Fk12_Y[0]); и Clic_Mouse(Fk12_X[1], Fk12_Y[1]);
не жмет и почему?


Вот на
Clic_Mouse(Fk12_X[1], Fk12_Y[1]);
жаться не должно.. где расчет Fk12_X[1], Fk12_Y[1] ,,??

По поводу остального... Ну мне сложно просчитывать алгоритм программы не имею под рукой объекта. В данном случае важно как окна расположены даж...

И к тому ж... где сама функция Clic_Mouse ??
Эта функция должна быть типа
function Clic_Mouse(int x? int y)
{
mouse(LEFT, x, y);
}

эта функция присутствует в демонстрационном скрипте. она не встроенная. видно ж что она не подсвечена.
 
 Top
Barabachka
Отправлено: 17 Октября, 2013 - 00:03:53
Post Id



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


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




 Kibor пишет:
И к тому ж... где сама функция Clic_Mouse ??

Да с этой функцией я намутил) просто уже устал и тыкал все подряд.
CODE:
mouse(LEFT, akt1_X[0], akt1_Y[0]); sleep(2000);
mouse(LEFT, Fk12_X[0], Fk12_Y[0]); sleep(2000);
сделал слип побольше терь видно что мыш на 1м окне жмет ниже и намного дальше по Х почти под краем окна
на втором окне вапще невидел её
прийду завтра с работы буду ломать голову как так вышло
 
 Top
Kote_UA
Отправлено: 17 Октября, 2013 - 01:28:39
Post Id



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


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




вопрос, вылетает ошибка индификации указателя #go__fun

что это значит?
(Добавление)
int Gorod[35][12];
int xg[20],yg[20];

win w = window (-1, "Chrome_RenderWidgetHostHWND", window ("Kote-UA .: Lineage II :. - Google Chrome", "Chrome_WidgetWin_1", -1));

activate (w);
LoadIage();

k: if (findimage(-1, #Gorod[0][0], 0, #xg[0], #yg[0], 0, 0, 1366, 643, -1)==1)
{
if (findimage(-1, #Gorod[0][0], 0, #xg[0], #yg[0], 0, 0, 1366, 643, -1)==0)
key(NEXT); sleep(500);
}

mouse (LEFT,xs[0]+1, ys[0]+1);sleep(500);
goto k;

function LoadIage(){
loadimage (#Gorod[0][0], "D:\L2\Gorod.bmp"Подмигивание;
}

и подскажите в чем тут ошибка
 
 Top
Kote_UA
Отправлено: 17 Октября, 2013 - 05:53:10
Post Id



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


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




CODE:
int gorod[28][8];
int xg1[50];
int yg1[50];

win w = window (-1, "Chrome_RenderWidgetHostHWND", window ("Kote-UA .: Lineage II :. - Google Chrome", "Chrome_WidgetWin_1", -1));

activate (w);
LoadImage();

k: if (findimage(1, #gorod[0][0], 0, #xg1[0], #yg1[0], 0, 0, 1366, 643, -1)==1)


{if (findimage(1, #gorod[0][0], 0, #xg1[0], #yg1[0], 0, 0, 1366, 643, -1)==0) {

key (NEXT); sleep(1500);}}


{mouse (LEFT,xg1[0], yg1[0]);sleep(1500);}
goto k;

function LoadImage(){
loadimage (#gorod[0][0], "D:\L2\gorod.bmp");
}



вот так, вообщем if==1 функция выполняеться, и происходит клик по коорденатам, если if==0 не выполняеться, и кликает в верх.л. угол, хотя должно пролистать вниз, взгляните опытным глазом)
 
 Top
Kibor
Отправлено: 17 Октября, 2013 - 06:52:14
Post Id



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


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




 Kote_UA пишет:
вот так, вообщем if==1 функция выполняеться, и происходит клик по коорденатам, если if==0 не выполняеться, и кликает в верх.л. угол, хотя должно пролистать вниз, взгляните опытным глазом)


С какого перепуга она листать будет?
Вот этот код упрощенный...

Если есть изображение
CODE:
if (1==1)
{
if (1==0)
{
key (NEXT); sleep(1500);//Никогда мы не попадем сюда....
}
}


mouse (LEFT,xg1[0], yg1[0]);sleep(1500);//Кликаем всегда




Если нет картинки
CODE:
if (0==1)
{
if (0==0)
{
key (NEXT); sleep(1500);//Никогда мы не попадем сюда....
}
}


mouse (LEFT,xg1[0], yg1[0]);sleep(1500);//Кликаем всегда, но поскольку изображения нет, то xg1[0], yg1[0] не известны. Кликаем куда придется.


В этом случае xg1[0], yg1[0] не известны, так как нет изображения и нет координат несуществующего изображения.
В xg1[0], yg1[0] может быть все что угодно. Я об этом выше писал...
Проверяйте messagebox(xg1[0])
(Добавление)
 Kote_UA пишет:
int Gorod[35][12];
int xg[20],yg[20];

win w = window (-1, "Chrome_RenderWidgetHostHWND", window ("Kote-UA .: Lineage II :. - Google Chrome", "Chrome_WidgetWin_1", -1));

activate (w);
LoadIage();

k: if (findimage(-1, #Gorod[0][0], 0, #xg[0], #yg[0], 0, 0, 1366, 643, -1)==1)
{
if (findimage(-1, #Gorod[0][0], 0, #xg[0], #yg[0], 0, 0, 1366, 643, -1)==0)
key(NEXT); sleep(500);
}

mouse (LEFT,xs[0]+1, ys[0]+1);sleep(500);
goto k;

function LoadIage(){
loadimage (#Gorod[0][0], "D:\L2\Gorod.bmp"Подмигивание;
}

и подскажите в чем тут ошибка


xs[0]+1, ys[0]....

Может xg[0]+1, yg[0]
??
 
 Top
Kote_UA
Отправлено: 17 Октября, 2013 - 08:01:37
Post Id



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


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




спасибо вам kibor. наконецто я создал вполне приличный скрипт) проверяя его на работоспособность заметил одну странную деталь, иногда интернет подтормаживает сек на 10, и кибор замерает наглухо до каких либо манипуляций вручную(обновить, кликнуть). можно ли как то с этим справиться?)
 
 Top
Kibor
Отправлено: 17 Октября, 2013 - 08:14:21
Post Id



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


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




 Kote_UA пишет:
иногда интернет подтормаживает сек на 10, и кибор замерает наглухо до каких либо манипуляций вручную(обновить, кликнуть). можно ли как то с этим справиться?)

?? Возможно имеется в виду что если тормозит интернет, Кибор тормозит при запуске??
Естественно. Он проверяет новую версию.
В процессе работы ему не важно какой интернет...

Что можно сделать с браузером который тормозит при плохом интернете (пример)?

Если интернета вообще нет, тогда он не будет тормозить, так как не будет пытаться проверить новую версию.
..
 
 Top
Barabachka
Отправлено: 17 Октября, 2013 - 18:56:58
Post Id



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


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




CODE:
loop:
messagebox("сейчас активирует 1е окно"); sleep(1000);
mouse(LEFT, akt1_X[0], akt1_Y[0]); sleep(4000);
mouse(LEFT, FkX_12[0], FkY_12[0]); sleep(4000);

messagebox("сейчас активирует 2е окно"); sleep(1000);
mouse(LEFT, akt1_X[1], akt1_Y[1]); sleep(4000);
mouse(LEFT, FkX_12[1], FkY_12[1]); sleep(4000);
goto loop;

error:;

Добил я этот пробный скрипт, все работает, но вот по этой цикличной програмке вот эти строки mouse(LEFT, FkX_12[1], FkY_12[1]); sleep(4000); и mouse(LEFT, FkX_12[0], FkY_12[0]); sleep(4000); срабатуют рендомно
т.е. по очереди или еще както
слипы стоят большие и все отчетливо видно сама мыш наводитсо на нужные координаты, а вот клики то проходят то нет я еще помялся и поставил туда соски так вот когда проходит клик соска срабатует а когда нет то нет
(Добавление)
Провел еще 1 эксперемент
1 окно срабатывало всегда. На втором просто наводилась мыш до тех пор пока я сам не щелкнул мышъю левой кнопкой, после срабатывало постоянно (щелкал во время работы кода)
(Добавление)
Провел эксперемент с mouse(RIGHT), таже история

(Отредактировано автором: 17 Октября, 2013 - 18:57:20)

 
 Top
Kibor
Отправлено: 17 Октября, 2013 - 20:46:24
Post Id



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


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




Попробуйте заменить mouse на пару
mousedown
sleep(200);
mouseup

Попробуйте делать 2 клика
mouse
sleep(200);
mouse

Только в этом случае смещайте координаты второго клика на несколько пикселей что б не был дабл клик на окне.. заголовке окна .
 
 Top
Страниц (13): В начало « 5 6 7 8 [9] 10 11 12 13 »
Сейчас эту тему просматривают: 7 (гостей: 7, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by