API UO JournalTimer - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
UO.JournalTimer
Оглавление · Алфавитный указатель · Journal
ClassicUO • Runtime API
Читает поле timestamp строки по текущему индексу, не меняя выбранную запись.
Точный синтаксис
UO.JournalTimer(index:Integer) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметры
index— Обязательный Integer — текущий индекс: 0 означает самую новую строку, 1 — предыдущую. Индексы сдвигаются при приходе сообщений. Это не serial, не ID варианта шаблона и не положительный результат InJournal.
Возвращает
Integer — метка записи в миллисекундах от начала runtime, совместимая с Now(). 0 для записи до запуска runtime; -1 для неверного индекса/времени. Это не возраст записи и не десятые секунды UO.Timer().
Поведение
- Каждый вызов читает текущую позицию. Для согласованного текста и полей одной записи сначала Journal(index), затем GetFoundedText/Line*. Нулевые значения могут быть настоящими данными.
- Семейство Basic Journal: https://forum.yoko.com.ua/viewtopic.php?p=27633 . Миллисекундная метка — адаптация к Now() этого runtime.
Примеры
Пример 1. Поле новой записи
# Поле новой записи
#
# Читает поле timestamp строки по текущему индексу, не меняя выбранную запись.
#
# Integer — метка записи в миллисекундах от начала runtime, совместимая с Now(). 0 для записи до
# запуска runtime; -1 для неверного индекса/времени. Это не возраст записи и не десятые секунды
# UO.Timer().
SUB Main()
# 0 — индекс новой строки. Проверяется наличие буфера.
# Integer — метка записи в миллисекундах от начала runtime, совместимая с Now(). 0 для записи до
# запуска runtime; -1 для неверного индекса/времени. Это не возраст записи и не десятые секунды
# UO.Timer().
IF UO.HighJournal() >= 0 THEN
VAR value = UO.JournalTimer(0)
UO.Print(STR(value))
END IF
END SUB
Разбор параметров и выполнения:
- 0 — индекс новой строки. Проверяется наличие буфера.
- Integer — метка записи в миллисекундах от начала runtime, совместимая с Now(). 0 для записи до запуска runtime; -1 для неверного индекса/времени. Это не возраст записи и не десятые секунды UO.Timer().
Пример 2. Поле предыдущей записи
# Поле предыдущей записи
#
# Читает поле timestamp строки по текущему индексу, не меняя выбранную запись.
#
# Integer — метка записи в миллисекундах от начала runtime, совместимая с Now(). 0 для записи до
# запуска runtime; -1 для неверного индекса/времени. Это не возраст записи и не десятые секунды
# UO.Timer().
SUB Main()
# 1 — предыдущая строка, не serial=1.
# Выбранная поиском запись GetFoundedText/Line* не изменяется.
IF UO.HighJournal() >= 1 THEN
VAR value = UO.JournalTimer(1)
UO.Print(STR(value))
END IF
END SUB
Разбор параметров и выполнения:
- 1 — предыдущая строка, не serial=1.
- Выбранная поиском запись GetFoundedText/Line* не изменяется.
Пример 3. Сохранить значение перед следующим действием
# Сохранить значение перед следующим действием
#
# Читает поле timestamp строки по текущему индексу, не меняя выбранную запись.
#
# Integer — метка записи в миллисекундах от начала runtime, совместимая с Now(). 0 для записи до
# запуска runtime; -1 для неверного индекса/времени. Это не возраст записи и не десятые секунды
# UO.Timer().
SUB Main()
# value копирует поле на момент вызова. Ожидание не обновляет переменную.
# Чтобы снова читать текущую строку 0, вызовите команду ещё раз; это уже может быть другая
# запись.
VAR value = UO.JournalTimer(0)
UO.Wait(100)
UO.Print('Saved value: ' + STR(value))
END SUB
Разбор параметров и выполнения:
- value копирует поле на момент вызова. Ожидание не обновляет переменную.
- Чтобы снова читать текущую строку 0, вызовите команду ещё раз; это уже может быть другая запись.