Barabachka |
Отправлено: 16 Октября, 2013 - 22:18:43
|
Участник
Покинул форум
Сообщений всего: 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]); не жмет и почему? |
|
|
Kibor |
Отправлено: 16 Октября, 2013 - 23:11:32
|
Эксперт
Покинул форум
Сообщений всего: 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);
}
эта функция присутствует в демонстрационном скрипте. она не встроенная. видно ж что она не подсвечена. |
|
|
Barabachka |
Отправлено: 17 Октября, 2013 - 00:03:53
|
Участник
Покинул форум
Сообщений всего: 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м окне жмет ниже и намного дальше по Х почти под краем окна
на втором окне вапще невидел её
прийду завтра с работы буду ломать голову как так вышло |
|
|
Kote_UA |
Отправлено: 17 Октября, 2013 - 01:28:39
|
Прохожий
Покинул форум
Сообщений всего: 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"
}
и подскажите в чем тут ошибка |
|
|
Kote_UA |
Отправлено: 17 Октября, 2013 - 05:53:10
|
Прохожий
Покинул форум
Сообщений всего: 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 не выполняеться, и кликает в верх.л. угол, хотя должно пролистать вниз, взгляните опытным глазом) |
|
|
Kibor |
Отправлено: 17 Октября, 2013 - 06:52:14
|
Эксперт
Покинул форум
Сообщений всего: 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]
?? |
|
|
Barabachka |
Отправлено: 17 Октября, 2013 - 18:56:58
|
Участник
Покинул форум
Сообщений всего: 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) |
|
|
|