Доброго времени суток!
Подскажите как привести к нормальному отображению hint timer например чч:мм:сс, а то отображается в миллисекундах.
Спасибо.
hint timestamp (timer)
Подскажите, как в hint вывести "остаток", по wait?
По аналогии с настройкой пилота (отображать переменную timer).
Не знаю как правильно выразиться. Хочу с помощью hint вывести отсчет до завершения задержки указанной в wait., а как сделать не знаю.
Правильнее наверное было сказать не остаток, а время до завершения wait.
Не совсем понятно что Вы хотите. 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
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)
Cirus, Спасибо Вам в который раз, это то что нужно.
Sutra, я хотел то что Вы сформулировали как "// вывод сколько осталось ждать"
--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)
что-то нативно не получилось завести. Парсит как-то криво. Тем не менее цвет нужно задавать либо числом либо clred и прочее использовть, как вызов функции, т.е. clred(). Однако добиться каких-либо результатов я не смог даже закинув все параметры в большой стринг (обычно при такой передаче вызывается старый парсер и функция обрабатывается, как-будто мы используем старый синтаксис).
раньше я использовал хинт при тестировании скрипта для наглядности, выскакивало на экране в том месте где находит цвет, ну да ладно. А на счет таймера - как в луа сделать что-то подобное? Например, мне надо нажать кнопку по условию, и чтобы в течение 5 секунд после ее нажатия в это же условие не попадало, со старым таймером было просто.
if color (1786, 947) ~= 123 and color (1517, 1027) ~= 6 and color (510, 1054) ~= 321 then
sendex ("5")
end
local timeout = os.clock() + 5
while timeout > os.clock() then
log("вася")
wait(1000)
end
я в луа совсем не шарю, не понимаю как это применить к моему условию?
я свой старый скрипт пытаюсь переделать на луа, загвоздка только в этом таймере
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
local timeout = os.clock() + 4.5
if timeout > os.clock() then
...
if .... then -- reset
timeout = os.clock() + 4.5
end
end
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())
local timeout = os.clock() + 4.5
if timeout > os.clock() then
...
if .... then -- reset
timeout = os.clock() + 4.5
end
end
local t1 = os.clock()
while 1 == 1 do
if (os.clock() - t1) > 4.5 then
t1 = os.clock
end
end
--lua
local pupok = 2893595
while 1 == 1 do
if color (31, 1012) == pupok then
-- wait (500)
else
-- wait (500)
end
end
с findcolor не моргает, спасибо. Странно что на старом языке такого нет, хотя там тоже вроде поиск не медленный. Я когда ставлю wait (500) например, он все равно промаргивает каждые полсекунды.
почему если я в findcolor вместо цвета ставлю переменную то он выдает значение -1 ? если пишу просто значение то работает нормально
--lua
local mp = color (1786, 947) -- 11892493
log (mp)
while 1 == 1 do
local c = findcolor([[1728, 913, 1851, 1026 , 1, 1 (mp) %arr 2]])
if c then
log (c)
end
wait (3000)
end
Я не эксперт, но по-моему это не валидный код.
Вот тут вроде как правильно https://forum.uokit.com/index.php?s=&showtopic=70978&view=findpost&p=442767
Нужно привести вызов findcolor() к такому же виду.
а как вписать туда несколько цветов?
"(color1, color2)"
Русская версия Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)