Minecraft(我的世界)中文论坛

标题: 【命令方块】命令方块全图文教程 第九节 物品属性

作者: 龙腾猫跃    时间: 2015-2-5 15:23
标题: 【命令方块】命令方块全图文教程 第九节 物品属性
本帖最后由 龙腾猫跃 于 2015-7-14 21:47 编辑

命令方块全图文教程

第九节 物品属性

本节信息

教程使用版本:1.8.1
教程适用版本:1.8及以后
教程更新时间:2015-02-05

我先发一章把那些说我弃坑的人的嘴巴堵上= =!注意复制的命令记得把空格删了!
  首先,这一节要讲啥?直接上图:
     
  我们先上一只正常的钻石剑:
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword}}
复制代码
  物品生成后,我们可以看到,这里有个“攻击伤害 +7”,这货就是物品的属性(有些人叫“DNA数据”),我们今天就要拿它开刀……
     
  我们再使用这个命令:
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:7,AttributeName:generic.attackDamage,Name:Damage}]}}}
复制代码
  生成的物品似乎与刚才的没有区别,但它的属性却是人工指定的……
     
  那么,刚才那一串到底是哪里在控制攻击力?大家再用这个命令:
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:1000,AttributeName:generic.attackDamage,Name:Damage}]}}}
复制代码
  我的天,真是1000的攻击力!
     
  我们来验证一下是不是真的有一千攻击……怎么验证呢……呢……
     
  咳咳,不要吐槽我欺负BOSS  = =,总之,这个属性修改确实有效!那么,我们来分析一下命令:
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
  2.  AttributeModifiers:[
  3.   {Operation:0,UUIDLeast:1,UUIDMost:1,Amount:1000,AttributeName:generic.attackDamage,Name:Damage}
  4.  ]
  5. }}}
复制代码
  多出来的这个“AttributeModifiers”,就是修改的属性了。这些代码比较繁杂,通常复制粘贴吧= =……修改数值,只需要修改第3行的“Amount”后面的数字。比如这样会发生什么?
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
  2.  AttributeModifiers:[
  3.   {Operation:0,UUIDLeast:1,UUIDMost:1,Amount:-233,AttributeName:generic.attackDamage,Name:Damage}
  4.  ]
  5. }}}
复制代码
     
  啊喂,负攻击真的没关系么?会不会负负得正,给怪物补血了?还是实验一下吧……
  你会发现,你TMD打不动小果冻了T^T…………但是根据测试,不会补血,当伤害小于0只会攻击无效……
     
  然后,第二个属性:速度。上~代~码~
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
  2.  AttributeModifiers:[
  3.   {Operation:0,UUIDLeast:4,UUIDMost:4,Amount:0.1,AttributeName:generic.movementSpeed,Name:Speed}
  4.  ]
  5. }}}
复制代码
     
  喂,这个弱渣,增加0.1的速度有毛用!但是我要告诉你,0.1就是提升1倍,史蒂夫的基础速度就是0.1!
  继续测试。没拿钻石剑的时候:
     
  拿着的时候,视野明显增大了,走起来那可是= =……
     
  大家需要注意的是,这个千万别乱弄,设置个几万,走一步就是几十区块,然后MC就崩了!这个数据对飞行速度没有加成。然后是负数测试……
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
复制代码
  同样,负数不会负负得正,也不会让你倒着走,只会让你无法移动,你就只能……当!兔!子!
     
  看这神奇的视野……
     
  或许大家注意到了,刚才设置了速度的钻石剑的攻击属性消失了,所以我们必须得手动把它补上来,以后设置了属性的都是这样。
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
  2.  AttributeModifiers:[
  3.   {Operation:0,UUIDLeast:4,UUIDMost:4,Amount:0.1,AttributeName:generic.movementSpeed,Name:Speed},
  4.   {Operation:0,UUIDLeast:1,UUIDMost:1,Amount:7,AttributeName:generic.attackDamage,Name:Damage}
  5.  ]
  6. }}}
复制代码
  看吧,实际上设置多属性也是很简单的!注意第3行末尾的逗号就是。
     
  掌握了这些,上第3个属性,生命提升……这可不是药水效果,是货!真!价!实!的!生命提升……
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
  2.  AttributeModifiers:[
  3.   {Operation:0,UUIDLeast:1,UUIDMost:1,Amount:7,AttributeName:generic.attackDamage,Name:Damage},
  4.   {Operation:0,UUIDLeast:3,UUIDMost:3,Amount:10,AttributeName:generic.maxHealth,Name:Health}
  5.  ]
  6. }}}
复制代码
  召唤出的物品也确实带上了这个属性= =
     
  改成生存测试一下?
     
  嗯……这个也要注意!不要改太大,很卡的,比如作死的一百万:
     
  然后,负数可以减少生命值,如果在0以下……
     
  心会全部消失,但是也不会无限秒杀,而是你轻轻碰一下仙人掌就洗白白了!
     
  这里有个需要注意的地方,比目前最大生命多出来的生命值不会清空而会保留,但是受伤后多出来的这部分会被无视。
  举例:1.你拿生命+20的物品前,生命只有20,但是拿着之后,20的生命慢慢恢复成了40。
     2.这时,你不拿物品,最大生命从40变成了20,所以看起来只有20的生命。
     3.但是如果你再把物品拿起来,会发现你没有经历1.中的从20恢复到40的过程,而直接就是40。
     4.现在不拿物品,最大生命还原到20,如果这时受伤,再拿起物品,却发现生命不是40。
  上面的看不懂就算了= =!~

  第四个属性:击退抗性。
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{
  2.  AttributeModifiers:[
  3.   {Operation:0,UUIDLeast:1,UUIDMost:1,Amount:7,AttributeName:generic.attackDamage,Name:Damage},
  4.   {Operation:0,UUIDLeast:2,UUIDMost:2,Amount:0.5,AttributeName:generic.knockbackResistance,Name:K_Resistance}
  5.  ]
  6. }}}
复制代码
  注意,击退抗性的最高值就是1,1即为100%。由于默认是0,所以负数无用。
     
  截图就不上了,原因你懂。但是根据我的测试结果,这个数据会减少被击退的概率,还会减少部分击退距离。
  比如说,击退抗性0.2(20%)的时候,你只有80%的几率被击退,并且被击退的距离也会减少(但是不是20%,具体未知)。
  所以,当抗性是1(100%),你就不会被击退了,所以再高也没用= =
  大家注意一下,实际使用时,不同装备的“UUIDLeast”和“UUIDMost”必须不一样,要不然属性会冲突的OwO!
  下一节,制作物品の实战练习~看看这几节你掌握了多少!最后,放出本节第一张图的物品代码:
  1. /summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:1000.0,AttributeName:generic.attackDamage,Name:Damage},{Operation:0,UUIDLeast:2,UUIDMost:2,Amount:10,AttributeName:generic.knockbackResistance,Name:K_Resistance},{Operation:0,UUIDLeast:3,UUIDMost:3,Amount:100.0,AttributeName:generic.maxHealth,Name:Health},{Operation:0,UUIDLeast:4,UUIDMost:4,Amount:0.01,AttributeName:generic.movementSpeed,Name:Speed}]}}}
复制代码


20.jpg (11.26 KB, 下载次数: 65)

20.jpg

21.jpg (19.29 KB, 下载次数: 67)

21.jpg

22.jpg (21.3 KB, 下载次数: 66)

22.jpg

24.jpg (34.51 KB, 下载次数: 66)

24.jpg

25.jpg (35.19 KB, 下载次数: 65)

25.jpg

作者: 幻天君    时间: 2015-2-5 15:27
看起来好厉害的样子...
有了这个...做一个RPG服呗简单
[我不会开服]

作者: MsYqgzt    时间: 2015-2-5 15:44
问下楼主,这类NBT可以用在give指令中吗?比如give 所有人击退抗性为1的石头?
作者: EternityTQ    时间: 2015-2-5 15:57
对于我来说,这篇文章对我来说没什么用
因为我向来编辑这类东西都是用背包编辑器的= =
作者: 龙腾猫跃    时间: 2015-2-5 16:07
MsYqgzt 发表于 2015-2-5 15:44
问下楼主,这类NBT可以用在give指令中吗?比如give 所有人击退抗性为1的石头? ...

可以,tag:{}里面的内容就是give所需。
/give @a stone 1 0 {AttributeModifiers:[{Operation:0,UUIDLeast:1,UUIDMost:1,Amount:1,AttributeName:generic.knockbackResistance,Name:K_Resistance}]}
作者: 龙腾猫跃    时间: 2015-2-5 16:08
尼玛乄骑士 发表于 2015-2-5 15:57
对于我来说,这篇文章对我来说没什么用
因为我向来编辑这类东西都是用背包编辑器的= = ...

那啥玩意……
作者: EternityTQ    时间: 2015-2-5 16:16
龙腾猫跃 发表于 2015-2-5 16:08
那啥玩意……

传说中的熊孩子神器,当然对于我来说编辑NBT真的太方便了= =
作者: lzs1234    时间: 2015-2-5 16:24
本帖最后由 lzs1234 于 2015-2-5 16:26 编辑

……把说你弃坑的人的嘴巴堵上…
(是我吗?)好吧,作死100w,用命令刷出的顺回补上,我要去岩浆池游泳…

作者: endfish044    时间: 2015-5-28 15:05
我帮你补充几条吧- -
并不是2件同样加血的装备附加值没有被计算的原因引起的
这个也并不是BUG{:10_492:}
而是你写命令的时候参数设定错误了
自定义物品UUID类内容里.UUIDLeast与UUIDMost并不是无关内容.而是对一个物品进行一个编组或者说编号套装写法.
你2件物品中木棍和胸甲的UUIDLeast:3,UUIDMost:3都是相同的.导致只会使用触发一件物品的效果
负数在于正数优先被使用.

如果你把木棍的编号换成UUIDLeast:A,UUIDMost:A
这样2件装备的血量就会被计算了.
作者: Lzertvy    时间: 2015-5-30 15:14
可以把每个位置分别是什么意思和总共的属性整理出来会好点
作者: CommandBlock丶    时间: 2015-9-3 07:20
问下LZ、你知道怎么在武器中添加字吗?先谢了
作者: 56821747    时间: 2015-12-31 21:24
不错哦 已经收藏了~
作者: 1550826502    时间: 2016-1-2 12:57
提示: 作者被禁止或删除 内容自动屏蔽
作者: Flish    时间: 2016-7-31 15:19
求大神赐教如何用一个命令方块同时完成/give @p minecraft:iron_helmet 1 0 {AttributeModifiers:[
{Operation:0,UUIDLeast:2,UUIDMost:2,Amount:15.0,AttributeName:generic.knockbackResistance,Name:Knockback},
{Operation:0,UUIDLeast:4,UUIDMost:4,Amount:5.0,AttributeName:generic.maxHealth,Name:Health},
]} 与{ench:[{id:0,lvl:8},{id:1,lvl:6},{id:2,lvl:6},{id:3,lvl:6},{id:4,lvl:6},{id:6,lvl:20},{icd:5,lvl:20},{id:34,lvl:20}]}
甚至物品名称和名称颜色


作者: 龙腾猫跃    时间: 2016-7-31 17:32
Flish 发表于 2016-7-31 15:19
求大神赐教如何用一个命令方块同时完成/give @p minecraft:iron_helmet 1 0 {AttributeModifiers:[
{Operat ...

用逗号隔开不同的NBT,还是建议直接用命令工厂Alpha 2.8得了……
作者: 雾之湖的青蛙    时间: 2016-7-31 17:57
多谢!  正愁找不到学的地方呢
作者: Flish    时间: 2016-8-1 09:38
龙腾猫跃 发表于 2016-7-31 17:32
用逗号隔开不同的NBT,还是建议直接用命令工厂Alpha 2.8得了……

谢谢{:10_512:}{:10_512:}
作者: 18820649703    时间: 2016-8-2 00:55
楼主我很喜欢你的帖子么么哒!我有个问题怎么设置怪物死后触发某些命令,比如让击杀者会出生点!.1.10可以用哦!




(最后一个问题你有空就回答下哈:怎么设置怪物自定义掉落物!)谢谢
作者: chy666666    时间: 2019-10-20 17:28
如果减生命上限到0,再装备保护等级10000的钻石套会死吗?吃金苹果有效果吗?
作者: chy666666    时间: 2019-10-20 17:30
1550826502 发表于 2016-1-2 12:57
**** 作者被禁止或删除 内容自动屏蔽 ****

亲测有效,然后就是第一节是有的,慢慢找

作者: 真空间哇撒    时间: 2020-1-29 14:51
666果然是大触,召唤钻石剑都不用give
作者: 真空间哇撒    时间: 2020-1-30 13:00
找一个列例子,然后看那个名称图,然后换就可以了。

/summon Item ~ ~1 ~ {Item:{Count:1,id:diamond_sword,tag:{ AttributeModifiers:[  {Operation:0,UUIDLeast:1,UUIDMost:1,Amount:1000,AttributeName:generic.attackDamage,Name:Damage} ]}}}


伤害增加1000




作者: louwen    时间: 2020-3-10 07:38
希望能出一个教我们怎么往武器上写介绍的教程
作者: NingMing    时间: 2020-3-10 11:11
有最高限制吗?
作者: 基哥Grumm    时间: 2020-3-16 12:48
是不是只要照着所有数据标签进行搭配,就能够自定义武器属性了
原来神器都是用这种命令弄的啊。。
附魔是不是也能够靠数据标签添加呢
作者: 麦克吊    时间: 2020-3-17 22:54
提示: 作者被禁止或删除 内容自动屏蔽
作者: Corvo_M    时间: 2020-3-18 02:12
厉害 下来体验一下
作者: mrakluo    时间: 2020-3-28 14:33
眼睛会了,大脑会了,关键手没学会。
作者: 染染超甜呀    时间: 2020-3-29 01:17
这个可以帅的一批
作者: 不开麦    时间: 2020-4-13 16:16
翻了半天论坛,终于找到了
还有这些字母都是啥意思?(我是个没文化的人)
作者: ghyjn    时间: 2020-4-17 19:59
可以打彩色字不
作者: 雪-ices    时间: 2020-4-18 19:48

膜拜大佬awa
作者: 1120500820    时间: 2020-4-23 09:01
突破天际指令大全【doge】
作者: xy_狐狸    时间: 2020-4-23 15:54
红石渣表示很感兴趣这类的教学