玩家附近方块数量探测

By MCSugar_cane    2017/10/28

提示:本文涉及到/stats指令,如果对其陌生,建议先看检测物品数量

试想一下你在地狱中探险,但你不知道你附近是否有岩浆,没准下一秒,你就GG了。此系统就能完美解决这个问题,并且还能告知你附近岩浆方块的数量哦。代码适用版本为1.11.2

玩家附近方块探测演示地图


探测玩家附近方块数量

图片就介绍到这里,下面是思路以及代码部分~


整体思路:

根据玩家位置执行fill附近指定方块,例如检测玩家附近的水,将玩家附近的一定范围内的水替换为一个世界中不存在或当前世界不存在的方块,如果替换成功,则表明玩家附近有水。再利用Stats中的AffectedBlocks模式来探测充填指令影响的方块数量即水的替换数量,则可以实现。

不过此系统只限于单人模式,多人会导致无法正常运行。如果直接超频可能会导致数据不准确,建议用计分板添加一定延迟(可下载演示地图查看)。如果指令执行速度过慢,可能会导致水流(流动方块)溢出。

你可以下载演示地图后在游戏中选择慢速执行以更直观的看到实现原理。表情包001


代码:

初始化Stats:

  1. /stats entity @a set AffectedBlocks @p[r=0] Twater
  2. /scoreboard players add @a Twater 0

方块探测(高频执行):

  1. /execute @a ~ ~ ~ fill ~-6 ~-6 ~-6 ~6 ~6 ~6 quartz_ore 0 replace water 0
  2. /title @a actionbar [{"text":"[甘小蔗] ","color":"green"},{"text":"附近共有","color":"aqua","bold":"true"},{"score":{"name":"@a[score_Twater_min=1]","objective":"Twater"},"color":"gold","bold":"true"},{"text":"个水资源","color":"aqua","bold":"true"}]
  3. /execute @a ~ ~ ~ fill ~-6 ~-6 ~-6 ~6 ~6 ~6 water 0 replace quartz_ore 0


欢迎加群交流划水:481528679