|
|
  |
Где ошибка? Пишите у кого мелкие вопросы, сюда! |
|
|
WKnight |
17.12.2012, 12:37
|
       
Разработчик UO Pilot'а
Сообщений: 1.639
Регистрация: 9.1.2006 Группа: Пользователи Наличность: 0
Пользователь №: 4.688

|
Цитата Процедуры - это отдельные скрипты по своей сути... 1) Передавать хендл окна в процедуру и внутри процедуры каждый раз пивязывать окно. Одно из отличий от параллельных скриптов, это какраз автоматическая привязка. findwindow поковыряем, интересная бага, Теоретически ее быть недолжно, но на то они и баги (IMG: style_emoticons/default/smile.gif) Цитата Wiki для UOPilot - описание Почему-то там нет функцмм color() (IMG: style_emoticons/default/smile.gif)
|
|
|
|
Shefon |
17.12.2012, 16:51
|
 
Neophyte
Сообщений: 35
Регистрация: 16.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.571
Возраст: 35

|
Цитата(DarkMaster @ 17.12.2012, 11:29)  Хелпов в пилоте два: ?/Помощь по языку скриптов (основы языка) ?/История развития (самые последние обновления) Wiki для UOPilot - описание различных команд UOPilot и примеры их использования. http://uopilot.tati.pro/index.php?title=%D...%D1%8F:AllPagesДа, я во всех этих местах уже был.) Особенно внимательно прочитал - История развития (самые последние обновления), где и увидел команду color() (IMG: style_emoticons/default/dry.gif) Прочитал весь этот топик и нашёл всё что мне надо о привязке.. ))) Правда я так и не понял что он сделал для того чтобы привязка заработала на две разные вкладки браузера... Ну это мне пока вроде и ненужно.. К сожалению отвязать мой скрипт от курсора не выйдет, так как некоторые менюшки в игре появляются только при наведении на них курсора..
|
|
|
|
Shefon |
17.12.2012, 23:02
|
 
Neophyte
Сообщений: 35
Регистрация: 16.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.571
Возраст: 35

|
Как оказалось я был не прав.)) Отвязать от курсора мою прогу оказалось возможным. Правда пришлось применить "нетрадиционный" приём: get mouse_pos #xglob #yglob abs //запоминаем координаты курсора move #x1, #y1 //выбор острова left #x1, #y1 move #xglob, #yglob abs //восстанавливаем положение курсора Фактически курсор теряется на долю секунды, только что бы активировать менюшку которая без него не появляется, затем возвращаем курсор на место.) p. s. глупый какой то пост получился, сам задал вопрос и сам теперь отвечаю.. Понтуюсь видимио (IMG: style_emoticons/default/dry.gif)
|
|
|
|
Zeleax |
17.12.2012, 23:06
|
        
ex-Moderator UOPilot
Сообщений: 2.440
Регистрация: 8.10.2010 Группа: Пользователи Наличность: 0 Из: Киев
Пользователь №: 13.093

|
--------------------
|
|
|
|
Shefon |
18.12.2012, 0:41
|
 
Neophyte
Сообщений: 35
Регистрация: 16.12.2012 Группа: Пользователи Наличность: 0
Пользователь №: 15.571
Возраст: 35

|
Насчёт привязок окон флешек в браузерах.. Так вот я настроил привязку к нужному окну, подкоректировал скрипт под относительные координаты, всё заработало.. Но когда я изменил размер окна браузера скрипт перестал работать. Не буду описывать все мытарства которые я проделал, вобщем вердикт такой: у Google Chrome для флеша не создаётся отдельного окна как а Лисы, если навестись WindowScanner на флеш ролик в хроме то он отобразит координаты и размеры всей страницы целиком, а не просто флешки. И это настоящий геморой. Потому как я не вижу другова выхода как только в начале скрипта с помощью findcolor искать контрольную точку по всей странице, и после нахождения расчитывать смещение, а затем прибавлять это смещение до всех контрольных точек. Ну второе мне уже делать не придётся так как я когда переписывал скрипт на работу с относительными координатами добавил эту переменную( ну так на всякий случай). Может у кого то будут иные идеи? Или может я привязку как то не так сделал? вот мой скрипт
Исходный код set #handleWin findwindow (Небеса - Google Chrome) //Привязка к окну с игрой set #handleWin GetWindow (#handleWin CHILD) set #handleWin GetWindow (#handleWin CHILD) set workwindow #handleWin set #gsx 0 //глобальные смещения.(ну это что бы каждый раз не править все координаты в скрипте) set #gsy 0 - 61
set #xl 581 + #gsx //координаты стрелочек для прокрутки друзей set #ylr 784 + #gsy set #xr 1327 + #gsx
//move #xl, #ylr abs //вычисляем смещение //get mouse_pos #x #y //set #x #x - #xl //set #y #y - #ylr //msg x= #x y= #y
set #y1 815 + #gsy //координаты выбора островов друзей set #x1 1149 + #gsx
set #x2 1055 + #gsx
set #x3 953 + #gsx
set #x4 855 + #gsx
set #x5 762 + #gsx
set #x6 663 + #gsx
call vynoven #x1 #y1 #handleWin #gsx #gsy call vynoven #x2 #y1 #handleWin #gsx #gsy call vynoven #x3 #y1 #handleWin #gsx #gsy call vynoven #x4 #y1 #handleWin #gsx #gsy call vynoven #x5 #y1 #handleWin #gsx #gsy call vynoven #x6 #y1 #handleWin #gsx #gsy
//move #xl, #ylr wait 100 left #xl, #ylr wait 1s
call vynoven #x1 #y1 #handleWin #gsx #gsy call vynoven #x2 #y1 #handleWin #gsx #gsy call vynoven #x3 #y1 #handleWin #gsx #gsy call vynoven #x4 #y1 #handleWin #gsx #gsy call vynoven #x5 #y1 #handleWin #gsx #gsy call vynoven #x6 #y1 #handleWin #gsx #gsy
//move #xr, #ylr wait 100 left #xr, #ylr wait 1s
proc vynoven #x1 #y1 #handleWin #gsx #gsy
set workwindow #handleWin //привязка окна в процедуре
set #xmon1 624 + #gsx //координаты монстра set #ymon1 626 + #gsy
set #upx 989 + #gsx // верхняя точка квадрата для поиска кнопки Напасть set #upy 575 + #gsy
set #downx 1094 + #gsx //нижняя точка квадрата для поиска кнопки Напасть set #downy 683 + #gsy
set #m 8960987 //цвет фона под монстром
set #xp1 740 + #gsx //координаты точки победы set #yp1 564 + #gsy set #ap 82224 //цвет победы <----------------------------
set #xpr 949 + #gsx //координаты точки выхода из поражения set #ypr 584 + #gsy set #apr 70768 //цвет поражения <--------------------------- get mouse_pos #xglob #yglob abs //запоминаем координаты курсора move #x1, #y1 //выбор острова left #x1, #y1 move #xglob, #yglob abs //восстанавливаем положение курсора wait 1s :monstr
set #ms color(#xmon1, #ymon1) //проверяем есть ли монстр if #m = #ms goto end //если нет то идём к следующему end_if //move #x1, #y1 //выбор монстра left #xmon1, #ymon1 wait 1s set #b 458869 //поиск кнопочки НАПАСТЬ
set $anap 0 set $anap findcolor(#upx, #upy #downx, #downy 1 1 #b %arr 2) if $anap < 0 goto monstr end_if
//move %arr[1 1], %arr[1 2] //кликаем по кнопочке НАПАСТЬ left %arr[1 1], %arr[1 2] wait 15 :boi //Бой с монстром
set #x1 1010 + #gsx //координаты фиала маны set #y1 719 + #gsy //move #x1, #y1 wait 1s set #a 8007680 //цвет активного фиала <--------------------------------------
:fialc set #a1 color(#x1, #y1)
if #a1 = #a //проверяем активен ли фиал. goto pitb end_if
set #ap1 color(#xp1, #yp1) if #ap = #ap1 //на всякий случай проверим не победили ли мы)) goto pobeda //если победили уходим end_if
set #apr1 color(#xp1, #yp1) if #apr = #apr1 //на всякий случай проверим не проиграли ли мы //move #xpr, #ypr wait 150 left #xpr, #ypr wait 2s goto end //если проиграли уходим end_if
wait 100
goto fialc
:pitb
left #x1, #y1 //кликаем по фиалу wait 1s
//магический крест set #xkr1 776 + #gsx //координаты крест set #ykr1 702 + #gsy set #akr 10779084 //цвет активного креста //move #xkr1, #ykr1//перемещаем курсор на заклинание set #akr1 color(#xkr1, #ykr1) while #akr1 <> #akr //ждём когда оно станет активным wait 100 set #akr1 color(#xkr1, #ykr1) end_while left #xkr1, #ykr1 //применяем крест wait 1s set #x1 934 + #gsx //координаты на поле для креста set #y1 477 + #gsy //move #x1, #y1 //перемещаем курсор на поле wait 200 left #x1, #y1//применяем крест на поле
//set #xmol1 181 + #gsx //координаты заклинания молния //set #ymol1 729 + #gsy //set #amol 792362 //цвет активного заклинания молния //move #xmol1, #ymol1 //перемещаем курсор на заклинание //set #amol1 color(#xmol1, #ymol1) //while #amol1 <> #amol //ждём когда оно станет активным //wait 100 //set #amol1 color(#xmol1, #ymol1) //end_while //left #xmol1, #ymol1 //применяем молнию wait 500 //ЗАДЕРЖКА перед проверкой победы goto boi
:pobeda
set #x1 907 + #gsx //выкидываем хлам set #y1 613 + #gsy //move #x1, #y1 wait 100 left #x1, #y1 wait 150 set #x1 1038 + #gsx set #y1 607 + #gsy //move #x1, #y1 wait 100 left #x1, #y1 wait 150 set #x1 1020 + #gsx set #y1 613 + #gsy //move #x1, #y1 wait 100 left #x1, #y1 :end wait 150 end_proc
|
|
|
|
|
  |
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|