Skip to content

仿原神强化

功能介绍

基于物品处理模块,可鉴定随机主词条与不同数量的副词条。每次升级主词条递增,每 4 级随机新增或强化副词条。词条数值分 4 档随机提升,消耗材料与成功率随等级变化。

物品鉴定

使用指令获取物品,获取时会进行 表达式解析变量处理

/cxi give <玩家> <物品库> <物品> <变量库> <数量>

示例

/cxi give Yeezhi mm 血月之戒 词条库 1

效果展示

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强化条件不足"
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血月套装'