Skip to content

附加值强化

功能介绍

首次强化时附加额外数值(如 +10),后续升级基于基础值提升括号内数值。支持强化掉级,消耗材料随等级变化,提供强化结果与属性变化预览

效果展示

img_1img

配置文件

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强化条件不足"