跳到主要内容

钥匙系统

概述

TreasuresLite 使用物品特征匹配作为钥匙系统。玩家需要手持符合条件的物品才能打开宝箱。钥匙检查基于手持物品的材质、名称、Lore、CustomModelData 等属性进行多维度匹配。

这不是虚拟钥匙,而是直接检查玩家手上的物品是否满足条件。

配置位置

钥匙配置在宝箱文件的 settings.open_key 节点下:

settings:
open_key:
deny: |-
tell inline "没有足够的钥匙 {{ &has_amount }} / 10"
key:
# 特征检查
- check:
# 材质完全匹配
material: "paper"
# 名字判断包含
name: "钥匙"
# lore 判断包含
lore:
- "这是个钥匙"
custom_model_data: 1
amount: 10
# 是否消耗,默认 true
consume: true
- check:
custom_model_data: 10086
consume: false

配置说明

deny

当玩家手持物品不满足任何钥匙条件时执行的 Kether 脚本。可用变量:

变量说明
&has_amount玩家手持物品的数量
&consume是否需要消耗

key 列表

key 是一个列表,每个条目定义一种可接受的钥匙。玩家手持物品只要匹配其中任意一个条目即可打开宝箱。

check 检查条件

配置项匹配方式说明
material完全匹配物品材质,如 paperdiamond
name包含匹配物品名称中包含指定文本即可
lore包含匹配物品 Lore 中任意一行包含列表中任意一项即可
custom_model_data完全匹配CustomModelData 值
amount数量检查需要的最低数量,默认 1

所有 check 条件都是可选的,只填写需要检查的项即可。填写的所有条件必须同时满足。

consume

是否消耗钥匙物品,默认 true。设为 false 则只检查不消耗。

不配置钥匙

如果宝箱文件中不写 settings.open_key 节点,则该宝箱无需钥匙即可直接打开。

多钥匙示例

可以配置多种钥匙,满足任意一种即可开箱:

settings:
open_key:
deny: |-
tell "你没有合适的钥匙"
key:
# 钥匙方案一:10 个纸质钥匙,消耗
- check:
material: "paper"
name: "钥匙"
amount: 10
consume: true
# 钥匙方案二:VIP 令牌,不消耗
- check:
custom_model_data: 10086
consume: false