战利品表谓词

来自Minecraft Wiki
跳转至: 导航搜索
Move arrows.svg
此页面被建议移动谓词讨论

注意: 中文Wiki的移动页面需要在讨论批准后进行,大量移动由机器人完成。
请不要使用复制粘贴来移动页面,因为这样会丢失所有的编辑历史。

Information icon.svg
此特性为Java版独有。

战利品表谓词(Predicate)是技术性JSON文件,被用作战利品表、命令/execute if predicatepredicate目标选择器参数的条件。谓词是数据包的一部分。

JSON结构[编辑 | 编辑源代码]

  • 根标签。
    •  condition: 该条件的ID
    • 该条件的其他部分,指定的部分在下面列出。

以下为 condition的可能取值及其相关的额外内容:

  • alternative - 将该列表中的每一个参数项用"or”连接起来。
    •  terms: 一个由条件组成的列表,每个条件在判断时以“or”连接。
      • 一个条件。
  • block_state_property - 检查方块状态的属性。
    •  block: 一个方块ID。当方块不匹配时,测试不通过。
    •  properties: (可选)方块属性和其值的一个映射,所有的值均为字符串。当方块不匹配时,测试不通过。
  • entity_properties - 实体的测试属性。
    •  entity: 指定实体检查相应的条件。设置成 this将使用死亡的实体,或是破坏方块、打开容器或获取进度的玩家,killer使用杀手,而killer_player使用作为杀手的玩家。
    •  predicate: 应用于位置的战利品表谓词,和进度使用一样的结构。
  • entity_scores - 测试实体的记分板分数。
    •  entity: 指定实体检查相应的条件。设置成 this将使用死亡的实体,或是破坏方块、打开容器或获取进度的玩家,killer使用杀手,而killer_player使用作为杀手的玩家。
    •  scores: 待检查的分数。所有指定的分数通过测试时,条件通过。
      •  一个记分项: 将记分项名称作为键名,分数刚好满足其值时,条件通过。
      •  一个记分项: 将记分项名称作为键名,分数达到下面最大值和最小值的范围时,条件通过。
        •  min: 最小分数。
        •  max: 最大分数。
  • inverted - 把参数项中条件的判断结果取反。
    •  term: 待取反的条件。
  • killed_by_player - 测试 killer_player实体是否可用。
    •  inverse: 如果killer_player不可用,测试通过。
  • location_check - 检查是否匹配当前位置。
    •  offsetX:可用的位置偏移。
    •  offsetY:可用的位置偏移。
    •  offsetZ:可用的位置偏移。
    •  predicate: 应用在实体上的战利品表谓词,使用与进度一致的结构。
  • random_chance - 测试一个0.0–1.0之间的随机数是不是小于给定值。
    •  chance: 0.0–1.0之间取得的成功率。
  • random_chance_with_looting - 测试一个0.0–1.0之间的随机数是不是小于给定值,受killer实体身上的抢夺等级影响。
    •  chance: 基础成功率。
    •  looting_multiplier: 对基础成功率的调整,公式是chance + (抢夺等级 * looting_multiplier)
  • reference - 测试另一个被引用的条件(谓词)是否通过。
    •  name: 被引用的条件(谓词)的命名空间ID。循环引用会导致解析失败。
  • survives_explosion -(1/爆炸半径)的概率返回true。
  • table_bonus - 以附魔等级为索引,从表中挑选概率通过。
    •  enchantment: 附魔的id。
    •  chances: 从0开始索引,获取相应附魔等级的概率表。
  • time_check - 检查当前时间。
    •  value: 以刻为单位的时间值。
    •  value
      •  max: 最大值。
      •  min: 最小值。
    •  period: 若存在,则会用当前游戏时间除以该值所得的余数来与value匹配。(比如,若period被设置为100,value被设置为1,则时间为1/101/201……时通过)。
  • weather_check - 检查当前的天气状态。
    •  raining: 如果为真,仅在下雨时,该条件测试通过。
    •  thundering: 如果为真,仅在雷暴天气时,该条件测试通过。

历史[编辑 | 编辑源代码]

Java版
1.1519w38a向数据包中加入了战利品表谓词。