指令思路分享
感謝@一般路過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就行了
這套指令動腦筋的地方就那點檢測最高分,其余死記格式和作用就行()
