菜单
全部是原版箱子界面,不需要资源包。每个界面一个文件,在 menus/,修改后 /sv admin reload。
| 文件 | 界面 | 打开方式 |
|---|---|---|
profile.yml | 角色信息 | /sv |
class-select.yml | 选择职业 | /sv class |
class-confirm.yml | 确认选择职业 | 选择职业后(class-select.confirm: true) |
subclass-select.yml | 转职 | 达到子职业等级后 /sv class |
skills.yml | 技能与技能槽 | /sv skills |
attributes.yml | 属性点 | /sv attributes |
skill-tree-select.yml | 选择技能树 | /sv tree(职业有多棵树时) |
skill-tree.yml | 技能树 | /sv tree <技能树> |
共同选项
title: '&8技能 · {class}' # 标题,可用变量
rows: 6 # 行数 1-6
fill: {material: BLACK_STAINED_GLASS_PANE, name: ' '} # 空格填充,不要可以删掉或 enabled: false
sounds:
open: 'BLOCK_ENCHANTMENT_TABLE_USE:0.4:1.6' # 音效:音量:音调,留空 = 不播放
click: 'UI_BUTTON_CLICK:0.5:1.2'
success: 'ENTITY_PLAYER_LEVELUP:0.5:1.6'
fail: 'ENTITY_VILLAGER_NO:0.5:1'
texts: {...} # 界面里用到的各种文字
buttons: {...} # 固定按钮
格子写法:4、10-16、10-16,19-25。
按钮
buttons:
points:
slot: 4 # 或 slots: '27-35'
material: NETHER_STAR # 支持 材质:模型数据,也可以写 custom-model-data / item-model
name: '&e技能点:&f{skill_points}'
lore: ['&7升级技能需要技能点']
glow: true
head: '{player}' # 材质 PLAYER_HEAD 时显示谁的头
permission: '' # 有这个权限才显示
amount: 1
actions: ['open: attributes']
可用动作:
| 动作 | 说明 |
|---|---|
close | 关闭 |
back | 回上一个界面 |
open: profile|class|class-list|subclass|skills|attributes|skilltree | 打开界面 |
page: next|previous | 翻页 |
scroll: up|down|left|right | 技能树滚动 |
confirm | 确认选择职业 |
reset-attributes / reset-skills / reset-tree | 重置(消耗对应的重置次数) |
unselect | 取消技能选中 |
command: 指令 / console: 指令 | 玩家 / 后台执行指令 |
message: 文字 / sound: 音效 | 消息 / 音效 |
各界面重点
选择职业 class-select.yml
class-slots:职业自动排列的格子,按职业文件order排序。fixed-slots:{天罚雷狱仙: 4}指定某个职业的位置。class-item:职业图标的名称与介绍,{lore}是职业介绍、{status}是当前 / 未解锁 / 可选择。- 只显示
options.display: true的职业;需要权限的职业对没权限的玩家显示「尚未解锁」。
技能 skills.yml
skill-slots:技能的格子,按职业文件skills:的顺序放入;职业文件skills.<技能>.slot可以指定格子;超过时自动翻页。bind-slots:技能槽的格子,依序对应职业的技能槽 1、2、3…skill-item.states.locked:未解锁技能的样子;hide-locked-icon: true时改用 locked 的材质。slot-item.empty / locked / bound:空的、锁住的、已装备的技能槽。
属性 attributes.yml
attribute-slots:属性的格子;属性文件写了slot的放在指定位置。shift-amount:Shift+左键一次加几点。stat-names:属性显示名称(也用在职业介绍的{stat_lines})。
技能树 skill-tree.yml
view-rows:显示节点的行数,其余行放按钮;界面可以用箭头按钮滚动(skill-tree-scroll-step-x/y)。node-item:节点的名称与介绍;state-material-for列出的状态改用states里的材质。- 路径与节点的图标也可以在技能树文件的
display:按状态设定,见技能树。
变量
角色界面等可以使用 {player} {class} {class_id} {level} {max_level} {exp} {needed} {exp_percent} {exp_bar} {class_points} {skill_points} {attribute_points} {attribute_realloc} {skill_realloc} {tree_realloc} {global_tree_points} {mana} {max_mana} {mana_name} {stamina} {max_stamina} {health} {boost} {stat:属性ID},以及 PlaceholderAPI 变量。每个文件开头的注释列出该界面专用的变量。
消息
所有聊天消息在 messages.yml,例如 level-up、class-chosen、skill-cooldown、skill-no-mana、exp-hologram(经验全息字)。支持 & 颜色与 MiniMessage。