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

UO.GumpAutoTextEntry

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

ClassicUO • Runtime API

Однократно задаёт значение элемента в первом подходящем серверном гампе; если элемента ещё нет, сохраняет ожидание.

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

UO.GumpAutoTextEntry(TextEntryID:Any, Value:Any) -> Unit

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

Параметры

  • TextEntryID — Integer — точный ID элемента соответствующего типа. Это не индекс, не GumpID и не serial окна; 0 является обычным ID, без подстановки первого элемента.
  • Value — String — текст поля, включая пустую строку для очистки. Ограничения длины и допустимых символов самого поля сохраняются.

Возвращает

Unit — ничего не возвращает: ни успех, ни новое значение, ни подтверждение сервера.

Поведение

  • Сначала проверяет существующие окна в текущем порядке интерфейса, затем новые или обновлённые серверные разметки. Срабатывает один раз на первом совпадении типа и ID. Для конкретного окна используйте NumGump* с индексом.
  • Все ожидающие поля применяются до автоматических ответов кнопками. Повтор того же типа и ID в одном скрипте заменяет ещё не выполненное значение. Лимит — 1024 ожидающих поля клиента; превышение вызывает ошибку скрипта.
  • Обычное завершение процедуры сохраняет ожидание. Отмена владельца или Terminate с его именем удаляет его ожидания; TerminateAll удаляет все, включая оставшиеся после завершения процедур. Смена мира очищает очередь. Ожидания не сохраняются в профиль.
  • Ограниченный полем текст может быть сокращён или отклонён; найденный элемент всё равно расходует одноразовое действие. Команда не отправляет ответ кнопки и не ждёт сервер. Для проверки используйте GetGumpInfo/NumGumpTextEntry.

Примеры

Пример 1. Немедленное заполнение

# Немедленное заполнение
#
# Однократно задаёт значение элемента в первом подходящем серверном гампе; если элемента ещё
# нет, сохраняет ожидание.
#
# Unit — ничего не возвращает: ни успех, ни новое значение, ни подтверждение сервера.

SUB Main()
    # Первый параметр 33 — пример ID нужного элемента; замените его реальным ID из InfoGump. Второй
    # — устанавливаемое значение. Если элемента нет, действие остаётся ожидающим.

    UO.GumpAutoTextEntry(33, '500')
END SUB

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

  • Первый параметр 33 — пример ID нужного элемента; замените его реальным ID из InfoGump. Второй — устанавливаемое значение. Если элемента нет, действие остаётся ожидающим.

Пример 2. Заполнение до открытия

# Заполнение до открытия
#
# Однократно задаёт значение элемента в первом подходящем серверном гампе; если элемента ещё
# нет, сохраняет ожидание.
#
# Unit — ничего не возвращает: ни успех, ни новое значение, ни подтверждение сервера.

SUB Main()
    # 33 — ID элемента, 100 — пример ButtonID подтверждения, 0x40001234 — serial объекта,
    # открывающего форму. Замените все три значения своими. Поле заполнится до ответа, даже если
    # окно пришло позже.

    UO.GumpAutoTextEntry(33, '500')
    UO.WaitGump(100)
    UO.UseObject('0x40001234')
END SUB

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

  • 33 — ID элемента, 100 — пример ButtonID подтверждения, 0x40001234 — serial объекта, открывающего форму. Замените все три значения своими. Поле заполнится до ответа, даже если окно пришло позже.

Пример 3. Замена ожидающего значения

# Замена ожидающего значения
#
# Однократно задаёт значение элемента в первом подходящем серверном гампе; если элемента ещё
# нет, сохраняет ожидание.
#
# Unit — ничего не возвращает: ни успех, ни новое значение, ни подтверждение сервера.

SUB Main()
    # Оба вызова используют ID 33. Если элемент ещё не появился, действует последнее значение. Если
    # окно уже открыто, оба изменения выполняются сразу по порядку.

    UO.GumpAutoTextEntry(33, '500')
    UO.GumpAutoTextEntry(33, '')
END SUB

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

  • Оба вызова используют ID 33. Если элемент ещё не появился, действует последнее значение. Если окно уже открыто, оба изменения выполняются сразу по порядку.