Ouroboros пишет:
Посмотрю, а так в общем, в коде нету никаких ошибок?Не синтаксических я имею ввиду)
Есть синтаксическая:
Ouroboros пишет:
else{mouse(LEFT, PosX_0[0],Pos_Y_0[0]);}
Разбор кода:
Ouroboros пишет:
if (attach(w,1)!=0)
Зачем нужна функция attach? В коде будет проверка курсора? В случае если нет - привязка потока не нужна.
Ouroboros пишет:
win w=window ("Lineage II ", "l2UnrealWWindowsViewportWindow", -1);
Зачем получается указатель на окно если потом не используется? Везде экранные координаты.
mouse(LEFT, 1144, 299); - экранные координаты.
С оконными так:
mouse(LEFT, x?, y?, 1, w); - x, y, оконные координаты игры относительно левого и верхнего угла окна.
Узнать их - навести на нужное место в окне игры мышку и нажать CTRL+SHIFT+S. Смотреть координаты в Кибор в (мышь в клиентской части окна)
Опять по поводу оконных координат в findimage. Последний параметр не -1 надо , а указатель на окно w.
Тогда надо будет клик по кнопке так: mouse(LEFT, PosX_0[0],PosY_0[0], 1, w);
Относительно поиска кнопки...
Кнопка должна 1 быть? Зачем тогда массив для приема координат? int PosX_0[512];int PosY_0[512];
Достаточно так int PosX_0, PosY_0;
и в findimage искать 1 изображение. Указать в первом параметре не -1, а 1.
if(findimage(1, #Image_0[0][0], 0, #PosX_0, #PosY_0, 0, 0, 1444, 946, w)<1)
Клик так:
mouse(LEFT, PosX_0,PosY_0, 1, w);
Так же если используем оконные координаты надо искать не по разрешению экрана, а по окну. Поэтому надо
if(findimage(1, #Image_0[0][0], 0, #PosX_0, #PosY_0, 0, 0,
w.widthclient, w.heightclient, w)<1)
/////////////////////////////////////
Можно и экранные координаты использовать как у Вас, но тогда при сдвиге окна координаты записанные в
CODE:......
mouse(LEFT, 1161, 327);
pause(967);
mouse(LEFT, 1146, 352);
.......
будут не верные.
Это можно решить вставив такой код после получения указателя:
Цитата:
win w=window ("Lineage II ", "l2UnrealWWindowsViewportWindow", -1);
w.widthclient=ширина окна
w.heightclient=высота окна
w.leftclient=левый угол по x
w.topclient=левый угол по y
//Узнаются с помощью CTRL+SHIFT+S ПЕРЕД записью координат
moveclient(w);
Этот скрипт после запуска восстановит позицию и размеры окна как была при записи. Тогда можно использовать экранные координаты.
/////////////////////////////
Сумбурно? Я не могу так просто объяснить все нюансы. Предлагаю почитать
Функции для идентификации окон и контролов.
Переименование, сдвиг и изменение размеров окон.
Сканирование экрана и поиск изображений