Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

UoKit.com Форумы _ UO Pilot в онлайн играх _ Кондишн на нажатие кнопки

Автор: WishMaster 6.5.2019, 11:00

Можно ли сделать запуск скрипта либо прописать цикл с условием выхода из него при нажатии какой-либо кнопки? Это нужно на Lua реализовать.

Автор: cirus 6.5.2019, 11:07

Горячие клавиши есть для запуска/остановки скрипта.
Если в скрипте отслеживать нажатие клавиши, то плагин есть: https://forum.uokit.com/index.php?showtopic=68111

Автор: WishMaster 6.5.2019, 11:11

Цитата(cirus @ 6.5.2019, 11:07) *

Горячие клавиши есть для запуска/остановки скрипта.
Если в скрипте отслеживать нажатие клавиши, то плагин есть: https://forum.uokit.com/index.php?showtopic=68111

А есть ли смысл писать скрипты на Луа для уменьшения потребления ресурсов ПК ?
Я скрипт запускаю только один а у меня потребление ЦП подлетает до 10%, это при том что я на 7700k
Как вариант увеличить дэлэй между строками но я хз как это имплементировать

Автор: cirus 6.5.2019, 11:33

wait 1 и нет нагрузки.

Автор: WishMaster 6.5.2019, 11:37

Цитата(cirus @ 6.5.2019, 11:33) *

wait 1 и нет нагрузки.

После каждой строки?

Автор: cirus 6.5.2019, 11:53

Нет. Хотя бы в одном месте скрипта и в циклах, которые ожидают появления цвета/картинки.

Автор: WishMaster 6.5.2019, 12:10

Цитата(cirus @ 6.5.2019, 11:53) *

Нет. Хотя бы в одном месте скрипта и в циклах, которые ожидают появления цвета/картинки.

Спасибище

Цитата(cirus @ 6.5.2019, 11:53) *

Нет. Хотя бы в одном месте скрипта и в циклах, которые ожидают появления цвета/картинки.

Код
--lua
local startX, startY, endX, endY = 0, 0, 1920, 1080
local path = [["D:\Pilot\pic\shld.bmp"]]
local soundPath = [["D:\Pilot\sounds\shield.wav"]]
while 1 == 1 do
    wait (1)
    local arr, a = findimage (startX, startY, endX, endY, {path}, 2)
    if a > 0 then
        wait (1)
        alarm (soundPath)
        while a do
            wait (1)
            local arr, a = findimage (startX, startY, endX, endY, {path}, 2)
            if a <= 0 then
                break
            end
        end

    end
end

Чёт всё равно ест 10%

Автор: cirus 6.5.2019, 12:24

Область поиска большая. Зачем искать по всему экрану.

Автор: WishMaster 6.5.2019, 12:32

Цитата(cirus @ 6.5.2019, 12:24) *

Область поиска большая. Зачем искать по всему экрану.

а, всё, я разобрался, я натыкал по 100-500мс пауз в циклах и ифах

Автор: cirus 6.5.2019, 12:34

Искомая картинка какого размера?

Автор: WishMaster 6.5.2019, 12:43

Цитата(cirus @ 6.5.2019, 12:34) *

Искомая картинка какого размера?

Маленькое всё, надо паузы прост больше ставить

Бомба, поставил задержки теперь 0.2 - 0.1%

Автор: WishMaster 6.5.2019, 13:06

Код
--lua
-- поиск нескольких одинаковых изображений
-- если будет найдено больше 20 поиск прекратится, точность 70%, отклонение в цвете 5%
local arr = findimage (0, 0, 1920, 1080, {"картинка.bmp"}, 2, 70, 20, 5)  -- поиск картинки, должна быть в папке с пилотом
hint (a)     -- результат поиска, подсказка в правом нижнем углу
if arr then  -- если найдена
    log ("Найдено картинок: " .. #arr)
    for i=1, #arr do
        kleft (arr[i][1], arr[i][2])  -- кликнули на каждой
        wait (1000)  -- пауза 1000 мсек (1 сек)
    end
end

В конце финдимиджа стоят параметры поиска, если я хочу указать только параметр отклонения в цвете могу ли я это сделать как-то? Или мне нужно в таком случае все параметры прописывать?

Автор: cirus 6.5.2019, 13:30

Цитата
Или мне нужно в таком случае все параметры прописывать?

Все.

Автор: WishMaster 6.5.2019, 13:33

Цитата
если будет найдено больше 20 поиск прекратится,

Это если за 1 проход финдимиджа будет найдено 20+ то он прекратится или как это работает?)

Автор: cirus 6.5.2019, 13:39

Цитата
Это если за 1 проход финдимиджа будет найдено 20+ то он прекратится или как это работает?)

Да.

Автор: WishMaster 8.5.2019, 12:42

а можно ли вывести в hint оставшееся время ожидания функции wait?

Автор: cirus 8.5.2019, 13:29

Цитата
а можно ли вывести в hint оставшееся время ожидания функции wait?

Код
--lua
function hint_wait(time)
    local t = os.clock() + time / 1000
    while t > os.clock() do hint (string.format("%.3f", t-os.clock())) wait(1) end
end

log "clear" log "mode compact"
hint_wait(2000)   -- ждать 2 секунды
log (111)
hint_wait(3500)   -- ждать 3.5 секунды
log (222)
end_script()

Автор: WishMaster 8.5.2019, 14:34

А можно как-то включить трекинг выполнения строк в скрипте как буд-то я пишу на дефолтном языке пилота а не на луа? Что-то типо дебаг мода)

Автор: cirus 8.5.2019, 15:01

Цитата
А можно как-то включить трекинг выполнения строк в скрипте как буд-то я пишу на дефолтном языке пилота а не на луа?

Нет, только лог.

Автор: WishMaster 8.5.2019, 15:23

Цитата(cirus @ 8.5.2019, 15:01) *

Нет, только лог.

///

Автор: cirus 8.5.2019, 15:53

Цитата
Что прописывать нужно?

Ничего, поставить галку около кнопки log.

Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)