需要权限等级:Java-2
需要作弊:是
格式:
/attribute <目标玩家/生物><属性>[base] get [乘数]
\\返回指定属性的『总值』。如果指定了base,则返回『基值』\\
/attribute <目标玩家/生物><属性> base set <值>
\\将指定属性的『基值』设定为指定的值\\
/attribute <目标玩家/生物><属性> modifier add
\\如果没有UUID相同的属性修饰符,就给指定属性添加上属性修饰符\\
/attribute <目标玩家/生物><属性> modifier remove
\\移除指定属性的具有指定UUID的修饰符\\
/attribute <目标玩家/生物><属性> modifier value get
\\返回具有指定UUID的属性修饰符的值\\
使用这条指令可以很方便地修改实体的属性,以及为实体添加上属性修饰符。只不过由于/attribute指令是直接给实体添加上修饰符,没有物品作为载体,所以在这边添加的修饰符无需指定『栏位』参数。
让我们来试一试,直接修改属性的值。比如,把我们的生命值上限改成40点:
/attribute @s generic.max_health base set 40.0
→实体xxx的属性最大生命值的基值已设置为40.0
很好,这下子我们就有40点生命值了。只不过要注意,玩家的属性会在死亡后重置,也就是说如果你死一次,最大生命值就会变回20点。
本小章还未完,请点击下一页继续阅读后面精彩内容!
get子命令可以获得我们属性的总值或基值。总值也就是经过修饰符修饰后最终的值,基值也就是没有修饰过的初始值。比如:
/attribute @s generic.max_health base get
由于上面我们已经把基值改成了40.0,因此这将会返回:
→实体xxx的属性最大生命值的基值为40.0
等等,这个『乘数』参数有什么用?让我们试一试:
/attribute @s generic.max_health base get 2.0
→实体xxx的属性最大生命值的基值为40.0
不难发现,这个乘数参数没有任何的用处.......呃,其实有用的。
用在哪呢?execute的store子命令:
①/execute store result score @s health_max run attribute @s generic.max_health base get
②/execute store result score @s health_max run attribute @s generic.max_health base get 2.0