Skip to content

API UO SetSkillLockState uk

Codex edited this page Sep 22, 2026 · 1 revision

UO.SetSkillLockState

ClassicUO / Basic IDE

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

Запитує зміну режиму навички.

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

UO.SetSkillLockState(SkillName:Any, skillState:Any) -> Unit

Параметри

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

Повертає

Unit — значення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з true. Наступне читання показує локальну модель, не підтвердження сервера.

Поведінка

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

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

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

1. ExecuteClientApiCompatibility

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

Unit — значення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з true. Наступне читання показує локальну модель, не підтвердження сервера.

Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteClientApiCompatibility.

2. Invoke

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

Допустимий запит надсилає один пакет через GameActions і відразу змінює локальний режим. Правила сервера залишаються чинними; зростання не гарантується. Невідома навичка, недопустимий індекс/режим і відсутність персонажа ігноруються без пакета.

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

3. FindSkillUnsafe

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

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

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

4. SetSkillLockState

Допустимий запит надсилає один пакет через GameActions і відразу змінює локальний режим. Правила сервера залишаються чинними; зростання не гарантується. Невідома навичка, недопустимий індекс/режим і відсутність персонажа ігноруються без пакета.

Unit — значення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з true. Наступне читання показує локальну модель, не підтвердження сервера.

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

5. ChangeSkillLockStatus

Допустимий запит надсилає один пакет через GameActions і відразу змінює локальний режим. Правила сервера залишаються чинними; зростання не гарантується. Невідома навичка, недопустимий індекс/режим і відсутність персонажа ігноруються без пакета.

Unit — значення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з true. Наступне читання показує локальну модель, не підтвердження сервера.

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

Допустимий запит надсилає один пакет через GameActions і відразу змінює локальний режим. Правила сервера залишаються чинними; зростання не гарантується. Невідома навичка, недопустимий індекс/режим і відсутність персонажа ігноруються без пакета.

Приклади

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

# Прочитати й показати
#
# Запитує зміну режиму навички.
#
# Unitзначення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з
# true. Наступне читання показує локальну модель, не підтвердження сервера.

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

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

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

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

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

# Застосувати в умові або порівнянні
#
# Запитує зміну режиму навички.
#
# Unitзначення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з
# true. Наступне читання показує локальну модель, не підтвердження сервера.

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

    VAR selector = 'Mining'
    VAR before = UO.GetSkillLockState(selector)
    IF before >= 0 AND before <= 2 THEN
        UO.SetSkillLockState(selector, 0)
        UO.Print(CStr(UO.GetSkillLockState(selector)))
    END IF
END SUB

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

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

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

# Повна допоміжна функція
#
# Запитує зміну режиму навички.
#
# Unitзначення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з
# true. Наступне читання показує локальну модель, не підтвердження сервера.

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

    ApplyMode('Mining', 2)
END SUB

SUB ApplyMode(selector, mode)
    IF mode < 0 OR mode > 2 THEN
        RETURN
    END IF
    IF UO.GetSkillLockState(selector) < 0 THEN
        RETURN
    END IF
    UO.SetSkillLockState(selector, mode)
END SUB

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

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

Skills / Навыки

Skills / Навыки

Clone this wiki locally