我想用告示牌做个地图介绍,右击木牌就能查看的那种,怎么用指令做到。答案别一上来贴一大段指令,我是新手,刚开始学习指令,请介绍每一个指令作用
右击木牌就能看?
你指的是给用户一本书么?
你指的是给用户一本书么?
版本发出来一下要不然我不知道什么版本
洞穴夜莺 发表于 2021-3-14 11:52
右击木牌就能看?
你指的是给用户一本书么?
右击木牌,游戏聊天栏出现信息
这个是你要的那种木牌的生成器:
https://www.mcadmin.cn/tools/json-sign/
范例:
give @p minecraft:oak_sign{BlockEntityTag:{Text1:"[{\"text\":\"【木牌上的内容】\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/tellraw @p [{\\\"text\\\":\\\"右键木牌出现的内容\\\",\\\"bold\\\":false,\\\"italic\\\":false,\\\"underlined\\\":false,\\\"strikethrough\\\":false,\\\"obfuscated\\\":false}]\"}}]"}} 1
即可给予你一个上面写着【木牌上的内容】并且右键后聊天栏会出现右键木牌出现的内容木牌,放置即可使用
https://www.mcadmin.cn/tools/json-sign/
范例:
give @p minecraft:oak_sign{BlockEntityTag:{Text1:"[{\"text\":\"【木牌上的内容】\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/tellraw @p [{\\\"text\\\":\\\"右键木牌出现的内容\\\",\\\"bold\\\":false,\\\"italic\\\":false,\\\"underlined\\\":false,\\\"strikethrough\\\":false,\\\"obfuscated\\\":false}]\"}}]"}} 1
即可给予你一个上面写着【木牌上的内容】并且右键后聊天栏会出现右键木牌出现的内容木牌,放置即可使用
尸先peng 发表于 2021-3-14 12:10
这个是你要的那种木牌的生成器:
https://www.mcadmin.cn/tools/json-sign/
都说了,别一上来就贴一大段指令,我是刚开始学习命令的新手,麻烦解释下命令内容
 本帖最后由 尸先peng 于 2021-3-14 12:50 编辑 
这个很难去解释啊……
这样,你直接去用那个告示牌生成器即可最简单的tellaw指令你应该没问题吧?
 
 
点击“生成代码”即可得到一个这样的指令:
give @p minecraft:oak_sign{BlockEntityTag:{Text1:"[{\"text\":\"hi~\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/tellraw @p [{\\\"text\\\":\\\"123\\\",\\\"bold\\\":false,\\\"italic\\\":false,\\\"underlined\\\":false,\\\"strikethrough\\\":false,\\\"obfuscated\\\":false}]\"}}]"}} 1
(意思不用管,只要复制到命令方块里面执行即可)
效果图:
 
 
Kaaa神 发表于 2021-3-14 12:19
都说了,别一上来就贴一大段指令,我是刚开始学习命令的新手,麻烦解释下命令内容 ...
这个很难去解释啊……
这样,你直接去用那个告示牌生成器即可最简单的tellaw指令你应该没问题吧?
 
点击“生成代码”即可得到一个这样的指令:
give @p minecraft:oak_sign{BlockEntityTag:{Text1:"[{\"text\":\"hi~\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/tellraw @p [{\\\"text\\\":\\\"123\\\",\\\"bold\\\":false,\\\"italic\\\":false,\\\"underlined\\\":false,\\\"strikethrough\\\":false,\\\"obfuscated\\\":false}]\"}}]"}} 1
(意思不用管,只要复制到命令方块里面执行即可)
效果图:
 
Kaaa神 发表于 2021-3-14 12:19
都说了,别一上来就贴一大段指令,我是刚开始学习命令的新手,麻烦解释下命令内容 ...
/give @p minecraft:oak_sign{BlockEntityTag:{Text1:"[{\"text\":\"木牌上的内容\",\"clickEvent\":{\"action\":\"run_command\",\"value\":\"/tellraw @p [{\\\"text\\\":\\\"内容\\\"}]\"}}]"}} 1
尝试解释一下
我默认你知道指令基础。
首先,简化一下:
/give @p oak_sign 1
give是给与。@p是指最近的玩家,即你自己。oak_sign是橡木告示牌。1是一个。
但这只会给你正常的告示牌。
现在我们要修改的是告示牌:我们要的是一个右键可以执行命令的告示牌。什么命令呢?显示文字。
我们在oka_sign后面打开一个大括号。这是告示牌的nbt:
/give @p oak_sign{} 1
大括号里的内容一般以“XX:XX”的格式表达:
armor_stand{NoAI:1b,Invisible:1B}
翻译过来:
盔甲架{无AI:是,隐形:是}
告示牌也一样,只不过我们的复杂些,是个复合nbt。
BlockEntityTag是指它的内容标签
Text1是指他第一行的文字。
text是文字的内容
我们要修改的是告示牌的内容,就是“木牌上的内容”。
clickEvent是点击后会发生什么。
run_command是“运行命令”
什么命令呢?
显示一段文字。
也就是后面的tellraw(显示JSON文本)
内容处就是你的内容啦。
......其实我讲的很烂,因为时间不够,忽视了JSON文本的事情。
你完全可以使用生成器。
https://www.mcmod.cn/tools/cbcreator/
用这么短的篇幅把NBT与Json都讲完很难啦
不说版本,就默认你最新版了
/setblock ~ ~ ~ oak_sign{Text1:'{"text":"文本","clickEvent":{"action":"run_command","value":"/tellraw @s {\\"text\\": \\"123\\"}"}}'}
此处命令的含义是在当前位置放置一个橡木告示牌,其中橡木告示牌拥有自定义的nbt Text1
Text1是一个存储告示牌上的文字的nbt,数据类型为string,格式为原始json文本
由于1.14的更新,此处可以使用单引号来表示其内容
Text1:'{"text":"文本","clickEvent":{"action":"run_command","value":"/tellraw @s {\\"text\\": \\"123\\"}"}}'
在原始json格式中,text表示文本,clickEvent表示点击后会发生的事件,当然也可以使用color指定颜色
clickEvent中通过action指定事件为执行命令,所需要执行的命令是tellraw,即展示一段json文本
这里面还涉及到转义,稍微有点复杂
以下是可以参考的东西
命令/setblock
命令/tellraw
原始json文本格式
告示牌
/setblock ~ ~ ~ oak_sign{Text1:'{"text":"文本","clickEvent":{"action":"run_command","value":"/tellraw @s {\\"text\\": \\"123\\"}"}}'}
此处命令的含义是在当前位置放置一个橡木告示牌,其中橡木告示牌拥有自定义的nbt Text1
Text1是一个存储告示牌上的文字的nbt,数据类型为string,格式为原始json文本
由于1.14的更新,此处可以使用单引号来表示其内容
Text1:'{"text":"文本","clickEvent":{"action":"run_command","value":"/tellraw @s {\\"text\\": \\"123\\"}"}}'
在原始json格式中,text表示文本,clickEvent表示点击后会发生的事件,当然也可以使用color指定颜色
clickEvent中通过action指定事件为执行命令,所需要执行的命令是tellraw,即展示一段json文本
这里面还涉及到转义,稍微有点复杂
以下是可以参考的东西
命令/setblock
命令/tellraw
原始json文本格式
告示牌
Kaaa神 发表于 2021-3-14 12:19
都说了,别一上来就贴一大段指令,我是刚开始学习命令的新手,麻烦解释下命令内容 ...
先给你铺垫点json知识,json是一种很常见的文本格式,例如泥潭一些API使用的就是这种格式https://www.mcbbs.net/api/mobile/index.php?module=profile&username=%E6%B4%9E%E7%A9%B4%E5%A4%9C%E8%8E%BA
- {}
这是一个最简单的json文本,它什么都没有
- {"键1": "值1", "键2": "值2"}
json以键值对的方式存储信息,相邻两个键值对用逗号隔开
键只能是字符串(任何以双引号""引起来的东西,如果字符串中还有"(双引号)要改成\"(反斜杠双引号),以及\(反斜杠)要改成\\(双反斜杠),这种行为称为转义)
值可以是true(真)、false(假,和真相对,通常用于表达否定)、null(空)以及实数(例如:1、2、2.3、3.14等等)或者可以嵌套一个json对象(其实就是另外一个完整的json文本),和json数组(稍后介绍)
例如使用json来表达一下我的个人信息
- {"用户名": "洞穴夜莺", "uid": 2853776, "统计信息": {"好友数": 81, "回帖数": 8925, "主题数":136}, "版主": false}
而json数组则不同,它的键是0、1、2、3、4这样的数字编号,这里不展开讲
- [<值1>,<值2>,<值3>]
详细信息查看https://www.runoob.com/json/json-tutorial.html
接下来是json在minecraft中的应用之一原始JSON文本
以tellraw为例/tellraw <某人> <原始JSON文本>
引自Minecraft Wiki
原始JSON文本(Raw JSON Text)是Minecraft用于给玩家发送并显示富文本的格式,它也可以通过命令和数据包发送。原始JSON文本使用JSON编写。
给玩家发送一个最简单的消息,在下面这个例子中玩家会收到“消息”
- /tellraw <某人> {"text": "消息"}
然后我们来给他来点颜色
来看到wiki对color键的说法
color:可选,渲染文字时使用的颜色。有效值有:black、dark_blue、dark_green、dark_aqua、dark_red、dark_purple、gold、gray、dark_gray、blue、green、aqua、red、light_purple、yellow、white和reset(取消父对象使用的颜色效果)。
设置为"#<hex>"将会使用以6位十六进制颜色格式定义的颜色。
所以说下面这个“消息”将会是黄色的
- /tellraw <某人> {"text": "消息", "color": "yellow"}
再来实现一下clickEvent(点击事件),下面这个是对于点击事件的描述
clickEvent:可选。允许在玩家点击文字时产生事件。若无附加说明,仅在聊天页面和成书中生效。
action:点击时发生的事件。有效值有:
“open_url”:在默认浏览器中打开 value中的URL地址。
“open_file”:打开计算机**于 value的文件。其用于游戏自动生成的消息中(如截图时显示的信息),且出于安全原因禁止玩家使用。
“run_command”:可用于告示牌上,但仅支持在父对象中使用。在使用告示牌时生效。在聊天页面和成书中,将以玩家的身份输入 value并发送。这可以用于执行命令,但需要玩家拥有权限;命令必须拥有“/”前缀,否则将会视为聊天信息。在告示牌中,命令将由服务器在告示牌所在的位置执行,并将使用告示牌的玩家视为执行者。因为命令由服务器执行,告示牌命令无视玩家的权限等级,其与命令方块的权限等级相同;且其不受聊天框长度的限制,可以省略“/”前缀。
“suggest_command”:打开聊天页面并输入 value。若聊天框已有内容,其将会被覆盖。
“change_page”:仅在成书中生效。若指定页面存在,将翻至第 value页。
“copy_to_clipboard”:将 value复制到剪贴板中。
value:指定的URL、文件路径、信息、命令或页码。
所以说当点击消息时执行命令就是,下面这个“消息”就会在被点击时执行/gamemode creative命令(前提是玩家有权限(如果JSON文本被搞在告示牌上将无视权限))
- /tellraw <某人> {"text": "消息", "color": "yellow", "clickEvent": {"action": "run_command", "value": "/gamemode creative"}}
更多关于原始JSON文本的内容参见https://wiki.biligame.com/mc/%E5 ... C%E6%A0%BC%E5%BC%8F
至于怎么把原始JSON文本搞告示牌上
- give @p minecraft:oak_sign{BlockEntityTag:{Text1:"<转义过后的json文本>"}} 1
请说明游戏版本