命令方块入门
命令方块是《我的世界》基岩版世界中一种特殊类型的方块,以在游戏中使用控制台命令。 玩家从聊天中输入的命令也可以使用红石能量通过命令方块自动运行。
在本教程中,您将学习以下内容:
- 什么是命令方块,以及如何在游戏中访问它们。
- 如何通过命令方块使用命令。
- 如何串接多个命令方块构成命令方块链。
- 创建一个游戏循环,使玩家在执行一个动作后获得奖励。
在本指南中,我们将设置一个命令方块链,它将在设定位置寻找某种类型的块,然后在玩家将块放置在正确位置时获得奖励。
要求
- 命令简介
- 启用无敌模式的《我的世界》的世界。
设置地图
虽然命令方块可以在任何《我的世界》的世界中使用,但我们将使用平面世界来打造要给简洁的环境。
- 启动《我的世界》基岩版。
- 选择游戏,选择新建,然后选择创建新的世界。
- 在世界设置中,将世界类型设置为平坦。
- 在世界设置中,启用显示坐标。
- 在世界设置中,启用激活作弊。
- 选择创建。
如何获得命令方块
命令方块只能通过运行命令获得。
- 打开聊天。
- 输入以下命令:
/give @p command_block
。
您将在物品栏中看到已添加了一个命令方块。
如何使用命令方块
首先,将命令方块像其他方块一样放在地上。 从侧面看命令方块,您可能会注意到一个箭头。
放下时,这些箭头将始终指向玩家。 箭头显示了执行流程。 如图所示,左边的方块会先执行,然后是中间的命令方块,最后会执行右边的最后一个方块。
点击使用按钮(在 PC 上右键单击)打开命令方块用户界面。
命令方块用户界面
- 方块类型定义了这是什么类型的命令方块。 有三个选项:
- 脉冲命令方块在收到红石信号时被激活。
- 链式命令方块在指向它的命令方块被激活时激活。
- 重复命令方块会在每个游戏节拍激活一次(条件是有红石信号)。 《我的世界》每秒有 20 个节拍。
- 条件定义了命令方块何时执行其动作。 有两个选项:
- 有条件,仅在链中的前一个方块成功时才会执行。
- 无条件,无论前一个方块是否成功都会执行。
- 红石定义命令方块是否需要红石才能激活。 有两个选项:
- 需要红石,将命令方块设置为仅在具有红石能量时激活。
- 始终激活,将命令方块设置为始终激活,无论是否有红石。 对于脉冲命令方块,这会导致它们只运行一次,所以用处不大。 对于链式命令方块,默认情况下启用此选项。
- 第一个节拍执行,仅用于延迟重复命令方块。 如果启用,该命令将在方块获得能量后立即执行,然后等待该延迟之后再次运行。 如果禁用,则该命令会在延迟完成之后才第一次运行。
- 延迟节拍数是一个值,它定义了命令方块在获得红石能量后等待执行的时间。
设计游戏循环
命令方块的一个用例是允许创建者在《我的世界》中创建游戏循环。 一个简单的游戏循环可以是让完成一个动作的玩家获得奖励。 如果游戏循环是为玩家提供绿宝石以在特定位置放置钻石块,您可以分解所需的每个步骤:
- 检查在设定位置是否存在钻石块。
- 如果是,请检查玩家是否已获得奖励。
- 如果玩家没有获得奖励,给玩家一个绿宝石。
- 在给玩家一个绿宝石后,标记他们收到了奖励。
设置第一个命令方块
现在我们已经了解了命令方块的设置,我们来设置第一个方块来检测某一位置中的某种类型的方块。
- 在地面上靠近玩家角色的位置放置一个命令方块。
- 打开命令方块界面。
- 将方块类型设置为重复。
- 将红石设置为始终激活。
/testforblock
命令
/testforblock
命令在世界中的指定点查找特定方块。
/testforblock <position: x y z> <tileName: Block> [dataValue: int]
- position 是该命令在世界中寻找特定方块的坐标。 示例:`0 4 0``。
- tileName 是您要查找的方块类型。 示例:`diamond_block``。
- dataValue 是一个可选参数,用于处理同一方块的变化。 对于本教程,我们不需要使用它。
如果您按本教程进行操作,将进入一个平坦世界。 当您四处走动时,可在屏幕左上角看到玩家的位置。 让我们检查原点附近的方块。
- 在“命令输入”部分,输入以下内容:
/testforblock 0 4 0 diamond_block
。 - 关闭界面。
命令方块链
下一步,我们需要放置一个链式命令方块。 如上所述,链式命令方块在指向它们的方块被激活时执行。 确保按照显示箭头的图像放置方块。
设置 /testforblock
命令方块
- 在现有方块旁边放置另一个命令方块。 确保新的方块按照箭头的指向放置。
- 打开命令方块界面。
- 将方块类型设置为链式。
- 将条件设置有条件。
- 将红石设置为始终激活。
- 将命令输入设置为 /testfor @p[tag=!placed_block]
/testfor @p[tag=!placed_block]
由于第二个方块被设置为有条件,该新的方块只有在第一个命令方块成功时才会执行,这意味着钻石块存在。 此命令检查玩家是否尚未获得奖励。
设置奖励命令方块
我们添加第三个方块,设置一个命令来奖励玩家将方块放置在正确的位置。
- 在现有方块旁边放置另一个命令方块。 确保新的方块按照箭头的指向放置。
- 打开命令方块界面。
- 将方块类型设置为链式。
- 将条件设置有条件。
- 将红石设置为始终激活。
- 将命令输入设置为
/give @p emerald
。
这样,此命令只会在上一个命令成功时激活,这意味着钻石块存在并且玩家还没有获得奖励。
关闭循环
如果我们现在停下来,将钻石块放置在 0 4 0
处,玩家将获得每秒 20 颗绿宝石! 这是因为我们还需要做最后一步,将玩家标记为已获得奖励。
- 在现有方块旁边放置另一个命令方块。 确保新的方块按照箭头的指向放置。
- 打开命令方块界面。
- 将方块类型设置为链式。
- 将条件设置有条件。
- 将红石设置为始终激活。
- 将命令输入设置为 /tag @p add placed_block
/tag @p add placed_block
测试循环
如果完全设置正确,您现在可以在 0, 4, 0
位置放置一个钻石块,将在您的玩家物品栏中收到一个绿宝石。
反馈
https://aka.ms/ContentUserFeedback。
即将发布:在整个 2024 年,我们将逐步淘汰作为内容反馈机制的“GitHub 问题”,并将其取代为新的反馈系统。 有关详细信息,请参阅:提交和查看相关反馈