-
Notifications
You must be signed in to change notification settings - Fork 0
API UO GetQuestArrow
ClassicUO / Basic IDE
Читает положение серверной стрелки задания. Позволяет скрипту узнать, куда указывает полученная от сервера стрелка; команду Track она не читает.
UO.GetQuestArrow() -> Array
UO.GetQuestArrow(point:Any) -> Array
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
-
point— Устаревший необязательный заполнитель. Форма UO.GetQuestArrow(point) оставлена для совместимости; аргумент не читается и не изменяется. Используйте UO.GetQuestArrow() и его возвращаемый массив.
Array [exists, x, y], ровно три целых числа. [0] — 1 (true), если есть серверная стрелка, иначе 0 (false); [1] — X, [2] — Y. Без стрелки [0, 0, 0]. Только поле [0] является логическим признаком; весь массив не Boolean. Если стрелок несколько, читается первая сохранённая, выбора по ID нет.
- Серверные и локальная стрелки хранятся отдельно. Track(0) не удаляет серверную стрелку. Без графики маркер сохраняется и появляется при открытии окна. Закрытие игрового окна не удаляет маркеры; разрыв соединения очищает их. Сервер может переместить или убрать свою стрелку. Координаты не доказывают, что цель достижима.
- Координаты клетки на текущей карте, не пиксели окна. Z и номер карты не принимаются. Выберите существующую точку своей карты; команда не проверяет проходимость, не прокладывает маршрут и не следует за движущейся целью.
- Устаревший необязательный заполнитель. Форма UO.GetQuestArrow(point) оставлена для совместимости; аргумент не читается и не изменяется. Используйте UO.GetQuestArrow() и его возвращаемый массив.
SessionCharacterPanels проверяет полный пакет описания/стрелки и сохраняет данные на потоке сеанса. Bridge читает записи без создания графики. GetProfile посылает запрос 0xB8 и ждёт доступный текст до 3 секунд с ожиданиями по 25 мс. Track меняет отдельный локальный маркер. ProfileGump и QuestArrowGump отображают те же записи. Стрелки исключены из списка серверных диалогов GetGumpsCount.
Читает положение серверной стрелки задания. Позволяет скрипту узнать, куда указывает полученная от сервера стрелка; команду Track она не читает.
Array [exists, x, y], ровно три целых числа. [0] — 1 (true), если есть серверная стрелка, иначе 0 (false); [1] — X, [2] — Y. Без стрелки [0, 0, 0]. Только поле [0] является логическим признаком; весь массив не Boolean. Если стрелок несколько, читается первая сохранённая, выбора по ID нет.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция GetQuestArrow.
Серверные и локальная стрелки хранятся отдельно. Track(0) не удаляет серверную стрелку. Без графики маркер сохраняется и появляется при открытии окна. Закрытие игрового окна не удаляет маркеры; разрыв соединения очищает их. Сервер может переместить или убрать свою стрелку. Координаты не доказывают, что цель достижима.
SessionCharacterPanels проверяет полный пакет описания/стрелки и сохраняет данные на потоке сеанса. Bridge читает записи без создания графики. GetProfile посылает запрос 0xB8 и ждёт доступный текст до 3 секунд с ожиданиями по 25 мс. Track меняет отдельный локальный маркер. ProfileGump и QuestArrowGump отображают те же записи. Стрелки исключены из списка серверных диалогов GetGumpsCount.
Исходник проекта: src/ClassicUO.Client/Game/Managers/SessionCharacterPanels.cs; функция SessionCharacterPanels.
Array [exists, x, y], ровно три целых числа. [0] — 1 (true), если есть серверная стрелка, иначе 0 (false); [1] — X, [2] — Y. Без стрелки [0, 0, 0]. Только поле [0] является логическим признаком; весь массив не Boolean. Если стрелок несколько, читается первая сохранённая, выбора по ID нет.
# Прямое применение
#
# Читает положение серверной стрелки задания. Позволяет скрипту узнать, куда указывает
# полученная от сервера стрелка; команду Track она не читает.
#
# Array [exists, x, y], ровно три целых числа. [0] — 1 (true), если есть серверная стрелка,
# иначе 0 (false); [1] — X, [2] — Y. Без стрелки [0, 0, 0]. Только поле [0] является логическим
# признаком; весь массив не Boolean. Если стрелок несколько, читается первая сохранённая, выбора
# по ID нет.
SUB Main()
# Сначала проверяется [0]; затем [1]/[2] можно читать как X/Y. Не передавайте весь массив как
# serial или Boolean.
VAR arrow = UO.GetQuestArrow()
IF arrow[0] = TRUE THEN
UO.Print(CStr(arrow[1]) + ", " + CStr(arrow[2]))
END IF
END SUBРазбор параметров и выполнения:
- Сначала проверяется [0]; затем [1]/[2] можно читать как X/Y. Не передавайте весь массив как serial или Boolean.
# Игровое условие
#
# Читает положение серверной стрелки задания. Позволяет скрипту узнать, куда указывает
# полученная от сервера стрелка; команду Track она не читает.
#
# Array [exists, x, y], ровно три целых числа. [0] — 1 (true), если есть серверная стрелка,
# иначе 0 (false); [1] — X, [2] — Y. Без стрелки [0, 0, 0]. Только поле [0] является логическим
# признаком; весь массив не Boolean. Если стрелок несколько, читается первая сохранённая, выбора
# по ID нет.
SUB Main()
# Копирует координаты серверной стрелки в локальный маркер Track. Это не движение. Если сервер
# позже переместит стрелку, локальная останется на прежней точке.
VAR arrow = UO.GetQuestArrow()
IF arrow[0] = 1 THEN
UO.Track(1, arrow[1], arrow[2])
END IF
END SUBРазбор параметров и выполнения:
- Копирует координаты серверной стрелки в локальный маркер Track. Это не движение. Если сервер позже переместит стрелку, локальная останется на прежней точке.
# Полная вспомогательная функция
#
# Читает положение серверной стрелки задания. Позволяет скрипту узнать, куда указывает
# полученная от сервера стрелка; команду Track она не читает.
#
# Array [exists, x, y], ровно три целых числа. [0] — 1 (true), если есть серверная стрелка,
# иначе 0 (false); [1] — X, [2] — Y. Без стрелки [0, 0, 0]. Только поле [0] является логическим
# признаком; весь массив не Boolean. Если стрелок несколько, читается первая сохранённая, выбора
# по ID нет.
SUB Main()
# ArrowDistance возвращает дистанцию UO.GetDistance(x,y) до серверной точки или −1, если стрелки
# нет. При расстоянии до двух клеток убирается только локальный Track, серверная стрелка
# остаётся.
VAR distance = ArrowDistance()
IF distance >= 0 AND distance <= 2 THEN
UO.Track(0)
END IF
END SUB
FUNCTION ArrowDistance()
VAR arrow = UO.GetQuestArrow()
IF arrow[0] = 0 THEN
RETURN -1
END IF
RETURN UO.GetDistance(arrow[1], arrow[2])
END FUNCTIONРазбор параметров и выполнения:
- ArrowDistance возвращает дистанцию UO.GetDistance(x,y) до серверной точки или −1, если стрелки нет. При расстоянии до двух клеток убирается только локальный Track, серверная стрелка остаётся.
Русский · English · Українська · Deutsch · Français · Italiano · Español · 繁體中文 · 日本語 · 한국어
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь