Skip to content

基础值强化

功能介绍

基于武器原词条进行强化。支持强化掉级,消耗材料随等级变化。提供强化结果与属性变化预览

效果展示

img_1img

配置文件

yaml


#          Powered by core          #
#        https://www.goodmc.cn/        #



title: "§3强化页面"
layout:
  - "#########"
  - "#       #"
  - "# A   B #"
  - "#       #"
  - "#########"
# 变量库
entry:
  "物品目标": "${物品目标('chest', '20')}"
  "当前等级": "${int(数值解析(获取物品名(),'rb1'))}"
  "强化等级": "${{当前等级}+1}"
  "物品名-初始值": "${获取NBT('初始值.物品名')}"
  "攻击力-当前值": "${数值获取('攻击力')}"
  "暴击几率-当前值": "${数值获取('暴击几率')}"
  "暴击伤害-当前值": "${数值获取('暴击伤害')}"
  "攻击力-初始值": "${获取NBT('初始值.攻击力',获取数值('攻击力'))}"
  "暴击几率-初始值": "${获取NBT('初始值.暴击几率',获取数值('暴击几率'))}"
  "暴击伤害-初始值": "${获取NBT('初始值.暴击伤害',获取数值('暴击伤害'))}"
  "成功率": |-
    if({强化等级}>=15){
      return 0.5;
    }
    if({强化等级}>=10){
      return 0.75;
    }
    if({强化等级}>=5){
      return 0.9;
    }
    return 1.0;
  "强化加成": |-
    if({强化等级}>=15){
      return 0.07;
    }
    return 0.05;
  "掉级等级": "${{当前等级}-1}"
  "掉级几率": |-
    if({强化等级}>=15){
      return 0.8;
    }
    if({强化等级}>=10){
      return 0.6;
    }
    if({强化等级}>=5){
      return 0.5;
    }
    return 0;
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(+{掉级等级})')"
          - "数值修改('攻击力','{攻击力-初始值}*(1+{强化加成}*{掉级等级})')"
          - "数值修改('暴击伤害','{暴击伤害-初始值}*(1+{强化加成}*{掉级等级})')"
          - "数值修改('暴击几率','{暴击几率-初始值}*(1+{强化加成}*{掉级等级})')"
          - sound('BLOCK_ANVIL_BREAK')
          - msg('{prefix}§7强化失败,装备已将至{掉级等级}级')
        break: true
      # 强化失败
      - condition:
          - "!{强化结果}"
        action:
          - sound('BLOCK_ANVIL_BREAK')
          - msg('{prefix}§7强化失败')
        break: true
      # 初次强化
      - condition:
          - "{当前等级}==0"
        action:
          - "设置NBT('初始值.物品名',获取物品名())"
          - "设置NBT('初始值.攻击力',数值获取('攻击力'))"
          - "设置NBT('初始值.暴击几率',数值获取('暴击几率'))"
          - "设置NBT('初始值.暴击伤害',数值获取('暴击伤害'))"
          - "设置物品名(获取物品名()+' §f(+1)')"
          - "数值修改('攻击力','n*1.05')"
          - "数值修改('暴击伤害','n*1.05')"
          - "数值修改('暴击几率','n*1.05')"
          - sound('BLOCK_ANVIL_LAND')
          - msg('{prefix}§7强化成功')
        break: true
      # 强化升级
      - condition:
          - "{当前等级}>0"
        action:
          - "设置物品名('{物品名-初始值} §f(+{强化等级})')"
          # 默认按基础值进行 5% 属性加成,可在变量库中配置每级不同的加成比例
          - "数值修改('攻击力','{攻击力-初始值}*(1+{强化加成}*{强化等级})')"
          - "数值修改('暴击伤害','{暴击伤害-初始值}*(1+{强化加成}*{强化等级})')"
          - "数值修改('暴击几率','{暴击几率-初始值}*(1+{强化加成}*{强化等级})')"
          - "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强化条件不足"