Minecraft(我的世界)中文论坛

标题: 关于如何绕过moj不让改玩家的限制

作者: chyx    时间: 2019-1-11 18:22
标题: 关于如何绕过moj不让改玩家的限制
mojang一向不让修改玩家的NBT。
虽然最近可以用store存tag里的值,但是限制仍然很大。
最近出现了一种新的方法来修改。
loot table里有了一个新的function:copy nbt
而我问了开发者,可以用{}表示根。
这样就可以获得一个tag和已知物品完全一样的东西。
但是id和个数没办法。只能枚举一遍。
不过通常也不需要这样完全枚举一遍。比如我想要把药水瓶换成效果一致的药水箭,或者给玩家的剑加一个tag,就不需要枚举个数和id。
最后使用loot指令让玩家“杀”一个设置了loottable的生物,并把东西覆盖原来的东西即可
=================
当然了,这样花样就很多了。
可以共用同一个loot table,里面枚举了所有可能的id和个数
用的时候先复制玩家某格的物品到生物的头上,做一番修改,然后再使用loot指令替换玩家物品栏
也可以每个都创建一个loot table,直接判断killer的物品槽,对物品的修改直接用loot table的function完成。


作者: chyx    时间: 2019-1-11 18:28
我给的例子里是检查玩家的主手,可以根据需要自行修改。
最后的"target":"{}","op":"merge"这里,我试过了 根不能replace 只能merge。
data modifiy这里也是这样的。
感觉说是bug还是特性都说得过去。
不过之前我填错了这里,不知为何,使得我破坏这个掉落表的盔甲架时,物品掉落了,破坏盔甲架的音效和烟雾也出来了,
只有一点奇怪:盔甲架还在那里。

此外控制台里游戏输出了一长串奇怪的文字
作者: Peng_Lx    时间: 2019-1-11 18:46
emmmm 我记得一个mod可以做到 但是玩家的NBT比较复杂 hhhh 名字是 NBTEdit
不过毕竟不是原版 还是有些难受的
作者: (=°ω°)丿    时间: 2019-1-11 20:53
我一直很好奇mojang为什么不让修改玩家的NBT……
作者: ruhuasiyu    时间: 2019-1-11 21:04
Peng_Lx 发表于 2019-1-11 18:46
emmmm 我记得一个mod可以做到 但是玩家的NBT比较复杂 hhhh 名字是 NBTEdit
不过毕竟不是原版 还是有些难受 ...

原版你扯mod干啥……有mod当然不用这么麻烦……

作者: ruhuasiyu    时间: 2019-4-27 17:20
我想,把玩家的物品信息存储到实体手持,然后设置百分百掉落应该也是可以的,而且可以免穷举id
作者: chyx    时间: 2019-4-27 23:44
ruhuasiyu 发表于 2019-4-27 17:20
我想,把玩家的物品信息存储到实体手持,然后设置百分百掉落应该也是可以的,而且可以免穷举id ...

但是怎么把掉下来的东西给予玩家呢?
把物品tp给玩家???
作者: Ruainbow_    时间: 2019-4-28 02:44
当初就是看上了loot/replace的效果好,研究了大晚上的lt,最后又去问了SPG、折君这一票人才理解了。
做的一个储物袋子,UI是对话框。
不过我测试的时候AS打死不掉东西,就换成僵尸了。
现在想想,可能是用AS测试的时候正好出了bug吧,我记得我后来去修了?
作者: ruhuasiyu    时间: 2019-4-28 12:02
chyx 发表于 2019-4-27 23:44
但是怎么把掉下来的东西给予玩家呢?
把物品tp给玩家???

嗯,确实不行
作者: 1042102543    时间: 2019-4-28 12:50
理科大佬啊,完全看不懂
作者: (=°ω°)丿    时间: 2019-5-1 08:43
本帖最后由 Teenager_Yang 于 2019-5-1 10:45 编辑

抱歉回错帖了,这就是看都没看是哪个帖子就回帖的结果

作者: yebin2632    时间: 2019-5-1 10:55
2333333333333333
作者: 1677343686    时间: 2019-5-1 16:08
emmm,虽然不太明白你们讲什么,但是支持大佬
作者: yuen27787231    时间: 2019-5-17 01:06
太複雜的後台了 改這個有什麼用處?
作者: asd1543255944    时间: 2019-5-17 02:01
咱也不知道  咱也不敢问
作者: 超人152    时间: 2019-5-18 03:00
蒙了,每天看看长知识来
作者: zxcv21202    时间: 2019-5-26 08:28

楼主做教程不容易,我这个新手献上一拜。{:10_512:}

作者: cf6513272991    时间: 2019-5-26 08:39
好奇mojang为什么不让修改玩家的NBT……
作者: 秋520    时间: 2019-5-26 16:23
嘻嘻嘻谢谢哈哈哈哈
作者: 秋520    时间: 2019-5-26 16:23
1677343686 发表于 2019-5-1 16:08
emmm,虽然不太明白你们讲什么,但是支持大佬

哈哈哈哈哈哈哈哈哈哈谢谢
作者: 秋520    时间: 2019-5-26 16:23
asd1543255944 发表于 2019-5-17 02:01
咱也不知道  咱也不敢问

哈哈哈哈哈哈哈哈哈哈
作者: 秋520    时间: 2019-5-26 16:24
秋520 发表于 2019-5-26 16:23
哈哈哈哈哈哈哈哈哈哈

哈哈哈哈哈哈哈哈哈
作者: 秋520    时间: 2019-5-26 16:25
忽远忽近发货方回复
作者: ExpiodlngTNT    时间: 2019-5-29 09:09
还不是太懂....
作者: SPGoding    时间: 2019-6-22 13:38
chyx 发表于 2019-1-11 18:28
我给的例子里是检查玩家的主手,可以根据需要自行修改。
最后的"target":"{}","op":"merge"这里,我试过了  ...

replace 的原理是把父节点的这个节点重新设定
而根节点并没有父节点,所以不能用 replace
作者: chyx    时间: 2019-6-23 00:50
SPGoding 发表于 2019-6-22 13:38
replace 的原理是把父节点的这个节点重新设定
而根节点并没有父节点,所以不能用 replace ...

我也是这样猜的。所以我也没认为这是bug
作者: witherqwq    时间: 2019-6-23 20:52
我一直很好奇mojang为什么不让修改玩家的NBT……
作者: AppleCarrot    时间: 2019-8-20 16:35
Ruainbow_ 发表于 2019-4-28 02:44
当初就是看上了loot/replace的效果好,研究了大晚上的lt,最后又去问了SPG、折君这一票人才理解了。
做的一 ...

嗯 as是什么 盔甲架?
作者: 追忆不是梦    时间: 2019-8-28 15:15
可以可以可以可以可以可以
作者: boomfire    时间: 2020-2-2 07:07
提示: 作者被禁止或删除 内容自动屏蔽
作者: ⭐✔️    时间: 2020-2-2 09:16
本帖最后由 Tremble 于 2020-2-2 09:18 编辑
隐退 发表于 2019-1-11 20:53
我一直很好奇mojang为什么不让修改玩家的NBT……

理由主要是player.dat(单人游戏level.dat中的player)
我们可以看到mojang开发了大量命令(如give,effect等)在对象为玩家时都是相当于间接修改了玩家部分nbt
问题就在于为何不能用data直接修改所有nbt?
原因很简单:双向异步通讯与单向异步通讯

服务器与客户端分离的条件下,服务端储存player.dat与level.dat等数据文件,客户端只请求与读取然后渲染效果
当请求影响异地(双向异步):客户端请求?服务端修改数据文件?服务器发送修改的数据?客户端读取并渲染
当请求影响本地(单向异步):客户端请求并渲染?服务端修改数据文件

可发现服务器在处理影响本地的请求时没有反向更新,因为客户端提前渲染了
这就是为什么服务器卡顿,实体不动自己能动。本质上是服务端没有反过来与客户端同步,但不影响客户端。
假设玩家一切nbt能修改,那么玩家所有数据(包括变换,状态)都必须与服务器同步,即全部按照第一种方式完成请求,在单人游戏下理论上允许,但多人游戏下体验极差(延迟),另一方面通讯不安全(在反向发包中劫持本地)


作者: wenhao2004924    时间: 2020-3-4 09:55
技术大佬,膜拜
作者: xiaozhang421    时间: 2020-3-4 11:29
good job!!

作者: 暗夜awa    时间: 2020-3-7 19:05
你这是干什么竟然敢弄mojang
作者: 金色_年华    时间: 2020-7-13 00:58
帖子解锁了,弱弱问一句,现在除了这个还有其它方法修改玩家背包吗
作者: Dicro_scrive    时间: 2020-7-13 07:12
意思是以后可以直接用指令将一个玩家的物品替换成另一个物品?
作者: 2574234281    时间: 2020-7-13 12:22
楼主头像牛批啊
作者: kunkun520    时间: 2020-7-29 20:42
mcbbs有你更精彩!!!
作者: 庄拾弎    时间: 2020-8-21 04:35
提示: 作者被禁止或删除 内容自动屏蔽
作者: 不忘吃心    时间: 2020-8-24 00:14
前面的字还没懵逼  一看见你的隐藏内容 我整个人傻掉了
作者: qq357286608    时间: 2020-8-24 01:16
666666666666666666
作者: 爱吃萝卜和青菜    时间: 2020-8-24 12:55
斯。。。。。。。这么多代码看的我懵逼
作者: Cold-Pot    时间: 2021-1-28 17:51
(=°ω°)丿 发表于 2019-1-11 20:53
我一直很好奇mojang为什么不让修改玩家的NBT……

mojang可能害怕我们乱改把游戏存档改坏了