Skip to content

API UO GetSkillLockState uk

Codex edited this page Sep 22, 2026 · 1 revision

UO.GetSkillLockState

ClassicUO / Basic IDE

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

Читає локальний режим зміни навички.

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

UO.GetSkillLockState(SkillName:Any) -> Integer

Параметри

  • SkillName — Обов’язкова навичка: ім’я з даних клієнта, як "Mining" або "Animal Lore", чи десятковий індекс 0..Skills.Length−1 числом або рядком. Регістр не важливий, крайні пробіли прибираються, _ замінюється пробілом. Це не ID предмета й не індекс від 1. Числовий рядок завжди означає індекс.

Повертає

Integer: 0 — підвищення, 1 — зниження, 2 — блокування. Код режиму, не true/false. Для невідомої навички чи відсутнього персонажа повертається −1.

Поведінка

  • Invoke читає наявні дані на ігровому потоці без мережевих пакетів. Навичка не використовується й не тренується. Два запити — окремі знімки.
  • Обов’язкова навичка: ім’я з даних клієнта, як "Mining" або "Animal Lore", чи десятковий індекс 0..Skills.Length−1 числом або рядком. Регістр не важливий, крайні пробіли прибираються, _ замінюється пробілом. Це не ID предмета й не індекс від 1. Числовий рядок завжди означає індекс.
  • ExecuteClientApiCompatibility обирає гілку. Text читає селектор навички, Arg — числові номери й режими. Неперетворюваний аргумент може викликати помилку перетворення.

Внутрішні функції: від виклику до результату

Це справжні внутрішні етапи C#. ReadMode повністю визначена в прикладі; це допоміжна функція, а не прихована вбудована команда.

1. ExecuteClientApiCompatibility

ExecuteClientApiCompatibility обирає гілку. Text читає селектор навички, Arg — числові номери й режими. Неперетворюваний аргумент може викликати помилку перетворення.

Integer: 0 — підвищення, 1 — зниження, 2 — блокування. Код режиму, не true/false. Для невідомої навички чи відсутнього персонажа повертається −1.

Код проєкту: 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. GetSkillLockState

Читає локальний режим зміни навички.

Integer: 0 — підвищення, 1 — зниження, 2 — блокування. Код режиму, не true/false. Для невідомої навички чи відсутнього персонажа повертається −1.

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

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

Приклади

Прочитати й показати

# Прочитати й показати
#
# Читає локальний режим зміни навички.
#
# Integer: 0підвищення, 1зниження, 2блокування. Код режиму, не true/false. Для
# невідомої навички чи відсутнього персонажа повертається1.

SUB Main()
    # Приклад явно задає selector і, для запису, mode. Перший рядок обирає навичку за ім’ям чи
    # характеристику за номером. Print лише показує результат.

    VAR selector = 'Mining'
    VAR mode = UO.GetSkillLockState(selector)
    UO.Print(CStr(mode))
END SUB

Пояснення параметрів і виконання:

  • Приклад явно задає selector і, для запису, mode. Перший рядок обирає навичку за ім’ям чи характеристику за номером. Print лише показує результат.

Застосувати в умові або порівнянні

# Застосувати в умові або порівнянні
#
# Читає локальний режим зміни навички.
#
# Integer: 0підвищення, 1зниження, 2блокування. Код режиму, не true/false. Для
# невідомої навички чи відсутнього персонажа повертається1.

SUB Main()
    # Поріг 95.1 і режими 0/1/2налаштування прикладу.1 перевіряється до зміни режиму. Читання
    # після запису показує локальну копію без очікування сервера.

    VAR mode = UO.GetSkillLockState('Mining')
    IF mode = 2 THEN
        UO.Print("Locked")
    ELSE
        IF mode = -1 THEN
            UO.Print("Unknown selector")
        ELSE
            UO.Print("Mode: " + CStr(mode))
        END IF
    END IF
END SUB

Пояснення параметрів і виконання:

  • Поріг 95.1 і режими 0/1/2 — налаштування прикладу. −1 перевіряється до зміни режиму. Читання після запису показує локальну копію без очікування сервера.

Повна допоміжна функція

# Повна допоміжна функція
#
# Читає локальний режим зміни навички.
#
# Integer: 0підвищення, 1зниження, 2блокування. Код режиму, не true/false. Для
# невідомої навички чи відсутнього персонажа повертається1.

SUB Main()
    # Повний помічник наведений після Main. selector обирає навичку/характеристику, modeрежим
    # запису. ReadValue/ReadMode повертають вихідне число; ApplyMode перевіряє аргументи, виконує
    # дію та не повертає значення. WAIT(1000) розділяє два знімки читання.

    VAR before = ReadMode('Mining')
    WAIT(1000)
    VAR after = ReadMode('Mining')
    UO.Print(CStr(before) + " -> " + CStr(after))
END SUB

SUB ReadMode(selector)
    RETURN UO.GetSkillLockState(selector)
END SUB

Пояснення параметрів і виконання:

  • Повний помічник наведений після Main. selector обирає навичку/характеристику, mode — режим запису. ReadValue/ReadMode повертають вихідне число; ApplyMode перевіряє аргументи, виконує дію та не повертає значення. WAIT(1000) розділяє два знімки читання.

Skills / Навыки

Skills / Навыки

Clone this wiki locally