-
Notifications
You must be signed in to change notification settings - Fork 0
API UO SetSkillLockState uk
ClassicUO / Basic IDE
Запитує зміну режиму навички.
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 повністю визначена в прикладі; це допоміжна функція, а не прихована вбудована команда.
ExecuteClientApiCompatibility обирає гілку. Text читає селектор навички, Arg — числові номери й режими. Неперетворюваний аргумент може викликати помилку перетворення.
Unit — значення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з true. Наступне читання показує локальну модель, не підтвердження сервера.
Код проєкту: external/InjectionScript/src/InjectionScript/Runtime/InjectionApiUO.cs; функція ExecuteClientApiCompatibility.
Invoke читає дані в ігровому потоці; робочий потік чекає обробки запиту менеджером. Скасування скрипту перериває очікування. Додаткові затримки й мережеві запити не додаються.
Допустимий запит надсилає один пакет через GameActions і відразу змінює локальний режим. Правила сервера залишаються чинними; зростання не гарантується. Невідома навичка, недопустимий індекс/режим і відсутність персонажа ігноруються без пакета.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція Invoke.
FindSkillUnsafe спочатку перевіряє десятковий індекс і межі; інакше нормалізує ім’я й точно зіставляє Skill.Name без урахування регістру. Невідоме ім’я дає null; приціл не відкривається.
Для невідомої навички чи відсутнього персонажа повертається −1.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція FindSkillUnsafe.
Допустимий запит надсилає один пакет через GameActions і відразу змінює локальний режим. Правила сервера залишаються чинними; зростання не гарантується. Невідома навичка, недопустимий індекс/режим і відсутність персонажа ігноруються без пакета.
Unit — значення не повертається. Не сприймайте результат як успіх/помилку й не порівнюйте з true. Наступне читання показує локальну модель, не підтвердження сервера.
Код проєкту: src/ClassicUO.Client/Game/Managers/ClassicUOInjectionApiBridge.cs; функція SetSkillLockState.
Допустимий запит надсилає один пакет через 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) розділяє два знімки читання.
ClassicUO
Bad Newbie & Basic IDE
Найти в справочнике
Клиент и скрипты
Каталоги значений
Разработка и помощь