-
Notifications
You must be signed in to change notification settings - Fork 0
API UO GetSkillValue uk
ClassicUO / Basic IDE
Читає базове значення навички без модифікаторів.
UO.GetSkillValue(SkillName:Any) -> Decimal
-
SkillName— Обов’язкова навичка: ім’я з даних клієнта, як "Mining" або "Animal Lore", чи десятковий індекс 0..Skills.Length−1 числом або рядком. Регістр не важливий, крайні пробіли прибираються, _ замінюється пробілом. Це не ID предмета й не індекс від 1. Числовий рядок завжди означає індекс.
Decimal (Double) — очки навички з кроком 0,1, наприклад 95,1, а не 951. Поле BaseFixed ділиться на 10 безпосередньо в Double. 0 — нульова навичка чи відсутній персонаж/навичка. Не Boolean. Legacy SkillVal/BaseVal мають інший масштаб; не змішуйте сімейства.
- Invoke читає наявні дані на ігровому потоці без мережевих пакетів. Навичка не використовується й не тренується. Два запити — окремі знімки.
- Обов’язкова навичка: ім’я з даних клієнта, як "Mining" або "Animal Lore", чи десятковий індекс 0..Skills.Length−1 числом або рядком. Регістр не важливий, крайні пробіли прибираються, _ замінюється пробілом. Це не ID предмета й не індекс від 1. Числовий рядок завжди означає індекс.
- ExecuteClientApiCompatibility обирає гілку. Text читає селектор навички, Arg — числові номери й режими. Неперетворюваний аргумент може викликати помилку перетворення.
Це справжні внутрішні етапи C#. ReadValue повністю визначена в прикладі; це допоміжна функція, а не прихована вбудована команда.
ExecuteClientApiCompatibility обирає гілку. Text читає селектор навички, Arg — числові номери й режими. Неперетворюваний аргумент може викликати помилку перетворення.
Decimal (Double) — очки навички з кроком 0,1, наприклад 95,1, а не 951. Поле BaseFixed ділиться на 10 безпосередньо в Double. 0 — нульова навичка чи відсутній персонаж/навичка. Не Boolean. Legacy SkillVal/BaseVal мають інший масштаб; не змішуйте сімейства.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteClientApiCompatibility.
Invoke читає дані в ігровому потоці; робочий потік чекає обробки запиту менеджером. Скасування скрипту перериває очікування. Додаткові затримки й мережеві запити не додаються.
Invoke читає наявні дані на ігровому потоці без мережевих пакетів. Навичка не використовується й не тренується. Два запити — окремі знімки.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція Invoke.
FindSkillUnsafe спочатку перевіряє десятковий індекс і межі; інакше нормалізує ім’я й точно зіставляє Skill.Name без урахування регістру. Невідоме ім’я дає null; приціл не відкривається.
Для невідомої навички чи відсутнього персонажа повертається −1.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція FindSkillUnsafe.
GetSkillValue обирає BaseFixed, ValueFixed чи CapFixed і ділить цілі десяті на 10d без проміжного округлення до Single.
Decimal (Double) — очки навички з кроком 0,1, наприклад 95,1, а не 951. Поле BaseFixed ділиться на 10 безпосередньо в Double. 0 — нульова навичка чи відсутній персонаж/навичка. Не Boolean. Legacy SkillVal/BaseVal мають інший масштаб; не змішуйте сімейства.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція GetSkillValue.
Invoke читає наявні дані на ігровому потоці без мережевих пакетів. Навичка не використовується й не тренується. Два запити — окремі знімки.
# Прочитати й показати
#
# Читає базове значення навички без модифікаторів.
#
# Decimal (Double) — очки навички з кроком 0,1, наприклад 95,1, а не 951. Поле BaseFixed
# ділиться на 10 безпосередньо в Double. 0 — нульова навичка чи відсутній персонаж/навичка. Не
# Boolean. Legacy SkillVal/BaseVal мають інший масштаб; не змішуйте сімейства.
SUB Main()
# Приклад явно задає selector і, для запису, mode. Перший рядок обирає навичку за ім’ям чи
# характеристику за номером. Print лише показує результат.
VAR selector = 'Mining'
VAR value = UO.GetSkillValue(selector)
UO.Print(CStr(value))
END SUBПояснення параметрів і виконання:
- Приклад явно задає selector і, для запису, mode. Перший рядок обирає навичку за ім’ям чи характеристику за номером. Print лише показує результат.
# Застосувати в умові або порівнянні
#
# Читає базове значення навички без модифікаторів.
#
# Decimal (Double) — очки навички з кроком 0,1, наприклад 95,1, а не 951. Поле BaseFixed
# ділиться на 10 безпосередньо в Double. 0 — нульова навичка чи відсутній персонаж/навичка. Не
# Boolean. Legacy SkillVal/BaseVal мають інший масштаб; не змішуйте сімейства.
SUB Main()
# Поріг 95.1 і режими 0/1/2 — налаштування прикладу. −1 перевіряється до зміни режиму. Читання
# після запису показує локальну копію без очікування сервера.
IF UO.GetSkillLockState('Mining') >= 0 THEN
VAR value = UO.GetSkillValue('Mining')
IF value >= 95.1 THEN
UO.Print('Value >= 95.1: ' + CStr(value))
END IF
END IF
END SUBПояснення параметрів і виконання:
- Поріг 95.1 і режими 0/1/2 — налаштування прикладу. −1 перевіряється до зміни режиму. Читання після запису показує локальну копію без очікування сервера.
# Повна допоміжна функція
#
# Читає базове значення навички без модифікаторів.
#
# Decimal (Double) — очки навички з кроком 0,1, наприклад 95,1, а не 951. Поле BaseFixed
# ділиться на 10 безпосередньо в Double. 0 — нульова навичка чи відсутній персонаж/навичка. Не
# Boolean. Legacy SkillVal/BaseVal мають інший масштаб; не змішуйте сімейства.
SUB Main()
# Повний помічник наведений після Main. selector обирає навичку/характеристику, mode — режим
# запису. ReadValue/ReadMode повертають вихідне число; ApplyMode перевіряє аргументи, виконує
# дію та не повертає значення. WAIT(1000) розділяє два знімки читання.
VAR before = ReadValue('Animal_Lore')
WAIT(1000)
VAR after = ReadValue('Animal Lore')
UO.Print(CStr(after - before))
END SUB
SUB ReadValue(selector)
RETURN UO.GetSkillValue(selector)
END SUBПояснення параметрів і виконання:
- Повний помічник наведений після Main. selector обирає навичку/характеристику, mode — режим запису. ReadValue/ReadMode повертають вихідне число; ApplyMode перевіряє аргументи, виконує дію та не повертає значення. WAIT(1000) розділяє два знімки читання.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь