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

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

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

> Без описания
Andrew
Отправлено: 06 Августа, 2013 - 23:32:55
Post Id



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


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




Здравствуйте Kibor .
В мой мозг взбрела новая идея Хм
Можно ли реализовать такое:
 Цитата:
Данная функция проверяет статичность экрана. Нужна для выжидания паузы. Пока персонаж бежит экран статичен только в некоторых местах-низ, чат, хп, ник (примеры статики), а когда он прибежит-он стоит на месте А?! , и окружающая среда становиться более менее статична.
CODE:

Идем;
Ждем статичность экрана на 1/2;
Идем;

Можно ли выполнить такое?

Можно было брать для каждого места, на которое приходит персонаж, делать скрин и сравнивать с неполным совпадением... но их нужно много. Можно даже не искать статичности всего экрана (игрового окна), а только части (квадрат левого угла, место над ником и др.). Подскажите пожалуйста, возможно ли выполнить данную функцию?
P.S. На слово "Можно" меня просто поперло Радость
 
 Top
Kibor
Отправлено: 07 Августа, 2013 - 00:26:10
Post Id



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


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




Я так понял это для определения того момента когда персонаж уже дошел до точки и стал?

В принципе можно... К примеру мы проверяем статичность части экрана 200 на 100 в нижнем левом углу как на рисунке.
Для этого пишем такой код:

CODE:
//Кликнули мышкой для передвижения перса
int din;
j: finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 5, 380, 205, 480, w);//делаем скрин части экрана в координатах 5, 380, 205, 480 относительно левого верхнего угла окна игры w
sleep(1000);//пауза 1 сек
din=finddynamic(12, #x[0], #y[0], 45, 30, 50, 33, 5, 380, 205, 480, w);// сравниваем с скрином и получаем количество очагов динамики. их может поместиться максимум 12 при динамичном экране так как ищутся объемы размерами 50 на 33.
//Объем считается динамичным если все пикселя входящие в желтый крестик размером 45 на 30 содержит все динамичные пикселя
if (din>6) goto j;//Больше половины участка динамика. проверка опять
//Если количество очагов динамики меньше половины - экран статика.
//Идем дальше


Но может так быть что в пределах рамки будет моб или другой перс стоять и там будет более 50 процентов динамики. Лучше проверять разные части экрана. То есть не в одном углу а раскидать эти 12 проверок по разным местам.

 
 Top
Andrew
Отправлено: 07 Августа, 2013 - 01:37:33
Post Id



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


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




Kibor , И в тысячный раз спасибо.
Создал функцию Хорошо
CODE:
win w=window ("Drakensang Online: браузерная онлайн-игра в стиле фэнтези", "QWidget", -1);
sleep(500);
int din; int x[0]; int y[0];
activate(w);
sleep(500);

///////////////////////

mouse (LEFT, 823, 233); // Идем
sleep(1000);

dynamic(); // Ждем, когда перс придет на место

mouse (RIGHT, 823, 233); // Пришли, стреляем
sleep(700);
mouse (RIGHT, 823, 233);
sleep(7000)

function dynamic()
{
j:
finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 5, 380, 205, 380, w);
sleep(5000);
din=finddynamic(12, #x[0], #y[0], 45, 30, 50, 33, 5, 380, 205, 380, w);
if (din>6)
{goto j;}

else
{sleep(500);} // После того как пришли на место, даем пролагаться
}
 
 Top
Kibor
Отправлено: 07 Августа, 2013 - 02:02:59
Post Id



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


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




Пожалуйста. Обращайтесь.

Пару замечаний...

 Andrew пишет:
int din; int x[0]; int y[0];

Надо выделить память минимум для 12 координат:
 Andrew пишет:
din=finddynamic(12,

А тут вообще память выделяется 0...
Получается ошибка и finddynamic вернет не количество объектов а -1

finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 5, 380, 205, 380, w);
sleep(5000);
din=finddynamic(12, #x[0], #y[0], 45, 30, 50, 33, 5, 380, 205, 380, w);

Где область поиска? Координаты Y левого верхнего и правого нижнего углов прямоугольника одинаковы.

Тут можно было обойтись без else. Все равно если условие не выполнено управление попадет на следующую строку:
CODE:
j: finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 5, 380, 205, 480, w);
sleep(5000);
din=finddynamic(12, #x[0], #y[0], 45, 30, 50, 33, 5, 380, 205, 480, w);
if (din>6) goto j;
sleep(500); // После того как пришли на место, даем пролагаться


А можно вообще так:
CODE:
j: finddynamic(0, #x[0], #y[0], 0, 0, 0, 0, 5, 380, 205, 480, w);
sleep(5000);
if (finddynamic(12, #x[0], #y[0], 45, 30, 50, 33, 5, 380, 205, 480, w)>6) goto j;
sleep(500); // После того как пришли на место, даем пролагаться
 
 Top
Andrew
Отправлено: 07 Августа, 2013 - 02:42:55
Post Id



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


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




Огорчение А у меня все так замечательно работало.. Я еще несколько раз перепроверил перед тем как выложить((
 
 Top
Kibor
Отправлено: 07 Августа, 2013 - 02:55:54
Post Id



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


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




Улыбка
Просто перс успевал добежать за время паузы 5 сек.
Но свое назначение эта функция не выполняла.
Кстати паузу можно поставить меньше. 2 сек вполне должно хватить.
 
 Top
Andrew
Отправлено: 07 Августа, 2013 - 03:04:09
Post Id



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


Покинул форум
Сообщений всего: 118
Дата рег-ции: Июнь 2013  
Откуда: Россия
Репутация: 9




Нет нет нееет Радость
5 секунд я посааил на проверке, посмотреть будет персоонаж стоять или сразу начнеть стрелять. Когда выкладывал забыл убрать «0», что бы было 500 м.сек. Добегал он до места за секунду с небольшим Улыбка
 
 Top
Kibor
Отправлено: 07 Августа, 2013 - 03:09:37
Post Id



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


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




 Andrew пишет:
mouse (LEFT, 823, 233); // Идем
sleep(1000);

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


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




Powered by