创建一个自定义技能

示例配置

示例配置如下:

# 能力的ID就是 .yml 文件的名称
# 例如 mining.yml 的能力ID就是 mining
# 你可以将能力的配置文件放置到 effects 文件夹下的任意位置
# 包括放置到子文件夹里面
# _example.yml 文件不会加载

name: 挖掘 # 显示给玩家的技能名称
description: 通过挖掘方块赚得技能经验值 # 技能描述

# 技能GUI内的设置
gui:
  enabled: true # 可选,该属性是否在GUI内显示

  icon: player_head texture:eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvZmIxYzI2OGVmZWM4ZDdkODhhMWNiODhjMmJmYTA5N2ZhNTcwMzc5NDIyOTlmN2QyMDIxNTlmYzkzY2QzMDM2ZCJ9fX0=

  lore:
    - "&f增加属性:"
    - "&8» &r%ecoskills_defense_name%"
    - "&8» &r%ecoskills_ferocity_name%"
    - "&f"
    - "&f解锁能力:"
    - "&8» &r&6%ecoskills_versatile_tools_name% %ecoskills_versatile_tools_numeral%"
    - "   %ecoskills_versatile_tools_description%"
    - "&8» &r&6%ecoskills_spelunking_name% %ecoskills_spelunking_numeral%"
    - "   %ecoskills_spelunking_description%"
    - "&8» &r&6%ecoskills_dynamic_mining_name% %ecoskills_dynamic_mining_numeral%"
    - "   %ecoskills_dynamic_mining_description%"

  position:
    row: 3
    column: 3

hide-before-level-1: true # 如果该技能等级是0的情况下,是否隐藏该技能


# # 有两种指定各个等级需要的经验值的方案:
#  1. 一个没有等级上限的等级计算公式
#  2. 一个指定各个等级所需经验值的列表

# 如果是第一种方案,需要使用以下两个选项
# xp-formula: (2 ^ %level%) * 25
# 这个选项代表等级计算公式,其中 %level% 代表对应的等级
# max-level: 10 
# 这个选项代表等级上限,可以不设置,不设置的话就是没有上限

# 这里使用了第二种方案指定各个技能等级需要的经验值
xp-requirements:
  - 50
  - 125
  - 200
  - 300
  - 500
  - 750
  - 1000
  - 1500
  - 2000
  - 3500
  - 5000
  - 7500
  - 10000
  - 15000
  - 20000
  - 30000
  - 50000
  - 75000
  - 100000
  - 200000
  - 300000
  - 400000
  - 500000
  - 600000
  - 700000
  - 800000
  - 900000
  - 1000000
  - 1100000
  - 1200000
  - 1300000
  - 1400000
  - 1500000
  - 1600000
  - 1700000
  - 1800000
  - 1900000
  - 2000000
  - 2100000
  - 2200000
  - 2300000
  - 2400000
  - 2500000
  - 2600000
  - 2750000
  - 2900000
  - 3100000
  - 3400000
  - 3700000
  - 4000000
  - 5000000


# 技能等级提升后的奖励
# 你可以选择给予玩家属性或者解锁能力
# 属性和能力都有各自的等级,因此你还需要提供提升属性或者能力的等级
# 你也可以指定这个奖励开始和结束的等级值

# 一个奖励示例:
# - reward: strength # 属性或者能力ID
#   levels: 1 # 等级
#   start-level: 10 # 几级开始等级提升给予这个奖励
#   end-level: 20 # 几级开始等级提升不再给予这个奖励

rewards:
  - reward: defense
    levels: 2

  - reward: ferocity
    levels: 1
    start-level: 15

  - reward: versatile_tools
    levels: 1

  - reward: spelunking
    levels: 1
    start-level: 10

  - reward: dynamic_mining
    levels: 1


# 等级提升时执行的效果
# 使用 %level% 来表示技能等级的变量符
# 如果你想要这个效果只在某个等级或者等级范围时有效,可以按下面格式添加一个新的选项
# require: %level% == 20 或者 require: %level% < 50
level-up-effects:
  - id: give_money
    args:
      amount: 1000 * %level%


# 技能描述中使用的变量符
# 在描述中通过 %key% 格式使用它们,例如这里就是 %money% 和 %blocks%
placeholders:
  money: "%level% * 0.4"
  blocks: "ceil(10 - %level% / 10)"

# 等级奖励信息
# 等级提升后聊天框显示的内容
# 同时也是节能GUI内 %rewards% 变量符的内容

# 开始的数字代表的是开始显示这个等级奖励信息的等级
# 当检测到有另外一个等级可用时(例如10级将会显示这里设置的10)将会替代之前可用的信息
reward-messages:
  1:
    - " &8» &r&f+2 %ecoskills_defense_name%"
    - " &8» &r&6%ecoskills_versatile_tools_name% %ecoskills_versatile_tools_numeral%"
    - "    %ecoskills_versatile_tools_description%"
    - " &8» &r&6%ecoskills_dynamic_mining_name% %ecoskills_dynamic_mining_numeral%"
    - "    %ecoskills_dynamic_mining_description%"
  10:
    - " &8» &r&f+2 %ecoskills_defense_name%"
    - " &8» &r&6%ecoskills_versatile_tools_name% %ecoskills_versatile_tools_numeral%"
    - "    %ecoskills_versatile_tools_description%"
    - " &8» &r&6%ecoskills_spelunking_name% %ecoskills_spelunking_numeral%"
    - "    %ecoskills_spelunking_description%"
    - " &8» &r&6%ecoskills_dynamic_mining_name% %ecoskills_dynamic_mining_numeral%"
    - "    %ecoskills_dynamic_mining_description%"
  15:
    - " &8» &r&f+2 %ecoskills_defense_name%"
    - " &8» &r&f+1 %ecoskills_ferocity_name%"
    - " &8» &r&6%ecoskills_versatile_tools_name% %ecoskills_versatile_tools_numeral%"
    - "    %ecoskills_versatile_tools_description%"
    - " &8» &r&6%ecoskills_spelunking_name% %ecoskills_spelunking_numeral%"
    - "    %ecoskills_spelunking_description%"
    - " &8» &r&6%ecoskills_dynamic_mining_name% %ecoskills_dynamic_mining_numeral%"
    - "    %ecoskills_dynamic_mining_description%"

# 经验值获取方法
# 一个获取方法配置由 trigger,multiplier,conditions,filters 组成
# multiplier 加倍触发器的触发器属性中的值,加倍后的值就是获得的经验值
xp-gain-methods:
  - trigger: break_block
    multiplier: 0.5
    filters:
      blocks:
        - netherrack

  - trigger: break_block
    multiplier: 1
    filters:
      blocks:
        - stone
        - diorite
        - granite
        - andesite
        - cobblestone

# 获得技能经验值需要满足的条件
conditions: [ ]

最后更新于