|
|
|
Упростить скрипт |
|
|
FREEON |
21.3.2018, 22:23
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1317
Пользователь №: 18.346
Возраст: 25
|
Помогите упростить. Нужно сделать For. Трудность для меня заключаеться в том что я не знаю как сделать что бы шаг был клик на следующую картинку пример один цикл действие выполняеться на 26 сервере, следующий шаг переход на 25 сервер и действия и дальше по аналогии Код //Данные координаты и цвет set delimiter ' ' //Данные акков set %name [1] login1 //-... set %name [12] login12
For #i 1 12 //---Вход--- left %voiti [1] while_not %vhod [1] wait 500 end_while if %vhod [1] left %vvod [1] //Клик на поле ввода мыла wait 500 send_down {Backspace} wait 3000 send_up {Backspace} wait 200 say %name [#i] //вводим логин wait 2000 send217 {Enter} end_if //Выбор игры set #prof findimage (1176, 2 1223, 45 (D:\_UOPilot\Image\botn\prof.bmp) %prof 2 70) while #prof = 0 // пока не нашлась картинка профиля set #prof findimage (1176, 2 1223, 45 (D:\_UOPilot\Image\botn\prof.bmp) %prof 2 70) wait 500 end_while left %pbr [1] wait 1s wait 500 send217 {Backspace} wait 1s say https://101xp.com/games/dk/play wait 2s send217 {Enter} wait 1s //---Меню выбора серверов set #sss findimage (645, 54 721, 106 (D:\_UOPilot\Image\botn\sss.bmp) %sss 2 70) while #sss = 0 // пока не нашлась картинка крестик выбора серверов set #sss findimage (645, 54 721, 106 (D:\_UOPilot\Image\botn\sss.bmp) %sss 2 70) wait 500 end_while //ТУТ НУЖНО ПРИКРУТИТЬ СЧЕТЧИК ВЫБОР СЕРВЕРОВ ШАГ С ПЕРЕХОДОМ НА КАРТИНКИ ОТ БОЛЬШЕЙ К МЕНШЕЙ(В ПРИНЦИПЕ ПОРЯДОК НЕ ВАЖЕН) for 1 5 //шаг картинка сервера + клик по нужной картинке сервера 26...22 клик на на картинку нужного сервера set #s26 findimage (394, 369 956, 498 (D:\_UOPilot\Image\botn\s26.bmp) %s26 2 70) if #s26 > 0 set #x (%s26 [1 1] + %s26 [1 3]) / 2 set #y (%s26 [1 2] + %s26 [1 4]) / 2 left #x #y end_if
//выполнить однотипное действие по сбору ежей и возврат к выбору серверов end_for for 1 3 //клик на нижние сервера 21...19 kleft_down 975, 384 // прокрутить ползунок вниз kleft_up 973, 484 wait 2s //выполнить однотипное действие по сбору ежей и возврат к выбору серверов end_for //----ВЫХОД ИЗ АККА move %exiit [1] // ВЫХОД ИЗ ПРОФФИЛЯ wait 2s left %exit [1] //подтвердить ВЫХОД ИЗ ПРОФФИЛЯ //----------------- wait 5s end_for left 1346, 7 abs //Закрыть браузер end_script
Для наглядности: (IMG:http://www.imageup.ru/img42/thumb/13020380.jpg) (IMG:http://www.imageup.ru/img42/thumb/23020383.jpg) Можно в принципе реализовать цикл с переходом по сетке...Но поля не совсем стандартны и мне не понятно как разделить, что бы сократить количество строк. Оптимально два фора (один на 5(2+3сервера) а второй на 3 сервера). И как еще в скрипт правильно оформить подпрограмму для действий в цикле, а то в вике замудренно написанно Код Сейчас скрипт такого типа: for #i 1 12 //Вход на 12 акков ВХОД на акк Вход на 26s действие Вход на 25s действие Вход на 24s действие Вход на 23s действие Вход на 22s действие Вход на 21s действие Вход на 20s действие Вход на 19s ВЫХОД ИЗ АККА end_for Выход из браузера end_script
А хочу сделать так: for #i 1 12 //Вход на 12 акков ВХОД for вход на 26...22 сервера выбор нужного сервера #s действие (подпрограмма) end_for for вход на 22...19сервера прокрутка ползунка на нижние серверы выбор нужного сервера #s действие (подпрограмма) end_for ВЫХОД из ака end_for Выход из браузера end_script
Не понятно как объявить переменную в виде картинки а затем использовать ее в for и делать клик по ней как по числовой переменной подставляя нужные данные(координаты). Если идея с циклом и кликом картинки в шаг не реализуема. То может просто тогда использовать обычные координаты?
|
|
|
|
FREEON |
22.3.2018, 13:10
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1317
Пользователь №: 18.346
Возраст: 25
|
Это для чего нужно? Код init_arr %login s26 s25 s24 s23 for #j 1 size(%login) log %login[#j] end_for Ну вот что-то вроде этого у меня вышло: Код
Код //БОТ СБОР ЗНАЧКИ // Строки Данные set delimiter ' '
set %name [1] tekst1 set %name [2] tekst2 set %name [3] tekst3 //... set %name [12] tekst12
set %a [1] "s26.bmp" set %a [2] "s25.bmp" set %a [3] "s24.bmp" set %a [4] "s23.bmp" set %b [1] "s22.bmp" set %b [2] "s21.bmp" set %b [3] "s20.bmp" set %b [4] "s19.bmp" log clear log mode compact
For #i 1 12 //---Вход--- left %voiti [1] while_not %vhod [1] wait 500 end_while if %vhod [1] left %vvod [1] //Клик на поле ввода мыла wait 500 send_down {Backspace} wait 3000 send_up {Backspace} wait 200 say %name [#i] //вводим логин wait 2000 send217 {Enter} end_if //Выбор игры set #prof findimage (1176, 2 1223, 45 (D:\_UOPilot\Image\botn\prof.bmp) %prof 2 70) while #prof = 0 // пока не нашлась картинка профиля set #prof findimage (1176, 2 1223, 45 (D:\_UOPilot\Image\botn\prof.bmp) %prof 2 70) wait 500 end_while left %pbr [1] wait 1s wait 500 send217 {Backspace} wait 1s say https://101xp.com/games/dk/play wait 2s send217 {Enter} wait 1s //---Меню выбора серверов set #sss findimage (645, 54 721, 106 (D:\_UOPilot\Image\botn\sss.bmp) %sss 2 70) while #sss = 0 // пока не нашлась картинка крестик выбора серверов set #sss findimage (645, 54 721, 106 (D:\_UOPilot\Image\botn\sss.bmp) %sss 2 70) wait 500 end_while log ВХОД в акк #i for #i 1 size(%a) log D:\_UOPilot\Image\botn\%a [#i] set #s findimage (394, 369 956, 498 (D:\_UOPilot\Image\botn\%a[#i]) %s 2 70) if #s > 0 set #x (%s [1 1] + %s [1 3]) / 2 set #y (%s [1 2] + %s [1 4]) / 2 left #x #y wait 2s end_if gosub sbor end_for for #i 1 size(%b) kleft_down 975, 384 kleft_up 973, 484 wait 2s log D:\_UOPilot\Image\botn\%b [#i] set #s findimage (394, 369 956, 498 (D:\_UOPilot\Image\botn\%b[#i]) %s 2 70) if #s > 0 set #x (%s [1 1] + %s [1 3]) / 2 set #y (%s [1 2] + %s [1 4]) / 2 left #x #y wait 2s end_if gosub sbor end_for //----ВЫХОД ИЗ АККА move %exiit [1] // ВЫХОД ИЗ ПРОФФИЛЯ wait 2s left %exit [1] //подтвердить ВЫХОД ИЗ ПРОФФИЛЯ //----------------- wait 5s log ВЫХОД из ака #i end_for left 1346, 7 abs //Закрыть браузер wait 100 log Браузер закрыт wait 100 set logging save D:\_UOPilot\Scripts\OtchetSBOR.txt end_script
:sbor //ждем загрузки игры set #bon findimage (1221, 197 1274, 244 (D:\_UOPilot\Image\botn\bon.bmp) %bon 2 70) while #bon = 0 // пока не нашлась картинка set #bon findimage (1221, 197 1274, 244 (D:\_UOPilot\Image\botn\bon.bmp) %bon 2 70) wait 500 end_while //---Еж.сбор Значков. Обмен на БАЛЕНЫ left %boz [1] //нажать на значок бонусы while_not %ezh [1] wait 2s end_while while ( %not [1] ) or ( %pol [1] ) left %not [2] wait 800 left %pol [2] wait 100 end_while while_not %ochm [1] // переход на вкладку получения значков left %ochm [2] wait 2s end_while while ( %ocz [1] ) or ( %ocz [2] ) //Получаем значки left %och [1] wait 200 left %och [2] wait 100 end_while while_not %mobz [1] // переход на вкладку ОБМЕН left %mobz [2] wait 2s end_while set #40z findimage (456, 603 526, 632 (D:\_UOPilot\Image\botn\40.bmp) %40z 2 85) if #40z > 0 if %akt [1]//если кнопка активна while_not %mobz [4] left %mobz [3] //обменять wait 200 end_while if %mobz [4] left %mobz [5] //подтерждаем обмен wait 1s left %mobz [6] //закрыть напоминание если не хватает очков wait 1s end_if left %zak [1] // закрыть сбор ЕЖей wait 1s end_if if %akt [2]//если кнопка не активна left %zak [1] // закрыть сбор ЕЖей wait 500 end_if end_if left %zak [1] // закрыть сбор ЕЖей log Сбор выполнен успешно на %a[#i] //---Выбор сервера set #vub findimage (586, 58 746, 104 (D:\_UOPilot\Image\botn\vub.bmp) %vub 2 70) left %serv [1] //---Меню выбора серверов set #sss2 findimage (598, 195 683, 227 (D:\_UOPilot\Image\botn\sss2.bmp) %sss2 2 70) while #sss2 = 0 // пока не нашлась картинка set #sss2 findimage (598, 195 683, 227 (D:\_UOPilot\Image\botn\sss2.bmp) %sss2 2 70) wait 500 end_while return
Еще вопрос я в подпрограме хочу сделать лог для отоброжения успешного выполнения сбора ресурсов. Для одного for понятно как сделать а вот для двух не знаю Что бы инфа была одной строкой и для %a и %b Для удобства сделал два For первый %a для 26-23серверов, а %b для 22-19серверов. Код :sbor log Сбор выполнен успешно на %a[#i] return
Еще вопрос можно ли пилотом создавать файл тхт к примеру с именем и датой?
|
|
|
|
FREEON |
23.3.2018, 1:39
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1317
Пользователь №: 18.346
Возраст: 25
|
Не понятно почему этот лог выдает первее действий...то есть вставил в самый конец процедуры а он выдает лог сразу как процедура начала сбор Код proc sbor %array #x // процедура принмает массив и переменную log Сбор выполнен успешно на %array [#x] end_proc
И вот чо-то косяк с акками просходит не стал дожидаться окончание всего процесса внизу лог. лог Лог
Код ВХОД в мыло1@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:08:57 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:09:38 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:10:17 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:10:55 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:11:35 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:12:16 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:12:59 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:13:41 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:14:55 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:15:32 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:16:09 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:16:47 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:17:30 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:18:13 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:18:56 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:19:38 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:20:52 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:21:23 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:21:58 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:22:34 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:23:10 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:23:49 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:24:27 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:25:04 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:26:08 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:26:41 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:27:15 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:27:51 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:28:27 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:29:04 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:29:41 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:30:17 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:31:22 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:31:53 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:32:25 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:32:57 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:33:35 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:34:12 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:34:50 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:35:26 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:36:30 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:37:02 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:37:33 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:38:08 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:38:48 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:39:25 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:40:02 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:40:41 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:41:46 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:42:17 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:42:52 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:43:28 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:44:06 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:44:45 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:45:23 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:46:01 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:47:05 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:47:41 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:48:13 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:48:48 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:49:23 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:50:01 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:50:38 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:51:15 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:52:19 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:52:50 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:53:23 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:54:02 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 0:54:37 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 0:55:14 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 0:55:52 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 0:56:28 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 0:57:38 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 0:58:42 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 0:59:19 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 0:59:54 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 1:00:34 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 1:01:10 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 1:01:45 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 1:02:22 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру ВХОД в мыло5@веревка.ру D:\_UOPilot\Image\botn\s26.bmp 1:03:27 ^25 (, 205): Сбор выполнен успешно на s26.bmp D:\_UOPilot\Image\botn\s25.bmp 1:05:19 ^25 (, 205): Сбор выполнен успешно на s25.bmp D:\_UOPilot\Image\botn\s24.bmp 1:05:57 ^25 (, 205): Сбор выполнен успешно на s24.bmp D:\_UOPilot\Image\botn\s23.bmp 1:06:32 ^25 (, 205): Сбор выполнен успешно на s23.bmp D:\_UOPilot\Image\botn\s22.bmp 1:07:14 ^25 (, 205): Сбор выполнен успешно на s22.bmp D:\_UOPilot\Image\botn\s21.bmp 1:07:50 ^25 (, 205): Сбор выполнен успешно на s21.bmp D:\_UOPilot\Image\botn\s20.bmp 1:08:29 ^25 (, 205): Сбор выполнен успешно на s20.bmp D:\_UOPilot\Image\botn\s19.bmp 1:09:07 ^25 (, 205): Сбор выполнен успешно на s19.bmp ВЫХОД из мыло4@веревка.ру
структура ящиков такова: Код set %name [1] мыло1@веревка.ру set %name [2] мыло2@веревка.ру set %name [3] мыло3@веревка.ру set %name [4] мыло4@веревка.ру set %name [5] мыло5@веревка.ру set %name [6] мыло6@веревка.ру set %name [7] мыло7@веревка.ру set %name [8] мыло8@веревка.ру set %name [9] мыло9@веревка.ру set %name [10] мыло10@веревка.ру set %name [11] мыло11@веревка.ру set %name [12] мыло12@веревка.ру set %name [13] мыло13@веревка.ру
тоесть в начале фор выдает и вводит верный ящик, а при выходе дает в лог 4го. Далее вводит 5й ящик и в выходе дает 4й. И далее по кругу. С чем это может быть связанно и как лечить Может ли быть из-за счетчика #i? Код из скрипта
Код For #i 1 13 //---Вход--- left %voiti [1] while_not %vhod [1] wait 500 end_while if %vhod [1] left %vvod [1] //Клик на поле ввода мыла wait 500 send_down {Backspace} wait 3000 send_up {Backspace} wait 200 say %name [#i] //вводим логин wait 2000 send217 {Enter} end_if //Выбор игры set #prof findimage (1176, 2 1223, 45 (D:\_UOPilot\Image\botn\prof.bmp) %prof 2 70) while #prof = 0 // пока не нашлась картинка профиля set #prof findimage (1176, 2 1223, 45 (D:\_UOPilot\Image\botn\prof.bmp) %prof 2 70) wait 500 end_while left %pbr [1] wait 1s wait 500 send217 {Backspace} wait 1s say https://101xp.com/games/dk/play wait 2s send217 {Enter} wait 1s //---Меню выбора серверов set #sss findimage (645, 54 721, 106 (D:\_UOPilot\Image\botn\sss.bmp) %sss 2 70) while #sss = 0 // пока не нашлась картинка крестик выбора серверов set #sss findimage (645, 54 721, 106 (D:\_UOPilot\Image\botn\sss.bmp) %sss 2 70) wait 500 end_while log ВХОД в %name [#i] for #i 1 size(%a) log D:\_UOPilot\Image\botn\%a [#i] set #s findimage (394, 369 956, 498 (D:\_UOPilot\Image\botn\%a[#i]) %s 2 70) if #s > 0 set #x (%s [1 1] + %s [1 3]) / 2 set #y (%s [1 2] + %s [1 4]) / 2 left #x #y wait 2s end_if call sbor %a #i // вызов процедуры, в которую передаём массив %a и значение переменной #i gosub sbor end_for for #i 1 size(%b) kleft_down 975, 384 kleft_up 973, 484 wait 2s log D:\_UOPilot\Image\botn\%b [#i] set #s findimage (394, 369 956, 498 (D:\_UOPilot\Image\botn\%b[#i]) %s 2 70) if #s > 0 set #x (%s [1 1] + %s [1 3]) / 2 set #y (%s [1 2] + %s [1 4]) / 2 left #x #y wait 2s end_if call sbor %b #i // вызов процедуры, в которую передаём массив %b и значение переменной #i gosub sbor end_for //----ВЫХОД ИЗ АККА move %exiit [1] // ВЫХОД ИЗ ПРОФФИЛЯ wait 2s left %exit [1] //подтвердить ВЫХОД ИЗ ПРОФФИЛЯ //----------------- wait 5s log ВЫХОД из %name [#i] end_for
|
|
|
|
FREEON |
25.3.2018, 2:05
|
Journeyman
Сообщений: 365
Регистрация: 14.2.2017 Группа: Пользователи Наличность: 1317
Пользователь №: 18.346
Возраст: 25
|
Цитата(DarkMaster @ 23.3.2018, 6:49) он при входе каждый раз будет считать размер массива, что не очень хорошо. Лучше посчитать его заранее и поместить в переменную.
Каким образом или как реализовать? И почему это не очень хорошо? cirus благодарю изменил букву и все заработало как часики! Все робатает замечательно, но хотелось бы еще допилить корректировку... Цитата(cirus @ 22.3.2018, 13:35) пример
Код set %a [1] "s26.bmp" set %a [2] "s25.bmp" set %a [3] "s24.bmp" set %a [4] "s23.bmp"
set %b [1] "s22.bmp" set %b [2] "s21.bmp" set %b [3] "s20.bmp" set %b [4] "s19.bmp"
log clear log mode compact for #i 1 size(%a) call sbor %a #i // вызов процедуры, в которую передаём массив %a и значение переменной #i end_for log for #i 1 size(%b) call sbor %b #i // вызов процедуры, в которую передаём массив %b и значение переменной #i end_for end_script
proc sbor %array #x // процедура принмает массив и переменную log Сбор выполнен успешно на %array [#x] end_proc http://uopilot.tati.pro/index.php?title=WriteРаз мы научили подпрограмму понимать массивы и переменные, то можно ли реализовать дополнительное условие? К примеру подпрограмма совершает общие действия и когда доходит до нужного мне значения ящика и сервера выполнить дополнительное действие? Код :sbor //общее действие proc sbor %array #x // процедура принмает массив и переменную log Сбор выполнен успешно на %array [#x] end_proc if %name [4] = ??? //проверка нужного мыла if %a [3] = ??? //проверка нужного сервера, где хочу сделать дополнительные действия //действия end_if end_if return
|
|
|
|
DarkMaster |
25.3.2018, 3:37
|
Модератор UOPilot
Сообщений: 9.467
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27725
Пользователь №: 11.279
|
Цитата Не очень хорошо в плане производительности, т. к. на каждом шаге цикла будет вычисляться размер массива. Хотя разницу можно заметить только на очень больших массивах. А есть присвоить значение переменной, то просто считывается значение переменной. Есть еще один не очивидный момент. Если во время цикла изменится размер массива, то количество витков тоже изменится соразмерно. Это не всегда нужно, а иногда и вовсе приведет к ошибкам, если, например, мы вычисляли размер какого-нибудь %tmp, а потом внутри его заного объявили.
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
aga |
28.5.2018, 20:46
|
Neophyte
Сообщений: 34
Регистрация: 23.3.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.785
Возраст: 21
|
Цитата(DarkMaster @ 9.8.2013, 21:32) Ты понимаешь, что все найденные точки должны быть точно в одних координатах? Т.е. если у нас есть поле 5*5=25 клеток, то всего 25 координат в которых должна быть проверка. Скажем у нас есть кружок, треугольник и квадрат. Все эти фигуры должны быть найдены в одной точке ячейки.
Приветствую, имеется схожая задача, решил пройти весь тот путь, что и veiron в свое время, взял за основу Ваш код, пробовал и findimage и findcolor, вот втором случае результат лучше, но появляются пустые значения (x), проблема видится в том, что когда проверял цвета в точках 30 клеток, в некоторых присутствует сдвиг в единицу относительно начальной координаты, т.е координаты отличаются то на 50, то на 49 единиц, по какому пути пойти в этом случае? 3 4 3 4 x 3 4 5 5 1 3 x 4 1 4 3 4 1 x 2 2 4 2 2 3 x 1 1 x x x x x x x 1 1 3 x 5 4 2
|
|
|
|
aga |
29.5.2018, 13:25
|
Neophyte
Сообщений: 34
Регистрация: 23.3.2012 Группа: Пользователи Наличность: 0
Пользователь №: 14.785
Возраст: 21
|
Цитата(cirus @ 29.5.2018, 11:27) Этот код работает, что не так?
если я правильно понимаю его логику он если находит картинку с условным шариком нужного цвета в определенных координаторах с шагом 50 по горизонтали и вертикали, записывает ее в массив 5*6, у меня же получается массив 6*7, ряды смещаются на пустые поля, не могу разобраться почему это происходит. 3 4 3 4 x 3 4 5 5 1 3 x 4 1 4 3 4 1 x 2 2 4 2 2 3 x 1 1 x x x x x x x 1 1 3 x 5 4 2
|
|
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|