|
Нужна помощь с написанием скрипта |
|
|
cirus |
28.3.2020, 11:53
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26747
Пользователь №: 16.971
Возраст: 29
|
код
Код --lua -- привязка к нужному окну Ctrl+A -- версия пилота 2.41 local x, y = 11, 10 -- размеры поля local deltaX, deltaY = 36, 36 -- расстояние между клетками local startX, startY = 117, 125 -- координаты центра левого верхнего предмета
local color_empty = 1250583 -- цвет пустой клетки local deviation = 5 -- 5% - отклонение в цвете, подобрать значение
log "clear" log "mode compact" log "open 0 0 400 300"
for j = 0, y-1 do for i = 0, x-1 do local X, Y = startX + i * deltaX, startY + j * deltaY -- считаем координаты предмета move (X, Y) -- навести курсор, можно убрать wait (200) -- можно убрать for k = 1, 15 do -- повторить 15 раз -- тут нужные действия для заточки вещи
-- проверяем пустая клетка или нет local a = findcolor(X-5, Y-5, X+5, Y+5, 1, 1, "(" .. color_empty .. ")", "%arr", 2, -1, deviation) if a and a > 100 then log("Вещь сломалась, точим следующую вещь") break end end end end
|
|
|
|
ARTGNOMKA |
21.4.2020, 23:05
|
Neophyte
Сообщений: 12
Регистрация: 16.3.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.581
Возраст: 30
|
Цитата(cirus @ 28.3.2020, 11:53) код
Код --lua -- привязка к нужному окну Ctrl+A -- версия пилота 2.41 local x, y = 11, 10 -- размеры поля local deltaX, deltaY = 36, 36 -- расстояние между клетками local startX, startY = 117, 125 -- координаты центра левого верхнего предмета
local color_empty = 1250583 -- цвет пустой клетки local deviation = 5 -- 5% - отклонение в цвете, подобрать значение
log "clear" log "mode compact" log "open 0 0 400 300"
for j = 0, y-1 do for i = 0, x-1 do local X, Y = startX + i * deltaX, startY + j * deltaY -- считаем координаты предмета move (X, Y) -- навести курсор, можно убрать wait (200) -- можно убрать for k = 1, 15 do -- повторить 15 раз -- тут нужные действия для заточки вещи -- проверяем пустая клетка или нет local a = findcolor(X-5, Y-5, X+5, Y+5, 1, 1, "(" .. color_empty .. ")", "%arr", 2, -1, deviation) if a and a > 100 then log("Вещь сломалась, точим следующую вещь") break end end end end Подскажи а можно как то сделать перебор по картинке. Суть такова, у меня задача заточить вещь на +15. По типу Если нашло вещи картинка +0 то точить на +1 и потом опять ищет картинки+0. И так пока все не переточит на +1, и потом новый цикл только теперь точим +1 на +2.
|
|
|
|
ARTGNOMKA |
22.4.2020, 21:16
|
Neophyte
Сообщений: 12
Регистрация: 16.3.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.581
Возраст: 30
|
Цитата(cirus @ 22.4.2020, 0:48) Делайте картинку и ищите через findimage.
--lua -- привязка к нужному окну Ctrl+A -- поиск нескольких одинаковых изображений -- если будет найдено больше 110 поиск прекратится, точность 100%, отклонение в цвете 5% local slot_ench_x, slot_ench_y = 1011, 414 -- коорлинаты х и у ячейки, для переноса вещи в слот заточки local slot_start_x, slot_start_y = 901, 586 -- координаты х и у ячейки, кнопки СТАРТ local slot_scroll_ech = F1 -- Свиток лежит в кнопке F1 local slot_close_x, slot_close_y = 994, 582 -- координаты х и у ячейки, кнопки ЗАКРЫТЬ local path = [[C:\pilot\puzo_light\puzol0.bmp]] -- путь к картинкам local arr, a = findimage (0, 0, 1920, 1080, {path}, 2, 100, 110, 5) -- поиск картинки, должна быть в папке с пилотом hint (a) -- результат поиска, подсказка в правом нижнем углу if arr then -- если найдена log ("Найдено картинок: " .. #arr) for i=1, #arr do -- send slot_scroll_ech -- заточка end end Подскажи, как назначить нажатие(вызов) кнопки F1
|
|
|
|
ARTGNOMKA |
22.4.2020, 22:21
|
Neophyte
Сообщений: 12
Регистрация: 16.3.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.581
Возраст: 30
|
Цитата(cirus @ 22.4.2020, 21:24) Код Код --lua local slot_scroll_ech = 'F1' -- Свиток лежит в кнопке F1 send(slot_scroll_ech) Подскажи еще, я не особо силен в кодинге. Но мой скрипт к примеру сканирует 1 раз картинки, и дальше их точит. Но бывает пропускает штук 10 картинок (именно не отрабатывает зажатие и перетаскивание). Меня интересует вопрос, что нужно дописать, чтобы он заново отработал процедуру заточки?
|
|
|
|
ARTGNOMKA |
22.4.2020, 23:24
|
Neophyte
Сообщений: 12
Регистрация: 16.3.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.581
Возраст: 30
|
Код --lua -- привязка к нужному окну Ctrl+A -- поиск нескольких одинаковых изображений -- если будет найдено больше 110 поиск прекратится, точность 100%, отклонение в цвете 5% local slot_ench_x, slot_ench_y = 1011, 414 -- коорлинаты х и у ячейки, для переноса вещи в слот заточки local slot_start_x, slot_start_y = 901, 586 -- координаты х и у ячейки, кнопки СТАРТ local slot_scroll_ench = 'F1' -- Свиток лежит на панели, кнопка F1 local slot_close_x, slot_close_y = 994, 582 -- координаты х и у ячейки, кнопки ЗАКРЫТЬ local armor0 = [[C:\pilot\puzo_light\puzol0.bmp]] -- путь к картинкам
log 'clear' log 'mode compact'
for j = 1, 2 do -- выполнить 2 раза log('j = ' .. tostring(j))
local arr, a = findimage (0, 0, 1920, 1080, {armor0}, 2, 100, 110, 5) -- поиск картинки, должна быть в папке с пилотом hint (a) -- результат поиска, подсказка в правом нижнем углу if arr then -- если найдена log ("Найдено шмота +0: " .. #arr) for i=1, #arr do -- заточка end end end
Прости, не отрабатывает повторно. Теперь не отрабатывает заточка вообще.
|
|
|
|
cirus |
23.4.2020, 0:00
|
Elder
Сообщений: 3.480
Регистрация: 18.8.2014 Группа: Пользователи Наличность: 26747
Пользователь №: 16.971
Возраст: 29
|
Цитата Окно игры было не привязано. Эту строку в начало скрипта: Код if workwindow() == 0 then log('Не сделана привязка') stop_script() end Цитата То есть заточил +0 на +1. Теперь хочу заново начать поиск картинки и начать заточку. Код --lua log 'clear' log 'mode compact'
-- массив с именами картинок local armor = { [[C:\pilot\puzo_light\puzol0.bmp]], -- дописать остальные через запятую [[C:\pilot\puzo_light\puzol1.bmp]], [[C:\pilot\puzo_light\puzol2.bmp]] }
hint ("Всего картинок для поиска " .. #armor) for k=1, #armor do -- цикл для поиска картинок log('Поиск картинки: ' .. armor[k]) for j = 1, 2 do -- выполнить 2 раза log('j = ' .. tostring(j))
local arr, a = findimage (0, 0, 1920, 1080, {armor[k]}, 2, 100, 110, 5) -- поиск картинок if arr then for i=1, #arr do -- тут код для заточки move (arr[i][1], arr[i][2]) -- переместить курсор на найденную картинку (можно убрать) wait (500) -- ждать 0,5 секунды end end end end
|
|
|
|
ARTGNOMKA |
23.4.2020, 23:35
|
Neophyte
Сообщений: 12
Регистрация: 16.3.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.581
Возраст: 30
|
Код --lua log 'clear' log 'mode compact' -- привязка к нужному окну Ctrl+A -- поиск нескольких одинаковых изображений -- если будет найдено больше 110 поиск прекратится, точность 100%, отклонение в цвете 5%
local null = [[C:\pilot\puzo_light\null.bmp]] -- путь к картинкам local magazine = [[C:\pilot\magazine.bmp]] -- путь к картинкам
local arr, a = findimage (0, 0, 1920, 1080, {null}, 2, 100, 110, 5) -- поиск картинки, должна быть в папке с пилотом if #arr>90 then log ("Найдено пустых слотов: " .. #arr) wait(3000) sendex ('@{B}') -- нажать Alt+B wait(3000) local arr1, b = findimage (0, 0, 1920, 1080, {magazine}, 2, 100, 1, 5) -- поиск картинки, должна быть в папке с пилотом if arr1 then -- если найдена log ("Найден Магазин: " .. #arr1) kleft (arr1[i][1], arr1[i][2]) end else log ("Точим " .. #arr) end
Вопрос по вложенности, так можно объявлять поиск новой картинки? Код и следующий вопрос: Код log ("Найден Магазин: " .. #arr1) это отрабатывает нормально, но как только добавлю Код kleft (arr1[i][1], arr1[i][2]) то пишет "a runtime error. 23: attempt to index a nil value" тоесть я не правильно ссылаюсь на координаты?
|
|
|
|
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0
|
|