Repository navigation
API UO FindByNotoriety
ClassicUO / Basic IDE
Оглавление · Алфавитный указатель · Search
Находит ближайшего другого персонажа/NPC с одним из указанных статусов notoriety. Полезна, когда нужно сначала выбрать противника, союзника или наблюдаемую цель, а уже потом отдельно решать, атаковать ли её или следовать за ней.
UO.FindByNotoriety(distance:Any, notoriety:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any, notoriety26:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any, notoriety26:Any, notoriety27:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any, notoriety26:Any, notoriety27:Any, notoriety28:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any, notoriety26:Any, notoriety27:Any, notoriety28:Any, notoriety29:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any, notoriety26:Any, notoriety27:Any, notoriety28:Any, notoriety29:Any, notoriety30:Any) -> Integer
UO.FindByNotoriety(distance:Any, notoriety:Any, notoriety2:Any, notoriety3:Any, notoriety4:Any, notoriety5:Any, notoriety6:Any, notoriety7:Any, notoriety8:Any, notoriety9:Any, notoriety10:Any, notoriety11:Any, notoriety12:Any, notoriety13:Any, notoriety14:Any, notoriety15:Any, notoriety16:Any, notoriety17:Any, notoriety18:Any, notoriety19:Any, notoriety20:Any, notoriety21:Any, notoriety22:Any, notoriety23:Any, notoriety24:Any, notoriety25:Any, notoriety26:Any, notoriety27:Any, notoriety28:Any, notoriety29:Any, notoriety30:Any, notoriety31:Any) -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
distance— Горизонтальный радиус в клетках включительно: 5 допускает расстояние 0..5. Расстояние — max(abs(dx),abs(dy)), поэтому соседняя диагональ тоже 1. По умолчанию или при отрицательном числе берётся UO.FindDistance(), а не безлимитный поиск. 0 оставляет ту же клетку X/Y. Не длина маршрута; препятствия и этажи этим параметром не проверяются. -
notoriety— Статус отношения к персонажу, полученный от сервера: 0 — неизвестный, 1 — Innocent, 2 — Ally, 3 — Gray, 4 — Criminal, 5 — Enemy, 6 — Murderer, 7 — Invulnerable. Число означает один статус; "5|6" или массив чисел — любой из перечисленных. Это не цвет одежды и не класс. Отрицательное число (обычно -1), 0xFFFF, "any", пустая строка или пустой массив отдельно отключают этот фильтр. Некорректная строка без допустимых чисел не находит никого. Порядок статусов приоритет не задаёт. Фильтр 5 выбирает Enemy, а не автоматически любого NPC/монстра; реальные значения зависят от сервера.Несколько значений объединяются как OR: число 5, строка "5|6" либо плоский массив чисел/числовых строк. Можно смешать плоский массив и отдельные аргументы. Порядок значений приоритет не задаёт. Нечисловые токены исключаются; полностью ошибочная маска не находит ничего. Вложенные массивы не являются числами и игнорируются как ошибочные элементы; многомерные маски не поддерживаются. -
notoriety2— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety3— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety4— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety5— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety6— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety7— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety8— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety9— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety10— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety11— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety12— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety13— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety14— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety15— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety16— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety17— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety18— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety19— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety20— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety21— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety22— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety23— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety24— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety25— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety26— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety27— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety28— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety29— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety30— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет. -
notoriety31— Необязательная дополнительная маска notoriety; те же формы, что у notoriety. Объединяется с предыдущими через OR, не задаёт отдельный радиус, hue, Z или приоритет.
Integer — serial выбранного mobile или 0, если подходящего нет. Это ID, а не graphic/type, число найденных объектов или TRUE/FALSE: используйте IF found <> 0 THEN, не found = TRUE. Найденный ID можно передать UO.AddObject, UO.Attack или UO.Follow, но каждое игровое действие вызывается отдельно.
- Поиск читает только mobiles, уже загруженные клиентом; уничтоженные записи и Ignore исключены. Сам вызов не открывает target, не атакует, не идёт к цели и не запрашивает у сервера удалённые объекты.
- Расстояние — геометрическое max(abs(dx),abs(dy)), не длина маршрута. Близость не гарантирует отсутствие стены или доступность другого этажа. Состояние может измениться после возврата.
- Жизнь, скрытность и линия обзора автоматически не проверяются. Если они важны, используйте GetMobiles с aliveOnly/visibleOnly либо свои проверки. Наличие у сервера статуса Enemy не делает любого NPC подходящим.
- Не изменяет FindItem, FindCount или GetFoundItems. Эти поля могут содержать результаты предыдущей другой команды: используйте непосредственно возвращённый ID.
- Минимум два аргумента: distance, notoriety. Максимум 32: радиус и до 31 маски. Для большего числа значений передайте плоский массив одним аргументом. Удаление фильтра: -1/any/0xFFFF/пустая строка или пустой массив отдельно. Если рядом указаны конкретные коды, они сохраняют ограничение.
- Исключает self. Соблюдает UO.FindVertical() как предел разности Z; параметра maxZ в этой команде нет. Всегда выбирает ближайшего, при равенстве — меньший serial. Аргумент после notoriety — ещё notoriety, не nearest и не body.
Ниже описана реализация этого движка. Имена внутренних методов не являются дополнительными командами BASIC.
Регистрирует точное число аргументов и имена параметров.
Параметры не превращаются в параметры другой команды с похожим названием.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция RegisterCompactSearchApi.
Подготавливает маску и ограничения запроса.
Возвращает первый подходящий serial или Integer 0.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция FindFilteredMobileSerial.
Преобразует скаляры и элементы плоской маски в множество целых чисел.
Полностью ошибочная маска получает маркер отсутствия совпадений; вложенный массив не превращается в 0.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция ParseIntMask.
Объединяет отдельные аргументы и элементы переданных плоских массивов.
Первый distance не включается в маску.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция CombineMask.
Исключает self/Ignore, проверяет расстояние, Z и разрешённые notoriety.
Результат сортируется по расстоянию, затем serial; FindItem не обновляется.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция FilterMobiles.
Примеры показывают готовые процедуры и полные пользовательские функции; внутренние C#-методы отдельно из BASIC не вызываются.
SUB Main()
# 12 — радиус, 5|6 — Enemy или Murderer, а не body.
VAR found = UO.FindByNotoriety(12, "5|6")
IF found <> 0 THEN
UO.AddObject("opponent", found)
UO.Print("Selected: " + UO.GetName(found))
END IF
END SUBРазбор параметров и выполнения:
- Сохранённый opponent можно использовать позже; этот пример не атакует. Также действует текущий FindVertical, даже если цель близка по X/Y.
SUB Main()
DIM allowed[0]
allowed[0] = 5
VAR found = UO.FindByNotoriety(8, allowed, 6)
# Это уже отдельное игровое действие, а не часть поиска.
IF found <> 0 AndAlso NOT UO.IsDead(found) THEN
UO.Attack(found)
END IF
END SUBРазбор параметров и выполнения:
- allowed содержит Enemy, отдельный 6 добавляет Murderer. Статусы объединяются, а не сортируются по приоритету. Пример запрашивает атаку одного найденного живого mobile; правила сервера определяют допустимость.
SUB Main()
VAR found = FindOpponentAtSameLevel(10)
IF found <> 0 THEN
UO.AddObject("same_level", found)
END IF
END SUB
FUNCTION FindOpponentAtSameLevel(radius)
# Сохраняем настройку этого runtime и восстанавливаем её после поиска.
VAR previous = UO.FindVertical()
TRY
UO.FindVertical(0)
RETURN UO.FindByNotoriety(radius, "5|6")
FINALLY
UO.FindVertical(previous)
END TRY
END FUNCTIONРазбор параметров и выполнения:
- radius — радиус X/Y в клетках. FindVertical(0) требует одинаковую Z; это не проверка этажа или стен. Функция возвращает ID/0, а Finally сохраняет настройку других частей скрипта.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь