这是在wiki上复制的,我对Java版指令不了解那么多
复制代码
我想要玩家10格半径范围内检测有无creeper接近?并给creeper添加上tag标签,我想弄一个简易的防爆检测装置,单人存档总是这个那个坑真的那啥,实在烦人,关了生物破坏村民又不能发展起来,雪傀儡不能造雪等问题,虽然有相关模组,不过不能在快照用,而且版本限制很大,类似模组又没人写,各位指令大佬感谢了
- execute as @e[type=pig] at @s store success entity @s Saddle byte 1 if entity @p[distance=..5]
我想要玩家10格半径范围内检测有无creeper接近?并给creeper添加上tag标签,我想弄一个简易的防爆检测装置,单人存档总是这个那个坑真的那啥,实在烦人,关了生物破坏村民又不能发展起来,雪傀儡不能造雪等问题,虽然有相关模组,不过不能在快照用,而且版本限制很大,类似模组又没人写,各位指令大佬感谢了
用循环型命令方块,里面写复制代码
- /execute as @e[type=creeper] run data merge entity @s {ExplosionRadius:0}
 本帖最后由 AYue~ 于 2021-10-17 21:29 编辑 
这个不是简单吗...
/tag @e[distance=..10,type=minecraft:creeper] add tag名称
功能(检测苦力怕10r内,检测到发出警报)
循环命令方块:
execute at @e[type=minecraft:creeper] run playsound minecraft:block.note_block.pling block @a[distance=..10]execute as @e[type=minecraft:creeper] run title @a[distance=..10] actionbar {"text":"检测到苦力怕偷袭!!!","color":"red"}
这个不是简单吗...
/tag @e[distance=..10,type=minecraft:creeper] add tag名称
功能(检测苦力怕10r内,检测到发出警报)
循环命令方块:
execute at @e[type=minecraft:creeper] run playsound minecraft:block.note_block.pling block @a[distance=..10]execute as @e[type=minecraft:creeper] run title @a[distance=..10] actionbar {"text":"检测到苦力怕偷袭!!!","color":"red"}
 本帖最后由 Ph-苯 于 2021-10-18 15:30 编辑 
循环命令方块里面写:复制代码就可以给玩家周围10米内的苦力怕加上tag标签。
循环命令方块里面写:
- execute at @a run tag @e[type=creeper,distance=..10] add tag
AYue~ 发表于 2021-10-17 21:20
这个不是简单吗...
/tag @e[distance=..10,type=minecraft:creeper] add tag名称
循环命令方块:
execute at @e[type=minecraft:creeper] run playsound minecraft:block.note_block.pling block @a[distance=..10]execute as @e[type=minecraft:creeper] run title @a[distance=..10] actionbar {"text":"检测到苦力怕偷袭!!!","color":"red"}
最新1.17.1用不了,你这是用给哪个版本的?
无敌三脚猫 发表于 2021-10-17 20:17
用循环型命令方块,里面写
不过这样闪电苦力怕就不能炸头颅
Ph-苯 发表于 2021-10-18 00:56
循环命令方块里面写:就可以给玩家周围10米内的苦力怕加上tag标签。
怎么没写距离?我搞不懂...
心中一万只羊驼 发表于 2021-10-18 14:59
不过这样闪电苦力怕就不能炸头颅
哦?所以你要的防爆是只防方块破坏,不防伤害是吗
心中一万只羊驼 发表于 2021-10-18 15:04
怎么没写距离?我搞不懂...
我脑抽了,不好意思。现在改了。
无敌三脚猫 发表于 2021-10-18 15:15
哦?所以你要的防爆是只防方块破坏,不防伤害是吗
是的,而且我就只要目前检测玩家10格径范围有没有苦力怕就行,Java版没有单独检测实体指令
心中一万只羊驼 发表于 2021-10-18 19:23
是的,而且我就只要目前检测玩家10格径范围有没有苦力怕就行,Java版没有单独检测实体指令 ...
不是很懂……
让一次爆炸只伤害生物,不破坏方块,不加mod我实在不知道怎么做到,我也不知道这和加tag有什么关系
能说说你的思路吗?
另外我先前给出的那个改爆炸威力的指令,也可以令其只作用在非闪电苦力怕身上
- /execute as @e[type=creeper,nbt=!{powered:1}] run data merge entity @s {ExplosionRadius:0}
无敌三脚猫 发表于 2021-10-18 19:58
不是很懂……
让一次爆炸只伤害生物,不破坏方块,不加mod我实在不知道怎么做到,我也不知道这和加tag有 ...
后面我会有解决方法,而且我都已经做好准备了,就缺个检测特定实体,Java版又无这个
不过用上面那个例子指令倒是可以被比较器检测并发出红石信号,tag添加的触发不了,让人头疼,懂不了那么多,Java版指令太复杂了......
心中一万只羊驼 发表于 2021-10-19 09:17
后面我会有解决方法,而且我都已经做好准备了,就缺个检测特定实体,Java版又无这个
不过用上面那个例子 ...
并非是“tag添加的触发不了”,而是只有被红石激活的指令执行成功,才会被比较器检测
很好,你现在算是多透露了一点,你希望在那个加tag的指令执行成功之后激活另一个命令方块,所以,为什么不用连锁型命令方块呢(也就是绿色命令方块,基岩版应该也有吧?)
我还是希望你能开诚布公地说出所有流程,你一点点说,我们一点点找错,这样很慢
无敌三脚猫 发表于 2021-10-19 10:33
并非是“tag添加的触发不了”,而是只有被红石激活的指令执行成功,才会被比较器检测
很好,你现在算是多 ...
https://www.bilibili.com/video/BV1G44y187zo
基岩版我是照着这个视频摆的,检测特定实体指令/testfor
(此特性为基岩版和教育版独有。)
又因为版本更新,语法又新增的很多就不懂,按照视频上面这么摆命令方块效果也挺好的,Java版指令语法太复杂,难懂
就只要命令方块检测玩家半径10格有无creeper接近并且让红石比较器检测到并且发送信号,自动关闭生物破坏,目标不在范围就自动打开
心中一万只羊驼 发表于 2021-10-19 15:16
https://www.bilibili.com/video/BV1G44y187zo
基岩版我是照着这个视频摆的,检测特定实体指令/testfor
...
你早说不就好了
两个循环型命令方块
一个写
- execute at @a as @e[type=creeper,distance=..10] run gamerule mobGriefing false
另一个写
- execute at @a unless entity @e[type=creeper,distance=..10] run gamerule mobGriefing true
另外,testfor曾经也是java版的指令,不过新版的execute比testfor强大太多,所以就移除了,所以建议你多学学execute,有个教程https://www.mcbbs.net/thread-989501-1-1.html
感觉我之前两点知识说的你没明白,我在重复一遍,一是“只有被红石激活的指令执行成功,才会被比较器检测”,二是连锁型命令方块可以在这里用到(如果源头的命令方块不用红石激活,也就是持续执行,那就用连锁型命令方块来代替比较器+普通命令方块,不过按我的写法这两样东西都用不到)
 
 
