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

UO.WaitMenu

ClassicUO / Basic IDE

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

Reads or updates the current client UI/Gump state through the registered Basic/ClassicUO UI route.

Синтаксис

UO.WaitMenu(prompt:String, choice:String) -> Unit
UO.WaitMenu(MenuCaption:Any, ElementCaption:Any) -> Unit
UO.WaitMenu(prompt1:String, choice1:String, prompt2:String, choice2:String) -> Unit
UO.WaitMenu(prompt1:String, choice1:String, prompt2:String, choice2:String, prompt3:String, choice3:String) -> Unit

Регистр имени не важен. Any — динамическое значение Basic; Unit — отсутствие возвращаемого значения. Integer — знаковое 32-битное число, Decimal — число с плавающей точкой. Правила типов, serial, индексов и ожиданий.

Параметры

Имя Назначение
prompt Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже.
choice Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже.
MenuCaption Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже.
ElementCaption Named runtime value (runtime value); use the exact registered/saved name expected by WaitMenu.
prompt1 Text/String value (String); pass literal text as a quoted BASIC string.
choice1 Text/String value (String); pass literal text as a quoted BASIC string.
prompt2 Text/String value (String); pass literal text as a quoted BASIC string.
choice2 Text/String value (String); pass literal text as a quoted BASIC string.
prompt3 Text/String value (String); pass literal text as a quoted BASIC string.
choice3 Text/String value (String); pass literal text as a quoted BASIC string.

Параметры обязательны внутри каждой показанной сигнатуры. Опустить аргумент можно только при наличии более короткой перегрузки; пропуск позиции посередине не подразумевается.

Допустимые значения

MenuCaption — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.

  • ElementCaption — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
  • prompt1 — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
  • choice1 — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
  • prompt2 — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
  • choice2 — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
  • prompt3 — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.
  • choice3 — Quoted BASIC string. Fixed keywords/enums, when present, are listed in Behavior/Notes.

Возвращает: Unit — значения нет. Выполняйте вызов отдельной строкой; его нельзя использовать как проверку успеха. Эффект и ограничения зависят от команды.

Примеры

Каждый блок — самостоятельный скрипт из мануала проекта. Параметры демонстрационного объекта/контейнера и условия действия необходимо сопоставить с вашей игровой ситуацией.

Пример 1

SUB Main()
    UO.WaitMenu(0, 0)
END SUB

Пример 2

SUB Main()
    UO.WaitMenu(0, 0, 0, 0)
END SUB

Пример 3

SUB Main()
    UO.WaitMenu(0, 0, 0, 0, 0, 0)
END SUB

Пример 4

SUB Main()
    UO.WaitMenu('example', 'example')
END SUB

Пример 5

SUB Main()
    VAR arg1 = 'example' # prompt1
    VAR arg2 = 'example' # choice1
    VAR arg3 = 'example' # prompt2
    VAR arg4 = 'example' # choice2
    VAR arg5 = 'example' # prompt3
    VAR arg6 = 'example' # choice3
    UO.WaitMenu(arg1, arg2, arg3, arg4, arg5, arg6)
END SUB

Пример 6

SUB Main()
    UO.WaitMenu('example', 'example', 'example', 'example')
END SUB

Пример 7

SUB Main()
    IF UO.Connected THEN
        VAR arg1 = 'example' # prompt
        VAR arg2 = 'example' # choice
        UO.WaitMenu(arg1, arg2)
    END IF
END SUB

Пример 8

SUB RunAction()
    VAR arg1 = 'example' # prompt
    VAR arg2 = 'example' # choice
    UO.WaitMenu(arg1, arg2)
END SUB

SUB Main()
    # Запуск процедуры выполняет действие:
    RunAction()
END SUB
Реализация и проверка контракта
  • InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0
  • InjectionScript.Runtime.InjectionApiUO.WaitMenu

Соответствующая ветвь совместимого обработчика в InjectionApiUO.cs. Arg(i)/Text(i) читают позицию с нуля; bridge обращается к клиенту. Прямые типизированные перегрузки перечислены выше и могут иметь отдельный маршрут.

bridge.WaitMenu(arguments.Select(value => value.ToString()).ToArray()); return InjectionValue.Unit;

Источник реестра и отчёт сверки. Примеры проверяются загрузчиком/парсером включённого runtime. Действия на игровом сервере этой проверкой не исполняются.

⚠️ **GitHub.com Fallback** ⚠️