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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> Нужна помощь с написанием скрипта
ARTGNOMKA
сообщение 16.3.2020, 15:58
Сообщение #1


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Подскажите, возможно ли написать такую автоматику для игры ла2.
Скрипт по заточке одно типа предмета.
инвентарь на 11*10 ячеек.
Чтобы точило до 15 и останавливалось.
файл инвентаря прилагаю, с каждой модификацией вещь меняется.


Эскизы прикрепленных изображений
Прикрепленное изображение
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 17.3.2020, 3:31
Сообщение #2


**********

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



Если kleft будет кликать, то можно.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 28.3.2020, 11:47
Сообщение #3


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Цитата(cirus @ 17.3.2020, 2:31) *

Если kleft будет кликать, то можно.


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


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 21.4.2020, 23:05
Сообщение #5


**

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


**********

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



Проще проверять пустая клетка или нет, чем искать картинки вещей.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 21.4.2020, 23:48
Сообщение #7


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Цитата(cirus @ 21.4.2020, 23:41) *

Проще проверять пустая клетка или нет, чем искать картинки вещей.

а в том то и дело, мне все равно нужно проверить, есть ли такая вещь. Чтоб ее дальше не точило
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.4.2020, 0:48
Сообщение #8


**********

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



Делайте картинку и ищите через findimage.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 22.4.2020, 21:16
Сообщение #9


**

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


**********

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



Цитата
Подскажи, как назначить нажатие(вызов) кнопки F1

Код
--lua
send('F1')

Код
--lua
local slot_scroll_ech = 'F1' -- Свиток лежит в кнопке F1
send(slot_scroll_ech)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 22.4.2020, 22:21
Сообщение #11


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Цитата(cirus @ 22.4.2020, 21:24) *

Код
--lua
send('F1')

Код
--lua
local slot_scroll_ech = 'F1' -- Свиток лежит в кнопке F1
send(slot_scroll_ech)



Подскажи еще, я не особо силен в кодинге.
Но мой скрипт к примеру сканирует 1 раз картинки, и дальше их точит. Но бывает пропускает штук 10 картинок (именно не отрабатывает зажатие и перетаскивание).
Меня интересует вопрос, что нужно дописать, чтобы он заново отработал процедуру заточки?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.4.2020, 22:34
Сообщение #12


**********

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



Цитата
Но бывает пропускает штук 10 картинок (именно не отрабатывает зажатие и перетаскивание).

Возможно окно с инвентарём теряет фокус и поэтому перетаскивание не всегда срабатывает. Для начала попробуйте добавить клик по нему, чтобы окно получило фокус, а уже потом перетаскивать. Также можно попробовать наводить курсор на вещь, а потом уже перетаскивать и ещё можно использовать move_smooth, он более плавно перетаскивает.
Цитата
что нужно дописать, чтобы он заново отработал процедуру заточки?

Код
--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

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 22.4.2020, 23:24
Сообщение #13


**

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


Прости, не отрабатывает повторно. Теперь не отрабатывает заточка вообще.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 22.4.2020, 23:38
Сообщение #14


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Все нашел ошибку) примитивная была)
Окно игры было не привязано.


Подскажи теперь другой вопрос.
Я теперь хочу добавить новый поиск картинки. То есть заточил +0 на +1. Теперь хочу заново начать поиск картинки и начать заточку. Подскажи после какой строчки продублировать код заточки заново
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.4.2020, 0:00
Сообщение #15


**********

Elder
Сообщений: 3.480
Регистрация: 18.8.2014
Группа: Пользователи
Наличность: 26691
Пользователь №: 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
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 23.4.2020, 20:48
Сообщение #16


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Подскажи а как на lua забиньдить(send 'Alt+B') нажатие Альт + В
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.4.2020, 22:07
Сообщение #17


**********

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



Цитата
нажатие Альт + В

Код
--lua
wait(3000)  -- переключиться на окно

-- сработает только для активного окна
sendex ('@{B}')    -- нажать Alt+B
sendex()   -- отпустить клавиши модификаторы

Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 23.4.2020, 22:57
Сообщение #18


**

Neophyte
Сообщений: 12
Регистрация: 16.3.2020
Группа: Пользователи
Наличность: 0
Пользователь №: 19.581
Возраст: 30



Кстати, вопросик еще

Находил здесь код "Пример поиска картинки в перекрытом(не свёрнутом) окне"

Если я правильно понял, то оно будет искать и кликать в свернутой игре???
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 23.4.2020, 23:01
Сообщение #19


**********

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



Цитата
Если я правильно понял, то оно будет искать и кликать в свернутой игре???

В свёрнутом нет. В перекрытом, за пределами экрана или на другом рабочем столе возможно, зависит от приложения. Но только если используются клики без приставки 'k' и нажатия send.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
ARTGNOMKA
сообщение 23.4.2020, 23:35
Сообщение #20


**

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



Вопрос по вложенности, так можно объявлять поиск новой картинки?
Код
local arr1, b

и следующий вопрос:
Код
log ("Найден Магазин: " .. #arr1)

это отрабатывает нормально, но как только добавлю
Код
kleft (arr1[i][1], arr1[i][2]) 

то пишет "a runtime error. 23: attempt to index a nil value" тоесть я не правильно ссылаюсь на координаты?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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