API UO GetFoundedTextTimer - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki

UO.GetFoundedTextTimer

Оглавление · Алфавитный указатель · Journal

ClassicUO • Runtime API

Возвращает миллисекундную метку времени выбранной записи журнала.

Точный синтаксис

UO.GetFoundedTextTimer() -> Integer

Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.

Параметры

Параметров нет.

Возвращает

Integer — момент записи в миллисекундах от начала runtime, совместимый с Now(). Записи до начала дают 0. Без выбора также 0; неверная календарная метка даёт -1. Это не прошедшее время и не десятые доли секунды UO.Timer().

Поведение

  • Поиск и Journal/GetJournal/LastJournalMessage сохраняют текст и поля одной записи в текущем скрипте. Новые сообщения не подменяют эти поля. Если запись вытеснена из ограниченного журнала, сохранённые поля остаются, но LineIndex/GetFoundedTextIndex возвращают -1. Следующий поиск или чтение выбирает другую запись; неудачный поиск, неверный индекс и очистка через этот скрипт сбрасывают выбор.
  • Getter не запускает поиск и не выбирает самую новую строку. Нулевые/пустые значения могут быть действующими данными; учитывайте результат поиска.
  • Первичный справочник: https://forum.yoko.com.ua/viewtopic.php?p=27633 .

Примеры

Пример 1. Читать поле после поиска

# Читать поле после поиска
#
# Возвращает миллисекундную метку времени выбранной записи журнала.
#
# Integer — момент записи в миллисекундах от начала runtime, совместимый с Now(). Записи до
# начала дают 0. Без выбора также 0; неверная календарная метка даёт -1. Это не прошедшее время
# и не десятые доли секунды UO.Timer().

SUB Main()
    # notice — пример искомого текста. Getter вызывается без параметров только после успешного
    # поиска.
    # Integer — момент записи в миллисекундах от начала runtime, совместимый с Now(). Записи до
    # начала дают 0. Без выбора также 0; неверная календарная метка даёт -1. Это не прошедшее время
    # и не десятые доли секунды UO.Timer().

    IF UO.InJournal('notice') > 0 THEN
        VAR value = UO.GetFoundedTextTimer()
        UO.Print('Timestamp ms: ' + STR(value))
    END IF
END SUB

Разбор параметров и выполнения:

  • notice — пример искомого текста. Getter вызывается без параметров только после успешного поиска.
  • Integer — момент записи в миллисекундах от начала runtime, совместимый с Now(). Записи до начала дают 0. Без выбора также 0; неверная календарная метка даёт -1. Это не прошедшее время и не десятые доли секунды UO.Timer().

Пример 2. Прочитать поле конкретной строки

# Прочитать поле конкретной строки
#
# Возвращает миллисекундную метку времени выбранной записи журнала.
#
# Integer — момент записи в миллисекундах от начала runtime, совместимый с Now(). Записи до
# начала дают 0. Без выбора также 0; неверная календарная метка даёт -1. Это не прошедшее время
# и не десятые доли секунды UO.Timer().

SUB Main()
    # Journal(0) выбирает новую запись. index и value читаются до Print.
    # Проверка index позволяет отличить отсутствие записи от допустимого нулевого или пустого поля.

    VAR text = UO.Journal(0)
    VAR index = UO.LineIndex()
    VAR value = UO.GetFoundedTextTimer()
    IF index >= 0 THEN
        UO.Print(STR(value))
    END IF
END SUB

Разбор параметров и выполнения:

  • Journal(0) выбирает новую запись. index и value читаются до Print.
  • Проверка index позволяет отличить отсутствие записи от допустимого нулевого или пустого поля.

Пример 3. Сохранить поле перед следующим поиском

# Сохранить поле перед следующим поиском
#
# Возвращает миллисекундную метку времени выбранной записи журнала.
#
# Integer — момент записи в миллисекундах от начала runtime, совместимый с Now(). Записи до
# начала дают 0. Без выбора также 0; неверная календарная метка даёт -1. Это не прошедшее время
# и не десятые доли секунды UO.Timer().

SUB Main()
    # Первый поиск выбирает success, второй заменяет или сбрасывает выбор. saved уже содержит копию
    # нужного поля.
    # Сохранённая VAR не меняется при новом поиске, очистке или поступлении сообщений.

    IF UO.InJournal('success') > 0 THEN
        VAR saved = UO.GetFoundedTextTimer()
        VAR nextMatch = UO.InJournal('failed')
        UO.Print('Saved: ' + STR(saved))
    END IF
END SUB

Разбор параметров и выполнения:

  • Первый поиск выбирает success, второй заменяет или сбрасывает выбор. saved уже содержит копию нужного поля.
  • Сохранённая VAR не меняется при новом поиске, очистке или поступлении сообщений.