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

UO.GetTooltipRec

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

ClassicUO • Runtime API

Читает структурированные свойства: cliloc ID и параметры каждой записи OPL.

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

UO.GetTooltipRec(ObjID:Any) -> Array

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

Параметры

  • ObjID — Обязательный serial/ID объекта, не type и не cliloc. Допускается Integer, десятичная/hex-строка, self, backpack, lasttarget, finditem или имя AddObject. 0 означает отсутствие объекта.

Возвращает

Array — отдельный снимок строк свойств. Каждая строка равна [clilocID:Integer, parameters:Array]. rows[i][0] — номер локализованного сообщения, rows[i][1] — массив параметров. GetArrayLength(rows) — число свойств; GetArrayLength(parameters) — число параметров одного свойства. Пустой массив при ObjID=0 или отсутствии полученных записей. Это не список ID предметов и не готовый текст.

Поведение

  • Данные TClilocRec из внешнего справочника представлены средствами BASIC: массивом строк. Count соответствует GetArrayLength(rows), Items[i].ClilocID — rows[i][0], Items[i].Params — rows[i][1].
  • Запись из кэша возвращается сразу. При отсутствии OPL запрашиваются свойства с ожиданием до 120 мс; отмена процедуры прерывает ожидание. Известная пустая OPL не вызывает ожидание.
  • Начальные служебные табуляции пропускаются как в ClilocLoader. Пустые внутренние параметры сохраняют позиции; #число сохраняется строкой для последующей локализации. Неизвестные параметры дают пустой массив.
  • Изменение возвращённого массива не меняет кэш клиента. Для текста используйте GetTooltip/GetCliloc; для перевода одной строки — GetClilocByID(clilocID, parameters).
  • Первичный справочник: https://stealth.od.ua/api/GetTooltipRec/ .

Примеры

Пример 1. Посмотреть номера всех свойств

# Посмотреть номера всех свойств
#
# Читает структурированные свойства: cliloc ID и параметры каждой записи OPL.
#
# Array<Array>отдельный снимок строк свойств. Каждая строка равна [clilocID:Integer,
# parameters:Array<String>]. rows[i][0] — номер локализованного сообщения, rows[i][1] — массив
# параметров. GetArrayLength(rows)число свойств; GetArrayLength(parameters)число
# параметров одного свойства. Пустой массив при ObjID=0 или отсутствии полученных записей. Это
# не список ID предметов и не готовый текст.

SUB Main()
    # ObjID=lasttargetобъект. rows содержит свойства, iиндекс от 0. row[0] является cliloc, а
    # не serial.
    # Цикл не выполняется для пустого массива. Каждая запись обрабатывается один раз.

    VAR rows = UO.GetTooltipRec('lasttarget')
    VAR i = 0
    WHILE i < GetArrayLength(rows)
        VAR row = rows[i]
        UO.Print('Cliloc: ' + STR(row[0]))
        i = i + 1
    WEND
END SUB

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

  • ObjID=lasttarget — объект. rows содержит свойства, i — индекс от 0. row[0] является cliloc, а не serial.
  • Цикл не выполняется для пустого массива. Каждая запись обрабатывается один раз.

Пример 2. Перевести каждую запись с её параметрами

# Перевести каждую запись с её параметрами
#
# Читает структурированные свойства: cliloc ID и параметры каждой записи OPL.
#
# Array<Array>отдельный снимок строк свойств. Каждая строка равна [clilocID:Integer,
# parameters:Array<String>]. rows[i][0] — номер локализованного сообщения, rows[i][1] — массив
# параметров. GetArrayLength(rows)число свойств; GetArrayLength(parameters)число
# параметров одного свойства. Пустой массив при ObjID=0 или отсутствии полученных записей. Это
# не список ID предметов и не готовый текст.

SUB Main()
    # GetClilocByID получает clilocID=row[0] и массив подстановок=row[1].
    # Параметры сохраняют порядок. Не передавайте весь row вместо массива параметров.

    VAR rows = UO.GetTooltipRec('lasttarget')
    VAR i = 0
    WHILE i < GetArrayLength(rows)
        VAR row = rows[i]
        VAR text = UO.GetClilocByID(row[0], row[1])
        UO.Print(text)
        i = i + 1
    WEND
END SUB

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

  • GetClilocByID получает clilocID=row[0] и массив подстановок=row[1].
  • Параметры сохраняют порядок. Не передавайте весь row вместо массива параметров.

Пример 3. Получить числовой параметр известного свойства

# Получить числовой параметр известного свойства
#
# Читает структурированные свойства: cliloc ID и параметры каждой записи OPL.
#
# Array<Array>отдельный снимок строк свойств. Каждая строка равна [clilocID:Integer,
# parameters:Array<String>]. rows[i][0] — номер локализованного сообщения, rows[i][1] — массив
# параметров. GetArrayLength(rows)число свойств; GetArrayLength(parameters)число
# параметров одного свойства. Пустой массив при ObjID=0 или отсутствии полученных записей. Это
# не список ID предметов и не готовый текст.

SUB Main()
    # wantedпример ID свойства; замените нужным cliloc. args[0] — первый параметр, исходно
    # String.
    # Перед Val проверяются число параметров и числовой формат. Параметр может быть текстом или
    # ссылкой #cliloc.

    VAR rows = UO.GetTooltipRec('lasttarget')
    VAR wanted = 1060401
    VAR i = 0
    WHILE i < GetArrayLength(rows)
        VAR row = rows[i]
        VAR args = row[1]
        IF row[0] = wanted AND GetArrayLength(args) > 0 THEN
            IF IsNumeric(args[0]) THEN
                UO.Print('Value: ' + STR(Val(args[0])))
            END IF
        END IF
        i = i + 1
    WEND
END SUB

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

  • wanted — пример ID свойства; замените нужным cliloc. args[0] — первый параметр, исходно String.
  • Перед Val проверяются число параметров и числовой формат. Параметр может быть текстом или ссылкой #cliloc.
⚠️ **GitHub.com Fallback** ⚠️