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

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

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

> Без описания
Junior
Отправлено: 24 Мая, 2018 - 21:28:21
Post Id



Пользователь
Прохожий


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




Нужна помощь в освоении функций. На данный момент это findimage.


Не могу разобраться с синтаксисом этой функции.

CODE:
win wind = window ("Безымянный — Блокнот", "Notepad", -1);
wind.leftclient=1; wind.topclient=50;
moveclient(wind);
int lClient=wind.leftclient;
int tClient=wind.topclient;
int wClient=wind.widthclient;
int hClient=wind.heightclient;


int col_KIB, ex_KIB, ey_KIB, sum_KIB, x_KIB, y_KIB;
int bloknot[33][16];

start_();
outofbase_();


function start_()
{
getdisplay(32, wClient, hClient);
load_image_();
pause(1000);
}

function outofbase_()
{
if (findimage(1, #bloknot[0][0], 0, #xbase[0], #ybase[0], lClient, tClient, wClient, hClient, wind)<1)
{
pause(200);
textout(1, 120,90, "Something wrong", 0);
} else {
mousemove(x_base[0], y_base[0]);
pause(100);
}
}

function load_image_()
{
loadimage (#bloknot[0][0], "D:\bot_eve_kibor\file.bmp");//изображение кнопки(надписи) меню: "файл"
}


В результате этого выходит ошибка:

 Цитата:

---------------------------
Kibor
---------------------------
Ошибка в:

findimage(1,#outofbase1[0][0],0,#xbase[0]ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННээээ,#ybase[0]ННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННННээээ,1,50,730,635,WINS[0])<1goto22
---------------------------
ОК
---------------------------

Что я делаю не так ? Пробовал менять в самих параметрах этой функции, вне её всякое пробовал, выдаёт разные ошибки, но всегда ругается именно на строку с findimage.

И вопрос по переменным, почему в некоторых случаях используется решётка "#" а в некоторых нет, как ими правильно оперировать, куда надо дописывать "#", куда не надо и как их объявлять(переменные такие)?
 
 Top
Kibor
Отправлено: 24 Мая, 2018 - 21:39:51
Post Id



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


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




getdisplay(32, wClient, hClient);
ошибки


xbase ybase
нет объявления
 
 Top
Junior
Отправлено: 25 Мая, 2018 - 03:32:08
Post Id



Пользователь
Прохожий


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




 Kibor пишет:
getdisplay(32, wClient, hClient);
ошибки


xbase ybase
нет объявления


Сделал(объявил переменные, поставил значения в getdisplay, даже добавил разбег в findimage), вроде заработало, но не находит картинку Недовольство, огорчение
CODE:
win wind = window ("Безымянный — Блокнот", "Notepad", -1);
wind.leftclient=1; wind.topclient=50;
moveclient(wind);
int lClient=wind.leftclient;
int tClient=wind.topclient;
int wClient=wind.widthclient;
int hClient=wind.heightclient;


int xbase[0];//объявил
int ybase[0];//объявил
int bloknot[33][16];

start_();
outofbase_();


function start_()
{
getdisplay(32, 1920, 1080); //поменял. есть какая то встроенная глобальная переменная, чтобы выдёргивать разрешение экрана?
load_image_();
pause(1000);
}

function outofbase_()
{
pause(200);
if (findimage(1, #bloknot[0][0], 0, #xbase[0], #ybase[0], lClient, tClient, wClient, hClient, 20, 20, 20, 20, 20, 20, 100, 0, wind)<1) //добавил разбег по цветам
{
pause(200);
textout(1, 120,90, "Something wrong", 0);
messagebox("Не получилось");
} else {
mousemove(xbase[0], ybase[0]);
pause(100);
messagebox("Получилось");
}
}

function load_image_()
{
loadimage (#bloknot[0][0], "D:\bot_eve_kibor\file.bmp");
}
 
 Top
Zireael
Отправлено: 25 Мая, 2018 - 03:51:24
Post Id



Пользователь
Эксперт


Покинул форум
Сообщений всего: 4397
Дата рег-ции: Нояб. 2017  
Репутация: 580




Блокнот не самый удачный вариант. Для начала проще на рабочем столе найти какой-то ярлык.
 Цитата:
int xbase[0];//объявил
int ybase[0];//объявил

Нужно размер указывать.
CODE:
int xbase[5]; // массив на 5 элементов
int ybase[5];

 Цитата:
getdisplay(32, 1920, 1080); //поменял. есть какая то встроенная глобальная переменная, чтобы выдёргивать разрешение экрана?

CODE:
int color, x, y;
getdisplay(color, x, y);
messagebox(x);
messagebox(y);
 
 Top
Junior
Отправлено: 25 Мая, 2018 - 04:21:04
Post Id



Пользователь
Прохожий


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




 Zireael пишет:
Блокнот не самый удачный вариант. Для начала проще на рабочем столе найти какой-то ярлык.
 Цитата:
int xbase[0];//объявил
int ybase[0];//объявил

Нужно размер указывать.
CODE:
int xbase[5]; // массив на 5 элементов
int ybase[5];

 Цитата:
getdisplay(32, 1920, 1080); //поменял. есть какая то встроенная глобальная переменная, чтобы выдёргивать разрешение экрана?

CODE:
int color, x, y;
getdisplay(color, x, y);
messagebox(x);
messagebox(y);


Упростил ещё больше

CODE:
int xbase[1];//îáúÿâèë
int ybase[1];//îáúÿâèë
int bloknot[47][50];

start_();
outofbase_();


function start_()
{
getdisplay(32, 1920, 1080); //ïîìåíÿë. åñòü êàêàÿ òî âñòðîåííàÿ ãëîáàëüíàÿ ïåðåìåííàÿ, ÷òîáû âûä¸ðãèâàòü ðàçðåøåíèå ýêðàíà?
load_image_();
pause(1000);
}

function outofbase_()
{
pause(200);
findimage(1, #bloknot[0][0], 0, #xbase[0], #ybase[0], 0, 0, 1920, 1080, 20, 20, 20, 20, 20, 20, 100, 1, -1)
pause(200);
string xy=format(xbase[0])+" "+ybase[0]);
mousemove(xbase[0], ybase[0]);
messagebox(xy);
pause(100);
}
}

function load_image_()
{
loadimage (#bloknot[0][0], "D:\bot_eve_kibor\ikonka.bmp");
}


всё равно не находит
(Добавление)
там где объявил стринговую переменную немного ошибся, забыл дописать "format("
после исправления, меседжбокс выдаёт

---------------------------
Kibor
---------------------------
-842150451 -842150451
---------------------------
ОК
---------------------------
 
 Top
Kibor
Отправлено: 25 Мая, 2018 - 04:37:48
Post Id



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


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




Получение помощи непосредственно в программе Кибор






 Цитата:
int xbase[1];//îáúÿâèë
int ybase[1];//îáúÿâèë
int bloknot[47][50];

start_();
outofbase_();


function start_()
{
getdisplay(32, 1920, 1080); //ïîìåíÿë. åñòü êàêàÿ òî âñòðîåííàÿ ãëîáàëüíàÿ ïåðåìåííàÿ, ÷òîáû âûä¸ðãèâàòü ðàçðåøåíèå ýêðàíà?
load_image_();
pause(1000);
}

function outofbase_()
{
pause(200);
findimage(1, #bloknot[0][0], 0, #xbase[0], #ybase[0], 0, 0, 1920, 1080, 20, 20, 20, 20, 20, 20, 100, 1, -1);
pause(200);
string xy=format(xbase[0])+" "+ybase[0]);
mousemove(xbase[0], ybase[0]);
messagebox(xy);
pause(100);
}
}

function load_image_()
{
loadimage (#bloknot[0][0], "D:\bot_eve_kibor\ikonka.bmp");
}
 
 Top
Junior
Отправлено: 25 Мая, 2018 - 06:35:03
Post Id



Пользователь
Прохожий


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




Прожал ссылку для получения "справки"
 Цитата:
Работа с системой.
Для

определения параметров экрана

можно воспользоваться функцией getdisplay:

getdisplay(color, x, y);
Все параметры имеют тип int.
В первый записывается глубина цвета.
Во второй разрешение экрана по горизонтали.
В третий разрешение экрана по вертикали.
В случае ошибки возвращает 0. В случае удачного определения 1.

Отсюда я понимаю, что эта функция нужна чтобы получить параметры экрана, однако дальше идёт заполнение параметров функции, т.е. я должен вбить 3 цифры, но какие надо вбивать? Разрешение экрана моего монитора в настоящий момент, область экрана, которую я хочу проверить, размер клиентского окна, к которому привязан бот? Т.е. это уже в любом случае не определение параметров экрана, а сравнение с заданными в функции параметрами. Хорошо, вбиваю
CODE:
getdisplay(8, 1920, 1080);
Цифры брал так: правой кнопкой мыши жмакаю по рабочему столу, параметры экрана, дополнительные параметры, вижу там данные: разрядность 8-bit(но даже если ставить другие, результат не меняется), разрешение и активное разрешение 1920х1080. Делаю проверку:
CODE:
int dspl=getdisplay(8, 1920, 1080);
string splstr=format(dspl);
messagebox(splstr);

В случае совпадения должно выйти сообщение с единичкой, однако выходит это:
 Цитата:

---------------------------
Kibor
---------------------------
-842150451
---------------------------
ОК
---------------------------


То же число, кстати, выдаёт и при выводе xbase и ybase

1. Мне не понятно как работать с этой функцией, нет элементарного 2-3 строчного примера, 100% срабатывающего, чтобы воткнуть себе и поиграть/понять как оно устроено.

2. В моей проблеме с нахождением картинки эта функция играет какую то роль, файндимайдж сильно завязана на гетдисплей? Либо же она сугубо проверочная и на данном этапе в моём случае она(getdisplay) не нужна?

По поводу запятой полностью согласен, балбес невнимательный.

(Отредактировано автором: 25 Мая, 2018 - 06:37:13)

 
 Top
Kibor
Отправлено: 25 Мая, 2018 - 08:57:48
Post Id



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


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




 Цитата:
В первый записывается глубина цвета.
Во второй разрешение экрана по горизонтали.
В третий разрешение экрана по вертикали.

Как в числа можно записать?
Туда надо вводить переменные, в которые эта функция запишет параметры нашего экрана.

int color, x, y;
getdisplay(color, x, y);

в x будет ширина, в y высота разрешения.
Их потом использовать в программе, а не вводить числа которые мы узнали в параметрах нашего экрана.
Zireael уже дал код этой функции с пояснениями.
 
 Top
Junior
Отправлено: 25 Мая, 2018 - 10:14:30
Post Id



Пользователь
Прохожий


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




Мы друг друга по-моему совершенно не понимаем.
Мне не принципиален вывод переменных месседжбоксом переменных с разрешением на экран, это просто для проверки какие данные я получаю. Меня интересует 2 вещи.
1. Почему int dspl=getdisplay(8, 1920, 1080)(если вам будет проще понять то int color=8, int x=1920, int y=1080; int dspl=getdisplay(color, x, y) ) переменная dspl вместо "0" и "1"(как написано в хелпе) возвращает -842150451.

2. На сколько нужна getdisplay(); и нужна ли она вообще при использовании findimage();

Есть возможность пообщаться ? Скайп или дискорд в личку если можно.
 
 Top
Kibor
Отправлено: 25 Мая, 2018 - 10:45:03
Post Id



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


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




 Junior пишет:
Мы друг друга по-моему совершенно не понимаем.

Это вы не понимаете открытых указаний на ошибку.
 Junior пишет:
возвращает -842150451.

Потому что у вас в getdisplay ошибка, о чем неоднократно уже говорилось тут.
Исправьте ее и будет как надо.

 Junior пишет:
На сколько нужна getdisplay(); и нужна ли она вообще при использовании findimage();

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


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




Powered by