Дата: Понедельник, 31.12.2012, 22:56 | Сообщение # 1
Советник
Сообщений: 757
Статус: Offline
[CLEO] Точный таймер
Многие сталкивались с такой проблемой, когда нужно чтобы скрипт ждал определенное время, но либо время становилось больше положенного, либо уменьшалось - ведь у всех разные компьютеры. Первый случай не так страшен, ибо просто скрипт немного замедлится. Во втором случае же может последовать кик, если это, к примеру бот, или коорд мастер. И оба случая совершенно неприемлемы. Я решил написать небольшой таймер, работающий на компьютерном времени.
Использование: Главный опкод, считывающий компьютерное время не присутствует в клео по умолчанию, а добавлен в плагине NewOpcodes by DK22Pac. Скачать (ссылка на файл, выложенный автором). При использовании таймера в своем скрипте необходимо приложить файл newOpcodes.cleo к скрипту, ибо без него таймер работать не будет. Вставьте код в самый конец своего скрипта, после чего в нужном месте напишите:
Код
0AB1: call_scm_func @TIMER 1 10 // второе число - количество секунд
В данном случае код эквивалентен команде wait 10000. Количество секунд нужно писать в диапазоне от 1 до 59 секунд. Если нужно больше - используйте таймер два раза подряд, например:
В примере таймер будет работать 80 секунд (59 + 21).
Код
:TIMER while true wait 0 0D2D: 29@ 29@ 29@ 29@ 29@ 29@ second 1@ 2@ 005A: 1@ += 0@ if 1@ >= 60 then 1@ -= 60 end while true wait 0 5@ = 0 0D2D: 29@ 29@ 29@ 29@ 29@ 29@ second 3@ 4@ 0062: 3@ -= 1@ if 3@ >= 50 then 3@ -= 60 end if and 3@ == 0 002D: 4@ >= 2@ then 5@ = 1 break end end if 5@ == 1 then break end end 0AB2: ret 0