Skill Catalog - LIHACHTETAN/ClassicUO-BadNewbie-BasicIDE GitHub Wiki
Навыки: имена и номера
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. Не сравнивайте их с одним порогом без преобразования.