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

2 страниц V  1 2 >  
Ответить в эту темуОткрыть новую тему
> hint
Cheloveche
сообщение 22.1.2019, 21:01
Сообщение #1


**

Neophyte
Сообщений: 14
Регистрация: 21.9.2016
Группа: Пользователи
Наличность: 0
Пользователь №: 18.124
Возраст: 23



Доброго времени суток!
Подскажите как привести к нормальному отображению hint timer например чч:мм:сс, а то отображается в миллисекундах.
Спасибо.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.1.2019, 21:29
Сообщение #2


**********

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



Код
hint timestamp (timer)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 21.4.2021, 23:58
Сообщение #3


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36



Подскажите, как в hint вывести "остаток", по wait?
По аналогии с настройкой пилота (отображать переменную timer).
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.4.2021, 1:40
Сообщение #4


**********

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



Цитата
как в hint вывести "остаток"

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


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36



(IMG:style_emoticons/default/biggrin.gif) Не знаю как правильно выразиться. Хочу с помощью hint вывести отсчет до завершения задержки указанной в wait., а как сделать не знаю.
Правильнее наверное было сказать не остаток, а время до завершения wait.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
sutra
сообщение 22.4.2021, 9:56
Сообщение #6


*******

Adept
Сообщений: 923
Регистрация: 10.8.2018
Группа: Пользователи
Наличность: 0
Пользователь №: 19.007



Не совсем понятно что Вы хотите. wait на то и wait чтобы именно ЖДАТЬ, т.е. ничего не делать.
Если Вам надо организовать цикл с пределом ожидания, то примерно так.
Код
  set timer        // Сброс таймера контроля времени
  set #lim 300000   // Предел времени выполнения цикла в мсек
  set #a           // Контроль остатка времени
  while #a = #a  // Цикл ожидания
    if #a < 0      // Если прошло более предела
       break       // Прерывание цикла ожидания
    end_if
    set #a #lim - timer
    set #v div (#a 1000)
    hint div(#v 60) : mod(#v 60)   // вывод сколько осталось ждать
  end_while


Настолько отвык от Пилота, что ковырялся с этим несколько минут. Совет - переходите на lua.
Освоите быстро и не пожалеете.
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
cirus
сообщение 22.4.2021, 11:27
Сообщение #7


**********

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



Код
--lua
function _wait(ms)
    local t = os.clock() + ms
    while t - os.clock() > 0 do
        hint (os.date("%M:%S", t - os.clock()))
        wait (1)
    end
end

_wait(5) -- ждать 5 секунд
log (111)
_wait(3) -- ждать 3 секунды
log(222)
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
KotMC
сообщение 22.4.2021, 13:32
Сообщение #8


**

Neophyte
Сообщений: 34
Регистрация: 10.1.2021
Группа: Пользователи
Наличность: 0
Пользователь №: 19.851
Возраст: 36





Cirus, Спасибо Вам в который раз, это то что нужно.
Sutra, я хотел то что Вы сформулировали как "// вывод сколько осталось ждать"
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 9.1.2023, 3:04
Сообщение #9


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



Цитата(cirus @ 22.4.2021, 11:27) *

Код
--lua
function _wait(ms)
    local t = os.clock() + ms
    while t - os.clock() > 0 do
        hint (os.date("%M:%S", t - os.clock()))
        wait (1)
    end
end

_wait(5) -- ждать 5 секунд
log (111)
_wait(3) -- ждать 3 секунды
log(222)



а можно подробнее про hint в луа? есть там какие то параметры или только в углу можно выводить? на вики нету и на форуме не нашел
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.1.2023, 3:52
Сообщение #10


***********

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



что-то нативно не получилось завести. Парсит как-то криво. Тем не менее цвет нужно задавать либо числом либо clred и прочее использовть, как вызов функции, т.е. clred(). Однако добиться каких-либо результатов я не смог даже закинув все параметры в большой стринг (обычно при такой передаче вызывается старый парсер и функция обрабатывается, как-будто мы используем старый синтаксис).


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


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



раньше я использовал хинт при тестировании скрипта для наглядности, выскакивало на экране в том месте где находит цвет, ну да ладно. А на счет таймера - как в луа сделать что-то подобное? Например, мне надо нажать кнопку по условию, и чтобы в течение 5 секунд после ее нажатия в это же условие не попадало, со старым таймером было просто.
Код

            if color (1786, 947) ~= 123 and color (1517, 1027) ~= 6 and color (510, 1054) ~= 321 then
                sendex ("5")
            end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.1.2023, 7:36
Сообщение #12


***********

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



Код
local timeout = os.clock() + 5
while timeout > os.clock() then
    log("вася")
    wait(1000)
end


Сообщение отредактировал DarkMaster - 9.1.2023, 7:37


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


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



я в луа совсем не шарю, не понимаю как это применить к моему условию?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
nykep
сообщение 9.1.2023, 9:35
Сообщение #14


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



я свой старый скрипт пытаюсь переделать на луа, загвоздка только в этом таймере
Код

set %u FindWindow (Path of Exile)
set workwindow %u[1 1]
hint (20 clRed 800 900 -1 -1 (ВКЛ))
get color #pupok 31 1012
get color #hp 170 948
get color #mp 1786 947
get color #mptop 1807 897
repeat 10
    sendex 5
end_repeat
wait 100
get color #mbottle 510 1054
set timer 0
while 1 = 1
if 31, 1012 #pupok
    if_not 170, 948 #hp
        sendex 1
        wait 200
    end_if
        if #mpuse = 1 and 1807, 897 #mptop
            set #mpuse 0
            set #full 1
        end_if
        if_not (1786, 947 #mp or 1517, 1027 6 or 510, 1054 #mbottle) or (timer < 4500 and #full = 0)
            sendex 5
            set timer 0
            set #mpuse 1
            set #full 0
        end_if
end_if
end_while

Код

--lua
local u = findwindow ("Path of Exile")
workwindow (u[1][1])
hint ('ВКЛ')
local x = 0
local pupok = color (31, 1012)
local hp = color (170, 948)
local mp = color (1786, 947)
local mptop = color (1807, 897)
local t = 0
repeat
    x = x + 1
    sendex("5")
until x == 10
wait (100)
local mbottle = color (510, 1054)
while 1 == 1 do
    if color (31, 1012) == pupok then
        if color (170, 948) ~= hp then
            sendex ("1")
            wait (200)
        end
        if mpuse == 1 and color (1807, 897) == mptop then
            local mpuse = 0
            local full = 1
        end

            if (color (1786, 947) ~= mp and color (1517, 1027) ~= 6 and color (510, 1054) ~= mbottle) then
                sendex ("5")

                local mpuse = 1
                local full = 0
            end
    end
end
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
DarkMaster
сообщение 9.1.2023, 10:06
Сообщение #15


***********

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



Код
local timeout = os.clock() + 4.5
if timeout > os.clock() then
    ...
    if .... then -- reset
        timeout = os.clock() + 4.5
    end
end


Фактически смысл в том, что мы создаем некоторый таймштамп момента будущем. Т.е. мы делаем настоящее + 4.5 секунды. Настоящее мы получаем вызовом os.clock(). Ну и соответственно при необходимости мы это будущее опять двигаем вперед.


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


***********

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



Код
local timer = function(reset_flag)end
do
    local t = os.clock()
    timer = function(reset_flag)
       if reset_flag then
            t = os.clock()
            return 0
       else
            return os.clock() - t
        end
    end
end

log(tostring(timer))


log(timer())
wait(123)
log(timer())
log(timer("0"))
log(timer())
wait(1000)
log(timer())


Олдскусльный таймер. Насколько он нужен большой вопрос.


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


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



Цитата(DarkMaster @ 9.1.2023, 10:06) *

Код
local timeout = os.clock() + 4.5
if timeout > os.clock() then
    ...
    if .... then -- reset
        timeout = os.clock() + 4.5
    end
end


Фактически смысл в том, что мы создаем некоторый таймштамп момента будущем. Т.е. мы делаем настоящее + 4.5 секунды. Настоящее мы получаем вызовом os.clock(). Ну и соответственно при необходимости мы это будущее опять двигаем вперед.

блин, оказывается у меня сразу почти получилось, но я там где хотел присвоить переменной какое то значение писал local a = 0, а не просто a = 0 и оно не работало как хотел. В итоге сделал немного по другому как мне привычнее
Код

local t1 = os.clock()
while 1 == 1 do
    if (os.clock() - t1) > 4.5 then
        t1 = os.clock
    end
end

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


***********

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



Цитата
local a = 0, а не просто a = 0

области видимости. когда вы пишите local то вы создаете локальную переменную которую не видно снаружи. Соответственно существующую "снаружи" при этом вы не перезапишите. Очень удобно чтобы избежать случайных конфликтов имен. После скриптов на старом синтаксисе в тысячи строк у меня уже глаз дергался придумывать уникальные названия им, особенно в циклах типа for i. Сейчас все проще намного стало. Хотя нужно отдать должное старом языку - он свое выполнял два десятилетия.

Сообщение отредактировал DarkMaster - 9.1.2023, 12:35


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


****

Apprentice
Сообщений: 233
Регистрация: 1.9.2012
Группа: Пользователи
Наличность: 1161
Пользователь №: 15.246
Возраст: 25



Код
--lua
local pupok = 2893595
while 1 == 1 do
    if color (31, 1012) == pupok then
--    wait (500)
    else
--        wait (500)
    end
end


простая проверка цвета на луа в игре вовремя загрузки приводит у меня вот к чему
[+]

если записывать видео программой, то на нём всё ровно. Установка вэйтов уменьшает моргание. В чем может быть дело?
Пользователь в офлайнеDelete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения
Cockney
сообщение 10.1.2023, 0:11
Сообщение #20


********

Master
Сообщений: 1.394
Регистрация: 22.6.2013
Группа: Пользователи
Наличность: 20893
Пользователь №: 16.156



Цитата
Установка вэйтов уменьшает моргание. В чем может быть дело?



Вероятно часто происходит поиск. Вообще, обычно вместо if color используют связку gettimage()/findcolor(). С ними о подобной проблеме не слышал.
Пользователь в онлайне!Delete PostОтправить личное сообщение
Вернуться в начало страницы
+Ответить с цитированием данного сообщения

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

 

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