同学们好,我是ThePlayer571,我们继续来学习,基岩版基础指令。
在上期中,我们学习了命令方块的基本概念,这期我们将运用已学知识,制作一个商店。
理清思路
所谓商店,无非就是一个以物易物的装置。它的原理是:先清除你一个物品,再给你一个物品。
(资料图片)
比如我们想用1个金锭(gold_ingot
)换2个铁锭(iron_ingot
),那就需要先清除1个金锭,再给予2个铁锭,金锭不足则不会给予。
实际操作
首先,我们需要清除1个金锭,那就是
clear @p gold_ingot 0 1
如果执行成功,那就给予两个铁锭。所以后面接连锁型、有条件、始终活动
give @p iron_ingot 2 0
详情如图所示:
来测试一下,现在有10个金锭,0个铁锭,按一下按钮,少了1个金锭,多了2个铁锭,运行成功。
这里没看懂就多看几遍,一定要看懂。
那如果我们想用5个铁锭换一个金锭呢?我们也按照之前那样写
clear @p iron_ingot 0 5
give @p gold_ingot 2 0
现在我手上有7个铁锭,铁锭数量足够,按下按钮,执行成功。
但是此时,我手上有2个铁锭,铁锭数量不足。按下按钮,依然执行成功。
这个装置出现了bug:铁锭不足也会给予金锭。
为什么会产生这个bug呢?这是由于,只要我们手上有铁锭,clear
就会判定为执行成功,有条件的命令方块检测到后面的命令方块执行成功,便会给予我们金锭。因此,该装置不能判断铁锭数量是否足够。
如何解决这个问题呢?可以先清除4个铁锭,再清除1个铁锭,如果清除完4个后还有1个,才会给予金锭。
clear @p iron_ingot 0 4
clear @p iron_ingot 0 1
give @p gold_ingot 2 0
不过这样写也有点小问题,就是它会吞物品:如果你手上铁锭的不足5个,点了这个按钮,不会得到金锭,但这些铁锭都会被吞掉。
很遗憾,这个bug是暂时无法解决的。正确方式是用hasitem
参数进行检测,但我个人不建议现在学习这种方式。
打个总结
本期我们学习了命令方块的使用,知识点较少,但实际操作性很强,请务必自己独立在游戏内操作一遍。本次课后作业可能较难,故答案直接给出,请尽量将每一道题搞懂。本节课的演示存档已在文末给出。
本节课课后作业:
制作一个商店。按下按钮后,玩家能用5个泥土(dirt
)换1个煤炭(coal
)。
假设你是一个服务器的服主,你想制作一个新手装备领取处,按下按钮就能得到16个火把(torch
)、1把石剑(stone_sword
)、8个面包(bread
)。请实现这一需求。
(选做 涉及红石知识)制作一个商店。按下按钮后,玩家能用1个铁锭(iron_ingot
)换1个金锭(gold_ingot
);如果铁锭数不足,商店会提醒玩家"铁锭数不足"。
上节课课后作业答案:
已经包装在存档内了,点击下载 /iV2kL13yo3qh。存档导入方法可在b站上查询。
本节课课后作业答案:
已经包装在存档内了,点击下载 /iggvI143tumf。存档导入方法可在b站上查询。