加载中...
简易随机矿区

简易随机矿区

前置

/scoreboard objectives add 矿区 dummy

配置

⒈循环无条件:testfor @e[name=矿区,type=armor_stand]

连一个比较器后面放一个方块,方块上放一个斜着的红石火把(做一个简单的红石非门)红石火把后面放一个普通无条件红石控制命令方块:

①普通无条件红石控制:execute as @a at @s run playsound step.nether_gold_ore @s ~ ~ ~ 100 0.5

②连锁无条件:tellraw @a {"rawtext":[{"text":"§o§6▍§e▎矿区刷新完毕▎§6▍"}]}

③连锁无条件:tag @a remove 矿区刷新

⒉循环无条件条件:testfor @a[tag=矿区刷新]

连一个比较器后面接一个普通无条件红石控制命令方块:

①普通无条件红石控制:fill (你矿区的对点坐标) air

②连锁无条件:execute as @a at @s run playsound step.nether_gold_ore @s ~ ~ ~ 100 1.5

③连锁无条件:tellraw @a {"rawtext":[{"text":"§o§6▍§e▎矿区开始刷新▎§6▍"}]}

④连锁无条件:summon armor_stand ~ ~ ~ a 矿区

⑤连锁无条件:execute as @e[name=矿区,type=armor_stand] at @s run summon armor_stand ~ ~ ~ a 矿区

⑥连锁无条件:execute as @e[name=矿区,type=armor_stand] at @s run summon armor_stand ~ ~ ~ a 矿区

⑦连锁无条件:execute as @e[name=矿区,type=armor_stand] at @s run summon armor_stand ~ ~ ~ a 矿区

⑧连锁无条件:execute as @e[name=矿区,type=armor_stand] at @s run summon armor_stand ~ ~ ~ a 矿区

主指令

⒈循环无条件:execute as @e[name=矿区,type=armor_stand] at @s run spreadplayers (你的矿区中心的x轴坐标) (你矿区中心的z轴坐标) 0 10 @s

⒉连锁无条件:execute as @e[name=矿区,type=armor_stand] run scoreboard players random @s[name=矿区,type=armor_stand,tag=!已刷新] 矿区 1 100

⒊连锁无条件:execute as @e[name=矿区,type=armor_stand,scores={矿区=1..50}] at @s run execute as @s[name=矿区,type=armor_stand,tag=!已刷新] at @s run setblock ~ ~-1 ~ coal_ore 0 keep

⒋连锁无条件:execute as @e[name=矿区,type=armor_stand,scores={矿区=51..60}] at @s run execute as @s[name=矿区,type=armor_stand,tag=!已刷新] at @s run setblock ~ ~-1 ~ iron_ore 0 keep

⒌连锁无条件:execute as @e[name=矿区,type=armor_stand,scores={矿区=61..70}] at @s run execute as @s[name=矿区,type=armor_stand,tag=!已刷新] at @s run setblock ~ ~-1 ~ gold_ore 0 keep

⒍连锁无条件:execute as @e[name=矿区,type=armor_stand,scores={矿区=71..80}] at @s run execute as @s[name=矿区,type=armor_stand,tag=!已刷新] at @s run setblock ~ ~-1 ~ emerald_ore 0 keep

⒎连锁无条件:execute as @e[name=矿区,type=armor_stand,scores={矿区=81..100}] at @s run execute as @s[name=矿区,type=armor_stand,tag=!已刷新] at @s run setblock ~ ~-1 ~ diamond_ore 0 keep

⒏连锁无条件:execute as @e[name=矿区,type=armor_stand] at @s run execute as @s[name=矿区,type=armor_stand,tag=!已刷新] at @s run fill (你矿区对角1的x坐标) ~-1 (你矿区对角1的z坐标) (你矿区对角2的x坐标) ~-1 (你矿区对角2的z坐标) stone 0 keep

⒐连锁无条件:execute as @e[name=矿区,type=armor_stand] at @s run tag @s[y=(你矿区的最高高度坐标),dy=10] add 已刷新

⒑连锁无条件:execute as @e[name=矿区,type=armor_stand] run kill @s[tag=已刷新]

使用

改好命令方块里指令的必要参数与红石非门正确摆放后

给玩家添加一个“矿区刷新”的标签即可

CC BY-NC-SA 4.0 Deed | 署名-非商业性使用-相同方式共享
最后更新时间:2025-10-28 01:21:53