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

UO.WaitingForJournalText

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

ClassicUO • Runtime API

Ожидает текст с дополнительными режимами сравнения и необязательным запуском навыка/предмета.

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

UO.WaitingForJournalText(startTime:Integer, maxDelay:Integer, text:String) -> Unit
UO.WaitingForJournalText(startTime:Integer, maxDelay:Integer, text:String, equals:Integer) -> Unit
UO.WaitingForJournalText(startTime:Integer, maxDelay:Integer, text:String, equals:Integer, ignoreCase:Integer) -> Unit
UO.WaitingForJournalText(startTime:Integer, maxDelay:Integer, text:String, equals:Integer, ignoreCase:Integer, skillNameOrObjectId:Any) -> Unit

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

Параметры

  • startTime — Обязательная метка Now(), Integer миллисекунд от начала runtime. Проверяются строки с меткой не меньше startTime; 0 включает записи с нулевой меткой.
  • maxDelay — Обязательный максимум ожидания в миллисекундах. 0 и отрицательные значения означают один немедленный проход, а не бесконечное ожидание.
  • text — Искомая подстрока или несколько альтернатив через |, например success|failed. Пробелы по краям каждой альтернативы удаляются, пустые альтернативы пропускаются. Это обычный текст, не регулярное выражение. Используйте непустой шаблон.
  • equals — Необязательный Integer: 0 (по умолчанию) — подстрока; ненулевое значение — весь текст должен совпасть с одной альтернативой.
  • ignoreCase — Необязательный Integer: 0 (по умолчанию) — учитывать регистр; ненулевое — не учитывать.
  • skillNameOrObjectId — Необязательный навык по имени, serial/hex-строка или разрешаемый алиас объекта. Сначала распознаётся название навыка, иначе используется объект. 0/пустая строка отключают действие. Навык/предмет запускается один раз перед поиском.

Возвращает

Unit — возвращаемого значения нет, не присваивайте вызов переменной. После завершения GetFoundedTextIndex >= 0 означает, что выбранная запись ещё доступна; -1 — не найдено/запись удалена. GetFoundedTextID показывает совпавшую альтернативу только при успешном выборе.

Поведение

  • Поиск и Journal/GetJournal/LastJournalMessage сохраняют текст и поля одной записи в текущем скрипте. Новые сообщения не подменяют эти поля. Если запись вытеснена из ограниченного журнала, сохранённые поля остаются, но LineIndex/GetFoundedTextIndex возвращают -1. Следующий поиск или чтение выбирает другую запись; неудачный поиск, неверный индекс и очистка через этот скрипт сбрасывают выбор.
  • Опрос с паузой до 25 мс; остановка скрипта прерывает его. Пустой список альтернатив не находит текст. Для Boolean результата используйте WaitJournalLine с его собственными параметрами и смыслом нулевого тайм-аута.

Примеры

Пример 1. Ожидать одну подстроку

# Ожидать одну подстроку
#
# Ожидает текст с дополнительными режимами сравнения и необязательным запуском навыка/предмета.
#
# Unit — возвращаемого значения нет, не присваивайте вызов переменной. После завершения
# GetFoundedTextIndex >= 0 означает, что выбранная запись ещё доступна; -1 — не найдено/запись
# удалена. GetFoundedTextID показывает совпавшую альтернативу только при успешном выборе.

SUB Main()
    # startTime — метка до ожидания; maxDelay=2000 мс; сравнение подстроки с учётом регистра.
    # Команда не возвращает TRUE/FALSE: проверяется выбранная запись.

    VAR started = Now()
    UO.WaitingForJournalText(started, 2000, 'notice')
    IF UO.GetFoundedTextIndex() >= 0 THEN
        UO.Print(UO.GetFoundedText())
    END IF
END SUB

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

  • startTime — метка до ожидания; maxDelay=2000 мс; сравнение подстроки с учётом регистра.
  • Команда не возвращает TRUE/FALSE: проверяется выбранная запись.

Пример 2. Точное совпадение без регистра

# Точное совпадение без регистра
#
# Ожидает текст с дополнительными режимами сравнения и необязательным запуском навыка/предмета.
#
# Unit — возвращаемого значения нет, не присваивайте вызов переменной. После завершения
# GetFoundedTextIndex >= 0 означает, что выбранная запись ещё доступна; -1 — не найдено/запись
# удалена. GetFoundedTextID показывает совпавшую альтернативу только при успешном выборе.

SUB Main()
    # startTime=0; maxDelay=0 — один проход. equals=1 — весь текст, ignoreCase=1 — без регистра.
    # Выводится номер альтернативы 0 или 1; длинная строка с дополнительными словами не подойдёт.

    UO.WaitingForJournalText(0, 0, 'success|failed', 1, 1)
    IF UO.GetFoundedTextIndex() >= 0 THEN
        UO.Print(STR(UO.GetFoundedTextID()))
    END IF
END SUB

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

  • startTime=0; maxDelay=0 — один проход. equals=1 — весь текст, ignoreCase=1 — без регистра.
  • Выводится номер альтернативы 0 или 1; длинная строка с дополнительными словами не подойдёт.

Пример 3. Запустить навык и ожидать результат

# Запустить навык и ожидать результат
#
# Ожидает текст с дополнительными режимами сравнения и необязательным запуском навыка/предмета.
#
# Unit — возвращаемого значения нет, не присваивайте вызов переменной. После завершения
# GetFoundedTextIndex >= 0 означает, что выбранная запись ещё доступна; -1 — не найдено/запись
# удалена. GetFoundedTextID показывает совпавшую альтернативу только при успешном выборе.

SUB Main()
    # Шестой аргумент Hiding запускает навык один раз. equals=0 — подстрока, ignoreCase=1 — без
    # регистра.
    # Слова hidden/failed — примеры, замените текстом своего сервера. Вместо навыка можно указать
    # serial или lastobject для использования предмета.

    VAR started = Now()
    UO.WaitingForJournalText(started, 3000, 'hidden|failed', 0, 1, 'Hiding')
    IF UO.GetFoundedTextIndex() >= 0 THEN
        UO.Print(UO.GetFoundedText())
    END IF
END SUB

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

  • Шестой аргумент Hiding запускает навык один раз. equals=0 — подстрока, ignoreCase=1 — без регистра.
  • Слова hidden/failed — примеры, замените текстом своего сервера. Вместо навыка можно указать serial или lastobject для использования предмета.