触发器

触发器是组件的一种,必须写在components组件或component_groups组件组内。

制作

在制作前,请一定要分清触发器与滤器!滤器不仅可以用在实体行为中还可以用在,触发器虽然是组件但目前均是针对实体行为的。
滤器:测试指定的测试项目及比较方式是否符合定义的条件,符合滤器则通过。
触发器:会因为游戏指定的一系列情况下被触发,触发后会执行触发器内的滤器,滤器通过会执行定义的事件给指定的目标,然后结束,滤器不通过将会直接结束。如若不定义滤器,将会直接执行事件。
但无论是滤器还是触发器也都是附加包特色之一,都有复杂的逻辑。

格式

  • event:(字符串)该触发器被触发后要执行的事件的名称。
  • filters:(对象)可选。一个滤器。如果指定了,则只有在该滤器通过的情况下才会执行event中指定的事件。
  • target:(字符串)可选。执行该事件的目标。默认为self,代表该实体自身。可选值推测与滤器中的subject一致,即:
    • self:调用此测试的实体(即使用了该触发器的实体)。
    • other:除调用者以外的,参与交互的实体。该实体具体是哪个,由该触发器的种类决定。可能没有这个实体。
    • parent:调用者的父母。可能没有这个实体。
    • player:参与交互的玩家。该玩家具体是哪个,由该触发器的种类决定。可能没有这个实体。
    • target:调用者的目标实体。通常是该实体正在追杀的目标。可能没有这个实体。

示例

{
    "minecraft:on_death": {//组件,实体死亡时触发
        "event": "minecraft:start_death",//事件名字
        "target": "self"//目标:自己
    }
}

更多示例以及触发情况的组件请看↓提示(一定要配合使用)

触发情况

*请前往API文档>其它文档>触发器 查看