Skip to content

API UO GetGlobal

Codex edited this page Sep 19, 2026 · 4 revisions

UO.GetGlobal

ClassicUO / Basic IDE

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

Возвращает значение глобальной переменной VarName из указанного GlobalRegion .

Синтаксис

UO.GetGlobal(name:String) -> String
UO.GetGlobal(GlobalRegion:Any, VarName:Any) -> Any

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

Параметры

Имя Назначение
name Named runtime value (String); use the exact registered/saved name expected by GetGlobal.
GlobalRegion Позиционный аргумент этой перегрузки. Подробности использования указаны в описании/фактической ветви runtime ниже.
VarName Named runtime value (String); use the exact registered/saved name expected by GetGlobal.

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

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

GlobalRegion — Global scope selector: 0/'stealth' for runtime-wide globals, 1/'char' for current-character globals.

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

Примеры

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

Пример 1

SUB Main()
    VAR result = UO.GetGlobal(0, 'example')
END SUB

Пример 2

SUB Main()
    VAR result = UO.GetGlobal(0)
END SUB

Пример 3

SUB Main()
    VAR result = UO.GetGlobal('example')
    UO.Print(CStr(result))
END SUB

Пример 4

SUB Main()
    VAR arg1 = 1 # GlobalRegion
    VAR arg2 = 2 # VarName
    VAR result = UO.GetGlobal(arg1, arg2)
    UO.Print(CStr(result))
END SUB

Пример 5

SUB Main()
    VAR arg1 = 'example' # name
    VAR result = UO.GetGlobal(arg1)
    IF len(result) > 0 THEN
        UO.Print(result)
    ELSE
        UO.Print('Empty')
    END IF
END SUB

Пример 6

SUB Main()
    VAR arg1 = 'example' # name
    VAR result = UO.GetGlobal(arg1)
    IF contains(LCase(result), 'example') THEN
        UO.Print('Match')
    END IF
END SUB
Реализация и проверка контракта
  • InjectionScript.Runtime.InjectionApiUO+<>c__DisplayClass38_0.<RegisterStealthCompatibility>b__0
  • InjectionScript.Runtime.State.Globals.GetGlobal

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

return new InjectionValue(state.GlobalVariables.TryGetValue(Text(0) + "\u001F" + Text(1), out string globalValue)
                        ? globalValue : string.Empty);

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

Clone this wiki locally