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

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

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

> Описание: Хотя бы по кусочкам,бот простой просто нужно выполнить много действий
sakr1dd
Отправлено: 06 Октября, 2013 - 22:43:09
Post Id



Пользователь
Наблюдатель


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




Да да я понял,оно кликало на первую попавшуююся стрелочку(( Только мне еще надо сделать условие Либо начиная от зеленого окна либо от синего там 2 варианта возможны.... Вообще стим это платформа для игр,тобиш когда человек в игре окно зеленое,когда просто в стиме синее,когда оффлайн серое,оффлайн мне не надо,а вот когда в стиме или в игре нужно... как можно добавить к тому что есть чтобы выполнялось условие когда видит зеленое окно и нажимает на стрелку либо если нету зеленого чтобы искал синее окошко и нажимал на стрелку?
 
 Top
Kibor
Отправлено: 06 Октября, 2013 - 22:49:29
Post Id



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


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




 Цитата:
int Image_0[100][100];
if (loadimage (#Image_0[0][0], "C:\Prog\A6.bmp")>0)messagebox("Image_1 Congr");//Зеленая рамка
else messagebox ("Image_1 nooo");

int Image_2[100][100];
if (loadimage (#Image_2[0][0], "C:\Prog\A8.bmp")>0)messagebox("Image_1 Congr");//Синяя рамка
else messagebox ("Image_1 nooo");


int Image_1[100][100];
if (loadimage (#Image_1[0][0], "C:\Prog\A7.bmp")>0)messagebox("Image_2 Congr");//Галка
else messagebox ("Image_2 nooo");

int PosX_K, PosY_K;
int PosX, PosY;

if (findimage(1, #Image_0[0][0],255, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)
{
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX+PosX_K, PosY+PosY_K);
mouse(LEFT);
sleep (2000);
}
}
else//нет рамки зел.
{
if (findimage(1, #Image_2[0][0],255, #PosX_K, #PosY_K, 0, 0, 1366, 768, -1)==1)//синюю ищем
{
if (findimage(1, #Image_1[0][0], 0, #PosX, #PosY, PosX_K, PosY_K, 1366, 768, -1)==1)
{
mousemove(PosX+PosX_K, PosY+PosY_K);
mouse(LEFT);
sleep (2000);
}
}
}

 
 Top
sakr1dd
Отправлено: 06 Октября, 2013 - 23:13:11
Post Id



Пользователь
Наблюдатель


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




Работает не совсем так... получается если есть зеленый оно выбирает от синего,если зеленого нету вообще не выбирает
 
 Top
Kibor
Отправлено: 06 Октября, 2013 - 23:31:49
Post Id



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


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




 sakr1dd пишет:
Работает не совсем так... получается если есть зеленый оно выбирает от синего,если зеленого нету вообще не выбирает


 Цитата:
int a=1;//типа есть зеленая
//int a=5;//типа есть синяя
if (a==1)
{
if (2==2)
{
messagebox("типа есть зеленая");
}
}
else//нет рамки зел.
{
if (a==5)//синюю ищем
{
if (6==6)
{
messagebox ("типа есть синяя");
}
}
}


Смысл тот же.
Читайте все ссылки что я дал и найдете ответ.
Особое внимание уделите параметрам findimage
Проверьте ищется просто синяя рамка..
Эксперементируйте с скриптом.
 
 Top
sakr1dd
Отправлено: 07 Октября, 2013 - 15:23:46
Post Id



Пользователь
Наблюдатель


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




Можете подсказать из-за чего может такой быть,я запускаю программу она делает все что надо потом останавливается,запускаю еще пару раз еще пару раз выполняется,потом запускаю и она делает первые 3-4 действия и как не крути останавливается,нужно ли чистить память массивов какими то переменными и вообще из-за памяти это или нет?
 
 Top
Kibor
Отправлено: 07 Октября, 2013 - 16:25:59
Post Id



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


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




При правильном использование памяти ничего не должно быть такого и чистить не надо ничего.
Посмотреть как выделяется в кибор память можно в диспечере задач.
Быстрее всего что то в коде.
 
 Top
sakr1dd
Отправлено: 07 Октября, 2013 - 16:40:09
Post Id



Пользователь
Наблюдатель


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




Блин все так запутано,что не могу выяснить причину правильной и одновременной неправильной работы программы..
В общем,вот мой код,построил практически на одних картинках...
CODE:
//ПЕРЕМЕННЫЕ
int col,x,y;
//Массивы
int Image_0[16][16];//Кнопка стима внизу экрана,открыть стим
int Image_1[93][12];//Кнопка Список друзей,открыть список друзей
int Image_2[43][10];//Кнопка принять в друзья
int Image_3[300][300];//Кнопка Закрыть,после принятия в друзья.
int Image_4[100][100];
int Image_5[300][300];
//Переменные углов картинок
int PosX_0,PosY_0;
int PosX_1,PosY_1;
int PosX_2,PosY_2;
int PosX_3,PosY_3;
int PosX_4,PosY_4;
int PosX_5,PosY_5;
//Загрузка картинок в память с диска
loadimage (#Image_0[0][0],"C:\Prog\A1.bmp");//Картинка Стима
loadimage (#Image_1[0][0],"C:\Prog\A2.bmp");//Картинка Список друзей
loadimage (#Image_2[0][0],"C:\Prog\A3.bmp");//Картинка Принять в друзья
loadimage (#Image_3[0][0],"C:\Prog\A4.bmp");//Картинка Закрыть
loadimage (#Image_4[0][0],"C:\Prog\A5.bmp");//Картинка Стрелка
loadimage (#Image_5[0][0],"C:\Prog\A7.bmp");//Картинка Предложить

(Добавление)
CODE:
//Условия поиска
if(findimage(1,#Image_0[0][0],0,#PosX_0,#PosY_0,0,0,1366,768,-1)==1)//ПОИСК картинки Стима и двойной клик на нее
{
mousemove(PosX_0+8,PosY_0+8);
mousedbl(LEFT);
}
sleep(1000);

if(findimage(1,#Image_1[0][0],0,#PosX_1,#PosY_1,0,0,1366,728,-1)==1)//ПОИСК картинки список друзей и клик на нее
{
mousemove(PosX_1,PosY_1);
mouse(LEFT);
}
sleep(1000);

if(findimage(1,#Image_2[0][0],0,#PosX_2,#PosY_2,0,0,1366,728,-1)==1)//ПОИСК на экране картинки ПРИНЯТЬ и клик на нее
{
mousemove(PosX_2,PosY_2);
mouse(LEFT);
sleep(1000);
}

if(findimage(1,#Image_3[0][0],0,#PosX_3,#PosY_3,0,0,1366,728,-1)==1)//ПОИСК на экране закрыть и клик на нее
{
mousemove(PosX_3,PosY_3);
mouse(LEFT);
}
sleep(1000);

if(findimage(1,#Image_4[0][0],0,#PosX_4,#PosY_4,0,0,1366,728,-1)==1)//ПОИСК на экране закрыть и клик на нее
{
mousemove(PosX_4,PosY_4);
mouse(LEFT);
}
sleep(1000);

if(findimage(1,#Image_5[0][0],0,#PosX_5,#PosY_5,0,0,1366,728,-1)==1)//ПОИСК на экране закрыть и клик на нее
{
mousemove(PosX_5,PosY_5);
mouse(LEFT);
}
sleep(1000);

[/code]
(Добавление)
Вот 4 видео работы программы
В 1ом не выполняется 5-6 действия,почему не знаю.
1


Во 2ом аналогично
2


В 3-м появляется принимает человечка в игре(с зеленым окошком) не срабатывает,но после него вуаля... он делает все 6 действий
3


В 4-м так же выполняет все что нужно...
4


Чтобы было проще понять что не так,записал видео работы проги(т.к. у меня пока еще не получилось сделать чтобы находило стрелочку от левого угла зеленой/синей рамки,я сделал просто картинку стрелки на которую нужно нажимать(по идее если должна присутствовать хоть одна такая стрелка должно клацать,но этого нету))
(Добавление)
win wind ... );
и int col x,y; это было для теста,в основном коде его нету,так что из-за этого ошибок быть не может

(Отредактировано автором: 07 Октября, 2013 - 16:40:23)

 
 Top
Kibor
Отправлено: 07 Октября, 2013 - 16:48:51
Post Id



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


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




Я не понял, это полный весь код?

А где зацикливание?
В конце кода goto a;
и в начале a:; (перед первым findimage)

В таком виде код до конца доходит и все...

Проектирование программы. Оптимальная структура
 
 Top
sakr1dd
Отправлено: 07 Октября, 2013 - 16:49:58
Post Id



Пользователь
Наблюдатель


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




Да да я знаю,я просто пока для проверки делаю без цикла,позже думал добавить. Но в моем случае он иногда не доходит до конца
(Добавление)
Только что случилось следующее,сделал зацикливание он начал перепрыгивать через действия..
(Добавление)
5

(Отредактировано автором: 07 Октября, 2013 - 16:50:28)

 
 Top
Kibor
Отправлено: 07 Октября, 2013 - 17:09:25
Post Id



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


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




Так может надо больше паузу во времени?

Ну и не мешает Получить указатель на игру
win w =.....

И сделать в начале скрипта
ativate(w);
sleep(1000);

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


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




Powered by