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

UO.NumGumpRadiobutton

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

ClassicUO • Runtime API

Устанавливает состояние радиокнопки в серверном гампе по индексу.

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

UO.NumGumpRadiobutton(GumpIndex:Any, RadiobuttonID:Any, Value:Any) -> Integer

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

Параметры

  • GumpIndex — Обязательный Integer — индекс активного серверного гампа, от 0 до GetGumpsCount()-1. Это не GumpID/serial. Отрицательное число и индекс вне списка недействительны. Открытие, закрытие и изменение порядка окон могут изменить индекс; перед действием проверяйте GetGumpID/GetGumpSerial.
  • RadiobuttonID — Integer — точный ID элемента из описания гампа. Это не порядковый номер элемента; отсутствующий ID не заменяется индексом.
  • Value — Integer — 1 включить/выбрать, 0 выключить. Также распознаются числовые ненулевые значения, true и checked. Рекомендуются 0 и 1.

Возвращает

Integer (Boolean) — 1, если нужный элемент найден и его итоговое значение соответствует заданному; 0 при недействительном индексе, отсутствии ID/типа элемента или если поле не приняло точное значение. Повторная установка уже заданного значения также успешна.

Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся состояние.

Поведение

  • Работает с активными серверными гампами. Рюкзак, карта, настройки и другие локальные окна не входят в этот список. Один вызов читает данные в игровом потоке; разные вызовы могут увидеть разные состояния списка.
  • Меняет локальное состояние. Поля и отмеченные переключатели отправляются с последующим ответом кнопки.
  • Выбор радиокнопки снимает выбор соседней радиокнопки той же группы; обычные флажки независимы.

Примеры

Пример 1. Установить значение и проверить результат

# Установить значение и проверить результат
#
# Устанавливает состояние радиокнопки в серверном гампе по индексу.
#
# Integer (Boolean) — 1, если нужный элемент найден и его итоговое значение соответствует
# заданному; 0 при недействительном индексе, отсутствии ID/типа элемента или если поле не
# приняло точное значение. Повторная установка уже заданного значения также успешна.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.

SUB Main()
    # 0 — индекс окна; 33 — точный RadiobuttonID; 1 — новое значение. Замените 33 ID из своего
    # гампа.

    VAR ok = UO.NumGumpRadiobutton(0, 33, 1)
    IF ok = 0 THEN
        UO.Print('Control missing or value rejected')
    END IF
END SUB

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

  • 0 — индекс окна; 33 — точный RadiobuttonID; 1 — новое значение. Замените 33 ID из своего гампа.

Пример 2. Очистить значение

# Очистить значение
#
# Устанавливает состояние радиокнопки в серверном гампе по индексу.
#
# Integer (Boolean) — 1, если нужный элемент найден и его итоговое значение соответствует
# заданному; 0 при недействительном индексе, отсутствии ID/типа элемента или если поле не
# приняло точное значение. Повторная установка уже заданного значения также успешна.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.

SUB Main()
    # 0 очищает поле или снимает отметку. Возвращается успех изменения, а не новое значение поля.

    VAR ok = UO.NumGumpRadiobutton(0, 33, 0)
    UO.Print(STR(ok))
END SUB

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

  • 0 очищает поле или снимает отметку. Возвращается успех изменения, а не новое значение поля.

Пример 3. Заполнить перед ответом

# Заполнить перед ответом
#
# Устанавливает состояние радиокнопки в серверном гампе по индексу.
#
# Integer (Boolean) — 1, если нужный элемент найден и его итоговое значение соответствует
# заданному; 0 при недействительном индексе, отсутствии ID/типа элемента или если поле не
# приняло точное значение. Повторная установка уже заданного значения также успешна.
#
# Это логический результат: 1 = TRUE, 0 = FALSE. После VAR result = команда(...) можно писать IF
# result = TRUE THEN или IF result = 1 THEN; для отрицательного результата — IF result = FALSE
# THEN или IF result = 0 THEN. TRUE/FALSE пишутся без кавычек. Вызовите команду один раз и
# сохраните результат: повторный вызов может повторить действие или прочитать уже изменившееся
# состояние.

SUB Main()
    # 100 — пример серверного ButtonID подтверждения; его нужно заменить ID вашего окна. 0 в
    # SendGumpSelect(0,100) — индекс окна.
    # Ответ может закрыть гамп и изменить индексы. sent означает локальную отправку, не
    # подтверждённый сервером результат операции.

    IF UO.NumGumpRadiobutton(0, 33, 1) THEN
        VAR sent = UO.SendGumpSelect(0, 100)
        UO.Print(STR(sent))
    END IF
END SUB

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

  • 100 — пример серверного ButtonID подтверждения; его нужно заменить ID вашего окна. 0 в SendGumpSelect(0,100) — индекс окна.
  • Ответ может закрыть гамп и изменить индексы. sent означает локальную отправку, не подтверждённый сервером результат операции.