Cash |
Отправлено: 04 Ноября, 2014 - 21:33:39
|
Участник
Покинул форум
Сообщений всего: 56
Дата рег-ции: Окт. 2014
Репутация: 1
|
Прошу прощение за постоянные возможно тупые темы но я ничего не понимаю почему не работает уже часами сижу и не понимаю
CODE:win wind=window ("BlueStacks App Player", "WindowsForms10.Window.8.app.0.33c0d9d", -1);
int col, x, y;
getdisplay(col, x, y);
int Image_0[142][64];loadimage (#Image_0[0][0], "C:\Users\root\Documents\Image_0.bmp");
int PosX_0[1];int PosY_0[1];
int n=0;
b: if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0,x, y, -1)==1);
{sleep(50); goto b;}
sendmouse (LEFT, PosX_0[n], PosY_0[n],wind);
pause (6500);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (22000);
//нанять 100 рыцарей
sendmouse (LEFT, 590, 616, wind);
pause (1856);
sendmouse (LEFT, 742, 547, wind);
pause (1856);
sendmousetransfer(LEFT, 272, 471, 271, 224, 0.00006, wind);
pause (1500);
sendmouse (LEFT, 275, 471, wind);
pause (1794);
sendmouse (LEFT, 804, 558, wind);
pause (1045);
sendmouse (LEFT, 610, 421, wind);
pause (749);
sendmouse (LEFT, 610, 514, wind);
pause (608);
sendmouse (LEFT, 610, 514, wind);
pause (437);
sendmouse (LEFT, 783, 521, wind);
pause (905);
sendmouse (LEFT, 1040, 37, wind);
pause (1000);
goto b;
логика должна быть в следующем.
Если он находит изображение он на него кликает если не находит он ждет пока оно появится.
sendmouse (LEFT, PosX_0[n], PosY_0[n],wind);
Но он почему то пропускает эту строчку и тыкает на следующую а именно на
sendmouse (LEFT, 697, 606, wind); и тд
В чем ошибка?? |
|
|
Kibor |
Отправлено: 04 Ноября, 2014 - 21:52:18
|
Эксперт
Покинул форум
Сообщений всего: 8203
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Cash пишет: логика должна быть в следующем.
Если он находит изображение он на него кликает если не находит он ждет пока оно появится.
так почему тута все наоборот??
Cash пишет: b: if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0,x, y, -1)==1)
{sleep(50); goto b;}
Cash пишет: sendmouse (LEFT, PosX_0[n], PosY_0[n],wind);
Но он почему то пропускает эту строчку и тыкает на следующую а именно на
sendmouse (LEFT, 697, 606, wind); и тд
В чем ошибка??
да потому что он на нее пытается кликнуть в то время когда нет изображения и нет координат PosX_0[n], PosY_0[n]...
тут логика такова в этом коде
когда есть изображение ждем и кликает тогда когда пропало оно, причем кликаем по неизвестно откуда координатам взятым... то есть или по тем что были до этого в переменных.
CODE:int PosX , PosY;
b: if (findimage(1, #Image_0[0][0], 0, #PosX, #PosY, 0, 0,wind.leftclient, wind.topclient, wind)==0)
{sleep(50); goto b;}
sendmouse (LEFT, PosX, PosY, wind);
(Добавление)
И еще...
что за ерунда тут
b: if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0,x, y, -1)==1)
и тут
sendmouse (LEFT, PosX_0[n], PosY_0[n],wind);
почему поиск по экрану, а клик в оконных координатах?? |
|
|
Cash |
Отправлено: 04 Ноября, 2014 - 22:03:33
|
Участник
Покинул форум
Сообщений всего: 56
Дата рег-ции: Окт. 2014
Репутация: 1
|
дак я как думал
b: if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0,x, y, -1)==1);
ЕСЛИ найдено изображение оно возвращает единицу если нет то возвращает 0
поэтому если возвращенно 1==1
{sleep(50); goto b;}
то есть если 1==1 то слип 50 если нет то ищи заново... а у вас если найденно изображение возвращает 0?? |
|
|
Kibor |
Отправлено: 04 Ноября, 2014 - 22:07:45
|
Эксперт
Покинул форум
Сообщений всего: 8203
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Cash пишет: дак я как думал
b: if (findimage(1, #Image_0[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0,x, y, -1)==1);
ЕСЛИ найдено изображение оно возвращает единицу если нет то возвращает 0
поэтому если возвращенно 1==1
{sleep(50); goto b;}
то есть если 1==1 то слип 50 если нет то ищи заново... а у вас если найденно изображение возвращает 0??
эээээ
не понимаете логики или не знаете как выполняется код в скобках
a: if (1==1)
{
sleep(25);
goto a;
}
что код делает?? |
|
|
Kibor |
Отправлено: 04 Ноября, 2014 - 22:15:24
|
Эксперт
Покинул форум
Сообщений всего: 8203
Дата рег-ции: Март 2013
Откуда: Одесса
Репутация: 357
|
Cash пишет: а перед фигурными скобками не надо ставить ; ?
неа
Логические операции и переходы
(Добавление)
CODE:int PosX , PosY;
b: if (findimage(1, #Image_0[0][0], 0, #PosX, #PosY, 0, 0,wind.leftclient, wind.topclient, wind)==0)
{sleep(50); goto b;}
sendmouse (LEFT, PosX, PosY, wind);
это вставить |
|
|
Cash |
Отправлено: 05 Ноября, 2014 - 21:14:42
|
Участник
Покинул форум
Сообщений всего: 56
Дата рег-ции: Окт. 2014
Репутация: 1
|
Кибор в общем конечный код выглядит так
CODE:win wind=window ("BlueStacks App Player", "WindowsForms10.Window.8.app.0.33c0d9d", -1);
int col, x, y;
int Image_0[142][64];loadimage (#Image_0[0][0], "C:\Users\root\Documents\Image_0.bmp");
getdisplay(col, x, y);
int n=0;
int PosX , PosY;
int Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds;
int время_выполнения_милисек;
int time;
j: getlocaltime(Year, Month, DayOfWeek, Day, Hour, Minute, Second, Milliseconds);
время_выполнения_милисек=0;
if (Hour==23 && Minute==30)время_выполнения_милисек=3600000; // 60*60*1000 час
if (Hour==5 && Minute==30)время_выполнения_милисек=3600000; // 60*60*1000 час
if (Hour==10 && Minute==0)время_выполнения_милисек=3600000; // 60*60*1000 час
if (время_выполнения_милисек!=0)
{
sendmouse (LEFT, 597, 154, wind);
pause (2000);
time=gettime();
a: if (gettime()-time<время_выполнения_милисек)
{
fight();
sleep(100);
goto a;
}
}
sleep(100);
goto j;
//////////////////
function fight()
{
b: if (findimage(1, #Image_0[0][0], 0, #PosX, #PosY, 0, 0,x, y, -1)==0)
{sleep(50); goto b;}
sendmouse (LEFT, PosX, PosY,wind);
pause (6500);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (4000);
sendmouse (LEFT, 697, 606, wind);
pause (100);
sendmouse (LEFT, 573, 608, wind);
pause (106);
sendmouse (LEFT, 459, 609, wind);
pause (121);
sendmouse (LEFT, 337, 612, wind);
pause (22000);
//нанять 100 рыцарей
sendmouse (LEFT, 590, 616, wind);
pause (1856);
sendmouse (LEFT, 742, 547, wind);
pause (1856);
sendmousetransfer(LEFT, 272, 471, 271, 224, 0.00006, wind);
pause (1500);
sendmouse (LEFT, 275, 471, wind);
pause (1794);
sendmouse (LEFT, 804, 558, wind);
pause (1045);
sendmouse (LEFT, 610, 421, wind);
pause (749);
sendmouse (LEFT, 610, 514, wind);
pause (608);
sendmouse (LEFT, 610, 514, wind);
pause (437);
sendmouse (LEFT, 783, 521, wind);
pause (905);
sendmouse (LEFT, 1040, 37, wind);
pause (1000);
}
он работает, но по частям
например:
- он отработает код до начала функции (в функцию не переходит) если запущен например в 23:20
- если код запустить в 23:40 он уже не отработает
- если функцию запустить отдельно от первого кода он отрабатывает только когда окно в развернутом состоянии то есть скрипт не может искать изображение если окно свернуто?
как быть? (Отредактировано автором: 05 Ноября, 2014 - 21:15:24) |
|
|
|