Minecraft(我的世界)中文论坛

标题: 物品组件参数教程(1) - 在冒险模式破坏/放置指定方块

作者: 快乐小方    时间: 2019-10-30 00:34
标题: 物品组件参数教程(1) - 在冒险模式破坏/放置指定方块
本帖最后由 快乐小方 于 2021-2-17 12:17 编辑

解密地图必备之指令

give指令的结构
  1. give <玩家:目标> <物品名:字符串> [数量:整数] [数据:整数] [成分:成分]
复制代码

参数:
玩家:目标  指定给予物品的目标。必须为一个玩家名或目标选择器。
物品名:字符串  指定给予的物品。必须为一个有效的物品ID,或为一个存在物品形态的有效的方块ID。不支持数字ID。
数量:整数  (可选)指定给予的物品数量。必须在1和64间(含),但64超过该物品一组的数量时仍然有效。若未指定,默认为1。
数据:整数  (可选)指定所给予物品的物品数据。必须为一个介于-2,147,483,648和2,147,483,647之间的整数(含,不输入逗号),但是当数据值对于指定的物品ID无效时,会被重置为0。若未指定,默认为0。
成分:成分  (可选)与数据标签类似,但仅支持CanPlaceOn和CanDestroy标签。

——来自Minecraft中文Wiki
教程
入门
1.CanPlaceOn
  1. give @p diamond_block 1 0 {"minecraft:can_place_on":{"blocks":["diamond_block"]}}
复制代码
给予最近玩家一个可以放置在钻石块上的钻块
修改“blocks”后的参数“diamond_block”可以修改“可以放在”的方块


2.CanDestroy
  1. give @p diamond_pickaxe 1 0 {"minecraft:can_destroy":{"blocks":["diamond_block"]}}
复制代码
给予最近玩家一个可以破坏钻石块的钻石镐
修改“blocks”后的参数“diamond_block”可以修改“会损坏”的方块


进阶
1.复合CanPlaceOn
  1. give @p diamond_block 1 0 {"minecraft:can_place_on":{"blocks":["diamond_block","grass"]}}
复制代码
给予最近的玩家一个可以放置在钻石块、草方块上的钻石块
在“blocks”后的“[]”中添加新的参数(使用英文逗号分隔,e.g:{"blocks":["iron_block","grass","redstone_block"]})可以添加“可以放在”的方块


2.复合CanDestroy
  1. give @p diamond_pickaxe 1 0 {"minecraft:can_destroy":{"blocks":["diamond_block","grass"]}}
复制代码
给予最近的玩家一个可以破坏钻石块、草方块的钻石镐
在“blocks”后的“[]”中添加新的参数(使用英文逗号分隔,e.g:{"blocks":["redstone_block","grass","glass"]})可以添加“会损坏”的方块


提升
CanPlaceOn与CanDestroy结合
  1. give @p diamond_block 1 0 {"minecraft:can_destroy":{"blocks":["diamond_block"]},"minecraft:can_place_on":{"blocks":["diamond_block"]}}
复制代码
给予最近玩家一个既可以放置在钻石块又可以破坏钻石块的钻石块
在成分参数的第一层花括号中可以使用英文逗号分隔添加新的成分


如有问题欢迎在评论区留言

排版在改的啦


作者: 爱心魔王FHC    时间: 2019-10-30 09:05
建议把 高手 改成 提升
作者: Kenneth_z    时间: 2019-12-21 19:04
不应该说成分 应该说是json
作者: fltlele    时间: 2020-1-26 18:10
感谢分享
作者: flying_king233    时间: 2020-1-27 13:45
这好像和JAVA版的不一样这个在can后面要加_ 怪不得我怎么试了半天都没用
作者: T.C.T_093    时间: 2020-2-13 09:03
谢谢楼主,感谢分享

作者: Anewdanw    时间: 2020-2-14 08:21
楼主,我是输入的give @a flint 1 0 {"minecraft:can_destroy":{"blocks":["concrete powder“]}} 使用命令方块执行后出现一段英文字,无法获得可以破坏混凝土粉末的燧石,是哪里有问题吗
作者: 快乐小方    时间: 2020-2-14 09:22
Anewdanw 发表于 2020-2-14 08:21
楼主,我是输入的give @a flint 1 0 {"minecraft:can_destroy":{"blocks":["concrete powder“]}} 使用命令 ...

混凝土粉末应该是concretepowder
  1. give @a flint 1 0 {"minecraft:can_destroy":{"blocks":["concretepowder“]}}
复制代码


作者: Anewdanw    时间: 2020-2-14 18:10
本帖最后由 Anewdanw 于 2020-2-14 18:20 编辑
快乐小方 发表于 2020-2-14 09:22
混凝土粉末应该是concretepowder

我这里再次输入终于对了,不过还是想问一下可不可以设置染色方块? 后面没有留下数据值的位置,我自己也尝试了一下give @a flint 1 0 {"minecraft:can_destroy":{"blocks":["concretepowder 1“]}} 果真不行
作者: 快乐小方    时间: 2020-2-14 18:38
Anewdanw 发表于 2020-2-14 18:10
我这里再次输入终于对了,不过还是想问一下可不可以设置染色方块? 后面没有留下数据值的位置,我自己也尝 ...

目前基岩版通过give指令做不到
作者: Anewdanw    时间: 2020-2-15 16:27
快乐小方 发表于 2020-2-14 18:38
目前基岩版通过give指令做不到

好的谢谢
作者: AX小海    时间: 2020-4-3 21:59
1.14怎么办 上面命令没用
作者: A_eggChaN    时间: 2021-2-5 11:22
楼主更一下新加的俩NBT不
作者: 焕昭君    时间: 2021-2-5 14:21
A_eggChaN 发表于 2021-2-5 11:22
楼主更一下新加的俩NBT不

又有什么新的nbt?