States - Chunk7w/mappet GitHub Wiki

状态 是一种用于存储全局或各个玩家的数值数据的机制。状态可以在表达式中使用,并通过 /mp state 命令管理。

这是个非常强大的工具,你可以自由地使用它,来推动你的冒险地图的故事进程。

服务器状态必须使用 ~ 表示,单个玩家的状态,可以通过玩家目标选择器(如 @r),或者使用玩家的用户名、UUID 来进行访问。

示例

举个最基础的例子,打个比方,如果你有一张地图,地图里有一个大祭坛,需要让玩家进到里面去,但是为了打开祭坛的大门,他们必须在两个不同的地方激活两个拉杆。要做到这一点,你可以将两个拉杆连接到墙后的命令方块上:

  • 第一个命令方块:/mp state set ~ a 1
  • 第二个命令方块:/mp state set ~ b 1

对于大门而言,你可以使用简单的 2x2 大门(类似于这种),把它连接到发射器方块,发射器方块的表达式如下:

!state("a", "~") || !state("b", "~")

这一表达式的大致作用是,如果全局状态 a 或全局状态 b0,它就会发出信号。这样就能让发射器方块持续充能,直到 ab 都变成 1

ab 两个全局变量都变为 1 时,发射器方块便会停止产生红石信号,活塞门也就随之打开了。