Skip to content

Skill Catalog

Codex edited this page Sep 22, 2026 · 1 revision

Навыки: имена и номера

Home · Каталоги · API по задачам

UO.UseSkill · UO.SkillVal · UO.GetSkillValue · UO.GetSkillCurrentValue · UO.SetSkillLockState

Ниже ВСЕ 52 имени встроенного словаря UseSkill/SkillVal. Это не список всех навыков, которые произвольный сервер может прислать клиенту. GetSkillValue/GetSkillCurrentValue/GetSkillCap ищут по загруженному имени Skill.Name либо индексу с нуля: там могут быть и дополнительные навыки. В частности, наличие школы Bushido/Mysticism в каталоге Cast не добавляет одноимённую строку в словарь UseSkill.

Имена UseSkill сравниваются без учёта регистра, но без автоматической замены подчёркиваний и обрезки пробелов. Пишите точное имя из таблицы в кавычках. Внутренний ID с единицы показан для объяснения протокола; индекс с нуля относится к GetSkillValue и его семейству. Не переставляйте эти номера между семействами команд.

Название навыка не гарантирует, что его можно активировать кнопкой. Например, Hiding запускают через UseSkill, Magery применяют через Cast, а Mining обычно требует инструмента и цели. Получение значения навыка само по себе не тренирует его. Правила использования задаёт сервер.

Имя UseSkill / SkillVal Внутренний ID Стандартный индекс GetSkillValue
Alchemy 1 0
Anatomy 2 1
Animal Lore 3 2
Item ID 4 3
Arms Lore 5 4
Parrying 6 5
Begging 7 6
Blacksmithing 8 7
Bowcraft 9 8
Peacemaking 10 9
Camping 11 10
Carpentry 12 11
Cartography 13 12
Cooking 14 13
Detect Hidden 15 14
Enticement 16 15
Evaluate Intelligence 17 16
Healing 18 17
Fishing 19 18
Forensic Evaluation 20 19
Herding 21 20
Hiding 22 21
Provocation 23 22
Inscription 24 23
Lockpicking 25 24
Magery 26 25
Magic Resistance 27 26
Tactics 28 27
Snooping 29 28
Musicianship 30 29
Poisoning 31 30
Archery 32 31
Spirit Speak 33 32
Stealing 34 33
Tailoring 35 34
Animal Taming 36 35
Taste Identification 37 36
Tinkering 38 37
Tracking 39 38
Veterinary 40 39
Swordsmanship 41 40
Mace Fighting 42 41
Fencing 43 42
Wrestling 44 43
Lumberjacking 45 44
Mining 46 45
Meditation 47 46
Stealth 48 47
Remove Trap 49 48
Necromancy 50 49
Focus 51 50
Chivalry 52 51

Различие названий

Встроенный словарь сохраняет Item ID, Enticement, Evaluate Intelligence, Bowcraft, Magic Resistance. Загруженные данные могут называть их Item Identification, Discordance, Evaluating Intelligence, Bowcraft/Fletching, Resisting Spells. Для чтения можно указать соответствующий стандартный индекс 3, 15, 16, 8, 26, если сервер сохраняет стандартный порядок. Для UseSkill используйте именно строку из таблицы. Stealth в этой таблице — игровой навык скрытого передвижения.

Полные примеры

Запустить Hiding, а не прочитать его значение

SUB Main()
    # Hiding is an action skill; Hidden reads the current state.
    IF UO.Connected() AndAlso NOT UO.Hidden() THEN
        IF UO.UseSkill("Hiding") THEN
            WAIT(1000)
            IF UO.Hidden() THEN
                UO.Print("Character is hidden")
            ELSE
                UO.Print("Check the journal: hiding is not confirmed")
            END IF
        END IF
    END IF
END SUB

Hiding — имя навыка, 1000 — задержка примера. UseSkill=1 означает принятый запрос, Hidden=1 — уже полученный клиентом флаг скрытности. Это разные проверки.

Заблокировать рост известного навыка после порога

SUB Main()
    # The value is in skill points, not tenths stored as an integer.
    VAR skill = "Mining"
    IF UO.GetSkillValue(skill) >= 100.0 THEN
        UO.SetSkillLockState(skill, 2)
    END IF
END SUB

Mining выбирает загруженный навык; 100.0 — порог без модификаторов, 2 — режим блокировки. Эта команда изменяет настройку роста, а не использует кирку.

Сравнить усиленное и базовое значение по индексу

SUB Main()
    # Standard index 25 is Magery; use only the server's actual skill order.
    VAR index = 25
    VAR baseValue = UO.GetSkillValue(index)
    VAR effective = UO.GetSkillCurrentValue(index)
    IF effective > baseValue THEN
        UO.Print("Magery has a positive modifier: " + CStr(effective - baseValue))
    END IF
END SUB

GetSkillValue и GetSkillCurrentValue возвращают обычные баллы, например 95.1. SkillVal использует десятые целым числом: 951. Не сравнивайте их с одним порогом без преобразования.

Clone this wiki locally