Skip to content

API UO GetSkillValue uk

Codex edited this page Sep 22, 2026 · 1 revision

UO.GetSkillValue

ClassicUO / Basic IDE

Home · API A–Z · Каталоги

Читає базове значення навички без модифікаторів.

Точний синтаксис

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 повністю визначена в прикладі; це допоміжна функція, а не прихована вбудована команда.

1. ExecuteClientApiCompatibility

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.

2. Invoke

Invoke читає дані в ігровому потоці; робочий потік чекає обробки запиту менеджером. Скасування скрипту перериває очікування. Додаткові затримки й мережеві запити не додаються.

Invoke читає наявні дані на ігровому потоці без мережевих пакетів. Навичка не використовується й не тренується. Два запити — окремі знімки.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція Invoke.

3. FindSkillUnsafe

FindSkillUnsafe спочатку перевіряє десятковий індекс і межі; інакше нормалізує ім’я й точно зіставляє Skill.Name без урахування регістру. Невідоме ім’я дає null; приціл не відкривається.

Для невідомої навички чи відсутнього персонажа повертається −1.

Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція FindSkillUnsafe.

4. GetSkillValue

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) розділяє два знімки читання.

Skills / Навыки

Skills / Навыки

Clone this wiki locally