仿原神强化
功能介绍
基于物品处理模块,可鉴定随机主词条与不同数量的副词条。每次升级主词条递增,每 4 级随机新增或强化副词条。词条数值分 4 档随机提升,消耗材料与成功率随等级变化。
物品鉴定
使用指令获取物品,获取时会进行 表达式解析 与 变量处理。
/cxi give <玩家> <物品库> <物品> <变量库> <数量>示例
/cxi give Yeezhi mm 血月之戒 词条库 1效果展示


配置文件
yaml
# Powered by core #
# https://www.goodmc.cn/ #
# 配置介绍:
# 在首次强化时会添加附加数值,例如 (+10)。后续升级将根据基础值,增加括号内的数值。
#
# 使用时请将该强化方案添加至 GUI 配置
# 相关表达式文档:
# - 操作器文档: https://www.goodmc.cn/YeeCore/expression/操作器.html
# - 数值解析文档: https://www.goodmc.cn/YeeCore/expression/数值.html#数值解析
title: "§3强化页面"
layout:
- "#########"
- "# #"
- "# A B #"
- "# #"
- "#########"
# 变量库
entry:
"物品目标": "${物品目标('chest', '20')}"
"当前等级": "${int(数值解析(获取物品名(),'rb1'))}"
"强化等级": "${{当前等级}+1}"
"物品名-初始值": "${获取NBT('初始值.物品名')}"
"攻击力-索引": "${词条定位('攻击力')}"
"攻击力-词条": "${词条获取({攻击力-索引})}"
"攻击力-初始值": "${数值解析('{攻击力-词条}','num1')}"
"攻击力-附加值": "${数值解析('{攻击力-词条}','rb1')}"
"暴击几率-索引": "${词条定位('暴击几率')}"
"暴击几率-词条": "${词条获取({暴击几率-索引})}"
"暴击几率-初始值": "${数值解析('{暴击几率-词条}','num1')}"
"暴击几率-附加值": "${数值解析('{暴击几率-词条}','rb1')}"
"暴击伤害-索引": "${词条定位('暴击伤害')}"
"暴击伤害-词条": "${词条获取({暴击伤害-索引})}"
"暴击伤害-初始值": "${数值解析('{暴击伤害-词条}','num1')}"
"暴击伤害-附加值": "${数值解析('{暴击伤害-词条}','rb1')}"
"成功率": |-
if({强化等级}>=15){
return 0.5;
}
if({强化等级}>=10){
return 0.75;
}
if({强化等级}>=5){
return 0.9;
}
return 1.0;
"掉级等级": "${{当前等级}-1}"
"掉级几率": |-
if({强化等级}>=15){
return 0.8;
}
if({强化等级}>=10){
return 0.6;
}
if({强化等级}>=5){
return 0.5;
}
return 0;
# 每次强化增加5%数值
"强化加成": 0.05
function:
"玻璃板":
char: "#"
display:
material: BLACK_STAINED_GLASS_PANE
name: " "
"槽位":
char: "A"
display:
material: ORANGE_STAINED_GLASS_PANE
name: "§f槽位 (请放入装备)"
slot:
# 允许强化的装备
match:
- "match.name('测试武器')"
- "match.name('帝国立法者圣剑')"
"强化":
char: "B"
display:
material: ANVIL
name: "&f开始强化"
lore:
- ""
- "§7成功 &f{当前等级} &f→ &a{强化等级} &f(${{成功率}*100}%)"
- "§7失败 &f{当前等级} &f→ &c${{掉级几率}>0 ? '{掉级等级}' : '@hide'} &f(${{掉级几率}*100}%)"
- "§7属性"
# 攻击力词条不存在时使用@hide隐藏词条
- " &f- &f攻击力: &e{攻击力-附加值} &f→ &a${{攻击力-初始值}==0 ? '@hide' : {攻击力-初始值}*{强化加成}*{强化等级}}"
- " &f- &f暴击几率: &e{暴击几率-附加值} &f→ &a${{暴击几率-初始值}==0 ? '@hide' : {暴击几率-初始值}*{强化加成}*{强化等级}}"
- " &f- &f暴击伤害: &e{暴击伤害-附加值} &f→ &a${{暴击伤害-初始值}==0 ? '@hide' : {暴击伤害-初始值}*{强化加成}*{强化等级}}"
- ""
- "&7强化需求"
- "{demand-desc}"
# 强化需求
demand:
- "money 10000"
# 增加额外需求
demand-rules:
- condition:
- "{当前等级}>=5"
demand:
- "money 50000"
- "mm 强化材料 5"
- condition:
- "{当前等级}>=10"
demand:
- "money 100000"
- "mm 强化材料 10"
- condition:
- "{当前等级}>=15"
demand:
- "money 150000"
- "mm 强化材料 15"
entry:
强化结果: "${random()<{成功率}}"
掉级结果: "${!{强化结果} && random()<{掉级几率}}"
rules:
# 等级限制
- condition:
- "{当前等级}>=20"
action:
- "msg('{prefix}§7已达强化等级上限')"
break: true
# 强化掉级
- condition:
- "{掉级结果}"
action:
- "设置物品名('{物品名-初始值} §f(+{掉级等级})')"
- "词条设置(数值操作('{攻击力-词条}','rb1={攻击力-初始值}*{强化加成}*{掉级等级}'),{攻击力-索引})"
- "词条设置(数值操作('{暴击几率-词条}','rb1={暴击几率-初始值}*{强化加成}*{掉级等级}'),{暴击几率-索引})"
- "词条设置(数值操作('{暴击伤害-词条}','rb1={暴击伤害-初始值}*{强化加成}*{掉级等级}'),{暴击伤害-索引})"
- sound('BLOCK_ANVIL_BREAK')
- msg('{prefix}§7强化失败,装备已将至{掉级等级}级')
break: true
# 强化失败
- condition:
- "!{强化结果}"
action:
- sound('BLOCK_ANVIL_BREAK')
- msg('{prefix}§7强化失败')
break: true
# 初次强化
- condition:
- "{当前等级}==0"
action:
- "设置NBT('初始值.物品名',获取物品名())"
- "词条设置('{攻击力-词条} (+${{攻击力-初始值}*{强化加成}})',{攻击力-索引})"
- "词条设置('{暴击几率-词条} (+${{暴击几率-初始值}*{强化加成}})',{暴击几率-索引})"
- "词条设置('{暴击伤害-词条} (+${{暴击伤害-初始值}*{强化加成}})',{暴击伤害-索引})"
- "设置物品名(获取物品名()+' §f(+1)')"
- sound('BLOCK_ANVIL_LAND')
- msg('{prefix}§7强化成功')
break: true
# 强化升级
- condition:
- "{当前等级}>0"
action:
- "设置物品名('{物品名-初始值} §f(+{强化等级})')"
# 默认按基础值进行 5% 属性加成,可在变量库中配置每级不同的加成比例
- "词条设置(数值操作('{攻击力-词条}','rb1={攻击力-初始值}*{强化加成}*{强化等级}'),{攻击力-索引})"
- "词条设置(数值操作('{暴击几率-词条}','rb1={暴击几率-初始值}*{强化加成}*{强化等级}'),{暴击几率-索引})"
- "词条设置(数值操作('{暴击伤害-词条}','rb1={暴击伤害-初始值}*{强化加成}*{强化等级}'),{暴击伤害-索引})"
- "sound('BLOCK_ANVIL_LAND')"
- "msg('{prefix}§7强化成功')"
break: true
message:
slot_match_false: "§7物品无法强化"
money_false: "§7没有足够的金币进行强化"
points_false: "§7没有足够的点券进行强化"
variable_false: "§7没有足够的{0}§7进行强化"
material_false: "§7没有足够的 §r{0} §7进行强化"
purchase-limit_false: "§7已达到购买上限"
desc:
icon:
enough: §a✔§r
insufficient: §c✘§r
demand:
item: '§7[%icon%§7] §f%name% §r× %demand%'
money: '§7[%icon%§7] §f金币 §r× %demand%'
points: '§7[%icon%§7] §f点券 §r× %demand%'
currency: '§7[%icon%§7] §f%name% §r× %demand%'
state:
enough: "§3点击强化 §7[§a✔§7]"
insufficient: "§3点击强化 §7[§c✘§7]"
condition: "§c强化条件不足"yaml
entry:
主1: "§7暴击几率: §f4.7%"
主2: "§7暴击伤害: §f9.3%"
主3: "§7吸血几率: §f4.7%"
主4: "§7吸血倍率: §f9.3%"
主5: "§7伤害加成: §f9.3%"
主6: "§7攻击力: §f47"
主7: "§7生命上限: §f717"
主8: "§7生命加成: §f7.0"
主词条: "§主{主${random(8)+1}}"
# 数值表,为第1-4档数值
暴击几率-1: 2.7
暴击几率-2: 3.1
暴击几率-3: 3.5
暴击几率-4: 3.9
暴击几率: "§7暴击几率: §f{暴击几率-${random(4)+1}}%"
暴击伤害-1: 5.4
暴击伤害-2: 6.2
暴击伤害-3: 7.0
暴击伤害-4: 7.8
暴击伤害: "§7暴击伤害: §f{暴击伤害-${random(4)+1}}%"
攻击力-1: 14
攻击力-2: 16
攻击力-3: 18
攻击力-4: 19
攻击力: "§7攻击力: §f{攻击力-${random(4)+1}}"
攻击加成-1: 4.1
攻击加成-2: 4.7
攻击加成-3: 5.3
攻击加成-4: 5.8
攻击加成: "§7攻击加成: §f{攻击加成-${random(4)+1}}%"
生命上限-1: 209
生命上限-2: 239
生命上限-3: 269
生命上限-4: 299
生命上限: "§7生命上限: §f{生命上限-${random(4)+1}}"
生命加成-1: 4.1
生命加成-2: 4.7
生命加成-3: 5.3
生命加成-4: 5.8
生命加成: "§7生命加成: §f{生命加成-${random(4)+1}}%"
防御力-1: 16
防御力-2: 19
防御力-3: 21
防御力-4: 23
防御力: "§7防御力: §f{防御力-${random(4)+1}}"
副词条库: ${随机多文本(map('暴击几率', 10, '暴击伤害', 10, '攻击力', 10, '攻击加成', 10, '生命上限', 10, '生命加成', 10, '防御力', 10), 2+random(2),'-',false)}
副词条数: ${count(string.split('{副词条库}','-'))}
副词条1: |-
if({副词条数}<1){
return '@hide';
}
return '§副{' + string.split('{副词条库}','-')[0] +'}';
副词条2: |-
if({副词条数}<2){
return '@hide';
}
return '§副{' + string.split('{副词条库}','-')[1] +'}';
副词条3: |-
if({副词条数}<3){
return '@hide';
}
return '§副{' + string.split('{副词条库}','-')[2] +'}';
副词条4: |-
if({副词条数}<4){
return '@hide';
}
return '§副{' + string.split('{副词条库}','-')[3] +'}';yaml
血月之戒:
Id: 420
Display: '&c&l血月之戒'
Lore:
- '{主词条}'
- '§8§m───────────────'
- '§6副词条:'
- '{副词条1}'
- '{副词条2}'
- '{副词条3}'
- '{副词条4}'
- '§8§m───────────────'
- '§7血月套装'