Skip to content

配置

标签
ItemSystem
字数
1812 字
阅读时间
9 分钟

config.yml

yaml
options:
  thread-pool-size: 4
  debug: false
list:
  pre-page-size: 10
  up: '&d&l&m======================================='
  format: '&a{order} &b -> &6{key} &5- &b{name}'
  left: '  &b<-'
  page-info: '      &e{current}&5/&e{total}      '
  right: '&b->  '
  down: '&d&l&m======================================='

global/global.yml

yaml
default-prefixes:
  key: "default-prefixes"
  type: map
  粗糙: "{randomObj [ '粗糙的'  '破损的'  '破碎的'  '破残的'  '破坏的' ]}"
  精良: "{randomObj [ '精良的'  '精贵的'  '精美的'  '精明的'  '精密的' ]}"
  稀有: "{randomObj [ '稀有的'  '珍贵的'  '珍稀的'  '珍奇的'  '珍藏的' ]}"
  优秀: "{randomObj [ '优秀的'  '优质的'  '优雅的'  '优良的'  '优明的' ]}"
  史诗: "{randomObj [ '史诗的'  '伟大的'  '完美的'  '燃烧的'  '冰冻的' ]}"
  传说: "{randomObj [ '传说的'  '神话的'  '战争的'  '狂野的'  '辐射的' ]}"
default-suffixes:
  key: "default-suffixes"
  type: weight
  values:
    - 100: "快速"
    - 100: "平衡"
    - 100: "正义"
    - 50: "保护"
    - 50: "健康"
    - 50: "强力"
    - 25: "恐怖"
    - 25: "地狱"
    - 12: "灾厄"
suffix-effects:
  key: "suffix-effects"
  type: map
  快速:
    - "&f>> &b攻击速度: &c+0.5"
    - "&f>> &b轻羽: &c+50(%)"
  平衡:
    - "&f>> &b速度: &c+200"
  正义:
    - "&f>> &6攻击: &c+10&7(%)"
  保护:
    - "&f>> &f防御力: &c+10&7(%)"
    - "&f>> &6攻击: &c+5&7(%)"
  健康:
    - "&f>> &2生命值: &c+10&7(%)"
    - "&f>> &2生命恢复值: &c+20&7(%)"
  强力:
    - "&f>> &6攻击: &c+20&7(%)"
    - "&f>> &d暴击几率: &c+10&7(%)"
  恐怖:
    - "&f>> &6攻击: &c+22.5&7(%)"
    - "&f>> &d暴击几率: &c+15&7(%)"
    - "&f>> &d暴击伤害: &c+30&7(%)"
  地狱:
    - "&f>> &6攻击: &c+25&7(%)"
    - "&f>> &d暴击几率: &c+20&7(%)"
    - "&f>> &d暴击伤害: &c+40&7(%)"
  灾厄:
    - "&f>> &4攻击: &c+30&7(%)"
    - "&f>> &d暴击几率: &c+25&7(%)"
    - "&f>> &d暴击伤害: &c+50&7(%)"
    - "&f>> &b速度: &c+250"

items/example.yml

yaml
ExampleItem:
  process:
    #声明一个无参数函数,用于随机颜色
    #你也可以这么写:
    ##                        这个block是一段函数块,可以当成一个无参数有返回值的函数来使用
    #- run: "set randomColor to block { randomObj [ '&a'  '&b'  '&c'  '&d'  '&e'  '&f'  '&1' '&2' '&3' '&4' '&5' '&6' '&7' '&8' '&9'] }"
    #之后这么调用: invoke &randomColor
    ## 这个`randomColor`是变量名,可以随意取名,但是不能重复
    - key: randomColor
      #元: define (定义),理解为定义一个变量
      #如果不填meta,则会被默认为元 define
      meta: define
      #类型: 随机
      type: random
      #不缓存,每次都重新生成一个随机颜色
      cache: false
      #不保存到NBT,供自动更新时使用(你存这玩意干啥)
      save: false
      values:
        [
          "&a",
          "&b",
          "&c",
          "&d",
          "&e",
          "&f",
          "&1",
          "&2",
          "&3",
          "&4",
          "&5",
          "&6",
          "&7",
          "&8",
          "&9",
        ]
    #处理品质相关
    ## 这个`quality`是变量名,可以随意取名,但是不能重复
    - key: quality
      #类型: 权重
      type: weight
      #一个权重变量,用于随机品质
      values:
        - 200: "粗糙"
        - 100: "精良"
        - 50: "稀有"
        - 25: "优秀"
        - 12: "史诗"
        - 6: "传说"
    ##                         Map模板,用于快速构建map
    - run: "set 品质数据模板 = mapTemplate [ '颜色' '评分' '材质' ]"
    - key: 品质数据Map
      meta: define
      type: map
      #这里的值是品质对应的数据,之后会用模板 [ '颜色' '评分' '材质' ]  来构造出品质数据
      #如果你不会用Map模板,也可以像正常map写法一样写出来
      #例如:
      #粗糙:
      ##  颜色: &8
      ##  评分: 10
      ##  材质: WOOD_SWORD
      粗糙: ["&8", "10", "WOOD_SWORD"]
      精良: ["&e", "20", "STONE_SWORD"]
      稀有: ["&b", "30", "IRON_SWORD"]
      优秀: ["&a", "40", "GOLD_SWORD"]
      史诗: ["&5", "50", "DIAMOND_SWORD"]
      传说: ["&6", "60", "DIAMOND_SWORD"]
    #下面这段是声明品质相关的变量
    - run: |-
        def list = &品质数据Map get &quality
        def 品质数据 = mapOf with &品质数据模板 &list
        def 品质颜色 = &品质数据 get '颜色'
        def 品质评分 = &品质数据 get '评分'
        def 材质 = &品质数据 get '材质'
        def 品质 = join [ &品质颜色 , &quality ]

    #处理前缀相关
    ##  导入全局前缀元数据
    - global: default-prefixes
    #下面这段是声明前缀相关的变量
    - run: |-
        def 前缀颜色 = &randomColor
        def prefix = &default-prefixes get &quality 
        def 前缀 = join [ &前缀颜色 &prefix ]

    #处理后缀相关
    #导入全局后缀元数据
    - global: default-suffixes
    #导入全局后缀效果元数据
    - global: suffix-effects
    #下面这段是声明后缀相关的变量
    - run: |-
        def suffix to &default-suffixes 
        def 后缀颜色 = &randomColor  

        def 后缀 to join [ &后缀颜色 &suffix ] 
        def 后缀效果 to join &suffix-effects get &suffix by '\n'
    #处理强度相关
    #声明强度相关的变量
    - run: |-
        def 强度 = random 0 to 1
        def 强度展示 = format calculate '{&强度} * 100' '#.##'
        def 强度条 = createBar [ empty to '&8|' , fill to '&a|' , length to 20 , percent to &强度 ]

    #计算总评分            转为整数
    - run: "def 总评分 to type int calculate ' { &品质评分 } * {&强度} '"
    #材质
    - material: "{&材质}"
    - can-craft: "false"
    #发光
    - glow-color: "{&品质颜色}"
    ## 展示名
    - display: "{&前缀} &9青钢剑 {&后缀}"
    ## 描述, 你可以像下面一样分段写:
    #- lore:
    ##  - "第一段"
    #- run: 'def a = 1'
    #- lore:
    ## - "第二段"
    ## - "{&a}"
    - lore:
        - "&f&m─&7&m─────────&f&m─&f介绍&f&m─&7&m─────────&f&m─"
        - ""
        - "&f>> &7品质: {&品质}             &7评分: &c{&总评分}"
        - "&e由青钢锻造而成,是一把强大的武器。"
        - ""
        - "&f&m─&7&m─────────&f&m─&f属性统计&f&m─&7&m─────────&f&m─"
        - ""
        - "&f>> &7攻击 &c+{ calculate '10 * {&总评分}' }"
        - "&f>> &7攻击速度 &c+{ calculate '0.03 * {&总评分}' }"
        - "&f>> &7暴击几率 &c+{ calculate '0.01 * {&总评分}' }&7(%)"
        - "&f>> &7暴击伤害 &c+{ calculate '0.05 * {&总评分}' }&7(%)"
        - ""
        - "&f&m─&7&m─────────&f&m─&f后缀加成&f&m─&7&m─────────&f&m─"
        - ""
        - "{&后缀}&5:"
        - "{&后缀效果}"
        - ""
        - "&f&m─&7&m─────────&f&m─&f其它&f&m─&7&m─────────&f&m─"
        - ""
        - "&f>> &7<&8{syncNBT 'gem.0.name'}&7>"
        - "&f>> &7<&8{syncNBT 'gem.1.name'}&7>"
        - "&f>> &7<&8{syncNBT 'gem.2.name'}&7>"
        - ""
        - "&f&m─&7&m─────────&f&m─&f锻造信息&f&m─&7&m─────────&f&m─"
        - "&f>> &e强度: {&强度条} &8[{&强度展示}&8]"
        - "&f>> &e创建时间: &7{ papi '%pou_run_time.js::getTime%' }"
        - ""
        - "&f&m─&7&m─────────&f&m─&f其它&f&m─&7&m─────────&f&m─"
        - ""
        - "&f>> &e耐久: &7[&8{syncNBT '耐久.当前耐久'}&f/&8{syncNBT '耐久.总耐久'}&7]"
        - ""
        - ""
    #NBT
    - nbt:
        gem:
          0:
            name: 空槽位
          1:
            name: 空槽位
          2:
            name: 空槽位
        耐久:
          总耐久: "{calculate '{&总评分} * 20'}"
          当前耐久: "{calculate '{&总评分} * 20'}"
    - flags:
        - "HIDE_ATTRIBUTES"
  #是否自动更新
  auto-update: true
  #自动更新时,不需要更新的NBT路径
  #如: diaplay.lore
  locked-nbt-keys:
    #防止宝石数据被刷掉
    - "gem"

贡献者

The avatar of contributor named as Glomzzz Glomzzz
The avatar of contributor named as Glom-c Glom-c

页面历史