Скрипт поиска мобов
Код
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 килобайт )
Кол-во скачиваний: 574Лучше делайте свои, эти могут не находиться. Картинки 'Сложность' и 'Напасть' обязательны для работы скрипта.
Обновление 1Теперь скрипт не дергает курсор.
Может работать в перекрытом окне. Проверял только в браузере Maxthon.
Координаты моба и время прогрузки острова указывать не нужно.
Для работы скрипта в настройках игры отключить анимацию.
В архиве скрипт, папка с картинками мобов и скрипт для получения смещения между родительским и дочерним окном:
ПоискМобов2.zip ( 29,2 килобайт )
Кол-во скачиваний: 542Сбор дропа с мобов
Код
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 килобайт )
Кол-во скачиваний: 487Картинки кнопок сделаны скриптом для поиска статичных точек:
https://forum.uokit.com/index.php?showtopic=30118. Чтобы кнопки находились даже если на них наведён курсор.
Картинки итемов также можно делать скриптом для создания картинки.