Кибор » Кибор - Интегрированная среда разработки ботов » Вопросы и решение проблем » Прошу помощи в обучении использовать "Кибор"

Страниц (13): В начало « ... 2 3 4 5 [6] 7 8 9 10 ... » В конец
 

51. Kibor - 11 Октября, 2013 - 16:38:19 - перейти к сообщению
 Kote_UA пишет:
ну первый вопрос то понятно, а вот 2 и 3 интересуют

 Kote_UA пишет:
что значит ошибка: debug error, какой то там код ошибки, выкидует из кибора

Правила создания темы

Отправка сообщений мыши в неактивные и свернутые окна. Работа мыши в фоновом режиме
список функций в меню
Получение помощи непосредственно в программе Кибор
................
................
52. Kote_UA - 11 Октября, 2013 - 16:43:11 - перейти к сообщению
 Kote_UA пишет:
[/quote]
Боюсь мне не хватит ума и телепатических способностей ответить.
ну первый вопрос то понятно, а вот 2 и 3 интересуют[/quote]


подскажите пожалуйста что не правильно в коде?
CODE:
function a
{int HPmoba[18][12];
loadimage (#HPmoba[0][0], "D:\L2\HPmoba.bmp");
win w=window ("Opera 12.16 (1860): avatar .: Lineage II :.", "OperaWindowClass", -1)
activate (w);
int hp[5];int hp[5];
findimage(5, #HPmoba[0][0], 0, #hp[0], #hp[0], 0, 0, 1366, 643, w);
mousedbl(LEFT,#hp[0], #hp[0]);}
goto (a);


скрипт должен найти картинку и нажать на неё, но в итоге меня выкидуют из кибора
53. Kibor - 11 Октября, 2013 - 17:08:32 - перейти к сообщению
 Kote_UA пишет:
что не правильно в коде?
CODE:
function a
{int HPmoba[18][12];
loadimage (#HPmoba[0][0], "D:\L2\HPmoba.bmp");
win w=window ("Opera 12.16 (1860): avatar .: Lineage II :.", "OperaWindowClass", -1)
activate (w);
int hp[5];int hp[5];
findimage(5, #HPmoba[0][0], 0, #hp[0], #hp[0], 0, 0, 1366, 643, w);
mousedbl(LEFT,#hp[0], #hp[0]);}
goto (a);


С чего начать?
Синтаксис придуман с головы? Я понимаю конечно что справка не идеальна, но все же если ее прочитать то не было бы таких ошибок.

function a() - Функции. Скобки обязательны. Примера без скобок нет ни в одном учебном скрипте. Их тут тьма.

win w=window ("Opera 12.16 (1860): avatar .: Lineage II :.", "OperaWindowClass", -1);
activate (w);

Без ; получается строка:
win w=window ("Opera 12.16 (1860): avatar .: Lineage II :.", "OperaWindowClass", -1)activate (w);

mousedbl(LEFT,#hp[0], #hp[0]);
Что означает # в Кибор? - указатели на переменные
Что в параметрах mousedbl? Работа с мышью в "Кибор"

goto (a);
Куда направляет goto? На функцию? Где написано про скобки в goto? Это с какого языка?
Синтаксис Кибор как и C - логика и переходы в "кибор"

Всю инфу по нужной функции опять повторюсь легко получить - Получение помощи непосредственно в программе Кибор
Будет найдена как справка так же примеры реализации.
54. Barabachka - 11 Октября, 2013 - 17:37:49 - перейти к сообщению
 Kibor пишет:
Получение указателя на окно на руоф блокируется.

Если так то можно получить указатель на рабочий стол
CODE:
win w=window ("Program Manager", "Progman", -1);

Это ведь не должно каким либо образом контролироваться защитой?
после делать клик в общем поле рабочего стола на определенных координатах активируя при этом окно л2. После чего делаем слип 1000 и вуаля даем команды окну по определенным координатам уже в приделах самого окна.
Так получитьсо управлять 3 окнами?
(Добавление)
Если все получитсо то как будут себя вести
CODE:
if (Load_Image()==-1){messagebox("Не найдены рисунки в C:\L2 online."); goto error;}
if (Pozicion_Image()==-1) goto error;//Расчет координат используемых объектов

или при активации нового окна координаты будут автоматически подгоняться?
55. Kibor - 11 Октября, 2013 - 17:57:28 - перейти к сообщению
Можно так:

CODE:
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image1();//Узнать позиции рисунков на экране для обозначения координат окна 1 игры и необходимых элементов для работы бота
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image2();//Узнать позиции рисунков на экране для обозначения координат окна 2 игры и необходимых элементов для работы бота
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image3();//Узнать позиции рисунков на экране для обозначения координат окна 3 игры и необходимых элементов для работы бота

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

Для каждого окна своя Pozicion_Image в которой переменные:
poz1... в Pozicion_Image1();

poz2... в Pozicion_Image2();

poz3... в Pozicion_Image3();

Или можно так:
CODE:
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image(1);//Узнать позиции рисунков на экране для обозначения координат окна 1 игры и необходимых элементов для работы бота
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image(2);//Узнать позиции рисунков на экране для обозначения координат окна 2 игры и необходимых элементов для работы бота
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image(3);//Узнать позиции рисунков на экране для обозначения координат окна 3 игры и необходимых элементов для работы бота

function Pozicion_Image(int a)
{
if (a==1)
{
poz1...
}
if (a==2)
{
poz2...
}
if (a==3)
{
poz3...
}
}


Можно и так:
Использовать не переменные разные для окна конкретного а масивы:
не
int poz1;
int poz2;
int poz2;
а
int poz[3];

CODE:
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image(0);//Узнать позиции рисунков на экране для обозначения координат окна 1 игры и необходимых элементов для работы бота
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image(1);//Узнать позиции рисунков на экране для обозначения координат окна 2 игры и необходимых элементов для работы бота
messagebox("сверните все окна с игрой кроме того расчет где проводим координат.");
sleep(1000);
Pozicion_Image(2);//Узнать позиции рисунков на экране для обозначения координат окна 3 игры и необходимых элементов для работы бота

function Pozicion_Image(int a)
{
poz[a]=,,,,.,,
}

(Добавление)
Для каждого окна нужны свои переменные.
Лучше всего как в примере 3.
(Добавление)
Заодно можно в Pozicion_Image узнавать координаты точки клика на окне для его активации. Только окна надо сразу расположить так что бы все окна имели открытую эту точку для клика.
Так примерно

Когда на экране будет 1 окно то по этому рисунку найдены будет только 1 координаты именно для этого окна где надо будет мышкой клик сделать для того что бы активировать его.
56. Barabachka - 11 Октября, 2013 - 18:46:13 - перейти к сообщению
Чем больше я в это влажу тем больше вопросов возникает Не понял
Такое ощущение что мы разговариваем на разных языках, я как обычный игрок а Вы как програмист Подмигивание ))
Масивы для меня чтото пока не понятное) Вроде как все в общих чертах понятно, а вот написать это все хз как
Уважаемый Kibor если я вам в личку кину свой набросок вы сможите выделить чуть времени для правки и пояснений? а логику самих действий (зациклиную часть бота) я постараюсь сам сделать
(Добавление)
Пожалуй пойду посплю а завтра с новыми силами как начну тупить дальше Радость
57. Kote_UA - 11 Октября, 2013 - 19:56:27 - перейти к сообщению
kibor извените что я плохо розбераюсь, все приходит с опытом) Понял я что создать скрипт пока не смогу, решил начат с начала, и потихоньку все розучивать.
Вот пробывл написат простейший клик по карте в косынке, не получилось, карту находит(вроде бы) но кликать не кликает, гляньте пожалуйста
CODE:
win w=window (-1, "Static", window ("Êîñûíêà", "Solitaire", -1));activate(w);
int 4bub[87][117];
loadimage (#4bub[0][0], "D:\L2\4bub.bmp");

int PosX_2{1],PosY_2[1];
st: if(findimage(1, #4bub[0][0], 0, #PosX_2[0], #PosY_2[0], 0, 0, 1366, 768 -1)<1)goto st;
mousedbl(LEFT,#PosX_2[0], #PosY_2[0], w);
58. Kibor - 11 Октября, 2013 - 20:21:54 - перейти к сообщению
 Kote_UA пишет:
win w=window (-1, "Static", window ("Êîñûíêà", "Solitaire", -1));activate(w);
int 4bub[87][117];
loadimage (#4bub[0][0], "D:\L2\4bub.bmp");

int PosX_2{1],PosY_2[1];
st: if(findimage(1, #4bub[0][0], 0, #PosX_2[0], #PosY_2[0], 0, 0, 1366, 768 -1)<1)goto st;
mousedbl(LEFT,#PosX_2[0], #PosY_2[0], w);


Ошибка в скобке и опять же mousedbl(LEFT,#PosX_2[0], #PosY_2[0], w);.... Я уже писал об этом.
59. Kote_UA - 11 Октября, 2013 - 20:45:56 - перейти к сообщению
win w=window (-1, "Static", window ("Косынка", "Solitaire", -1));
int tuz[66][92];
loadimage (#tuz[0][0], "D:\L2\tuz.bmp"Подмигивание;


int PosX_0[1];int PosY_0[1];

st: if(findimage(-1, #tuz[0][0], 0, #PosX_0[0], #PosY_0[0], 0, 0, 800, 496, -1)<1)goto st;
mousedbl(LEFT,#PosX_0[0], #PosY_0[0], w);


переделал, не работает
(Добавление)
я понял
60. Kibor - 11 Октября, 2013 - 21:27:46 - перейти к сообщению
Barabachka ,
Посмотрите использование переменных в "кибор"
Вместо трех переменных
int a1;
int a2;
int a3;
можно одну создать
int a[3];

и обращаться

a[0]
a[1]
a[2]

завтра дам пример как использовать в Вашем случае.

Powered by ExBB FM 1.0 Final