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

> Небеса, поиск мобов на островах, Скрипт
cirus
сообщение 2.2.2017, 2:50
Сообщение #1


**********

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



Скрипт поиска мобов
Код
gosub start          // начало скрипта, переменные и загрузка картинок в память
gosub поиск_моба
// тут дописывать нужные действия, если надо
end_script

:start
    set linedelay 0                      // задержка между строк
    set %path [1] "C:\КартинкиНебеса"    // путь к картинкам
    init_arr %ostrov (1) 1247, 376                   // координаты острова
    init_arr %mob (1) 659, 630                       // координаты моба
    init_arr %xy (1) 586, 288 1106, 696              // область поиска всех надписей
    set #loadisland 1500                     // время загрузки острова
    set #alarm 1                             // 1 - звуковой сигнал когда моб найден, 0 - без звука
    set #hint 1                              // выводить сообщение что моб найден, 0 - не выводить
    set #attack 1                            // 1 - нападать на моба, 0 - нет
    set #prompt 1     // 1 - выводить окно выбора мобов, 0 - не выводить (будут искаться мобы, которые были выбраны в прошлый раз)

    // имена картинок с мобами, эти можно заменить
    // имена должны быть без пробелов
    set %picture [1 1] Багесса
    set %picture [1 2] ДядяМороз
    set %picture [1 3] Лагга
    set %picture [1 4] Лаг
    set %picture [1 5] НебесныйВасилиск
    //set %picture [1 6] сюда дописывать других мобов
    //set %picture [1 7]

    // имена других картинок
    set %picture1 [1 1] Сложность
    set %picture1 [1 2] Напасть


    ///// всё что ниже менять не нужно /////
    if workwindow = 0
        log Не указано рабочее окно
        log Скрипт остановлен
        stop_script
    end_if
    set #startX %xy [1 1]
    set #startY %xy [1 2]
    set #endX %xy [1 3]
    set #endY %xy [1 4]
    set #endXGet #endX - #startX
    set #endYGet #endY - #startY

    set %bmp [1] ".bmp"
    if  #prompt = 1
        set delimiter ' '
        set $a %picture[1]
        set $b "prompt ($a ())"
        set %b [1] "%a"
        eval (set %b[1] $b)
        set delimiter
    else
        load_array %a ArrayMob.txt
    end_if
    for #i 1 size(%a [1])
        set %ArrayMob [1 #i] %a [1 #i]
        if  %a [1 #i] = 1
            set #z #z + 1
            set %image [#z] LoadImage (%path[1]\%picture[1 #i]%bmp[1])
        end_if
    end_for
    save_array %ArrayMob ArrayMob.txt

    for #i 1 size(%picture1 [1])
        set #z1 #z1 + 1
        set %image1 [#z1] LoadImage (%path[1]\%picture1[1 #i]%bmp[1])
    end_for
return

:поиск_моба
    set #a 0
    set #b 0
    set #c 0
    while #c = 0
        while #b = 0
            set #timeout timer + 1000
            while #a = 0 and #timeout > timer
                move %mob [1 1] %mob [1 2] 1 1 -1 -1
                set #timeout timer + 1000
                while #a = 0 and #timeout > timer
                    set #a findimage (#startX #startY #endX #endY  (%image1[1 1]) %a 2 80 1 3)
                    wait 5
                end_while
            end_while
            set %Get GetImage (#startX #startY #endX #endY)
            for #i 1 size(%image)
                set #b findimage (0 0 #endXGet #endYGet (%image[#i 1]) %a %Get [1 1])
                if  #b > 0
                    if  #attack != 0
                        left %mob [1 1] %mob [1 2]
                    end_if
                    break 2
                else
                    if  #i = size(%image)
                        set #a 0
                        move 1920 1080
                        left %ostrov [1 1]  %ostrov %[1 2]
                        wait #loadisland
                    end_if
                end_if
            end_for
            set $b DeleteImage (%Get [1 1])
        end_while
        if  #attack = 0
            break
        end_if
        set #c findimage (#startX #startY #endX #endY (%image1[2 1]) %a)
        while #c > 0
            left %a [1 1] %a [1 2]
            wait 200
            set #c findimage (#startX #startY #endX #endY (%image1[2 1]) %a)
            if  #c = 0
                break 2
            end_if
            wait 10
        end_while
    end_while
    if  #alarm = 1
        alarm
    end_if
    if  #hint = 1
        hint (20 clred 500 500 (Моб найден))
        wait 1000
        hint (10 clblack 1920 1080 (1))
    end_if
return

Минимальная версия пилота 2.39. Запускать от администратора.
Пример работы скрипта: https://youtu.be/JGaj0jYYIXY
Картинки, которые использовались: Прикрепленный файл  КартинкиНебеса.zip ( 19,41 килобайт ) Кол-во скачиваний: 557

Лучше делайте свои, эти могут не находиться. Картинки 'Сложность' и 'Напасть' обязательны для работы скрипта.

Обновление 1
Теперь скрипт не дергает курсор.
Может работать в перекрытом окне. Проверял только в браузере Maxthon.
Координаты моба и время прогрузки острова указывать не нужно.
Для работы скрипта в настройках игры отключить анимацию.
Прикрепленное изображение
В архиве скрипт, папка с картинками мобов и скрипт для получения смещения между родительским и дочерним окном: Прикрепленный файл  ПоискМобов2.zip ( 29,2 килобайт ) Кол-во скачиваний: 525



Сбор дропа с мобов
Код
gosub start1   // начало скрипта, переменные и загрузка картинок в память
while 1 = 1
    gosub drop    // сбор дропа
    hint #item    // количество разобранных и забранных в инвентарь итемов
end_while
end_script

:start1
    log mode compact
    log open 1 1 400 300
    set linedelay 0                      // задержка между строк
    set %path [1] "C:\КартинкиНебеса1"      // путь к картинкам
    init_arr %xy1 (1) 818, 342 1295, 561    // область поиска предметов, кнопок и надписи Побеждён

    // итемы, которые в сундук, имена не должны содержать пробелов
    set %picture2 [1 1] Изумруд
    set %picture2 [1 2] Циркон
    set %picture2 [1 3] ТопорВойны
    //set %picture2 [1 4]

    // итемы, которые разбирать, имена не должны содержать пробелов
    set %picture3 [1 1] ПерстеньМага
    set %picture3 [1 2] ПрахЕдинорога
    set %picture3 [1 3] РобаМага
    set %picture3 [1 4] КольцоПобедителя
    //set %picture3 [1 5]

    // другие картинки
    set %picture4 [1 1] РазобратьПредмет
    set %picture4 [1 2] Выйти
    set %picture4 [1 3] ПродатьВсё
    set %picture4 [1 4] Забрать
    set %picture4 [1 5] Побеждён
    set %picture4 [1 6] Продать
    set %picture4 [1 7] Разобрать
    set %picture4 [1 8] Ожидание


    ///// всё что ниже менять не нужно /////
    if  workwindow = 0
        log Не указано рабочее окно
        log Скрипт остановлен
        stop_script
    end_if
    set #startX1 %xy1 [1 1]
    set #startY1 %xy1 [1 2]
    set #endX1 %xy1 [1 3]
    set #endY1 %xy1 [1 4]
    set %bmp [1] ".bmp"
    if  size(%picture2) > 0
        for #i 1 size(%picture2 [1])
            set #z2 #z2 + 1
            set %item [#z2] LoadImage (%path[1]\%picture2[1 #i]%bmp[1])
        end_for
    end_if
    if  size(%picture3) > 0
        for #i 1 size(%picture3 [1])
            set #z3 #z3 + 1
            set %item1 [#z3] LoadImage (%path[1]\%picture3[1 #i]%bmp[1])
        end_for
    end_if
    for #i 1 size(%picture4 [1])
        set #z4 #z4 + 1
        set %item2 [#z4] LoadImage (%path[1]\%picture4[1 #i]%bmp[1])
    end_for
return

:drop
    set #pobeda 0
    while #pobeda = 0
        set #pobeda FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [5 1]) %a)
        wait 10
    end_while
    move %xy1 [1 3] %xy1 [1 4]

    set #ozhidanie FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [8 1]) %a)
    while #ozhidanie > 0
        set #ozhidanie FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [8 1]) %a)
        wait 10
    end_while
    set #prodat 0
    while #prodat = 0
        set #prodat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [3 1]) %a)
        wait 10
    end_while
    wait 500
    set %Get GetImage (#startX1 #startY1 #endX1 #endY1)
    //set $bmp saveimage(%Get [1 1] C:\GetImage.bmp)
    set #flag 0

    if  size(%picture2) > 0
        for #i 1 size(%item)
            set #a findimage (0 0 %Get [1 2] %Get [1 3] (%item[#i 1]) %sunduk %Get [1 1])
            if  #a > 0
                set #flag 1
                set $item1 %picture2[1 #i]
                break
            end_if
        end_for
    end_if
    if  size(%picture3) > 0
        for #i 1 size(%item1)
            set #a findimage (0 0 %Get [1 2] %Get [1 3] (%item1[#i 1]) %razbor %Get [1 1])
            if  #a > 0
                set #flag 2
                set $item2 %picture3[1 #i]
                break
            end_if
        end_for
    end_if
    set #del DeleteImage  (%Get [1 1])
    if  #flag = 0
        log Предмет продан
        set #prodat 0
        while #prodat = 0
            set #prodat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [3 1]) %a)
            wait 10
        end_while
        left %a [1 1] %a [1 2]
        wait 200
        while #prodat > 0
            set #prodat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [3 1]) %a)
            if  #prodat > 0
                left %a [1 1] %a [1 2]
                wait 200
            end_if
        end_while
        set #prodat 0
        while #prodat = 0
            set #prodat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [6 1]) %a)
            wait 10
        end_while
        left %a [1 1] %a [1 2]
        wait 200
        while #prodat > 0
            set #prodat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [6 1]) %a)
            if  #prodat > 0
                left %a [1 1] %a [1 2]
                wait 200
            end_if
        end_while
        set #exit 0
        while #exit = 0
            set #exit FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [2 1]) %a)
            wait 10
        end_while
        left %a [1 1] %a [1 2]
        wait 200
        while #exit > 0
            set #exit FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [2 1]) %a)
            if  #exit > 0
                left %a [1 1] %a [1 2]
                wait 200
            end_if
        end_while
    else
        if  #flag = 1
            log Предмет $item1 в сундуке
            set #item #item + 1
            left %sunduk [1 1] %sunduk [1 2]
            wait 200
            set findoffsetx 30
            set findoffsety 10
            set #zabrat 0
            while #zabrat = 0
                set #zabrat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [4 1]) %a)
                if  #zabrat = 0
                    left %sunduk [1 1] %sunduk [1 2]
                    wait 200
                end_if
                wait 10
            end_while
            left %a [1 1] %a [1 2]
            wait 200
            while #zabrat > 0
                set #zabrat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [1 1]) %a)
                if  #zabrat > 0
                    left %a [1 1] %a [1 2]
                    wait 200
                end_if
            end_while
            set findoffsetx 0
            set findoffsety 0
            wait 200
            set #exit 0
            while #exit = 0
                set #exit FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [2 1]) %a)
                wait 10
            end_while
            left %a [1 1] %a [1 2]
            wait 200
            while #exit > 0
                set #exit FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [2 1]) %a)
                if  #exit > 0
                    left %a [1 1] %a [1 2]
                    wait 200
                end_if
            end_while
        else
            log Предмет $item2 разобран
            set #item #item + 1
            left %razbor [1 1] %razbor [1 2]
            wait 200
            set findoffsetx 30
            set findoffsety 10
            set #razobrat 0
            while #razobrat = 0
                set #razobrat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [1 1]) %a)
                if  #razobrat = 0
                    left %razbor [1 1] %razbor [1 2]
                    wait 200
                end_if
                wait 10
            end_while
            left %a [1 1] %a [1 2]
            wait 200
            while #razobrat > 0
                set #razobrat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [1 1]) %a)
                if  #razobrat > 0
                    left %a [1 1] %a [1 2]
                    wait 200
                end_if
            end_while
            set findoffsetx 0
            set findoffsety 0
            set #razobrat 0
            while #razobrat = 0
                set #razobrat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [7 1]) %a)
                wait 10
            end_while
            left %a [1 1] %a [1 2]
            wait 200
            while #razobrat > 0
                set #razobrat FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [7 1]) %a)
                if  #razobrat > 0
                    left %a [1 1] %a [1 2]
                    wait 200
                end_if
            end_while
            set #razobrali 1
            while #razobrali = 1
                set #razobrali 0
                set %Get GetImage (#startX1 #startY1 #endX1 #endY1)
                for #i 1 size(%item1)
                    set #a findimage (0 0 %Get [1 2] %Get [1 3] (%item1[#i 1]) %razbor %Get [1 1])
                    if  #a > 0
                        set #razobrali 1
                        break
                    end_if
                end_for
            end_while
            set #del DeleteImage  (%Get [1 1])
            set #exit 0
            while #exit = 0
                set #exit FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [2 1]) %a)
                wait 10
            end_while
            left %a [1 1] %a [1 2]
            wait 200
            while #exit > 0
                set #exit FindImage (%xy1 [1 1] %xy1 [1 2] %xy1 [1 3] %xy1 [1 4] (%item2 [2 1]) %a)
                if  #exit > 0
                    left %a [1 1] %a [1 2]
                    wait 200
                end_if
            end_while
        end_if
    end_if
return

Минимальная версия пилота 2.39. Запускать от администратора.
Скрипт позволяет забирать, разбивать и продавать предметы с мобов.
Предметы указанные в массиве %picture2 забираются.
Предметы указанные в массиве %picture3 разбиваются.
Всё остальное продаётся.
Если массивы %picture2 и %picture3 не указаны все предметы будут продаваться.
Пример работы скрипта: https://youtu.be/coXoVCYw-Pw
Картинки, которые использовались: Прикрепленный файл  КартинкиНебеса1.zip ( 29,58 килобайт ) Кол-во скачиваний: 470

Картинки кнопок сделаны скриптом для поиска статичных точек: https://forum.uokit.com/index.php?showtopic=30118. Чтобы кнопки находились даже если на них наведён курсор.
Картинки итемов также можно делать скриптом для создания картинки.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
 
Ответить в эту темуОткрыть новую тему
Ответов
ykyp24rus
сообщение 8.2.2019, 5:45
Сообщение #2


*

Registred
Сообщений: 4
Регистрация: 11.11.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.110
Возраст: 26



У кого нибудь может остались картинки с мобами и шмотом? поделитесь пожалуйста.

И подскажите где подправить чтобы нажимал выход если дропа нет. Интерфейс немного поменялся.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

Сообщений в этой теме
cirus   Небеса, поиск мобов на островах   2.2.2017, 2:50
veiron   Класс. Спасибо cirus.   2.2.2017, 8:20
veiron   А как картинки пилот будет быстрее находить: с дис...   2.2.2017, 19:20
cirus   Загруженные в память.   2.2.2017, 19:33
veiron   set #a1 findimage (#startX #startY #endX #endY...   3.2.2017, 21:07
Jpr   Загруженные в память. Прошу прощения за такие во...   7.2.2017, 11:03
veiron   Второй вопрос, как добавить в скрипт рандомные вр...   7.2.2017, 11:16
Jpr   set #wait random(3000) + 3000 // рандомная врем...   7.2.2017, 11:49
cirus   Копируем скрипт в пилот, нажимаем Ctrl + F, ищем ...   9.2.2017, 2:17
Jpr   Переменная #attack должна быть 1. Проверить нахо...   9.2.2017, 13:33
cirus   set #c findimage (#startX #startY #endX #endY ...   9.2.2017, 15:24
cirus   Добавил скрипт для сбора дропа с мобов.   18.2.2017, 3:04
veiron   Добавил скрипт для сбора дропа с мобов. Спасибо ...   18.2.2017, 17:00
cirus   Предметы указанные в массиве %picture2 забираются...   18.2.2017, 18:59
cirus   Обновил скрипт для поиска моба.   6.3.2017, 1:20
Rey92   Добрый день. Работает наполовину скрипт у меня) ка...   29.9.2017, 15:21
cirus   На какой строке ошибка и что пишет. P.S. Ушел на ...   29.9.2017, 15:33
Roma777   Добрый день! Я правильно понял скрипт только н...   28.11.2017, 20:40
cirus   Да. Бой в другом скрипте: https://forum.uokit.com...   29.11.2017, 2:00
Roma777   еще вопрос)) Скрипты на поиск моба, бой и дроп мож...   29.11.2017, 20:03
cirus   Можно и в один, но по отдельности проще настраиват...   30.11.2017, 2:04


Ответить в эту темуОткрыть новую тему
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0

 

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