-
Notifications
You must be signed in to change notification settings - Fork 0
API my
Constants & Special Values · Правила типов и результатов
my — строковый селектор собственного инвентаря. Он не возвращает serial рюкзака и не является синонимом self во всех командах.
my -> String (чтение без скобок)
Значение читается без круглых скобок. Способы передачи в команды и отличие от числового ID описаны ниже.
Параметров нет.
String "my" без скобок. Значение интерпретирует принимающая команда; это не Integer ID и не логический результат.
- В компактном FindType(type, my) и FindType(type, color, my[, range]) выбирает инвентарь и включает рекурсивный поиск. В форме с явным пятым recursive действует этот аргумент.
- UO.GetContent(my) выбирает backpack и возвращает только непосредственное загруженное содержимое, без рекурсии. Одно и то же слово не делает все команды рекурсивными.
- В поддерживающих my командах переноса это назначение в рюкзак. Для обычного serial-параметра передавайте backpack, а не предполагаемый числовой ID слова my.
- Результат FindType — hex-строка ID либо пустая строка. Результат GetContent — массив serial; проверяйте его длину. Перед чтением содержимого убедитесь, что backpack <> 0.
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
Регистрирует my как строку.
Сам ничего не ищет.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция AddFilterValue.
В компактном поиске строка my преобразуется в внутренний селектор -1.
Перегрузки FindType отдельно включают рекурсивный поиск для my.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ConvertContainer.
В ветке GetContent выбирает bridge.Backpack для my.
Получает непосредственное содержимое через bridge, без обхода вложенных сумок.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ExecuteClientApiCompatibility.
Разница поиска и получения содержимого показана в первых двух скриптах.
SUB Main()
# 0x0EED — graphic золота, -1 — любой цвет, my — рекурсивный инвентарь.
VAR found = UO.FindType(0x0EED, -1, my)
IF found = "" THEN
UO.Print("No gold found in loaded inventory")
RETURN
END IF
UO.Print("Found ID: " + found)
END SUBРазбор параметров и выполнения:
- В этой форме my включает рекурсивный поиск. FindType возвращает строку; отсутствие проверяется сравнением с пустой строкой.
SUB Main()
IF backpack = 0 THEN
UO.Print("Backpack is not available")
RETURN
END IF
# GetContent(my) не наследует рекурсию FindType.
VAR items = UO.GetContent(my)
VAR i = 0
WHILE i < GetArrayLength(items)
UO.Print("Direct item: " + CStr(items[i]))
i = i + 1
WEND
END SUBРазбор параметров и выполнения:
- GetContent получает serial рюкзака из my. В массиве только непосредственные загруженные предметы; вложенные сумки не раскрываются.
SUB Main()
# Пятый аргумент recursive=FALSE имеет приоритет над сокращением my.
VAR found = UO.FindType(0x0EED, -1, my, -1, FALSE)
IF found <> "" THEN
UO.Print("Top-level gold ID: " + found)
ELSE
UO.Print("No top-level gold")
END IF
END SUBРазбор параметров и выполнения:
- Параметры: type=0x0EED, color=-1, container=my, range=-1 (настройка по умолчанию), recursive=FALSE. Вложенные контейнеры не обходятся.
Проверка примеров: скрипты загружены и выполнены в тестовом окружении движка с известными объектами и без выбранной цели/слоя. Отдельно проверены границы расстояния и высоты. Это не тест торговли на игровом сервере.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь