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

2 страниц V < 1 2  
Ответить в эту темуОткрыть новую тему
> Hint
DarkMaster
сообщение 7.2.2025, 16:29
Сообщение #21


***********

Модератор UOPilot
Сообщений: 9.661
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29144
Пользователь №: 11.279



полный код дайте, как именно запускаете.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 7.2.2025, 18:11
Сообщение #22


****

Apprentice
Сообщений: 285
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 51
Пользователь №: 18.395



Код
--lua
--stop_script ()
local hint = require[[hint]]

do
    local stop_script_orig = stop_script
    stop_script = function(...)
        local params = {...}
        if not params[1]
            or (params[1] == current_script()) then
            getmetatable(hint).__gc(hint)
        end
        return stop_script_orig(...)
    end
end

do
    local end_script_orig = end_script
    end_script = function(...)
        getmetatable(hint).__gc(hint)
        return end_script_orig(...)
    end
end

local msg_cfg = {}
msg_cfg.text = "Федя"
msg_cfg.font_color = 0x00FF00 -- зеленый
hint(msg_cfg)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.2.2025, 21:22
Сообщение #23


***********

Модератор UOPilot
Сообщений: 9.661
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29144
Пользователь №: 11.279



Вы сделали 2 ошибки:
1) Hint выполняется асинхронно, т.е. он не тормозит основной скрипт, как следствие скрипт моментально завершится.
2) Вы не поместили в последнюю строку скрипта:
getmetatable(hint).__gc(hint)

Пример вызова рабочего:
Код
--lua
local hint = require[[hint]]

do
    local stop_script_orig = stop_script
    stop_script = function(...)
        local params = {...}
        if not params[1]
            or (params[1] == current_script()) then
            getmetatable(hint).__gc(hint)
        end
        return stop_script_orig(...)
    end
end

do
    local end_script_orig = end_script
    end_script = function(...)
        getmetatable(hint).__gc(hint)
        return end_script_orig(...)
    end
end

local msg_cfg = {}
msg_cfg.text = "Fedya"
msg_cfg.font_color = 0x00FF00 -- зеленый
hint(msg_cfg)
-- Задержку ставим перед завершением.
wait(5000)


-- Вот это забыли:
getmetatable(hint).__gc(hint)


Сообщение отредактировал DarkMaster - 7.2.2025, 21:22


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 7.2.2025, 21:45
Сообщение #24


****

Apprentice
Сообщений: 285
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 51
Пользователь №: 18.395



Работает. Но хотелось бы человеческую строку вызова хинта)
hint(text, size, pos_x, pos_y, width, height)

P.S. перестают запускаться остальные скрипты при копировании hint.lua в папку пилота. Также пилот вылетает. Это что в каждом скрипте надо добавлять это?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 7.2.2025, 23:23
Сообщение #25


***********

Модератор UOPilot
Сообщений: 9.661
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29144
Пользователь №: 11.279



Цитата
P.S. перестают запускаться остальные скрипты при копировании hint.lua в папку пилота.

Всмысле? Скрипту пофигу, что там лежит в какой папке, если вы не вызываете явным образом работу с этим файлом через require/io.open/dofile и т.д.
Цитата
Также пилот вылетает.

Когда? При каких обстоятельствах? От кнопки стоп - он будет вылетать, там проблемы внутри самого пилота.
Цитата
Это что в каждом скрипте надо добавлять это?

Заголовки которые я привл - да. Шапку и одну строку в конце скрипта.
Цитата
Работает. Но хотелось бы человеческую строку вызова хинта)

Я бы очень поспорил по поводу человечности вызова особенно учитывая количество параметров для конфигурации. Специально для вас:
Код

local my_hint = function(text, size, pos_x, pos_y, width, height)
    local cfg = {}
    cfg.text = text                -- текст сообщения
    cfg.font_size = size           -- размер шрифта
    cfg.pos_x = pos_x              -- позиция на экране x
    cfg.pos_y = pos_y              -- позиция на экране y
    cfg.width = width              -- ширина. 0 - подгонит под размер текста
    cfg.height = height            -- высота. 0 - подгонит под размер текста
    hint(cfg)
end


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение 11.2.2025, 16:20
Сообщение #26


****

Apprentice
Сообщений: 285
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 51
Пользователь №: 18.395



Код
--lua
imageToString = require("luaPlugins\\FindString")

while 1 do
    local cell =
        imageToString.get(
        {
            loadFolder = {path = "image\\comeback", mask = "*"},
            crds = {109, 815, 172, 837},
            accuracy = 86,
            deltaSpace = 15,
            deviation = 9,
            wait = 2
        }
    )
    if cell then
        local h = tonumber(table.concat(cell[1]))
        hint(h)
        if h < 2400 then
            sendex(1)
            wait (20)
        end
    else
        hint("не найдено")
    end
    wait(1)
end


Как в этом коде заменить хинт на этот?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение Вчера, 5:20
Сообщение #27


***********

Модератор UOPilot
Сообщений: 9.661
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29144
Пользователь №: 11.279



Код
--lua
imageToString = require("luaPlugins\\FindString")
local hint = require[[hint]]

do
    local stop_script_orig = stop_script
    stop_script = function(...)
        local params = {...}
        if not params[1]
            or (params[1] == current_script()) then
            getmetatable(hint).__gc(hint)
        end
        return stop_script_orig(...)
    end
end

do
    local end_script_orig = end_script
    end_script = function(...)
        getmetatable(hint).__gc(hint)
        return end_script_orig(...)
    end
end


local my_hint = function(text, size, pos_x, pos_y, width, height)
    local cfg = {}
    cfg.text = text                -- текст сообщения
    cfg.font_size = size           -- размер шрифта
    cfg.pos_x = pos_x              -- позиция на экране x
    cfg.pos_y = pos_y              -- позиция на экране y
    cfg.width = width              -- ширина. 0 - подгонит под размер текста
    cfg.height = height            -- высота. 0 - подгонит под размер текста
    hint(cfg)
end

while 1 do
    local cell =
        imageToString.get(
        {
            loadFolder = {path = "image\\comeback", mask = "*"},
            crds = {109, 815, 172, 837},
            accuracy = 86,
            deltaSpace = 15,
            deviation = 9,
            wait = 2
        }
    )
    if cell then
        local h = tonumber(table.concat(cell[1]))
        my_hint(h)
        if h < 2400 then
            sendex(1)
            wait (20)
        end
    else
        hint("не найдено")
    end
    wait(1)
end

getmetatable(hint).__gc(hint)


Сообщение отредактировал DarkMaster - Вчера, 5:20


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
dron4938
сообщение Вчера, 16:57
Сообщение #28


****

Apprentice
Сообщений: 285
Регистрация: 20.3.2017
Группа: Пользователи
Наличность: 51
Пользователь №: 18.395



(IMG:https://i.imgur.com/LiQPWt4.png)
если находит числа то ошибку вываливает.
если не находит то вместо "не найдено" пишит фигню какуюто:
(IMG:https://i.imgur.com/nsp6zKx.png)

p.s. пока не найдено и пишет фигню, в игре минус 20 фпс) от этого кода
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение Сегодня, 0:29
Сообщение #29


***********

Модератор UOPilot
Сообщений: 9.661
Регистрация: 2.12.2008
Группа: Супермодераторы
Наличность: 29144
Пользователь №: 11.279



Цитата
если находит числа то ошибку вываливает.

потому что на вход ожидается текст, а не число. Делайте tonumber позже или используйте tostring.
Цитата
если не находит то вместо "не найдено" пишит фигню какуюто:

разница в кодировках. Писалось не под пилот изначально отсюда проблемы. Возможно какие-то преобразования из https://forum.uokit.com/index.php?showtopic=71536 Системные. Массив sys. помогут, но скорее всего тут нужно ascii -> utf16.

Цитата
p.s. пока не найдено и пишет фигню, в игре минус 20 фпс) от этого кода

увеличить wait. Findstring достаточно много жрет по объективным причинам. Если нет необходимости сверх быстрого регирования - поставьте 1000.


--------------------
Скрипты UOPilot под заказ.
Консультации по UOpilot 15$/час.
Услуги Lua разработчика (не пилот, проекты, постоянка)
Disсоrd:
Kov____
Писать в личку.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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