[指令日记]零基础的mc1.13指令教程

最后举几个例子
/give@pleather_boots{AttributeModifiers:[{AttributeName:generic.movementSpeed,Operation:1,Amount:1d,Slot:feet,UUIDLeast:233,UUIDMost:233}]} ---给最近的玩家一个能让移动速度翻倍的皮鞋


give @p sign{AttributeModifiers:[{AttributeName:generic.attackDamage,Operation:0,Amount:3d,Slot:mainhand,UUIDLeast:233,UUIDMost:233},{AttributeName:generic.armor,Operation:0,Amount:10d,Slot:offhand,UUIDLeast:233,UUIDMost:233}],display:{Name:"{\"text\":\"平底锅\"}"}} ----给最近的玩家一个在惯用手上增加攻击,在副手上增加防御的平底锅





/give @p stick{Enchantments:[{id:sharpness,lvl:5},{id:looting,lvl:3}],AttributeModifiers:[{AttributeName:generic.attackDamage,Operation:0,Amount:10d,Slot:mainhand,UUIDLeast:233,UUIDMost:233},{AttributeName:generic.attackSpeed,Operation:0,Amount:-2.4d,Slot:mainhand,UUIDLeast:233,UUIDMost:233}],display:{Name:"{\"text\":\"钻石剑\",\"italic\":\"false\"}"}} ---给最近的玩家一把锋利5、抢夺3的。。。钻石剑?


楼主 化学爱好者_C60  发布于 2019-02-02 20:17:00 +0800 CST  
今天就到这了,明天讲json,顺带讲一些文本性的指令
大家晚安

楼主 化学爱好者_C60  发布于 2019-02-02 20:24:00 +0800 CST  
9、JSON文本与文本性指令

楼主 化学爱好者_C60  发布于 2019-02-03 14:25:00 +0800 CST  
在讲json之前,我先来介绍一个指令,tellraw
这个指令可以在指定玩家的聊天框中输出json文本
比如,我输入以下指令
/tellraw @s {"text":"欢迎大家收看今天的《指令日记》\n我是化学爱好者_C60"}

执行效果如下


楼主 化学爱好者_C60  发布于 2019-02-03 14:32:00 +0800 CST  
关于json文本的格式
json文本用{}和里面的参数表示,所有参数与数值必须用引号表示,否则json文本的内容就不会被正确识别


关于转义符“\”,这里感谢一下@玄墨之蝶提供的一个链接。这个链接对转义符解释的比较清楚。相关链接位于102楼,大家可以参考一下。
这里的转义符要和我们打指令时用的符号区别一下。转义符位于回车键上方,样式为\,而我们打指令的符号为/
举一个简单的应用例子,我想把我刚刚打招呼用的原始json放到聊天栏里。如果不加转义符,我的指令就会变成这样
/tellraw@s{"text":"{"text":"欢迎大家收看今天的《指令日记》\n我是化学爱好者_C60"}"}
那么到底哪几个引号是一对呢?似乎不好判断。这个时候我们就需要添加转义符,来改变其中引号的含义
我们可以类比一下汉语里的双引号与单引号,当在引用中还需要再次引用时,我们就会把双引号改为单引号。比如:
语文老师说:“鲁迅曾经说过:‘横眉冷对千夫指……’ ”
在json中,在双引号前加转义符,就类似于汉语中将双引号变为单引号,避免歧义
因此,在添加转义符后,得到的正确指令如下
/tellraw @s {"text":"{\"text\":\"欢迎大家收看今天的《指令日记》\\n我是化学爱好者_C60\"}"}


楼主 化学爱好者_C60  发布于 2019-02-03 15:04:00 +0800 CST  
现在我们开始讲json的参数
先从最基础的文本开始
text 要输出的文本(输入\n可以换行)
color 文本的颜色
italic 斜体(布尔值)
obfuscated 乱码(布尔值,只能是英文)
strikethrough 删除线(布尔值)
underlined 下划线(布尔值)


举几个例子
/tellraw @s {"text":"CHElover_C60加入了游戏","color":"yellow"}


/tellraw @s [{"text":"italic表示斜体","italic":"true"},{"text":"strikethrough表示删除线","strikethrough":"true","italic":"false"},{"text":"underlined表示下划线","underlined":"true"}]


楼主 化学爱好者_C60  发布于 2019-02-03 15:34:00 +0800 CST  
补几个图
/tellraw@s{"text":"aaabbbccc","obfuscated":"true"}


/tellraw@p[{"text":"aqua青色","color":"aqua"},{"text":"black黑色","color":"black"},{"text":"blue蓝色","color":"blue"},{"text":"dark_aqua深青色","color":"dark_aqua"},{"text":"dark_blue深蓝色","color":"dark_blue"},{"text":"dark_gray深灰色","color":"dark_gray"},{"text":"dark_green深绿色","color":"dark_green"},{"text":"dark_gray深灰色","color":"dark_gray"},{"text":"dark_purple深紫色","color":"dark_purple"},{"text":"dark_red深红色","color":"dark_red"},{"text":"gold金色","color":"gold"},{"text":"gray灰色","color":"gray"},{"text":"green绿色","color":"green"},{"text":"light_purple亮紫色","color":"light_purple"},{"text":"white白色","color":"white"},{"text":"yellow黄色","color":"yellow"}]


楼主 化学爱好者_C60  发布于 2019-02-03 15:51:00 +0800 CST  
其他的一些参数
keybind 按键
score 分数
selector 目标选择器
translate 翻译


keybind 按键,比如打开背包之类的按键
考虑到可能会有部分玩家更改默认键位设置,因此在使用部分地图的某些功能时,比如Q键使用某道具,而该玩家将扔出物品的键位改成了别的键位,就会导致Q键没有效果
举个例子
tellraw@a[{"text":"按\""},{"keybind":"key.drop"},{"text":"\"键扔出物品"}]
在默认情况下,应该是这个结果


如果我在键位设置里,把扔出物品的键位该成了别的(比如r键)
再次激活后


所有按键列举如下
key.attack 攻击/摧毁
key.back 向后移动
key.chat 打开聊天栏
key.command 输入指令
key.drop 丢弃所选物品
key.forward 向前移动
key.fullscreen 全屏显示切换
key.hotbar.1 快捷栏1
key.hotbar.2 快捷栏2
key.hotbar.3 快捷栏3
key.hotbar.4 快捷栏4
key.hotbar.5 快捷栏5
key.hotbar.6 快捷栏6
key.hotbar.7 快捷栏7
key.hotbar.8 快捷栏8
key.hotbar.9 快捷栏9
key.inventory 开启/关闭物品栏
key.jump 跳跃
key.left 向左移动
key.pickItem 选取方块
key.playerlist 玩家列表
key.right 向右移动
key.screenshot 截图
key.smoothCamera 切换电影视角
key.sneak 潜行
key.spectatorOutlines 高亮玩家(旁观者)
key.sprint 疾跑
key.swapHands 交换手中的物品
key.togglePerspective 切换视角
key.use=使用物品/放置方块


score 分数 由于目前没讲计分板,暂且不讨论


selector 用于增加目标选择器

例:
/tellraw@s{"selector":"@e"}


没错我刚刚扔了个钻石出来


translate 用于翻译指定文本
这个多用在多语言地图上
比如昨天我在某多多上买了一把钻石剑
但是。。。如果我切换到英文界面


这个破绽实在有点大
将指令修改如下
give@pstick{Enchantments:[{id:sharpness,lvl:5},{id:looting,lvl:3}],AttributeModifiers:[{AttributeName:generic.attackDamage,Operation:0,Amount:10d,Slot:mainhand,UUIDLeast:233,UUIDMost:233},{AttributeName:generic.attackSpeed,Operation:0,Amount:-2.4d,Slot:mainhand,UUIDLeast:233,UUIDMost:233}],display:{Name:"{\"translate\":\"item.minecraft.diamond_sword\",\"italic\":\"false\"}"}}
注意重点,最后一行,我将原本的text改为了translate。这个时候,不管你用什么语言看它,它都是对应语言里的钻石剑了





对于有参数的translate
部分translate会有参数%s,我们需要填写这个参数,否则如果直接执行,会出现比较尴尬的情况。
填写这个参数的方法是添加with标签,with的格式为 "with":[{json1},{json2}...]
例:
/tellraw @a {"translate":"multiplayer.player.joined","with":[{"selector":"@p"}],"color":"yellow"}
执行效果如下




translate 对应的内容可以在游戏文件内找到
依次打开游戏目录→.minecraft→verson→游戏版本,然后以压缩包的形式打开游戏的jar文件,打开.minecraft→assets→lang后找到语言文件,打开后即得到所需内容(可以以记事本或其他方法打开)
有时候也可以直接在游戏目录里的.minecraft/assats/lang里找到

楼主 化学爱好者_C60  发布于 2019-02-03 17:10:00 +0800 CST  
json文本还有一个好处,就是它有很强的互动性
比如我可以添加hoverEvent标签,让鼠标放在它上面时显示一些东西
也可以添加clickEvent标签,让它被点击时执行一些东西
这里先讲hoverEvent标签
hover标签下有两个子标签,action和value
action 决定了鼠标放上去后的效果
value 决定了action的内容,格式取决于action内容
action有3种效果,show_entity,show_item,show_text


show_text会展示一段json文本
例:
/tellraw @s {"text":"把鼠标放到我上面","hoverEvent":{"action":"show_text","value":{"text":"哈哈哈"}}}




show_item和show_entity
注:关于这部分内容,我刚刚试了好多方法,也查了wiki,又翻了许多教程,但是都显示无效的实体或无效的物品。不知有没有大神能帮忙给出正确的格式。如果我找到正确的格式后,会在以后的内容中补充。

楼主 化学爱好者_C60  发布于 2019-02-03 18:33:00 +0800 CST  
最后一个参数 insertion 在聊天框中添加文本
可以在按住shift键后点击拥有此标签的json文本,将该标签的数值添加到聊天栏里
例:
/tellraw @s {"text":"按shift后点击此处在聊天框中添加minecraft","insertion":"minecraft"}



楼主 化学爱好者_C60  发布于 2019-02-03 19:40:00 +0800 CST  
介绍几个文本性的指令
tell=msg
用于和别的玩家私聊(此指令不需要权限)
格式为/tell 玩家 内容


say
用于向全部玩家宣布消息
格式为/say 文本
这个指令中,打出指令的玩家使用是是中括号,而非平常聊天中的尖括号
例:/say 大家好


该指令中,可直接输入目标选择器


如果这两个指令被输入在没有用铁砧命名的命令方块中,显示的名字会是@


如果命令方块被用铁砧改了名字,显示的就是改过名字后的效果

楼主 化学爱好者_C60  发布于 2019-02-03 19:51:00 +0800 CST  
最后再介绍一个指令 title
这个指令用于显示标题
格式如下:
/title 玩家 title/subtitle/actionbar json ---显示主标题/副标题,或在物品栏上方显示标题
/title 玩家 clear 停止标题的执行
/title 玩家 times 淡入时间 停留时间 淡出时间
/title 玩家 reset 重置标题执行时间
注:
设置标题执行时间时,单位是游戏刻,一个游戏刻是0.05秒,也就是,设置为20时,该过程持续的时间就是1秒
副标题不能单独执行,需要在主标题执行时,副标题才能执行


例:
/title @a title {"text":"大家新年好!","color":"red"}


/title @a subtitle {"text":"春节快乐!","color":"yellow"}
/title @a title {"text":"大家新年好!","color":"red"}


/title @a actionbar {"text":"《指令日记》给您拜年了!","color":"red"}


/title @a times 20 60 20 ---设置所有人的标题执行时间为:淡入1秒,持续3秒,淡出1秒

楼主 化学爱好者_C60  发布于 2019-02-03 20:06:00 +0800 CST  
明天就是大年三十了,我可能不会更新了(今天回到家后就被叫来叫去的,好忙)
预告一下以后的计划
下一期讲几个常用的方块的nbt
之后看情况决定要不要讲execute
后面再补充一下常用实体的nbt
然后看情况补充一些做图常用的小指令
然后就是标签、计分板、队伍什么的。
这是目前的计划,在以后的实际教程中可能会有变动
最后提前祝大家新春快乐了

楼主 化学爱好者_C60  发布于 2019-02-03 20:17:00 +0800 CST  
大家新年好!
/title @a subtitle {"text":"春节快乐!","color":"yellow"}
/title @a title {"text":"大家新年好!","color":"red"}

楼主 化学爱好者_C60  发布于 2019-02-05 00:00:00 +0800 CST  
更新了更新了
前两天都不在家,今天下午终于有空了

楼主 化学爱好者_C60  发布于 2019-02-06 15:11:00 +0800 CST  
10、常用方块nbt介绍

楼主 化学爱好者_C60  发布于 2019-02-06 15:12:00 +0800 CST  
这里先补充一个东西
打开F3,然后看着一个方块,就可以在右侧看到方块的id和数据值
比如,我放下一个箱子,庵后打开F3


然后我们可以看到它的id是chest,数据值有3个,facing,type,waterlogged


然后我们试着看一下它的nbt
/data get block 6 56 39


楼主 化学爱好者_C60  发布于 2019-02-06 15:21:00 +0800 CST  
data指令在方块中的应用于在实体中的应用语法很类似,就是讲entity换成了block,然后将目标选择器换成了坐标,比较容易理解。


今天准备介绍3种方块的nbt
第一种:容器(比如箱子、漏斗、熔炉等)
第二种:告示牌
第三种:刷怪笼


先来介绍容器类方块
这些方块有3个标签,CustomName,Items,Lock


CustomName 容器的名字 格式为CustomName:"json"
例:
/setblock 6 56 39 chest[facing=west]{CustomName:"{\"text\":\"一个普通的箱子\",\"color\":\"red\"}"} ---在指定位置放置一个面向西的,名字为红色“一个普通的箱子”的箱子




Items 容器内的物品 格式为Item:[{物品1},{物品2}……]
Items下有4个子标签,Slot,id,Count,tag
Slot 用于指定物品的位置(选填,不填则默认第一个格内)
id 物品的id
Count 物品的数量(1~127)
tag 物品的nbt(选填)
注:容器内第一个格子的位置为0,第二个为1,以此类推
在使用data指令修改容器内物品时,箱子里原本的东西会被清空
例:
/data merge block 6 56 39 {Item:[{Solt:13,id:diamond_sword,Count:64}]} ---将指定位置的容器的第14个格子内放置64个钻石剑




Lock 将容器上锁 格式为Lock:"文本"
例:
/setblock 6 56 39 furnace[facing=west]{Lock:"钥匙"} ---在指定位置生成一个上锁的熔炉


当我们试图打开它时,它会提示这个熔炉已被上锁
如果要打开这个所,我们需要做的是将一个任意物品改名为Lock标签的内容
比如,这个熔炉的Lock标签的内容是“钥匙”
因此将任意物品改名为钥匙


然后拿着这个改了名的钥匙即可打开上了锁的熔炉


楼主 化学爱好者_C60  发布于 2019-02-06 16:14:00 +0800 CST  
下面介绍告示牌
告示牌有两种,一种在墙上,一种在地上(废话)
需要注意的是,这两种告示牌的id并不一样,数据值也略有不同,但是nbt是一样的


告示牌的nbt比较简单,Text1,Text2,Text3,Text4
格式也比较统一 Text1:"json"
例:
/setblock 6 57 53 wall_sign[facing=south]{Text1:"{\"text\":\"欢迎收看\",\"color\":\"red\"}",Text2:"{\"text\":\"《指令日记》\",\"color\":\"aqua\"}"} ---在指定位置放置指定内容的告示牌


注:如果给告示牌加clickEvent事件,所有4个json文本的事件会同时执行
在告示牌中,run_command事件不再是由点击这个json的人执行,而是告示牌执行,也就是说,此处不能再像在聊天框中的json那样用@s来指点击这个文本的人,并且相对坐标和局部坐标也是以告示牌为基准。不过,这样也可以避免点击告示牌的人没有权限导致指令执行不成功。

楼主 化学爱好者_C60  发布于 2019-02-06 16:42:00 +0800 CST  
最后介绍一下刷怪笼的nbt
SpawnData 下一次生成实体的数据
SpawnCount 一次生成生物的最大数量
SpawnRange 生成实体的最大范围
MaxNearbyEntities 周围最大的目标实体数量
RequiredPlayerRange 刷怪笼正常工作要求的玩家与刷怪笼的最大距离
MaxSpawnDelay 最大生成所需时间(单位:游戏刻)
MinSpawnDelay 最小生成所需时间(单位:游戏刻)
Delay 距离下一次生成剩余的时间(单位:游戏刻)
SpawnPotentials 可生成的生物表


先来介绍第一个nbt SpawnData
格式:Spawndata:{id:"实体ID",nbt}
例:
/setblock 8 56 40 spawner{SpawnData:{id:"sheep",Color:10}} ---
在指定位置生成一个紫色羊刷怪笼


楼主 化学爱好者_C60  发布于 2019-02-06 17:33:00 +0800 CST  

楼主:化学爱好者_C60

字数:59733

发表时间:2019-01-27 01:23:00 +0800 CST

更新时间:2019-07-22 08:34:08 +0800 CST

评论数:924条评论

帖子来源:百度贴吧  访问原帖

 

热门帖子

随机列表

大家在看