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

UO.GetMultis

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

ClassicUO • Runtime API

Список загруженных объектов, распознанных клиентом как дома/multi.

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

UO.GetMultis() -> Any

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

Параметры

Параметров нет.

Возвращает

Array — serial предметов мира, для которых IsHouse возвращает 1. Пустой Array, если таких объектов нет. Это ID домов, не список компонент графики, не координаты и не список всех домов сервера.

Поведение

  • Читаются данные, уже загруженные клиентом. Команда не открывает контейнер, не перемещает предметы и не загружает объекты со всего сервера.
  • Array — массив с индексами от 0. Сохраняйте его в VAR, проверяйте GetArrayLength перед доступом. Элементы могут исчезнуть из мира после создания снимка: перед действием проверяйте Exists(serial).
  • Данные читаются из загруженных предметов мира. Для компонент одного дома используйте GetMultiAllParts(serial).

Примеры

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

# Получить размер списка
#
# Список загруженных объектов, распознанных клиентом как дома/multi.
#
# Array<Integer>serial предметов мира, для которых IsHouse возвращает 1. Пустой Array, если
# таких объектов нет. Это ID домов, не список компонент графики, не координаты и не список всех
# домов сервера.

SUB Main()
    # Параметров нет; выбираются загруженные предметы домов/multi.
    # Длиначисло записей/ID. Это не сумма Amount в стопках. Пустой список даёт 0.

    VAR items = UO.GetMultis()
    UO.Print(STR(GetArrayLength(items)))
END SUB

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

  • Параметров нет; выбираются загруженные предметы домов/multi.
  • Длина — число записей/ID. Это не сумма Amount в стопках. Пустой список даёт 0.

Пример 2. Обойти все найденные ID

# Обойти все найденные ID
#
# Список загруженных объектов, распознанных клиентом как дома/multi.
#
# Array<Integer>serial предметов мира, для которых IsHouse возвращает 1. Пустой Array, если
# таких объектов нет. Это ID домов, не список компонент графики, не координаты и не список всех
# домов сервера.

SUB Main()
    # Параметров нет; выбираются загруженные предметы домов/multi.
    # items[i]числовой serial. Hex используется только для вывода. Цикл не обращается за
    # последним индексом.

    VAR items = UO.GetMultis()
    VAR i = 0
    WHILE i < GetArrayLength(items)
        UO.Print('0x' + Hex(items[i]))
        i = i + 1
    WEND
END SUB

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

  • Параметров нет; выбираются загруженные предметы домов/multi.
  • items[i] — числовой serial. Hex используется только для вывода. Цикл не обращается за последним индексом.

Пример 3. Проверить первую запись перед чтением

# Проверить первую запись перед чтением
#
# Список загруженных объектов, распознанных клиентом как дома/multi.
#
# Array<Integer>serial предметов мира, для которых IsHouse возвращает 1. Пустой Array, если
# таких объектов нет. Это ID домов, не список компонент графики, не координаты и не список всех
# домов сервера.

SUB Main()
    # Параметров нет; выбираются загруженные предметы домов/multi.
    # Проверяются две разные вещи: запись в снимке и существование объекта сейчас. Порядок без явной
    # сортировки не означает близость.

    VAR items = UO.GetMultis()
    IF GetArrayLength(items) > 0 THEN
        VAR first = items[0]
        IF UO.Exists(first) THEN
            UO.Print(UO.GetName(first))
        END IF
    ELSE
        UO.Print('Empty list')
    END IF
END SUB

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

  • Параметров нет; выбираются загруженные предметы домов/multi.
  • Проверяются две разные вещи: запись в снимке и существование объекта сейчас. Порядок без явной сортировки не означает близость.
⚠️ **GitHub.com Fallback** ⚠️