Онлайн-справочник по самым часто задаваемым вопросам из темы "Как сделать?" на форуме QSP.su
2.1. Как сделать, чтобы значение переменной изменялось с течением времени?
В: Как сделать, чтобы значение переменной изменялось с течением времени?
О:
Вы можете написать любое событие, происходящее с течением действительного времени, если будете использовать локацию-счётчик.
Для начала нужно создать локацию-счётчик:
- создаём локацию, название может быть любым, например "реалтайм".
- указываем плееру, какую локацию ему нужно использовать как локацию-счётчик. Пишем, например на самой первой локации в игре:
$counter="реалтайм"
По умолчанию обращение к локации-счётчику выполняется каждые пол секунды. Если нужно изменить период обращения, воспользуйтесь оператором `settimer`. В качестве аргумента этому оператору указывается период обращения к локации-счётчику в миллисекундах:
! обращение к локации-счётчику каждые 100 мс.
settimer 100
settimer 100
Теперь на локации-счётчике пишем требуемый код. Например, данный код будет увеличивать значение переменной `health` на 1 каждые пять секунд:
! фиксируем, в какое время обратились к локации-счётчику
local time_now = msecscount
if timer=0 or time_now>=(timer+5000):
! если переменной timer не присвоено значение
! или текущее время превышает timer+5000 либо равно ему
! фиксируем в timer текущее время
timer = time_now
! повышаем health на 1
health = health+1
! закрываем условие
end
! переменные timer и health являются глобальными
local time_now = msecscount
if timer=0 or time_now>=(timer+5000):
! если переменной timer не присвоено значение
! или текущее время превышает timer+5000 либо равно ему
! фиксируем в timer текущее время
timer = time_now
! повышаем health на 1
health = health+1
! закрываем условие
end
! переменные timer и health являются глобальными
Довольно простой код. Функция `msecscount` возвращает, сколько прошло миллисекунд с момента начала игры.