Зачем плодить темы ради одного вопроса???
По сабжу:
ScriptName MyScript
short isActive
short burnedOut
float timer
float startAt
Begin GameMode
If isActive == 1 && GameDaysPassed * 24 + GameHour + timer - startAt > 2 ; Где 2 - время горения свечи
Set isActive to 0
Set burnedOut to 1
; Выполнить требуемые действия для того, чтобы погасить свечу, если предусмотрено...
EndIf
End
Begin OnActivate
; Если свеча ещё не сгорела
If burnedOut == 0
If isActive == 0
Set isActive to 1
; Сохраняем время запуска таймера в часах с момента начала игры
Set startAt to GameDaysPassed * 24 + GameHour
; Выполнить требуемые действия для того, чтобы зажечь свечу, если предусмотрено...
Else
Set isActive to 0
; В случае, если игрок сам погасит свечу, пока она ещё не догорела, то нужно сохранить разницу во времени
Set timer to timer + GameDaysPassed * 24 + GameHour - startAt
; Выполнить требуемые действия для того, чтобы погасить свечу, если предусмотрено...
EndIf
EndIf
End