Здравствуйте, гость ( Вход | Регистрация )

52 страниц V « < 49 50 51 52 >  
Ответить в эту темуОткрыть новую тему
> Упростить скрипт
FREEON
сообщение 21.3.2018, 22:23
Сообщение #1001


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 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 и делать клик по ней как по числовой переменной подставляя нужные данные(координаты).
Если идея с циклом и кликом картинки в шаг не реализуема. То может просто тогда использовать обычные координаты?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.3.2018, 1:58
Сообщение #1002


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Не понятно как объявить переменную в виде картинки а затем использовать ее в for

Код
set %a [1] "s26.bmp"
set %a [2] "s25.bmp"
set %a [3] "s24.bmp"

log clear
log mode compact
for #i 1 size(%a)
    log D:\_UOPilot\Image\botn\%a [#i]
    //set #s26 findimage (394, 369 956, 498 (D:\_UOPilot\Image\botn\%a[#i]) %s 2 70)
end_for
end_script

Код
init_arr %login s26 s25 s24 s23

log clear
log mode compact
for #i 1 2 //Вход на 2 аккаунта
    log ВХОД в акк #i
    for #j 1 size(%login)
        log  %login[#j]
        gosub действие
    end_for
    log ВЫХОД из ака #i
    log
end_for
log Выход из браузера
end_script

:действие
    log     Действие1
    log     Действие2
    log     Действие3
return
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 22.3.2018, 13:10
Сообщение #1003


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 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

Еще вопрос можно ли пилотом создавать файл тхт к примеру с именем и датой?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.3.2018, 13:35
Сообщение #1004


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Еще вопрос я в подпрограме хочу сделать лог для отоброжения успешного выполнения сбора ресурсов.

пример
Код
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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 23.3.2018, 1:39
Сообщение #1005


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 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

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.3.2018, 2:04
Сообщение #1006


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Не понятно почему этот лог выдает первее действий

В каком порядке вызываете в том и работают.
Код
call sbor %a #i   // вызов лога, т. е. вызывается раньше чем действия
gosub sbor  // вызов действий

Цитата
Может ли быть из-за счетчика #i?

Естественно.
Код
For #i 1 13  // тут #i
for #i 1 size(%a)  // и тут #i


Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 23.3.2018, 6:49
Сообщение #1007


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
for #i 1 size(%a) // и тут #i

он при входе каждый раз будет считать размер массива, что не очень хорошо. Лучше посчитать его заранее и поместить в переменную.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 25.3.2018, 2:05
Сообщение #1008


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 25.3.2018, 2:29
Сообщение #1009


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
Каким образом или как реализовать? И почему это не очень хорошо?

Не очень хорошо в плане производительности, т. к. на каждом шаге цикла будет вычисляться размер массива. Хотя разницу можно заметить только на очень больших массивах. А есть присвоить значение переменной, то просто считывается значение переменной.
Код
set #qq size(%a)  // присвоить переменной размер массива
for #i 1 #qq

Цитата
if %name [4] = ??? //проверка нужного мыла
if %a [3] = ??? //проверка нужного сервера, где хочу сделать дополнительные действия

Код
for #i 1 12 
    if %name [#i] = "мыло4@веревка.ру"  // или просто сравниваем переменную if #i = 4
        // с сервером тот же принцип
    end_if
end_for
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 25.3.2018, 3:37
Сообщение #1010


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



Цитата
Не очень хорошо в плане производительности, т. к. на каждом шаге цикла будет вычисляться размер массива. Хотя разницу можно заметить только на очень больших массивах. А есть присвоить значение переменной, то просто считывается значение переменной.

Есть еще один не очивидный момент. Если во время цикла изменится размер массива, то количество витков тоже изменится соразмерно. Это не всегда нужно, а иногда и вовсе приведет к ошибкам, если, например, мы вычисляли размер какого-нибудь %tmp, а потом внутри его заного объявили.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 3.4.2018, 13:06
Сообщение #1011


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Как сделать проще, что бы с каждым кругом цикла количества кликов увеличивалась на определенное число счетчика? Repeat + 1, Left +1
Код

for 1 10 1
    repeat 1 + #i
        left x y // сделать на один клик больше чем на предыдущем круге
        wait 1000
    end_repeat
    //действие
end_for
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 3.4.2018, 13:22
Сообщение #1012


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Код
log clear
log mode compact
for #i 1 5
    for #j 1 #i
        log #j
    end_for
    log
end_for
end_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
FREEON
сообщение 3.4.2018, 18:34
Сообщение #1013


*****

Journeyman
Сообщений: 365
Регистрация: 14.2.2017
Группа: Пользователи
Наличность: 1319
Пользователь №: 18.346
Возраст: 25



Цитата(cirus @ 3.4.2018, 13:22) *

Код
log clear
log mode compact
for #i 1 5
    for #j 1 #i
        log #j
    end_for
    log
end_for
end_script


Благодарю. Вот еще интересно...раз все ровно эту тему мусолим...А как к примеру выполнять тогда в обратном порядке от большего к меньшему? (IMG:style_emoticons/default/smile.gif)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 3.4.2018, 18:57
Сообщение #1014


***********

Модератор UOPilot
Сообщений: 9.460
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 27708
Пользователь №: 11.279



for #i 5 1 -1


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
aga
сообщение 28.5.2018, 20:46
Сообщение #1015


**

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

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 29.5.2018, 1:26
Сообщение #1016


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Цитата
взял за основу Ваш код

В теме 50 страниц. Какой код?

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
aga
сообщение 29.5.2018, 8:03
Сообщение #1017


**

Neophyte
Сообщений: 34
Регистрация: 23.3.2012
Группа: Пользователи
Наличность: 0
Пользователь №: 14.785
Возраст: 21



Цитата(cirus @ 29.5.2018, 1:26) *

В теме 50 страниц. Какой код?



Код
set linedelay 0
// Координата левого верхнего изображения.
// С точностью до пикселя.
set #startOffsetX 575
set #startOffsetY 323
// Шаг сетки изображений.
// С точностью до пикселя.
set #cellOffsetX 50
set #cellOffsetY 50
// Изображения шариков
set $path "C:\Скрипт\Картинки\"
set %image [ 1 ] image1.bmp //green
set %image [ 2 ] image2.bmp //grey
set %image [ 3 ] image3.bmp  //yellow
set %image [ 4 ] image4.bmp //blue
set %image [ 5 ] image5.bmp //red

set #countImage size (%image)

for #i 1 #countImage

    set $a findimage (554, 303 947, 633  ($path%image [ #i ]) %arr 2 80 30 1) //
    log $a
    for #n 1 $a 1
        set #fieldX ( %arr [ #n 1 ] - #startOffsetX ) / #cellOffsetX + 1
        set #fieldY ( %arr [ #n 2 ] - #startOffsetY ) / #cellOffsetY + 1
        set %field [ #fieldY #fieldX ] #i
    end_for
end_for

save_array %field "c:\Скрипт\ID\aK.txt"
stop_script
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 29.5.2018, 11:27
Сообщение #1018


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Этот код работает, что не так?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
aga
сообщение 29.5.2018, 13:25
Сообщение #1019


**

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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 29.5.2018, 13:43
Сообщение #1020


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26540
Пользователь №: 16.971
Возраст: 29



Картинки какого размера? 50*50? Лучше меньше сделать.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

52 страниц V « < 49 50 51 52 >
Ответить в эту темуОткрыть новую тему
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 

- Текстовая версия | Версия для КПК Сейчас: 28.3.2024, 17:31
Designed by Nickostyle