Minecraft(我的世界)中文论坛

 找回密码
 注册(register)

!header_login!

只需一步,立刻登录

查看: 2399|回复: 22

[教程] 【1.14】/data modify——不用一秒钟,批量驯服宠物!

[复制链接]
liach 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3447
钻石
性别
保密
注册时间
2014-4-2
查看详细资料
 楼主| 发表于 2019-4-15 13:18:15 | 显示全部楼层 |阅读模式

您尚未登录,立即登录享受更好的浏览体验!

您需要 登录 才可以下载或查看,没有帐号?注册(register)

x
本帖最后由 liach 于 2019-4-15 13:18 编辑

/data modify——不用一秒钟,批量驯服宠物!


有没有想过在 Minecraft 中过上后宫宠物三千的日子,但又懒得一只一只驯?1.14 最新命令能完成你的愿望!

原先……一群恶狼看到一只美味的肥羊,凶猛地扑了上去!
file_1555301393000.jpg

一秒钟以后……

file_1555301473000.jpg

原先的羊羊尸骨未寒没看到左边的羊毛和地上的生肉吗,一群饿狼就全变成了乖狗狗!



众所周知,在 1.14 中 Minecraft 又添加了更多命令和战利品上的技术性内容,尤其是
  1. /loot
  2. /data modify
复制代码
两个让人尤其喜闻乐见的指令。

/data modify
/data modify 大致相当于 /execute store <entity/block> 的一个替代版本(同样是只能抄到一个实体上),可以把 NBT 中的数据从一个(方块)实体复制到另一个(方块)实体。
然而 /data modify 可以复制 NBT 字符串!这也是它可以设置宠物类生物 NBT 中主人标签所必须的属性(主人标签是字符串形式的一个 UUID)

但是就算能复制 UUID 字符串,这个 UUID 字符串哪里来?
根据英文 Minecraft Wiki 玩家数据页所述,玩家 NBT 数据中只有 UUIDLeast 和 UUIDMost,没有现成的 UUID 字符串。所以从玩家身上抄数据是行不通的。

那么有什么东西可以自动补齐玩家 UUID 字符串呢?
老司机不用问就知道用玩家头可以获得玩家皮肤 Base 64 码和 UUID 信息。喜闻乐见的是,玩家头里面的 UUID 也是字符串,可以直接抄到宠物身上!
但是……要让玩家头颅自动补齐数据,也需要把玩家的用户名放进 NBT 里面。而玩家 NBT 数据中也没有玩家用户名,所以……卡壳了?

等等!我们有战利品表!
在 1.14 中,战利品表函数中新增了一个 minecraft:fill_player_head 可以根据发送命令的玩家实体生成一个对应的头颅。这样我们就好办了!
(注意:这里 /loot 执行时执行实体必须是玩家才能正确获得头!在 /execute 中使用时小心)

战利品要怎么放?
在 1.14 中,/loot 命令可以把战利品在世界中生成,或者把战利品放在能存贮物品的(方块)实体中,或者直接给玩家。

为了安全起见(避免和游戏中正常方块/实体冲突),我选择把战利品放在一个实体中。
虽然 /loot spawn 可以直接刷出一个物品实体,但是无法添加 NBT 标签,会导致它可以被玩家捡起,会受伤,等等。所以不使用此方法。
剩下就 /loot give 和 /loot insert 了。我选择 /loot insert,这样好知道物品会放在哪个格子中,方便抄 NBT。

战利品要放哪个实体上?
这里相对比较自由了。我最早选择放盔甲架头部格子(又是什么都用盔甲架的流水线作业),感觉比较方便。
但是我后来为了性能考虑改用物品展示框,将头放到物品展示框的唯一一格中(可以用 hotbar.0),在 NBT 格式中存在根 NBT 中的 Item 这个 NBT 对象里面。
如果你需要缓存头颅的实体完全看不见,可以考虑箱子矿车,不会渲染背包里面的物品。
当然你最好加个记分板标签,这样作为宠物找有数据的实体找起来比较简单,最后把这个实体删除也简单。

怎么抄?
我们有一群宠物,但是 /data modify 和 /execute store 都只能有一个被修改的目标。幸亏 Minecraft 有 /execute 和命令函数,可以用 /execute 把多个宠物中每一个作为命令执行者,把数据从带着头颅的实体上抄过来,这样就不怕一个被修改的目标的限定了。数据路径啊……宠物的 UUID 是自己的 OwnerUUID 字段,头颅的 UUID 是在物品 NBT 对象根目录底下的 tag.SkullOwner.Id 里面。实在不懂就看看下面宠物抄数据的函数内容吧。

技术听懂,来看看代码吧
这个小例子放在了 GitHub 上。
主函数
可以把这里的选择器的 type 参数里面换成 entity type tag(实体类型数据包标签),这样你可以就用数据包标签套用模板了。阿猫阿狗一起驯
为了更真实,这里限定只有 20 格以内的宠物会被驯服,有兴趣请改掉。
每个宠物抄数据的函数
用来拿头颅的战利品表

说这么多,这东西到底有什么实际用途
以后原版伪 mod (数据包 + 资源包、地图)可以加个物品一键驯服大批宠物之类的。
没人愿意玩原版模组,还要给每个世界装,烦
那么等你下次玩原版 PvP 地图,对面玩家放个技能把你的狗全部变成他的,你被狗咬死的时候你就知道了。

欢迎评论,有问题或建议楼主会回复!


来自群组: MC百科

评分

参与人数 5人气 +11 金粒 +31 收起 理由
SPGoding + 3 + 21  
BlackCB. + 2 MCBBS有你更精彩~
玄素 + 3 MCBBS有你更精彩~
langyo + 2 MCBBS有你更精彩~
丢人素学姐 + 1 + 10 MCBBS有你更精彩~

查看全部评分

tangguoshuai 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
51
钻石
性别
保密
注册时间
2015-2-1
查看详细资料
发表于 2020-1-23 23:39:15 | 显示全部楼层
蝙蝠要是驯服就可以飞了
回复

使用道具 举报

1537237773 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
344
钻石
性别
保密
注册时间
2019-10-7
查看详细资料
发表于 2020-1-23 23:19:24 | 显示全部楼层
大佬真多学习到了呢
回复

使用道具 举报

分享 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
836
钻石
性别
保密
注册时间
2016-7-23
查看详细资料
发表于 2020-1-23 10:56:01 | 显示全部楼层
额没看懂能来个视频讲一下吗
回复

使用道具 举报

liach 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3447
钻石
性别
保密
注册时间
2014-4-2
查看详细资料
 楼主| 发表于 2020-1-22 12:15:19 来自手机 | 显示全部楼层
Leokk 发表于 2020-1-22 09:59
随便谁 骑 的 (?)

是的minecraft里面马只有驯服状态,不管是谁驯服的都一样
回复

使用道具 举报

Leokk 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
20
钻石
性别
保密
注册时间
2020-1-21
查看详细资料
发表于 2020-1-22 09:59:08 | 显示全部楼层
liach 发表于 2019-4-15 13:30
马驯服很简单,直接一个 /summon minecraft:horse ~ ~ ~ {Tame:1b} 就一只驯服的出来了
猫狗驯服实际上很 ...

随便谁 骑 的 (?)
回复

使用道具 举报

Leokk 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
20
钻石
性别
保密
注册时间
2020-1-21
查看详细资料
发表于 2020-1-22 09:57:37 | 显示全部楼层
qwq绝了,,,,,,,,
回复

使用道具 举报

ALONE[][ 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
39
钻石
性别
保密
注册时间
2020-1-19
查看详细资料
发表于 2020-1-21 09:34:15 | 显示全部楼层
大佬厉害厉害

评分

参与人数 1人气 -2 金粒 -20 收起 理由
SPGoding -2 -20 请仔细阅读版规,不要灌水!

查看全部评分

回复

使用道具 举报

魔法豆子 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
34
钻石
性别
保密
注册时间
2019-4-30
查看详细资料
发表于 2019-4-30 19:07:15 | 显示全部楼层
指令能解决一切问题
回复

使用道具 举报

3496997578 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
139
钻石
性别
保密
注册时间
2018-7-21
查看详细资料
发表于 2019-4-30 18:45:23 | 显示全部楼层
想去体验一下1.14鸭
回复

使用道具 举报

伏羲大大 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
1132
钻石
性别
保密
注册时间
2019-4-14
查看详细资料
发表于 2019-4-28 13:37:52 来自手机 | 显示全部楼层
至今还没能体验1.14,要尽快赶去体验一下呀,看起来很棒!
回复

使用道具 举报

awa?owo? 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
260
钻石
性别
保密
注册时间
2018-1-29
查看详细资料
发表于 2019-4-27 13:12:53 | 显示全部楼层
不怕羊被狼给搞了咩
回复

使用道具 举报

幻世末影 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
320
钻石
性别
保密
注册时间
2017-5-28
查看详细资料
发表于 2019-4-26 17:45:48 | 显示全部楼层
非常快捷,但好像用处不大
回复

使用道具 举报

w3118313636 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
455
钻石
性别
保密
注册时间
2019-1-11
查看详细资料
发表于 2019-4-25 22:04:47 | 显示全部楼层
感谢楼主分享,拿去试试
回复

使用道具 举报

3246093361 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
53
钻石
性别
保密
注册时间
2016-11-17
查看详细资料
发表于 2019-4-25 20:50:13 | 显示全部楼层
666666666666

评分

参与人数 1人气 -1 金粒 -10 收起 理由
玄素 -1 -10 无意义

查看全部评分

回复

使用道具 举报

liach 当前离线
帖子
主题
精华
贡献
最后登录
1970-1-1
爱心
积分
3447
钻石
性别
保密
注册时间
2014-4-2
查看详细资料
 楼主| 发表于 2019-4-21 23:47:54 | 显示全部楼层
1141840659 发表于 2019-4-21 14:47
前提是我得找到那么多的狼

的确这个比较鸡肋(技术类),主要就是讲用战利品表来实现一个指令做不到的东西(当然你有mod这一切都是鸡肋了,就可以拿机器驯狗了)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册(register)

本版积分规则

Archiver|小黑屋|Mcbbs.net ( 京ICP备15023768号-1 ) | 京公网安备 11010502037624号 | 手机版

GMT+8, 2020-2-17 15:15 , Processed in 0.055796 second(s), Total 26, Slave 25 queries, Release: Build.2020.01.19.1840, Gzip On, MemCached On.

"Minecraft"以及"我的世界"为Mojang Synergies AB的商标 本站与Mojang以及微软公司没有从属关系

© 2010-2020 我的世界中文论坛 版权所有 本站原创图文内容版权属于原创作者,未经许可不得转载

快速回复 返回顶部 返回列表