-
Notifications
You must be signed in to change notification settings - Fork 0
API UO Journal
Codex edited this page Sep 19, 2026
·
5 revisions
Оглавление · Алфавитный указатель · Journal
ClassicUO • Runtime API
Читает текст строки по текущему индексу и выбирает эту запись для GetFoundedText/Line*.
UO.Journal(index:Integer) -> String
UO.Journal(StringIndex:Any) -> Any
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
index— Обязательный Integer — текущий индекс: 0 означает самую новую строку, 1 — предыдущую. Индексы сдвигаются при приходе сообщений. Это не serial, не ID варианта шаблона и не положительный результат InJournal. -
StringIndex— Обязательный Integer — текущий индекс: 0 означает самую новую строку, 1 — предыдущую. Индексы сдвигаются при приходе сообщений. Это не serial, не ID варианта шаблона и не положительный результат InJournal.
String — текст строки, либо пустая строка при неверном индексе/пустом журнале. У существующей строки текст тоже может быть пустым: после чтения LineIndex >= 0 подтверждает, что запись была выбрана. Это не количество строк.
- Поиск и Journal/GetJournal/LastJournalMessage сохраняют текст и поля одной записи в текущем скрипте. Новые сообщения не подменяют эти поля. Если запись вытеснена из ограниченного журнала, сохранённые поля остаются, но LineIndex/GetFoundedTextIndex возвращают -1. Следующий поиск или чтение выбирает другую запись; неудачный поиск, неверный индекс и очистка через этот скрипт сбрасывают выбор.
- Прямое чтение сбрасывает ID альтернативы; GetFoundedTextID/FoundedParamId после него дают 0. Сам Journal не пересчитывает LineCount.
- Первичные справочники: https://forum.yoko.com.ua/viewtopic.php?p=27633 ; https://stealth.od.ua/api/Journal/ .
# Последняя строка и её автор
#
# Читает текст строки по текущему индексу и выбирает эту запись для GetFoundedText/Line*.
#
# String — текст строки, либо пустая строка при неверном индексе/пустом журнале. У существующей
# строки текст тоже может быть пустым: после чтения LineIndex >= 0 подтверждает, что запись была
# выбрана. Это не количество строк.
SUB Main()
# 0 — самая новая строка. Сначала читаются текст и автор, затем выводится результат.
# Print может добавить сообщение; сохранённые text/author относятся к прежней выбранной записи.
VAR text = UO.Journal(0)
VAR author = UO.LineName()
UO.Print(author + ': ' + text)
END SUBРазбор параметров и выполнения:
- 0 — самая новая строка. Сначала читаются текст и автор, затем выводится результат.
- Print может добавить сообщение; сохранённые text/author относятся к прежней выбранной записи.
# Предыдущая строка, если она существует
#
# Читает текст строки по текущему индексу и выбирает эту запись для GetFoundedText/Line*.
#
# String — текст строки, либо пустая строка при неверном индексе/пустом журнале. У существующей
# строки текст тоже может быть пустым: после чтения LineIndex >= 0 подтверждает, что запись была
# выбрана. Это не количество строк.
SUB Main()
# 1 — предыдущая запись, HighJournal — максимальный доступный индекс.
# Журнал может изменяться между вызовами. Для данных уже найденной строки используйте
# GetFoundedText.
IF UO.HighJournal() >= 1 THEN
VAR text = UO.Journal(1)
UO.Print(text)
END IF
END SUBРазбор параметров и выполнения:
- 1 — предыдущая запись, HighJournal — максимальный доступный индекс.
- Журнал может изменяться между вызовами. Для данных уже найденной строки используйте GetFoundedText.
# Отличить пустой текст от отсутствия строки
#
# Читает текст строки по текущему индексу и выбирает эту запись для GetFoundedText/Line*.
#
# String — текст строки, либо пустая строка при неверном индексе/пустом журнале. У существующей
# строки текст тоже может быть пустым: после чтения LineIndex >= 0 подтверждает, что запись была
# выбрана. Это не количество строк.
SUB Main()
# LineIndex=-1 означает отсутствие/удаление выбранной записи. Len(text)=0 само по себе этого не
# означает.
# Сохраняйте результат проверки до диагностического вывода, который пополняет журнал.
VAR text = UO.Journal(0)
VAR index = UO.LineIndex()
IF index < 0 THEN
UO.Print('No record')
ELSE
UO.Print('Text length: ' + STR(Len(text)))
END IF
END SUBРазбор параметров и выполнения:
- LineIndex=-1 означает отсутствие/удаление выбранной записи. Len(text)=0 само по себе этого не означает.
- Сохраняйте результат проверки до диагностического вывода, который пополняет журнал.
ClassicUO - Bad Newbie & Basic IDE Edition