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
或全局状态 b
为 0
,它就会发出信号。这样就能让发射器方块持续充能,直到 a
和 b
都变成 1
。
当 a
和 b
两个全局变量都变为 1
时,发射器方块便会停止产生红石信号,活塞门也就随之打开了。