本帖最后由 ChordSceneIII 于 2022-3-9 11:07 编辑
今天做地图的时候想到的。
我觉得做rpg或者模拟经营类的地图应该会挺有用的
思路就是利用盔甲架作为参考坐标来替换方块,使用两种方块(闪长岩和骨块)进行相互替换
1.8以上应该都能实现,我用的版本是1.12.2
实际效果(这里没有隐藏盔甲架的名字):
下文的数字对应图片中的命令方块
详细教程
首先创建2个计分板,tick(准则为dummy),salt(准则为stat.mineBlock.minecraft.bone_block)
使用的盔甲架名为saltblock用于检测(也可以用tag标签)
tick用于对矿物刷新需要的时间计时,salt用于判断挖某种方块
矿物的放置和刷新时间
1
复制代码在名为saltblock的盔甲架的位置放置 闪长岩
2
复制代码判断盔甲架的位置是否为闪长岩,如果是则循环对闪长岩处的盔甲架增加tick的分数,就是开始计时的意思
3
复制代码判断盔甲架tick分数大于100,则放置 骨块
4
复制代码设置盔甲架的tick分数为0
设置矿物的掉落物
5
复制代码玩家挖骨块salt分数加1,并给予玩家指定掉落物
(图里我用了function,因为要用彩色字,可以直接替换为give指令或者用summon召唤掉落物更能还原原版的矿物效果)
6
复制代码刷新salt分数
处理原方块掉落物(如果你禁用了方块掉落就不需要这条指令)
7
复制代码给骨块的原本掉落物一个名为saltblock的标签
8
复制代码清除带有saltblock标签的掉落物这两条指令都可以用execute来限定范围,这样破坏其他地方的骨块也是能正常掉落
可以把7和8换成:
execute @e[name=saltblock] ~ ~ ~ detect ~ ~ ~ /scoreboard players tag @e[r=2,type=item] add saltblock {Item:{id:"minecraft:bone_block"}}
execute @e[name=saltblock] ~ ~ ~ detect ~ ~ ~ /kill @e[r=2,type=item,tag=saltblock]
放完这些命令方块就可以利用盔甲架在指定坐标放置自定义矿物了
复制代码
p.s.:这里我没有对闪长岩掉落物处理是因为我做的地图准备是使用冒险模式来限定稿子可挖掘的方块,稿子不能挖闪长岩所以就不用对闪长岩处理,如果要处理的话直接套用对骨块的处理方式就行
--------------------------------------------------------------------------------------------------------------------------
看到评论区有说可以作为服务区资源区的,只针对原版的矿物,可以简化一下指令。
四个命令方块:1循环-2连锁-3连锁-4连锁
复制代码这样一段时间(指令中设置的是100tick)后指定位置的矿物就会刷新了,计分板只需要一个tick计分板,并且其他地方的矿物不会受到影响
如果要更省事的话可以不要替换方块这一步,把stone改为air,第一条指令去掉
今天做地图的时候想到的。
我觉得做rpg或者模拟经营类的地图应该会挺有用的
思路就是利用盔甲架作为参考坐标来替换方块,使用两种方块(闪长岩和骨块)进行相互替换
1.8以上应该都能实现,我用的版本是1.12.2
实际效果(这里没有隐藏盔甲架的名字):

详细教程
首先创建2个计分板,tick(准则为dummy),salt(准则为stat.mineBlock.minecraft.bone_block)
使用的盔甲架名为saltblock用于检测(也可以用tag标签)
tick用于对矿物刷新需要的时间计时,salt用于判断挖某种方块

矿物的放置和刷新时间
1
- execute @e[name=saltblock] ~ ~ ~ /fill ~ ~ ~ ~ ~ ~ stone 3 replace air
2
- execute @e[name=saltblock] ~ ~ ~ detect ~ ~ ~ minecraft:stone 3 /scoreboard players add @s tick 1
3
- execute @e[name=saltblock,score_tick_min=100] ~ ~ ~ detect ~ ~ ~ minecraft:stone 3 /setblock ~ ~ ~ bone_block
4
- execute @e[name=saltblock,score_tick_min=100] ~ ~ ~ detect ~ ~ ~ minecraft:bone_block 4 /scoreboard players set @s tick 0
设置矿物的掉落物
5
- execute @a[score_salt_min=1] ~ ~ ~ /give @s <掉落物>
(图里我用了function,因为要用彩色字,可以直接替换为give指令或者用summon召唤掉落物更能还原原版的矿物效果)
6
- scoreboard players set @a[score_salt_min=1] salt 0
处理原方块掉落物(如果你禁用了方块掉落就不需要这条指令)
7
- scoreboard players tag @e[type=item] add saltblock {Item:{id:"minecraft:bone_block"}}
8
- kill @e[type=item,tag=saltblock]
可以把7和8换成:
execute @e[name=saltblock] ~ ~ ~ detect ~ ~ ~ /scoreboard players tag @e[r=2,type=item] add saltblock {Item:{id:"minecraft:bone_block"}}
execute @e[name=saltblock] ~ ~ ~ detect ~ ~ ~ /kill @e[r=2,type=item,tag=saltblock]
放完这些命令方块就可以利用盔甲架在指定坐标放置自定义矿物了
- /summon minecraft:armor_stand x y z {CustomName:"saltblock",NoAI:1b,Invulnerable:1b,PersistenceRequired:1b,NoGravity:1b,Invisible:1,DisabledSlots:2039583}
p.s.:这里我没有对闪长岩掉落物处理是因为我做的地图准备是使用冒险模式来限定稿子可挖掘的方块,稿子不能挖闪长岩所以就不用对闪长岩处理,如果要处理的话直接套用对骨块的处理方式就行
--------------------------------------------------------------------------------------------------------------------------
看到评论区有说可以作为服务区资源区的,只针对原版的矿物,可以简化一下指令。
四个命令方块:1循环-2连锁-3连锁-4连锁
- execute @e[tag=coal_ore] ~ ~ ~ /fill ~ ~ ~ ~ ~ ~ stone 5 replace air
- execute @e[tag=coal_ore] ~ ~ ~ detect ~ ~ ~ minecraft:stone 5 /scoreboard players add @s tick 1
- execute @e[tag=coal_ore,score_tick_min=100] ~ ~ ~ detect ~ ~ ~ minecraft:stone 5 /setblock ~ ~ ~ coal_ore
- execute @e[tag=coal_ore,score_tick_min=100] ~ ~ ~ detect ~ ~ ~ minecraft:coal_ore 0 scoreboard players set @s tick 0
如果要更省事的话可以不要替换方块这一步,把stone改为air,第一条指令去掉
MCBBS有你更精彩!
太强了,这想法指令白痴看着老玄乎了

个人早在1.7版本的时候就试图还原过这个东西
那个时候的机制相对你这个稍微复杂一些,而且矿原方块是可以被保护不受破坏的。
真怀念那时候啊。
那个时候的机制相对你这个稍微复杂一些,而且矿原方块是可以被保护不受破坏的。
真怀念那时候啊。
嗯 可以学习到的
这需要加一些插件mod吗
Hiabens 发表于 2022-3-5 08:48
这需要加一些插件mod吗
不用,1.12原版就可以
ChordSceneIII 发表于 2022-3-5 08:49
不用,1.12原版就可以
好的,明白了
这东西对服务器很有帮助
MCBBS有你更精彩!
可以 很实用 感谢分享
太棒了非常好用,感谢分享
可以可以的,感谢大佬
这个倒是可以作为一些服务器的资源区来用了
服务器里面可以用到吗?想知道一下。
宇泽_ 发表于 2022-3-7 02:27
服务器里面可以用到吗?想知道一下。
服务器可以,不过最好把give指令改成summon,盔甲架使用tag代替customname标记。当然,如果有类似的插件代替最好了
ChordSceneIII 发表于 2022-3-7 09:12
服务器可以,不过最好把give指令改成summon,盔甲架使用tag代替customname标记。当然,如果有类似的插件 ...
这样啊,谢谢提醒
这种可以应用于空岛服务器的矿场提供玩家挖矿吗,或者是恶搞玩家
jajjaja 发表于 2022-3-7 09:21
这种可以应用于空岛服务器的矿场提供玩家挖矿吗,或者是恶搞玩家
emmm可以把矿物掉落/give 那条改为summon creeper或者tnt,比如挖某些钻石矿掉点燃的tnt什么的,稍微修改一下指令就可以了(

那个版本都能用吗
等等ll 发表于 2022-3-7 11:21
那个版本都能用吗
按理说1.8+应该就行,不过1.8和1.13+的指令格式可能有点不同。我使用的版本是1.12.2
这个自定义方块也能用于mod方块吗
是个代码大佬
我是白痴
大佬们可否教教我命令方块什么玩啊
感觉还不错
未曾设想的道路
感谢大佬的分享
学会了学会了
我以前喜欢直接clone复制东西实现资源区
复制代码
摆放方法:
[任意方块]
[要复制的东西]
[命令方块(循环无条件保持开启)]
- clone ~ ~1 ~ ~ ~1 ~ ~ ~3 ~
摆放方法:
[任意方块]
[要复制的东西]
[命令方块(循环无条件保持开启)]
看的我迷迷瞪瞪的
命令方块经久不衰
一直都没有玩明白过红石
虽然看不懂但是感觉很厉害样子
感谢大佬教学,学到了学到了
感谢楼主分享,学到了
感谢,对新人也帮助
可以有,收藏
可以用到固定资源的那种地方把
这需要加一些插件mod吗
感谢大佬,学到了学到了
随机生成矿石和这个是有区别的罢
太强了,这想法指令白痴看着老玄乎了
指令看不懂的有没有更简单的办法
nb必须支持下,学到了
666666666666啊兄弟
太棒了非常好用,感谢分享
感谢楼主 分享 辛苦辛苦
我就是个游手好闲的人学了也不用

很有帮助谢谢