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

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

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

> Без описания
Cash
Отправлено: 04 Ноября, 2014 - 21:33:39
Post Id



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


Покинул форум
Сообщений всего: 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); и тд
В чем ошибка??
 
 Top
Kibor
Отправлено: 04 Ноября, 2014 - 21:52:18
Post Id



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


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




 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);

почему поиск по экрану, а клик в оконных координатах??
 
 Top
Cash
Отправлено: 04 Ноября, 2014 - 22:03:33
Post Id



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


Покинул форум
Сообщений всего: 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?? Не понял
 
 Top
Kibor
Отправлено: 04 Ноября, 2014 - 22:07:45
Post Id



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


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




 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;
}

что код делает??
 
 Top
Cash
Отправлено: 04 Ноября, 2014 - 22:11:17
Post Id



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


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




если 1==1 то уснуть если нет то снова проверить? нет?
upd
ааа понял если 1==1 то выполнить код в скобках уснуть и снова проверить
upd2
а перед фигурными скобками не надо ставить ; ?

(Отредактировано автором: 04 Ноября, 2014 - 22:12:53)

 
 Top
Kibor
Отправлено: 04 Ноября, 2014 - 22:15:24
Post Id



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


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




 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);

это вставить
 
 Top
Cash
Отправлено: 04 Ноября, 2014 - 22:21:06
Post Id



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


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




а я находил в кодах дургих на форуме
int PosX_0[1];int PosY_0[1];
а вы предлогаете писать просто PosX, PosY в чем отличие?
 
 Top
Kibor
Отправлено: 04 Ноября, 2014 - 22:32:50
Post Id



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


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




в этом случае ищется 1 изображение
findimage(1,

поэтому координата одна только быть у нас может.
поэтому массив не нужен. тем более int PosX_0[1];int PosY_0[1];

int PosX_0[1];int PosY_0[1];
это массив в один элемент.. то есть int PosX_0;int PosY_0;

http://kibor-bot.com/forum/topic...=14&topic=10

я надеюсь ссылки юзаются что даю?
 
 Top
Cash
Отправлено: 04 Ноября, 2014 - 23:09:27
Post Id



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


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




да читаю конечно только не всегда все примеры описаны в справке отсюда и вопросы
 
 Top
Cash
Отправлено: 05 Ноября, 2014 - 21:14:42
Post Id



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


Покинул форум
Сообщений всего: 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)

 
 Top
Страниц (3): [1] 2 3 »
Сейчас эту тему просматривают: 1 (гостей: 1, зарегистрированных: 0)
« Вопросы и решение проблем »


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




Powered by