-
Notifications
You must be signed in to change notification settings - Fork 0
API UO GetLuck
Оглавление · Алфавитный указатель · Character
ClassicUO • Runtime API
Читает счётчик статуса своего персонажа: очки удачи.
UO.GetLuck() -> Integer
Выберите одну из зарегистрированных форм. Параметры передаются позиционно. Any означает значение BASIC с преобразованием внутри команды; Unit — отсутствие возвращаемого значения.
Параметров нет.
Integer — очки удачи, 0..65535 в модели клиента. 0 может быть реальным значением, отсутствием данных либо отсутствующим/уничтоженным Player. Это количество, не Boolean, ID или type: 1 означает одну единицу, а не успех. Команда не перебирает объекты и не возвращает массив.
- Команда не принимает аргументов. Используйте точные сигнатуры выше.
- Чтение в игровом потоке берёт Player.Luck, если текущий Player существует и не уничтожен; иначе 0. Экипировка не перебирается, бонусы не пересчитываются, статус не запрашивается, ожидания обновления нет. Присутствующий призрак не равен уничтоженному Player.
- Luck читает серверные очки удачи, сохранённые как UInt16, из статуса type >= 4. Это не процент, случайное число или гарантия качества добычи. При чтении клиент не вычисляет шанс выпадения и не прибавляет бонусы экипировки.
- CharacterStatus проверяет обязательное тело до обновления. Weight есть в собственном расширенном статусе, слоты — с type 3, Luck — с type 4, серверный WeightMax — с type 5. Компактный/старый пакет без необязательного счётчика оставляет его предыдущий кэш. Новый Player начинает с нулей; вызов не доказывает получение свежего статуса.
- RegisterCharacterGetterAliases добавляет отсутствующие функции без аргументов и встроенные имена для поля. Существующие ветки совместимости читают то же поле bridge. Регистр имени не важен; intrinsic без скобок читается заново, если его не перекрыла переменная.
- Каждый вызов читает локальные данные заново. Переменная хранит снимок; отдельные чтения могут получить разные обновления сервера. Ненулевой результат не проверяет подключение. Ноль может быть значением либо отсутствием данных.
Внутренние этапы чтения кэшированного счётчика. Полностью объявленная функция CanCarry, LuckAtLeast либо CanAddFollower в примере — пользовательский BASIC, а не скрытое нативное действие. Она не меняет инвентарь или питомцев.
RegisterCharacterGetterAliases добавляет отсутствующие функции без аргументов и встроенные имена для поля. Существующие ветки совместимости читают то же поле bridge. Регистр имени не важен; intrinsic без скобок читается заново, если его не перекрыла переменная.
Luck GetLuck.
Исходник проекта: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функция RegisterCharacterGetterAliases.
Чтение в игровом потоке берёт Player.Luck, если текущий Player существует и не уничтожен; иначе 0. Экипировка не перебирается, бонусы не пересчитываются, статус не запрашивается, ожидания обновления нет. Присутствующий призрак не равен уничтоженному Player.
Invoke читает на игровом потоке с возможностью отменить ожидание скриптом. Не запрашивает status, не открывает target, не посылает пакет, не меняет характеристику и не добавляет задержку.
Исходник проекта: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функция Invoke.
CharacterStatus проверяет обязательное тело до обновления. Weight есть в собственном расширенном статусе, слоты — с type 3, Luck — с type 4, серверный WeightMax — с type 5. Компактный/старый пакет без необязательного счётчика оставляет его предыдущий кэш. Новый Player начинает с нулей; вызов не доказывает получение свежего статуса.
Luck читает серверные очки удачи, сохранённые как UInt16, из статуса type >= 4. Это не процент, случайное число или гарантия качества добычи. При чтении клиент не вычисляет шанс выпадения и не прибавляет бонусы экипировки.
Исходник проекта: src/ClassicUO.Client/Network/PacketHandlers.cs; функция CharacterStatus.
World.Clear удаляет Player. Далее возвращается 0, пока не появятся текущий персонаж и его данные. Сохранённое значение не доказывает выполнение требования после переподключения.
Integer — очки удачи, 0..65535 в модели клиента. 0 может быть реальным значением, отсутствием данных либо отсутствующим/уничтоженным Player. Это количество, не Boolean, ID или type: 1 означает одну единицу, а не успех. Команда не перебирает объекты и не возвращает массив.
Исходник проекта: src/ClassicUO.Client/Game/World.cs; функция Clear.
Каждый вызов читает локальные данные заново. Переменная хранит снимок; отдельные чтения могут получить разные обновления сервера. Ненулевой результат не проверяет подключение. Ноль может быть значением либо отсутствием данных.
# Вывести сохранённый счётчик
#
# Читает счётчик статуса своего персонажа: очки удачи.
#
# Integer — очки удачи, 0..65535 в модели клиента. 0 может быть реальным значением, отсутствием
# данных либо отсутствующим/уничтоженным Player. Это количество, не Boolean, ID или type: 1
# означает одну единицу, а не успех. Команда не перебирает объекты и не возвращает массив.
SUB Main()
# value хранит один вызов без аргументов для собственного персонажа; CStr форматирует число для
# журнала, не меняя его смысл.
VAR value = UO.GetLuck()
UO.Print('Luck: ' + CStr(value))
END SUBРазбор параметров и выполнения:
- value хранит один вызов без аргументов для собственного персонажа; CStr форматирует число для журнала, не меняя его смысл.
# Наблюдать изменение
#
# Читает счётчик статуса своего персонажа: очки удачи.
#
# Integer — очки удачи, 0..65535 в модели клиента. 0 может быть реальным значением, отсутствием
# данных либо отсутствующим/уничтоженным Player. Это количество, не Boolean, ID или type: 1
# означает одну единицу, а не успех. Команда не перебирает объекты и не возвращает массив.
SUB Main()
# WAIT(500) разделяет before и after на 500 миллисекунд. difference может быть положительной,
# нулевой или отрицательной; промежуточные обновления и смена персонажа могут быть пропущены.
# Пауза относится к примеру.
VAR before = UO.GetLuck()
WAIT(500)
VAR after = UO.GetLuck()
VAR difference = after - before
UO.Print('Counter change: ' + CStr(difference))
END SUBРазбор параметров и выполнения:
- WAIT(500) разделяет before и after на 500 миллисекунд. difference может быть положительной, нулевой или отрицательной; промежуточные обновления и смена персонажа могут быть пропущены. Пауза относится к примеру.
# Полная вспомогательная функция
#
# Читает счётчик статуса своего персонажа: очки удачи.
#
# Integer — очки удачи, 0..65535 в модели клиента. 0 может быть реальным значением, отсутствием
# данных либо отсутствующим/уничтоженным Player. Это количество, не Boolean, ID или type: 1
# означает одну единицу, а не успех. Команда не перебирает объекты и не возвращает массив.
SUB Main()
# LuckAtLeast(minimum) получает числовое требование; 1000 — пример, не предел или процент.
# Отвергает отсутствие Player, один раз читает удачу и возвращает Integer Boolean: 1=TRUE либо
# 0=FALSE по value >= minimum. Сама удача не Boolean. Сравниваются кэшированные очки, выпадение
# добычи не предсказывается.
IF LuckAtLeast(1000) = TRUE THEN
UO.Print('Local check passed')
ELSE
UO.Print('Local check failed or data unavailable')
END IF
END SUB
SUB LuckAtLeast(minimum)
IF UO.Self() = 0 THEN
RETURN FALSE
END IF
VAR value = UO.GetLuck()
RETURN value >= minimum
END SUBРазбор параметров и выполнения:
- LuckAtLeast(minimum) получает числовое требование; 1000 — пример, не предел или процент. Отвергает отсутствие Player, один раз читает удачу и возвращает Integer Boolean: 1=TRUE либо 0=FALSE по value >= minimum. Сама удача не Boolean. Сравниваются кэшированные очки, выпадение добычи не предсказывается.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь