环境:版本 Java 1.18.2
原理:纯原版命令方块 + 红石(无需数据包或者Mod)
提醒:新建存档!这一套是一个小时内捣鼓出来的,细节较为粗糙。
规则
- 目标:在方形场地内用木剑限时杀猪,统计最终获得的猪肉数量。
- 机制:场地内会随机落雷。猪被雷击后会转化为可爱的猪人,增加比赛的难度。
搭建
初始化
- 猪计数(防止太多):
scoreboard objectives add pig_count dummy - 倒计时:
scoreboard objectives add time dummy
重置
kill @e[type=pig](清理猪)kill @e[type=minecraft:zombified_piglin](清理猪人)kill @e[type=item](清理掉落物)
刷猪
结构:命令方块塔 1(从下到上叠加,箭头均向上)
| 顺序 | 模式 | 条件 | 状态 | 指令内容 |
|---|---|---|---|---|
| 1 | 循环 | 不受制约 | 保持开启 | execute if score #run time matches 1.. run scoreboard players remove #run time 1 |
| 2 | 连锁 | 不受制约 | 保持开启 | execute as @a[limit=1] run scoreboard players set #current_pigs pig_count 0 |
| 3 | 连锁 | 不受制约 | 保持开启 | execute as @e[type=pig] run scoreboard players add #current_pigs pig_count 1 |
| 4 | 连锁 | 不受制约 | 保持开启 | execute if score #run time matches 1.. if score #current_pigs pig_count matches ..20 run summon pig 0 138 -43 {Tags:["game_pig","needs_tp"]} |
| 5 | 连锁 | 不受制约 | 保持开启 | execute positioned 0 138 -43 as @e[type=pig,distance=..1] run spreadplayers 0 -43 1 12 true @s |
开始
结构:命令方块塔 2(从下到上叠加,箭头均向上)
- 设置时间(脉冲,红石控制/接按钮):
scoreboard players set #run time 3600 - 清空背包(连锁,保持开启):
clear @a - 发放道具(连锁,保持开启):
give @a minecraft:wooden_sword{Unbreakable:1b,display:{Name:'{"text":"杀猪专用剑","color":"gold","italic":false}'}} 1
落雷
- 模式:脉冲,不受制约,红石控制。
直接漏斗计时即可,别整什么计分板了 - 指令:
execute at @e[type=minecraft:pig,limit=1,sort=random] run summon minecraft:lightning_bolt ~ ~ ~
计时
显示刷新
模式:循环,保持开启
scoreboard players operation 剩余秒数 display_time = #run time
结束
结构:命令方块塔 3(从下到上叠加,箭头均向上)
- 显示标题(循环,保持开启):
execute if score #run time matches -100..0 run title @a title {"text":"时间已耗尽!","color":"red"} - 停止计时(连锁,条件制约,保持开启):
scoreboard players set #run time -999