2021.12 数据,可能有更多内容
☆命令教程“真”从零开始(十四)
☆
☆
修改属性/attribute【一拳打爆末影龙】
☆
声明:
1.
本系列教程默认读者拥有关于Minecraft游戏本身的基础了解。
2.
本系列全部教程绝对适用于当前Java最新版
(1.17)
。
3.
本系列教程致力于基础原理而非使用方法,因为某些原因,这是本声明里最重要的一条。
4.
本教程
需要读者有特定的命令知识。这些这些内容在
下方表格中列出
:
需要前置知识:
请确保你理解下列的内容。下表的所有内容一定在本系列教程的某一帖讨论过,所以若您是从本系列第一帖起阅读至今,可以不用看。
对于跳跃式阅读的读者,还请检查一番:
※
带有本符号的内容是阅读本帖的大前提,您必须理解。
•
带有本符号的内容意味着,若您不理解可能会对阅读本帖的特定片段造成困扰,但大体上可以看懂。
点击链接可以跳转至对应教程:
※
有关命令基础格式
【命令】命令教程“真”从零开始 (一) 指令本身,选择器,与命令方块 [1.16]
前言
在前几天说过,玩家的NBT是不能被直接修改的。
这导致了,曾经,直接更改玩家的属性——比如攻击力或生命值是一种无法实现的东西。
曾经,我们想要更改玩家的属性,只能为其加上状态效果,或是装备。也衍生出了很多可以影响玩家攻击力的方法。
但是,从1.16,一个新的命令被加入到Minecraft,改变了这种局面。
我们终于可随意地更改任意实体的属性了!!!
这包括攻击力,移动速度,生命值护甲值击退抗性等等等等……
这个命令,叫/attribute
(如你在标题所见的,我拿到这玩意干的的一件事就是把攻击力加到100万(闭眼按零),然后一拳锤爆了末影龙)
1. 属性
玩家的能力有多大?
你的
生命值上限
有20点。
基础
攻击力
只有1点。
而基础
护甲值
,
盔甲韧性
(
对于高额伤害, 护甲值的衰减程度
)
,
击退抗性
(
抵消的击退的比率
)
都是零。
是什么决定了你的各种能力的大小?
是
属性(Attributes)
。
玩家——或任何生物或实体,都拥有属性。
这些属性决定了实体在游戏中的一切能力。
但属性并不是永远固定的。玩家的
基础
攻击力只有1点,但是通过持有武器,我们的攻击力可以被
修改
。
也就是说,
最终的属性由两部分决定:
基础数值
(
基值
)
,与
加成数值
(
属性修饰符
)
这就是属性的基础机制。
每个属性都有一个
属性ID
以作区分。比如,
生命值上限
的属性ID是
generic.max_health
。
下表列出了Minecraft中存在的所有属性以及ID:
属性
列表
属性名称
属性ID
概述
•
任何实体都拥有的属性:
以下属性可以在
任意
实体上找到
生命值上限
generic.max_health
最大生命值。生物能恢复的生命值上限。玩家默认为20点。(生存无提升手段)
移动速度
generic.movement_speed
移动的速度。数值越高越快。玩家的默认移速为0.1。你可以使用公式43.178 * 属性值 - 0.022 来计算大致的,以格/米作单位的速度。
盔甲值
generic.armor
对物理伤害的抵抗性。每一点可抵挡4%的物理伤害。玩家的默认数值为0。(通过穿戴护甲可以提升)
盔甲韧性
generic.armor_toughness
当实体受的伤害变高时,盔甲所能减免的伤害比例会逐渐降低,盔甲韧性可以减缓它降低的幅度。该属性玩家默认为0。(钻石与下界合金可以提供本属性加成)你可以
前往Wiki本页面查看盔甲公式
。
击退抗性
generic.knockback_resistance
减免的击退。0代表无防御,1代表无法击退。0与1中间的数值代表减免的百分比。玩家默认为0。
(下界合金装给予击退抗性)
•
可攻击实体的属性:
这些属性可以在所有
能够进行攻击
的实体上找到。(如被动生物便没有以下属性)
攻击力
generic.attack_damage
普通攻击造成的伤害。玩家默认为1。(装备武器可以增加)
•
玩家专属属性:
只有
玩家
拥有以下属性
攻击速度
generic.attack_speed
本数值代表了玩家每秒可以进行的攻击速度。玩家默认为4。
幸运值
generic.luck
幸运值。这影响了战利品表的掉落。(比如打开宝箱,击杀怪物等)。玩家默认为0。
(幸运状态效果可增加本属性)
•
非玩家生物
的属性:
以下属性只能在
非玩家生物
上找到
追踪距离
generic.follow_range
生物追逐玩家或其他实体的最大距离。这可以是怪物的追踪,抑或是狼追逐骷髅,猪追逐手持胡萝卜的玩家。
•
特定生物专属属性:
下列属性只有特定的生物拥有:
击退力度
generic.attack_knockback
攻击时的击退力度。
仅
疣猪兽,劫掠兽,与僵尸疣猪兽
跳跃力
horse.jump_strength
马的跳跃力。衡量标准不明。默认为0.7左右。
马专属属性
生成增援
zombie.spawn_reinforcements
僵尸攻击时在其周围生成更多僵尸的可能性。
仅僵尸及其变种
飞行速度
generic.flying_speed
飞行速度。衡量标准不明。
仅鹦鹉拥有
就像你看到的这样,目前MC共有14种属性
【注1】
。这些属性控制了所有实体的能力。
下面让我们来进入正题:1.16新增的命令
/attribute
可以获取,或修改指定实体的属性。
该命令拥有3个子命令:用于获取属性值的get,用于修改属性基值的set,与用于修改属性加成的modifier。
首先让我们来看向,读取子命令get。
2. 获取属性
注意:本命令为Java版独有
命令/attribute的子命令get可以读取指定实体特定属性的基值或最终值。
格式:
代码:
/attribute <目标> <属性ID> [base] get [<倍率>]
在该命令中,<目标>应为一个只能选择一个实体(limit=1)的选择器(和/data一样,本命令一次只能对一个实体操作)。
中间的
[
base
]
是一个选填项。
填入
就代表获取该属性的
基值
,
缺省
则意味获取该属性的
最终数值
(经装备加成后)。
最后,可以通过[<倍率>]来指定返回的倍率。
【注2】
比如,上表中可以看到,攻击力的属性ID是
generic.attack_damage
。
现在假设我拿着一把钻石剑(提供攻击力+6),那么该如何得到我当前的攻击力呢?
代码:
/attribute @s generic.attack_damage get
返回自己的
最终
攻击力
此时游戏会返回“7”。因为玩家有1点基础攻击力,钻石剑+6,所以最后为7。
注意我们缺省了"
base
",所以游戏返回的是我们的
最终数值
(经过钻石剑加成后的)。
但若是填入"
base
":
代码:
/attribute @s generic.attack_damage base get
返回自己的
基础
攻击力
此时游戏不再返回7,而回返回玩家的基础攻击力1。因为本命令获取的是
基值
,即
忽略武器装备的加成
。
好,更多的例子:
例1
假设,一名普通的玩家手持钻石剑(也只手持钻石剑)。
获取该玩家目前的攻速:
代码:
/attribute @p generic.attack_speed get
返回:1.6
这代表了,手持钻石剑时,玩家的攻速为1.6(每秒可全力攻击1.6次)
获取玩家的基础攻速:
代码:
/attribute @p generic.attack_speed base get
返回:4
这代表玩家的攻速基值为4(每秒全力攻击4次,是的,手持武器会降低你的攻速)
例2
获得最近僵尸的追踪距离:
代码:
/attribute @e[limit=1,type=minecraft:zombie,sort=nearest] minecraft:generic.follow_range base get
例3
假设一普通玩家穿着全套钻石装:
获取护甲最终值(加成后):
代码:
/attribute @p generic.armor get
返回:20(全套钻装提供满护甲值)
获取基值:
代码:
/attribute @p generic.armor base get
返回:0(玩家不穿装默认护甲值为0)
好,例子举到这里
看完了读取……现在就进入到非常令人激动的部分:修改吧。
命令/attribute有两种不同的“修改”。一种是修改基础数值,一种是修改“加成数值”(相当于给你一加一个虚拟的武器)。
让我们先进入到第一种,修改基值。
3. 修改基值
玩家的基础攻击力也太低了吧……万一生存第一天就遇到僵尸,使用低的可怜的1点攻击力,你得敲它20次才能把它敲死。
没关系,这里我们就来修改一下玩家的基础属性:
格式:
代码:
/attribute <目标> <属性ID> base set <值>
我们可以看到本格式与读取子命令十分相近,有区别的部分只是“<值>”与前面的get变成了set。
所以,我们实际上可以很容易地得到:
代码:
/attribute @s generic.attack_damage base set 20
将自己的基础攻击力设为20
其中,
generic.attack_damage
为攻击力的属性ID,base set意味着我们要更改基值,而
20
是要更改的值。
现在尝试攻击僵尸,你一拳就可以打倒。
当然,我们可以刺激点:
代码:
/attribute @s generic.attack_damage base set 2000
将自己的基础攻击力设为2000
现在末影龙你也能一拳打倒了。
那,最大可以设到多高呢?
很夸张,夸张到可以闭眼按0:
代码:
/attribute @s generic.attack_damage base set 100000000000000000000000000000000000
将自己的攻击力设置为1×10
35
点。(1E35)
夸张吧……那,这该数值的上限是多少呢?
这个值是一个
double
……意思就是,在极端情况下你可以存
308
位数。是的。然而,每种属性都有一个接受范围。如果你输入的值大于这个范围,那么属性就会被设为最大可接受的值。
比如,攻击力的最大上限是2048,所以虽然你在上面的命令中输入了一个大的离谱的数字,但是游戏会把属性设为2048。
(小于最低值同理)
好,从夸张的数字中钻出来,我们也可以设置小数:
代码:
/attribute @s generic.attack_damage base set 0.000001
将自己的攻击力设置为0.000001
(基本上相当于没有。)
小数在一些属性上使用频繁,比如速度或击退抗性:
代码:
/attribute @s generic.knockback_resistance base set 0.9
使自己免疫90%的击退
我们从上面的表格可以看到对于击退抗性1就代表完全抵抗,所以这里0.9即可抵挡90%。
到这里,我们要再次提醒:
本子命令base set修改的是
基础
值
,而非加成或最终值
为了让你明白这一点,以与下面的内容区分,让我们举这样一个例子:
假设有玩家,其基础攻击力为1:
代码:
/attribute @s generic.attack_damage base get
读取该玩家
基础
攻击力
返回1
他手持钻石剑,为他增加了6点加成数值:
代码:
/attribute @s generic.attack_damage get
读取该玩家
最终
攻击力
返回7
现在运行命令:
代码:
/attribute @s generic.attack_damage base set 4
将本玩家的基础攻击力设为4点
再次读取其攻击力:
代码:
/attribute @s generic.attack_damage get
读取该玩家
最终
攻击力
返回10
因为攻击力较之前增加了3点,所以总攻击力变成了10。
注意,我们所增加的是增
基础攻击力
,所以:
代码:
/attribute @s generic.attack_damage base get
读取该玩家
基础
攻击力
返回4
如何?
那好,本节就到这里。
这里有更多的例子,你可以展开查看。
代码:
/attribute @e[type=zombie,limit=1] generic.follow_range base set 10000
将一只僵尸的追踪距离设置为1万格
注意/attribute只能处理一个实体,所以我们添加了limit=1。
代码:
/attribute @s generic.max_health base set 1
将自己的最大生命值设为1点
(噩梦UHC)
代码:
/attribute @r generic.movement_speed base set 100
将随机玩家的移动速度设为100
玩家的默认移动速度为0.5,所以100是一个非常快的数值。(嗖一下)
代码:
/attribute @s generic.attack_damage base set -1
将自己的攻击力设为-1
即使是负数也可以接受为值。但是一般来讲游戏会把负数的属性值设为0。(只有幸运属性接受负值。)
4. 属性修饰符
在上面,我们讲述了如何更改
基础
值
。
我们可以轻易地将玩家变成神,抑或是手无搏鸡之力的恐怖地图受害者。
但是一款游戏,角色只有基础数值是的话是很空虚的。
除了游戏角色本身的属性,当其佩戴装备时,一般会有属性的加成。
Minecraft不例外哈。玩家的基础攻击力只有
1
点,但是钻石剑拥有
+6
点的属性加成。
基础数值经过加成数值的“洗礼”后,才是最终的属性,
7
。(1+6)
钻石剑为我们提供了加成数值。但这所谓的“加成数值”是有学名的。
这些加成,被称作
属性修饰器(Attribute Modifiers)
我们说,钻石剑提供一个
攻击力+6
的
属性修饰器
当实体的基础数值经过属性修饰器的运算后,就会得到最终数值。
正常来讲啊,在普通生存中,属性修饰器一般由装备给予,比如,上面讲的,使用钻石剑。
但实际上不止装备,修饰器有时也会由其他道具,比如药水(状态效果)添加。比如,Ⅰ级的力量药水会给予3点额外攻击力……或者说,拥有1级力量效果会给予玩家一个
攻击力+3
的属性修饰器。
或者……属性修饰器也可以由游戏机制给予……比如,你是怎么疾跑的?
你之所以可以疾跑,是因为在疾跑时游戏给予了你一个
速度+130%
的属性修饰器。
为什么女巫在喝药水的时候会减速(你也会)?因为游戏为其添加了一个
速度-0.25
的属性修饰器。
你可能看出来了,
只要,你的某属性与基础值有差,那一定是因为某个属性修饰器
以上提到的的所有属性修饰器都是由某种装备或机制提供的。
但接下来的命令,/attribute的第三个子命令,
/attribute modifier
,即可为指定的实体添加一个永久的属性修饰器。
大概……相当于为目标装备一个“虚拟”的装备吧。
5. 使用/attribute modifier
命令/attribute的子命令/attribute modifier用于管理目标上的自定义属性修饰符。
先来说,如何添加一个属性修饰器:
格式:
代码:
/attribute <目标> <属性ID> modifier add
嚯,这个语法里有挺多陌生的东西嘛……
<UUID>是什么?<名称>又是什么?这个我们要一个一个看。
5.1 UUID
代码:
/attribute <目标> <属性ID> modifier add
首先,来看一下UUID是什么。
各位知道
ID
(
Id
entity,识别码)
是什么吧。
用于区分不同东西的一个“身0份0证”。
那知道
UID
(
U
nique
Id
entifier,唯一识别码)
是什么么?
和ID差不多的东西。
论坛就在用,区分不同用户。Unique是在说,这种ID具有
唯一性
。(不然怎么区分不同用户)
那么,UUID又是什么呢?
通用唯一识别码(
U
niversally
U
nique
Id
entifier
,
UUID
)
。
看名字就知道,这和ID差不多,实际上就是一串用于区分不同东西的数字而已。
只不过,"唯一"指明了这串码不会重复
【注3】
,“通用”说明这是国际通用的标准。
是的,不止Minecraft在用,UUID也不是Mojang发明的。世界上所有的UUID都由一套算法生成。
简单概括:
UUID就是具有唯一性的,由一种通用算法生成的ID
我们不会深入接触,有兴趣的话可以在
百科:UUID
查看。这里你只需要知道这是一种ID就好了。
回到命令上:为什么添加一个属性修饰符需要一个UUID呢?
当然是为了区分多个不同的UUID啊。
你想想,你可以添加那么多不同的属性修饰器,当然需要某种方法来区分啦。
UUID长这样:
数字-数字-数字-数字-数字
由5个数字组成,中间以连字符相接。比如:
0-0-0-0-0
这就是一个UUID了。
任意更改数字就可以创造出其他UUID。比如:
88888888-4632-4444-3333-3141592657
可以随意乱编,但注意对于任意实体,其所有的属性修饰器的UUID必不能重复。同时你要把UUID记下来,不然无法对一个已添加的属性修饰符做出更改或删除——游戏完全使用UUID来区分不同的属性修饰器。
所以我推荐别弄得太复杂。
注意:
1. 这只是UUID的一种表现形式,还有其他的比如高
低
位,以及在NBT说过的整形数列
等
。
2. 这是十六进制。所以可以用A~F,比如
1-A-fab3-231-ABCDEF123456
这样。
在上面为了简化没有说
5.2
<名称>
代码:
/attribute <目标> <属性ID> modifier add
接下来:什么是名称?
很简单:随便填
讲完了。
是的,这里可以随便填。什么都行,愿意填什么填什么,重复也可以。
这有点像是记分板或队伍的显示名称一样的东西。除了使用/data,你在加入这个属性修饰器后就再也无法看见它。
(这个名称大概是用来方便记录的。毕竟UUID一串数很难记。用/data可以筛选出拥有特定名称的属性修饰器……但还是没啥用因为对于玩家想删除还是要用/attribute,还是要用UUID)
5.3 <值> 与 <运算>
代码:
/attribute <目标> <属性ID> modifier add
让我们看向最后两个元素:
值与运算。
这是什么呢?这两个元素是在说,该属性修饰器要对属性作出怎样的更改。
其中<运算>其实就是运算。比如是加法“
攻击力+6
”还是乘法“
攻击力×150% (攻击力×1.5)
”。
而值就是那个被加或者乘上去的数字。
属性修饰器是相当于给基础数值套个公式,算出最终属性。
可以利用的运算,有三种:
即
增加(add)
,
倍率(multiply_base)
,与
最终倍乘(multiply)
。
先不看那么多复杂的玩意,我们只用增加,先把我们的第一条命令写出来:
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-0 sha_dou_xing 3 add
这条命令为目标的
攻击力
属性增加了一个
攻击力+3
的属性修饰器,其UUID为
0-0-0-0-0
。
解析:
attribute
<命令头>
属性命令
@s
<目标>
选择执行者(自己)
generic.attack_damage
<属性ID>
攻击伤害属性
modifier
<子命令>
管理属性修饰器
add
<子命令的子命令>
添加属性修饰器
0-0-0-0-0
<UUID>
即用于将本属性修饰器与其他的区分的ID
sha_dou_xing
<名称>
基本没用的东西,填什么都行XD
3
<值>
要更改的数量
add
<运算>
对基础值的运算:这里add代表增加,和上面的值连起来就是
+3
这就是你的第一条命令啦
但是除了运算add,也就是增加,我们还有另外两种运算:下面将深入了解:
5.4 运算
可以利用的运算,有三种:增加(add),倍率(multiply_base),与最终倍乘(multiply)。
公式是这样的:
最终属性值 = [(
基值
+
修饰符:
增加数值
) × (1 +
修饰符:
倍率
)] ×
修饰符:
最终倍乘
让我们一个个来:
增加(又名:属性增量)(add)
首先,你可以对一个属性做加(减)法。
假设某玩家的基础攻击力是1,
没有
属性修饰器,那么该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
0
) ×
1
] × 1
= 1 ×
1
× 1
= 1
然后我们用/attribute命令为其添加了一个攻击力+3的属性修饰器——
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-0 sha_dou_xing 3 add
那么,该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
3
) ×
1
] × 1
= 4 ×
1
× 1
= 4
拥有多个增加类属性修饰器时,会相加:
假设我们又给了该玩家一个攻击力+1的属性修饰器。
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-1 sha_dou_xing2 1 add
那么,该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
3+1
) ×
1
)] × 1
= 5 ×
1
× 1
= 5
理解了么?
倍率(又名:倍率增量)(multiply_base)
倍率
,或者说“倍率增量”,会将指定一个倍率。或者说,乘以一个值。注意这在增加运算后运行,换句话说,乘的是已经被增加后的值。
继续上面的假设:
在拥有上面说过的
攻击力+3,+1
的同时,我们再添加一个倍率属性修饰器
攻击力+50%
:
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-2 sha_dou_xing 0.5 multiply_base
那么,该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
3+1
) × (
1 +
0.5
)] × 1
=
5
×
1.5
× 1
=
7.5
注意,倍率在加法之后算。
若有多个倍率的属性修饰器,倍率数值将按加法叠加:
添加一个攻击力-20%的属性修饰器:
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-3 sha_dou_xing -0.2 multiply_base
那么,该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
3+1
) × (
1 +
0.5 - 0.2
)] × 1
=
5
×
1.3
× 1
=
6.5
最终倍乘(multiply)
最终倍称也是乘法,在倍率之后运行。于倍率不同之处在于多个最终倍称
以乘法叠加
而非加法:
继续上面的例子:
我们在原来的基础上再为玩家添加一个值为2的最终倍称:
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-4 sha_dou_xing 2 multiply
那么,该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
3+1
) × (
1 +
0.5 - 0.2
)] × 2
=
5
×
1.3
×
2
=
13
若有多个最终倍乘的属性修饰器,数值将按乘法叠加。
如,在原来的基础上我们再添加一个最终倍乘5的属性修饰器:
代码:
/attribute @s generic.attack_damage modifier add 0-0-0-0-5 sha_dou_xing 5 multiply
那么,该玩家的最终攻击力就是:
最终属性值 = [(
基础数值
+
增加数值
) × (1 +
倍率
)] × 最终倍乘
= [(
1
+
3+1
) × (
1 +
0.5 - 0.2
)] × (2 × 5)
=
5
×
1.3
×
10
=
65
以上就是所有的关于添加属性修饰器的格式了。
当然,一个完整的命令不会只能添加不能删除的。
所以,让我们继续:
5.5 读取与删除
如果你突然忘记了某个属性修饰器是什么了,可以使用以下命令读取:
代码:
/attribute <目标> <属性ID> modifier value get
比如:
代码:
/attribute @p generic.movement_speed modifier value get 0-0-0-0-0
读取最近玩家速度属性的,UUID为0-0-0-0-0的属性修饰器
这里要求你提供UUID,这就是为什么需要你记下UUID的原因。
如果你把UUID给了忘呢?这个……唯一的办法就是用/data get entity <目标> Attributes 来查找。(具体见本系列第12帖)
本教程的最后,如果你不想要一个属性修饰器,可以将其删除:
代码:
/attribute <目标> <属性ID> modifier remove
比如:
代码:
/attribute @p generic.movement_speed modifier remove 0-0-0-0-0
将最近玩家速度属性的,UUID为0-0-0-0-0的属性修饰器删除
就这些了哦
总结
以下提供了总结,来梳理本帖的内容:
Key Ideas
- 实体拥有属性,决定了他们的能力
- 有些属性是共用的,有些属性是特定实体独有。
- 属性拥有ID以作区分。
- 最终属性由两部分组成:基础属性,与属性修饰器(属性加成)
- /attribute是一个仅Java拥有的用于管理属性的命令。
- 它可以读取命令,格式为/attribute <目标> <属性ID> [base] get [<倍率>]
base可以用于代表读取基值。
- 本命令可以修改基值,格式为/attribute <目标> <属性ID> base set <值>
- 本命令可以管理属性修饰器。
- 可以添加:/attribute <目标> <属性ID> modifier add <UUID> <名称> <值> <运算>
UUID为一种ID,样式类似0-0-0-0-0。
名称无关效果
运算分为三种,增加(add),倍率(multiply_base),与最终倍乘(multiply)。
- 读取属性修饰器:/attribute <目标> <属性ID> modifier value get <UUID>
- 删除属性修饰器:/attribute <目标> <属性ID> modifier remove <UUID>
以上就是今天的全部内容。
……好好好是我懒,鸽了两周。
但这也是不可抗力好吧!真的哦!
下一帖不会很慢啦。
换了新的排版,喜欢么?
顺手求支持。
偶,还有,
要高/中考的各位,祝你们好运。
附录,注释,与外部链接
【1】战斗测试(CombatTest)中有另外两种关于攻击范围的属性。
【2】由于一个Bug,倍率后的值无法在聊天框中被显示出来。虽然使用/execute store 可以得到正确的数字。考略到没讲到/execute,这里跳过倍率没有举任何例子。
【3】不是完全唯一。重复地随机生成有极低几率重复,可以忽略。
另见:
Wiki:命令/attribute
百科:UUID
Wiki:战斗测试CombatTest
附录:勿使用以下UUID:
以下UUID由原版使用。若使用以下UUID,当原版的效果也被激活时会出现BUG。(虽然一般重新进入世界会消失。)
只做提醒。正常你是绝对不会输入进这些UUID的。
CB3F55D3-645C-4F38-A497-9C13A33DB5CF
CB3F55D3-645C-4F38-A497-9C13A33DB5CF
662A6B8D-DA3E-4C1C-8813-96EA6097278D
E199AD21-BA8A-4C53-8D13-6182D5C69D3A
020E0DFB-87AE-4653-9556-831010E291A0
49455A49-7EC5-45BA-B886-3B90B23A1718
B9766B59-9566-4402-BC1F-2EE2A276D836
5CD17E52-A79A-43D3-A529-90FDE04B181E
91AEAA56-376B-4498-935B-2F7F68070635
7107DE5E-7CE8-4030-940E-514C1F160890
648D7064-6A60-4F59-8ABE-C2C23A6DD7A9
22653B89-116E-49DC-9B6B-9971489B5BE5
22653B89-116E-49DC-9B6B-9971489B5BE5
03C3C89D-7037-4B42-869F-B146BCB64D2E
CC5AF142-2BD2-4215-B636-2605AED11727
#更新日志
Java 1.16.5/a页面发布
Java 1.17/a1.17更新完成
Java 1.17/b更改了关于攻速的误导信息
上一篇:
【命令】命令教程“真”从零开始(十三)给予与替换物品,命令/replaceitem
系列《命令教程“真”从零开始》
前往来自
麻瓜草稿簿
的
系列教程索引
【命令】命令教程“真”从零开始 (一) 指令本身,选择器,与命令方块
【命令】命令教程“真”从零开始 (二) 命令tp与相对,局部坐标与朝向锚
【命令】
命令教程“真”从零开始 (三)
四个新手指令
【命令】
命令教程“真”从零开始 (四)
有关队伍命令/team的……差不多一切
【命令】命令教程“真”从零开始 (五) 记分板与/scoreboard
【命令】
命令教程“真”从零开始 (六)
/tag指令,与进阶~选择器参数
【命令】命令教程“真”从零开始 (七) 新手指令杂烩2号
【命令】命令教程“真”从零开始 (八) 区块与强制加载命令/forceload
【命令】命令教程“真”从零开始 (九) 调整苦力怕防爆,防喷/gamerule
【命令】命令教程“真”从零开始 (十) 简单,又新手(雾)的方块指令/setblock
【命令】命令教程“真”从零开始 ( X ) 我就不信不能用大白话讲清楚NBT
【命令】命令教程"真"从零开始(十二)数据运算三方法之一修改NBT/data
【命令】命令教程“真”从零开始(十三)给予与替换物品,命令/replaceitem
【命令】命令教程“真”从零开始(十四)修改属性/attribute【一拳打爆末影龙】
【命令】命令教程“真”从零开始(十五)最接近神的一次:填充命令/fill
【命令】命令教程"真"从零开始(十六)复制一片区域:复制命令/clone
下一篇:
【命令】命令教程“真”从零开始(十五)最接近神的一次:填充命令/fill[1.17]