基于列表自展开的物品
前置知识
示例
1
定义列表数据
首先,我们需要为物品定义一个数据列表,用于存储物品的属性值。
这里我们创建一个名为 lores
的列表,每个元素都是物品的一个属性,例如物理攻击、暴击伤害、暴击率,并且每个属性值可以用随机数生成。
示例配置如下:
import:
module:
random: random
data:
lores:
- "物理攻击: " + random.int(100, 200)
- "暴击伤害: " + random.int(100, 200)
- "暴击率: " + random.int(10, 20)
这里,random.int(100, 200)
等语句表示每次生成该物品时,相关属性都会在指定范围内随机生成数值。
2
3
完整示例
在 AzureFlow/items/ 文件夹下,创建一个名为 ExpandLoreItem.yml
的文件,并写入如下内容:
import:
module:
random: random
data:
lores:
- "物理攻击: " + random.int(100, 200)
- "暴击伤害: " + random.int(100, 200)
- "暴击率: " + random.int(10, 20)
display:
material: golden_sword
name: '&6自定义属性武器'
lore:
- "物品属性:"
- "${lores}"
internal:
# 每个物品的唯一标识不一样,实际生成的值与你的物品可能不一样
uuid: 8fa8dc36-3a9b-4e10-8145-d7eacfa2370f
alias: [expand_lore_item]
保存文件后,回到服务器,输入 af reload
重载插件,再输入 af get expand_lore_item
即可获得该物品。
效果说明
只需在 display.lore
使用 ${lores}
,列表中的内容会自动一行一属性展示,无需手动编写每一行。
这样可以极大地简化多属性物品的制作流程。
总结
通过上述方法,可以轻松实现物品属性的自动展开,让自定义物品更具丰富表现力。
你还可以根据需要,扩展 lores
列表的内容,实现更多属性或效果展示。
如需更复杂的逻辑,比如属性增减、条件显示,也可以在 data
或 action
配置中结合其他功能实现。
最后更新于