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

UO.LastJournalMessage

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

ClassicUO • Runtime API

Читает текст самой новой записи локального журнала.

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

UO.LastJournalMessage() -> Any

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

Параметры

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

Возвращает

String — текст новой записи; пустая строка, если журнала нет или сама запись содержит пустой текст.

Поведение

  • Поиск и Journal/GetJournal/LastJournalMessage сохраняют текст и поля одной записи в текущем скрипте. Новые сообщения не подменяют эти поля. Если запись вытеснена из ограниченного журнала, сохранённые поля остаются, но LineIndex/GetFoundedTextIndex возвращают -1. Следующий поиск или чтение выбирает другую запись; неудачный поиск, неверный индекс и очистка через этот скрипт сбрасывают выбор.
  • Обновляет выбор и поля Line* так же, как Journal(0).
  • Первичный справочник: https://stealth.od.ua/api/LastJournalMessage/ .

Примеры

Пример 1. Прочитать и сохранить текст

# Прочитать и сохранить текст
#
# Читает текст самой новой записи локального журнала.
#
# String — текст новой записи; пустая строка, если журнала нет или сама запись содержит пустой
# текст.

SUB Main()
    # Аргументов нет; text копирует текущую последнюю строку.
    # Печать после чтения может сама стать последним сообщением.

    VAR text = UO.LastJournalMessage()
    UO.Print(text)
END SUB

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

  • Аргументов нет; text копирует текущую последнюю строку.
  • Печать после чтения может сама стать последним сообщением.

Пример 2. Проверить подстроку

# Проверить подстроку
#
# Читает текст самой новой записи локального журнала.
#
# String — текст новой записи; пустая строка, если журнала нет или сама запись содержит пустой
# текст.

SUB Main()
    # InStr возвращает позицию от 1 либо 0. Проверяется только одна последняя строка.
    # Для поиска по всему журналу используйте InJournal.

    VAR text = UO.LastJournalMessage()
    IF InStr(text, 'bank') > 0 THEN
        UO.Print('Text contains bank')
    END IF
END SUB

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

  • InStr возвращает позицию от 1 либо 0. Проверяется только одна последняя строка.
  • Для поиска по всему журналу используйте InJournal.

Пример 3. Сравнить с результатом поиска

# Сравнить с результатом поиска
#
# Читает текст самой новой записи локального журнала.
#
# String — текст новой записи; пустая строка, если журнала нет или сама запись содержит пустой
# текст.

SUB Main()
    # matched сохраняется до чтения latest, поэтому не меняется при новом выборе.
    # Последнее сообщение может отличаться от найденного; found > 0 означает успешный поиск.

    VAR found = UO.InJournal('needle')
    VAR matched = UO.GetFoundedText()
    VAR latest = UO.LastJournalMessage()
    UO.Print('Found: ' + matched)
    UO.Print('Latest: ' + latest)
END SUB

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

  • matched сохраняется до чтения latest, поэтому не меняется при новом выборе.
  • Последнее сообщение может отличаться от найденного; found > 0 означает успешный поиск.