本帖最后由 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有你更精彩!
可以 很实用 感谢分享
太棒了非常好用,感谢分享
可以可以的,感谢大佬
这个倒是可以作为一些服务器的资源区来用了
服务器里面可以用到吗?想知道一下。