体力系统的宝箱示例

例子配置

自带体力系统的宝箱示例,机制基本上都可以自定义,可以配合其他体力插件的变量

#这个宝箱带有体力系统,当体力为 0 时无法开启该类型的宝箱
#体力每一分钟恢复 1 点,上限 10 点

content-name: "简单的例子(体力宝箱)"
#将 data object 对象数据储存至数据库
content-object-store: true
#将 data content 工作组数据储存至数据库
content-store: true

basic-entity:
  - entity-collision-size: 1
    entity-type: "SLIME"
    default-name: 宝箱
basic-block:
  - default-skull-name: model:grass
    type: CREEPER_HEAD
    default-name: 宝箱

generate-action:
  #设置所有玩家默认体力值为 10 点
  0:
    - condition:
        - check '${job:content *data *%player_name%的体力值 *int *-1}' == -1
      condition-is-met:
        - job:data content set %player_name%的体力值 10
  1:
    - condition:
        #判断当前时间戳是否大于玩家数据储存的时间戳,大于则宝箱显示可开启,小于则宝箱隐藏不可开启
        - check '${job:time *current}' >= '${job:player *data *宝箱开启冷却时间戳 *int}'
      condition-is-met:
        #上方判断满足,设置为显示状态,玩家可以看到该宝箱
        - job:visible self object true
        - job:hologram send self 宝箱全息
      condition-not-met:
        #上方判断不满足,设置为隐藏状态,玩家不可看到该宝箱
        - job:visible self object false

action-steps:
  宝箱:
    1:
      - condition:
          - check '${job:content *data *%player_name%的体力值 *int *0}' <= 0
        condition-is-met:
          - send "&f你的体力值无法开启该宝箱"
          #终止接下来的脚本运行
          - job:script stop
    2:
      - condition-is-met:
          - send "&f你开启了一个 &6宝箱 &f消耗 &c1 &f点体力,当前剩余 §6${job:content *data *%player_name%的体力值 *int *0}/10"
          - job:visible self object false
          #扣除 1 点体力值
          - job:data content take %player_name%的体力值 1
          - job:data player set 宝箱开启冷却时间戳 ${job:time *current *10}

          #掉落物品(模拟开宝箱奖励)
          - job:item drop o DIAMOND 1 #掉一个钻石
          - job:item drop o DIAMOND 3 ~@0.5 #50%概率多掉三个钻石
          - job:item drop o DIAMOND_SWORD 1 ~@0.1 #10%概率掉一把钻石剑
    type:
      - LEFT_CLICK

tasks:
  #每 60 秒恢复所有玩家 1 点体力值
  "体力系统-自动启动":
    type: "CONTENT"
    run-type: "CYCLE"
    run-time: 60
    run-auto: true
    #所有对象数据 (默认开启状态)
    #开启后任务触发会根据服务器内所属该对象数量,全部触发一遍
    #开启后可使用 object 对象相关的脚本
    object-data: false
    online-player-run: true
    action-steps:
      1:
        - condition:
            - check '${job:content *data *%player_name%的体力值 *int *0}' < 10
          condition-is-met:
            - job:data content add %player_name%的体力值 1

  "宝箱开启冷却任务-自动启动":
    type: "CONTENT"
    run-type: "CYCLE"
    run-time: 1
    run-auto: true
    online-player-run: true
    action-steps:
      1:
        - condition:
            - check '${job:player *visible *object}' == false
            - check '${job:time *current}' >= '${job:player *data *宝箱开启冷却时间戳 *int}'
          condition-is-met:
            - job:visible self object true
            - job:hologram send self 宝箱全息

hologram:
  high: 2.2
  update: true
  "宝箱全息":
    - "§f[ §6§l宝箱§f ]"
    - "§f宝箱状态: §a可开启"
    - "§f玩家体力 §6${job:content *data *%player_name%的体力值 *int *0} / 10 §c(-1)"

最后更新于