指令思路分享
感谢@一般路过Mon3tr的小娇妻 的思路提供~
他说是帮某个人搞方舟第十章城防炮设置的()
三个前置
scoreboard objectives add 阻挡_数据保存 dummy 阻挡_数据保存
scoreboard objectives add 阻挡 dummy 阻挡
scoreboard objectives add power dummy power
放置盔甲架,命名城防炮
然后scoreboard players add @e[type=minecraft:armor_stand,name=城防炮,scores={power=0..119}] power 1
给该城防炮加分,会到120停止加分,然后延迟调到20也便是1秒,那么充能就是120秒的时间
execute @e[scores={power=120},name=城防炮] ~ ~ ~ execute @a ~ ~ ~ execute @e[r=5,family=monster] ~ ~ ~ scoreboard players add @p 阻挡 1
城防炮充能完成,让玩家周围的怪物各为最近的玩家加1分,理解为阻挡,接下来接链命令方块
execute @e[scores={power=120},name=城防炮] ~ ~ ~ execute @a ~ ~ ~ scoreboard players operation @a 阻挡_数据保存 > @e[scores={power=120}] 阻挡
把玩家当中 计分板阻挡 的最高分复制到城防炮的 阻挡数据保存计分板 当中,即保存最高分
execute @e[scores={power=120},name=城防炮] ~ ~ ~ execute @a ~ ~ ~ scoreboard players operation @a 阻挡 -= @e[scores={power=120}] 阻挡_数据保存
为所有玩家的 阻挡计分板 减去 城防炮 的 阻挡数据保存计分板 的值,此时阻挡分值为0的玩家即最高分持有者
然后就是对最高分持有者[此时ta的阻挡分值为0,其余的阻挡分值为负数]一大堆巴拉酷炫的特效打击,最后重置power 阻挡 阻挡_数据保存 三个计分板的分值为0就行了
这套指令动脑筋的地方就那点检测最高分,其余死记格式和作用就行()
