Подскажите, возможно ли написать такую автоматику для игры ла2.
Скрипт по заточке одно типа предмета.
инвентарь на 11*10 ячеек.
Чтобы точило до 15 и останавливалось.
файл инвентаря прилагаю, с каждой модификацией вещь меняется.
--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
--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
--lua
send('F1')
--lua
local slot_scroll_ech = 'F1' -- Свиток лежит в кнопке F1
send(slot_scroll_ech)
--lua
send('F1')
--lua
local slot_scroll_ech = 'F1' -- Свиток лежит в кнопке F1
send(slot_scroll_ech)
--lua
log 'clear' log 'mode compact'
for j = 1, 2 do -- выполнить 2 раза
log('j = ' .. tostring(j))
for i = 1, 3 do -- тут допустим код для заточки
log(' i = ' .. tostring(i))
end
end
--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
if workwindow() == 0 then log('Не сделана привязка') stop_script() end
--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
--lua
wait(3000) -- переключиться на окно
-- сработает только для активного окна
sendex ('@{B}') -- нажать Alt+B
sendex() -- отпустить клавиши модификаторы
--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
local arr1, b
log ("Найден Магазин: " .. #arr1)
kleft (arr1[i][1], arr1[i][2])
kleft (arr1[0][1], arr1[0][2])