A(脉冲,不受制约/无条件,红石控制/需要红石):
/scoreboard players test @p $<物品单价>*
B(连锁,条件制约/有条件的,保持开启/始终活动):
/scoreboard players remove @p $<物品单价>
C(连锁,条件制约/有条件的,保持开启/始终活动):
/give @p <物品id> 1
这是最简单的记分板商店,其购买流程如下:
玩家按下拉杆激活A→A执行指令,检测玩家是否能够购买→如果能,激活B/如果不能,结束购买→B执行指令,扣除玩家虚拟币,并激活C→C执行指令,给予物品给玩家→购买成功
这种记分板商店还有许多待完善之处:
①由于使用@p选取最近玩家,B和C可能将指令执行到错误的玩家上
②远处的玩家也可以碰到拉杆,但命令方块可能不会将指令执行到该玩家身上
③成功和失败都没有消息提示
解决办法也很简单:
一、目标选择器加上x、y、z参数指定执行中心,加上r或dx、dy、dz指定执行范围。
二、将每个购买项目单独做成一间1×1的铁门间,门内放测重压力板(如有装mod,可以使用夸克模组内的黑曜石压力板,更加安全)。
三、可以在A前面再加上两个命令方块D和E,在C后面加上F,即D→E→A→B→C→F。把A改为连锁,不受制约/无条件,保持开启/始终活动。D、E和F如下:
D(脉冲,不受制约/无条件,红石控制/需要红石):
/scoreboard players test @p $*<物品单价-1>
E(连锁,条件制约/有条件的,保持开启/始终活动):