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

 
Ответить в эту темуОткрыть новую тему
> Что ему не нравиться, решил писать на луа
XaЛBa
сообщение 22.5.2020, 2:24
Сообщение #1


**

Neophyte
Сообщений: 32
Регистрация: 12.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.293



решил писать на Луа, а в маленьком скрипте сразу же запнулся
Код
--lua
local path = [["C:\Users\Второй Пользователь\Desktop\UoPiloT\LA\G.bmp"]]
::metka::
if  color(1171, 1024) == 7925487 then
    --if  1171, 1024 7925487
    send ("{Spacebar}")
    --    send {Spacebar}
    wait (100)
    --    wait 100
    end
    --end_if
    local A, a = findimage (578, 281, 1469, 888, {path}, 2, 80, 1, 5)
    --set #a findimage (578, 281 1469, 888 (LA\G.bmp) %a 2 80 1 5)
    log ( A a )
    --//log #a
    if  A then
        --if  #a > 0
        send ("G")
        --    send G
        wait (200)
        --    wait 200
        end
        --end_if
        goto metka
уже волосы дыбом. Пишет такую ошибку - 14: ')' expected near 'a', к чему относиться так и не въеду
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.5.2020, 2:32
Сообщение #2


**********

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



Он же пишет в какой строке ошибка. В данном случае в 14, т. к. индексация строк начинается с 0, то смотрим на 13 строку.
Цитата
log ( A a )

Параметры в лог нужно передавать через запятую.
Код
log ( A, a )

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
XaЛBa
сообщение 22.5.2020, 2:36
Сообщение #3


**

Neophyte
Сообщений: 32
Регистрация: 12.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.293



Цитата(cirus @ 22.5.2020, 2:32) *

Он же пишет в какой строке ошибка. В данном случае в 14, т. к. индексация строк начинается с 0, то смотрим на 13 строку.

Параметры в лог нужно передавать через запятую.
Код
log ( A, a )


твоюж медь, ааааа, все, у меня коронавирус, спасиб огромное
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
XaЛBa
сообщение 15.6.2020, 18:16
Сообщение #4


**

Neophyte
Сообщений: 32
Регистрация: 12.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.293



Код
 --lua
local path = [[C:\Users\второй пользователь\Desktop\UoPiloT\VicDeath]] --рабочий каталог
local image, count = dir (path, "*.bmp")       --загрузка картинок в массив тока bmp
local pole = {750,150,1220,520}    --размер поля для поиска
while true do
    for i=1, count do
        workwindow(windowfromcursor())
        local A, a = findimage (pole[1], pole[2], pole[3], pole[4], {image[i][1]}, 2, 80, -1)
        log ( A, a )
        if  A then
            local x = ((A[1][1] + A[1][3])/2)  
            local y = ((A[1][2] + A[1][4])/2)
            left (x, y)   --жмакает в центр
            wait (3000)
            end
            end
            wait (5)
            end

вопрос1 - выдает ошибку nil -4, что тут не так ему натворил, вопрос2 - почему не хочет понимать local A, a = findimage (pole, {image[i][1]}, 2, 80, -1), хотя финдимадж с массивом может работать
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Madeus
сообщение 15.6.2020, 22:56
Сообщение #5


****

Apprentice
Сообщений: 283
Регистрация: 19.11.2019
Группа: Пользователи
Наличность: 8421
Пользователь №: 19.451
Возраст: 32



Цитата(XaЛBa @ 15.6.2020, 18:16) *

вопрос1 - выдает ошибку nil -4, что тут не так ему натворил, вопрос2 - почему не хочет понимать local A, a = findimage (pole, {image[i][1]}, 2, 80, -1), хотя финдимадж с массивом может работать


вопрос1 - выдает ошибку nil -4 -- count = nil
вопрос2 - почему не хочет понимать local A, a = findimage (pole, {image[i][1]}, 2, 80, -1), хотя финдимадж с массивом может работать -- не правильно задан путь

Код
local image = {"1", "2", "3"}
local A, a = findimage (pole[1], pole[2], pole[3], pole[4],{path .. image[i] .. ".bmp"}, 2, 80, -1)
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.6.2020, 1:36
Сообщение #6


**********

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



Цитата
-4

Картинка не найдена.
Цитата
local path = [[C:\Users\второй пользователь\Desktop\UoPiloT\VicDeath]] --рабочий каталог

Если в пути есть пробелы, то он должен быть заключён в кавычки.
Код
local path = [["C:\Users\второй пользователь\Desktop\UoPiloT\VicDeath"]] --рабочий каталог

Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
XaЛBa
сообщение 16.6.2020, 11:53
Сообщение #7


**

Neophyte
Сообщений: 32
Регистрация: 12.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.293



Цитата(cirus @ 16.6.2020, 1:36) *

Картинка не найдена.

Если в пути есть пробелы, то он должен быть заключён в кавычки.
Код
local path = [["C:\Users\второй пользователь\Desktop\UoPiloT\VicDeath"]] --рабочий каталог

чудеса в решете, ставлю кавычки - пишет в логе - Найдено файлов 0, убираю пишет уже что найдено 7 файлов, но выдает ошибку в строке с финдом, хотя там уже прописал путь по другому , а именно local A, a = findimage (pole[1], pole[2], pole[3], pole[4], {path .. "\\" .. image[i] .. ".bmp"}, 2, 80, -1). Да и image - это уже масссив, где image[i][1] содержит полный путь с именем и расширением . а вот такой мутью типа local image = {"1", "2", "3"} - ну , это муть избирательная, но не как для 10 файлов, а если 50 .... и проверял ещо
Код
if count then      -- если файлы найдены
    for i=1, #image do
        log (image[i][1])         -- показать в логе список
    end
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 16.6.2020, 12:50
Сообщение #8


**********

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



Код
--lua
log 'clear' log 'mode compact'
local path = [[C:\Users\второй пользователь\Desktop\UoPiloT\VicDeath]]      -- путь к папке
local image, count = dir (path, '*.bmp', 'norecursion')
local pole = {750,150,1220,520}


log ("Найдено файлов: " .. tostring(count))

if count then
    for i=1, #image do
        log (tostring(i) .. ' ' .. image[i][1])
        local A, a = findimage (pole[1], pole[2], pole[3], pole[4], { string.format ("%q", image[i][1]) }, 2, 80, -1)
        log('Результат поиска: ' .. tostring(a))
        log ()
    end
end

В рамках пилота лучше не использовать пути с пробелами, чтобы избежать лишних проблем.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
XaЛBa
сообщение 16.6.2020, 13:40
Сообщение #9


**

Neophyte
Сообщений: 32
Регистрация: 12.4.2019
Группа: Пользователи
Наличность: 0
Пользователь №: 19.293



тестанул, все ок, корень зла именно в пробеле, в local path..... кавычки мешают (хотя почему так и не понял), а в финде - там грамотно избавились за счет string.format ("%q", image[i][1]) - вернуть строку в двойных кавычках, проще переставить пилот в другое место и гиморой исправиться, спасибки , разобрался , учту
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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