|
|
|
Функция timer |
|
|
PostByMik |
22.10.2020, 18:01
|
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40
|
Есть скрипт, состоящий из нескольких частей, каждую из частей необходимо выполнять через определенный промежуток времени. Т.е. задача
Скрипт цикл №1 - выполняется раз в каждую минуту. цикл №2 - выполняется раз в каждые 10 минут. цикл №3 - выполняется раз в каждые 15 минут. цикл №4 - выполняется раз в каждые 30 минут. и всё это работает (повторяется) до момента пока не остановишь сам выполнение скрипта.
Я не программист, но голова, вроде, на месте) Как мне использовать функцию timer для моего примера. Важно, что бы срабатывание таймера не прерывало уже выполняющийся цикл, если конечно такое может случиться) В wiki очень маленькое описание, не смог на основе указанных там двух примеров понять то, что мне нужно. (
|
|
|
|
DarkMaster |
23.10.2020, 0:04
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Цитата 1. os.clock() - вернет время на момента запуска UoPilot, а не на момент запуска скрипта? Запуска виртуальной машины луа. В конкретно нашем случае это вроде время с запуска пилота или первого скрипта. Цитата 2. local t1 = os.clock() + 60 - означает, что скрипт для t1 будет выполняться в течение 60 секунд после запуска UoPilot? Это значит, что код внутри будет выполен не чаще чем раз в 1 минуту со всеми вытекающими. Цитата Если да, то, следовательно, для скрипта который по своему выполнению занимает больше минуты, произойдет прерывание или он выполнится полностью, а повторно запустится когда? А вот эти моменты в вашем полезном коде описывать надо =)
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
PostByMik |
23.10.2020, 9:10
|
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40
|
Сделал, и вроде всё работало. Добавил пару новых кликов и переходов и перестало работать. Теперь не могу найти где проблема ( код
Код --lua local t1 = os.clock() + 60 local t2 = os.clock() + 60*11 local t3 = os.clock() + 60*16 local t4 = os.clock() + 60*31
while 1 do if t1 < os.clock() then t1 = os.clock() + 60 --move_smooth (124, 346) --МЫ В ОСНОВНОМ МЕНЮ! перемещаем курсор в точку последующего клика --kleft (124, 346, 5, 5, 5, 5) --переходим на карту с основного меню --wait (4000) --ждем окончания перехода if color(552, 271) == 48383 -- 13.75K МЫ НА КАРТЕ! then -- если в координатах цвет 48383 move_smooth (552, 271, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (552, 271, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(616, 504) == 48383 -- 30K then -- если в координатах цвет 48383 move_smooth (616, 504, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (616, 504, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(324, 171) == 48383 -- 46.25K then -- если в координатах цвет 48383 move_smooth (324, 171, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (324, 171, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(660, 334) == 48383 -- 65K then -- если в координатах цвет 48383 move_smooth (660, 334, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (660, 334, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(187, 173) == 48383 -- 105K then -- если в координатах цвет 48383 move_smooth (187, 173, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (187, 173, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(787, 456) == 48383 -- 151.25K then -- если в координатах цвет 48383 move_smooth (787, 456, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (787, 456, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(661, 205) == 48383 -- 280K then -- если в координатах цвет 48383 move_smooth (661, 205, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (661, 205, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(60, 289) == 48383 -- 362.5K then -- если в координатах цвет 48383 move_smooth (60, 289, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (60, 289, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(196, 326) == 48383 -- 937.5K then -- если в координатах цвет 48383 move_smooth (196, 326, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (196, 326, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(96, 439) == 48383 -- 1.65M then -- если в координатах цвет 48383 move_smooth (96, 439, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (96, 439, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(904, 229) == 48383 -- 1.89M then -- если в координатах цвет 48383 move_smooth (904, 229, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (904, 229, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end --move_smooth (36, 38, 5, 5, 5, 5) --Перемещаем курсор в координаты --wait (1000) --kleft (36, 38, 5, 5, 5, 5) --ВЫХОДИМ С КАРТЫ В ОСНОВНОЕ МЕНЮ! --wait (4000) --ждем окончания перехода end
if t2 < os.clock() then t2 = os.clock() + 60*11 --move_smooth (124, 346, 5, 5, 5, 5) --МЫ В ОСНОВНОМ МЕНЮ! перемещаем курсор в точку последующего клика --kleft (124, 346, 5, 5, 5, 5) --переходим на карту с основного меню --wait (4000) --ждем окончания перехода move_smooth (431, 145, 5, 5, 5, 5) –МЫ НА КАРТЕ! Перемещаем курсор в координаты wait (1000) kleft_down (431, 145, 5, 5, 5, 5) --зажать левую кнопку в координатах wait (1000) move_smooth (431, 205, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (431, 265, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (431, 315, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (431, 365, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (451, 431, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) kleft_up (451, 431, 5, 5, 5, 5) --отпустить левую кнопку в координатах if color(771, 257, 5, 5, 5, 5) == 48383 -- 700K then --если в координатах цвет 48383 kleft (771, 257, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end move_smooth (36, 38, 5, 5, 5, 5) --перемещаем курсор в координаты wait (1000) kleft (36, 38, 5, 5, 5, 5) --ВЫХОДИМ С КАРТЫ В ОСНОВНОЕ МЕНЮ! wait (4000) --ждем окончания перехода move_smooth (75, 349, 5, 5, 5, 5) -- МЫ В ОСНОВНОМ МЕНЮ! Перемещаем курсор в координаты wait (1000) kleft (75, 349, 5, 5, 5, 5) --переходим на карту с основного меню wait (4000) --ждем окончания перехода end
if t3 < os.clock() then t3 = os.clock() + 60*16 --move_smooth (75, 349, 5, 5, 5, 5) -- МЫ В ОСНОВНОМ МЕНЮ! Перемещаем курсор в координаты --wait (1000) --kleft (75, 349, 5, 5, 5, 5) --переходим на карту с основного меню --wait (4000) --ждем окончания перехода move_smooth (511, 485, 5, 5, 5, 5) --перемещаем курсор в координаты wait (1000) kleft_down (511, 485, 5, 5, 5, 5) --зажать левую кнопку в координатах wait (1000) move_smooth (520, 415, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (520, 365, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (520, 315, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (520, 265, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (520, 215, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (520, 165, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (520, 115, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) move_smooth (532, 93, 5, 5, 5, 5) --Медленно перемещаем курсор в координаты в несколько шагов wait (1000) kleft_up (532, 93, 5, 5, 5, 5) --отпустить левую кнопку в координатах wait (1000) if color(750, 375) == 48383 -- 210K then -- если в координатах цвет 48383 kleft (750, 375, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(583, 415) == 48383 -- 512.5K then -- если в координатах цвет 48383 kleft (583, 415, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(392, 404) == 48383 -- 2.13M then -- если в координатах цвет 48383 kleft (392, 404, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(230, 282) == 48383 -- 2.96M then -- если в координатах цвет 48383 kleft (230, 282, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end if color(111, 365) == 48383 -- 5.23M then -- если в координатах цвет 48383 kleft (111, 365, 5, 5, 5, 5) --нажать левую кнопку в координатах wait (1000) end move (36, 38, 5, 5, 5, 5) --перемещаем курсор в координаты wait (1000) kleft (36, 38, 5, 5, 5, 5) --ВЫХОДИМ С КАРТЫ В ОСНОВНОЕ МЕНЮ! wait (6000) --ждем окончания перехода move_smooth (75, 349, 5, 5, 5, 5) -- МЫ В ОСНОВНОМ МЕНЮ! Перемещаем курсор в координаты wait (1000) kleft (75, 349, 5, 5, 5, 5) --ПЕРЕХОДИМ НА КАРТУ с основного меню! wait (4000) --ждем окончания перехода end
if t4 < os.clock() then t4 = os.clock() + 60*31 move (36, 38, 5, 5, 5, 5) --перемещаем курсор в координаты wait (1000) kleft (36, 38, 5, 5, 5, 5) --ВЫХОДИМ С КАРТЫ В ОСНОВНОЕ МЕНЮ! wait (6000) --ждем окончания перехода move_smooth (78, 281, 5, 5, 5, 5) --МЫ В ОСНОВНОМ МЕНЮ! Перемещаем курсор в точку последующего клика kleft (78, 281, 5, 5, 5, 5, 5, 5, 5, 5) --переходим в клан с основного меню wait (6000) --ждем окончания перехода move_smooth (43, 490, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (43, 490, 5, 5, 5, 5) --переходим в меню pvp wait (4000) --ждем окончания перехода --move_smooth (33, 163, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика --kleft (33, 163, 5, 5, 5, 5) --выбираем башню для pvp --wait (2000) --ждем move_smooth (460, 475, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (460, 475, 5, 5, 5, 5) --переходим в меню выбора соперника для pvp wait (4000) --ждем move_smooth (227, 303, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (227, 303, 5, 5, 5, 5) --выбираем четвертого сверху по списку соперника для pvp wait (4000) --ждем move_smooth (682, 492, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (682, 492, 5, 5, 5, 5) --подтверждаем свой выбор соперника для pvp wait (4000) --ждем move_smooth (480, 420, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (480, 420, 5, 5, 5, 5) --жмём "атаковать" соперника pvp wait (20000) --ждем move_smooth (487, 476, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (487, 476, 5, 5, 5, 5) --жмём "продолжить" после окончания боя wait (8000) --ждем move_smooth (32, 33, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика kleft (32, 33, 5, 5, 5, 5) --выходим из клана в основное меню wait (6000) --ждем --move_smooth (92, 215, 5, 5, 5, 5) -- МЫ В ОСНОВНОМ МЕНЮ! перемещаем курсор в точку последующего клика --kleft (92, 215, 5, 5, 5, 5) --переходим в меню выбора башен --wait (4000) --ждем --move_smooth (37, 115, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика --kleft (37, 115, 5, 5, 5, 5) --выбираем башню для фарма золота --wait (4000) --ждем --move_smooth (37, 31, 5, 5, 5, 5) --перемещаем курсор в точку последующего клика --kleft (37, 31, 5, 5, 5, 5) --ВОЗВРАЩАЕМСЯ В ОСНОВНОЕ МЕНЮ! --wait (4000) –ждем move_smooth (75, 349, 5, 5, 5, 5) -- МЫ В ОСНОВНОМ МЕНЮ! Перемещаем курсор в координаты wait (1000) kleft (75, 349, 5, 5, 5, 5) --ПЕРЕХОДИМ НА КАРТУ с основного меню! wait (4000) --ждем окончания перехода end end
Выдает ошибку text
1575026 -> 8194450 -> 4655740 -> MainWindowWindow 9:05:09 0 (Сбор_по_цвету.txt, 0): syntax error during precompilation. 90: '=' expected near 'НА' --lua local t1 = os.clock() + 60 local t2 = os.clock() + 60*11 local t3 = os.clock() + 60*16 local t4 = os.clock() + 60*31
Странно, в редактировании вижу структуру, а когда смотрю на пост, то нет структуры (пробелов/отступов) от края.
|
|
|
|
DarkMaster |
23.10.2020, 10:15
|
Модератор UOPilot
Сообщений: 9.465
Регистрация: 2.12.2008 Группа: Супермодераторы Наличность: 27680
Пользователь №: 11.279
|
Цитата move_smooth (431, 145, 5, 5, 5, 5) –МЫ НА КАРТЕ! Перемещаем курсор в координаты Дефис только ордин. Добавьте =) Цитата 90: '=' expected near 'НА' 90 - это номер строки. так проще. Ну и код тут явно не весь - строка фактически 84. Что-то подрезали). Цитата Странно, в редактировании вижу структуру, а когда смотрю на пост, то нет структуры (пробелов/отступов) от края. Используйте тег [code]
--------------------
Скрипты UOPilot под заказ. Консультации по UOpilot 15$/час. Услуги Lua разработчика (не пилот, проекты, постоянка) Disсоrd: Kov____
|
|
|
|
PostByMik |
23.10.2020, 12:14
|
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40
|
Цитата Нумерация строк начинается с 0 поэтому ошибка в строке 89.
Спасибо! Буду знать на будущее. А так нашел в области 90 +/- строки))
|
|
|
|
PostByMik |
7.11.2020, 18:48
|
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40
|
Цитата --lua local t1 = os.clock() + 60 local t2 = os.clock() + 60*10 local t3 = os.clock() + 60*15 local t4 = os.clock() + 60*30
while 1 do if t1 < os.clock() then t1 = os.clock() + 60 --тут ваше полезный код для этого таймера end
if t2 < os.clock() then t2 = os.clock() + 60*10 --тут ваше полезный код для этого таймера end
if t3 < os.clock() then t3 = os.clock() + 60*15 --тут ваше полезный код для этого таймера end
if t4 < os.clock() then t4 = os.clock() + 60*30 --тут ваше полезный код для этого таймера end end Возможно ли сделать так, что бы при первом запуске сработал каждый из пунктов (скриптов), а уже потом повторился через указанное для каждого свое время? Если да то как? Подскажите, пожалуйста.
|
|
|
|
PostByMik |
7.11.2020, 19:09
|
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40
|
Цитата local t1 = os.clock() local t2 = os.clock() local t3 = os.clock() local t4 = os.clock() а потом будет через указанное ниже время если оставить так? Цитата while 1 do if t1 < os.clock() then t1 = os.clock() + 60 --тут ваше полезный код для этого таймера end
if t2 < os.clock() then t2 = os.clock() + 60*10 --тут ваше полезный код для этого таймера end
|
|
|
|
PostByMik |
8.11.2020, 10:23
|
Neophyte
Сообщений: 47
Регистрация: 19.10.2020 Группа: Пользователи Наличность: 0
Пользователь №: 19.780
Возраст: 40
|
Цитата(cirus @ 7.11.2020, 22:13) Неужели так сложно проверить. Код --lua local t1 = os.clock() local t2 = os.clock() log'clear' log'mode compact'
while 1 do if t1 < os.clock() then t1 = os.clock() + 2 log('Каждые 2 секунды') end
if t2 < os.clock() then t2 = os.clock() + 10 log('Каждые 10 секунд') end wait(10) end Безусловно не сложно, так же как и просто написать, что "Да, только в шапке менять" Спасибо! И простите, за беспокойство.
|
|
|
|
|
|
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0
|
|