仅适用于 Minecraft Bedrock Edition(即基岩版) 以及 BDS 等保留原版特性的服务端
产生的原因:上一年很长一段时间,我一直都在经营“用爱发电”的 BDS 服务器,为了给[惹不起]们增添乐趣,做这个商店的时候用了很长一段时间来磨合。从最初的目标锁定失败、积分反复扣除、完全无法生效的各种各样的 bug ,最终形成了这种比较成熟的方案。
该方案使用了 7 个命令方块。为了避免链式命令方块过长,这个方案存在命令方块分离、远程执行的蜜汁操作。
细节说明:applemark 用以锁定玩家(在新版中,tag也可实现同样的功能。)、jifen 即积分。两项参数均需要预先通过 scoreboard objectives add NAME dummy 增加。

该项方案展示了附魔金苹果的兑换逻辑判断。

执行端含两个方块

setblock X Y Z barrier 0 replace
#先将远程的响应端方块(X,Y,Z)清空避免各种奇怪的 bug 默认设置
setblock X Y Z redstone 0 replace
#再执行远程的响应端方块(X,Y,Z) 链式+有条件+始终

其他方块分离放置

scoreboard players set @a applemark 0
#清空所有玩家的标记 默认设置
execute @a[x=X,y=Y,z=Z,c=1] ~ ~ ~ detect ~ ~-1 ~ command_block 1 scoreboard players set @s applemark 1
#玩家必须站在指定方块(X,Y,Z)上才能执行操作,成功执行后,所有命令焦点锁定该玩家 链式+有条件+始终
scoreboard players test @p[scores={applemark=1}] jifen 10
#检测玩家是否有积分。如果玩家没有,不继续执行。链式+有条件+始终
scoreboard players remove @p[scores={applemark=1}] jifen 10
#扣除积分。 链式+有条件+始终
execute @p[scores={applemark=1}] ~ ~ ~ give @s appleenchanted 3 0
#给予指定奖励 链式+有条件+始终
tellraw @p[scores={applemark=1}] {"rawtext":[{"text":"[!] §f§l你已成功将§e10积分§f兑换为§e3个附魔金苹果§f"}]}
#用 RawText 进行提醒看起来高级一点(bushi 链式+有条件+始终

暂时写到这里。是不是看起来云里雾里的?日后再补充截图 ∠( ᐛ 」∠)_