Atributos são um sistema de buffs/debuffs que são propriedades de criaturas e jogadores. Os atributos também possuem modificadores que ajustam a força de seus efeitos.
Aplicando atributos[]
Quando aplicado a um item, um modificador ajusta o atributo correspondente se o item for segurado ou usado.[1][2] Atributos/modificadores podem ser adicionados a itens ou criaturas sem o uso de software de edição NBT de terceiros, adicionando tags de dados aos comandos /give
e /summon
. Os UUIDs para esses modificadores devem ser escolhidos aleatoriamente, para evitar o uso acidental do mesmo UUID como outro modificador.
O seguinte comando dá ao jogador uma espada netherita que causa 20 × 10 de dano extra. Se o jogador mudar a operação de 0 para 1, multiplica o dano do ataque:
/give @s netherite_sword{AttributeModifiers:[{AttributeName:"generic.attack_damage", Name:"generic.attack_damage", Amount:20.0, Operation:0, UUID:[I; 42853, 1689024593, -201178, -1559272105]}]} 1
O seguinte comando gera um zumbi que segue os jogadores quando eles estão a 100 blocos ou menos dele, em vez dos 40 habituais:
/summon zombie ~ ~ ~ {Attributes:[{Name:"generic.follow_range", Base:100.0}]}
O jogador também pode especificar qual slot tem certos atributos:
/give @p diamond_axe{AttributeModifiers:[{Slot:"mainhand", AttributeName:"generic.attack_damage", Name:"generic.attack_damage", Amount:20.0, Operation:0, UUID:[I; -192596, -61963, -161679, -10288428]}]} 1
O slot pode ser mainhand, offhand, cabeça, peito, pernas ou pés.
Além disso, caso o jogador queira a velocidade de ataque de 1,8 com o estilo de 1,9, tente o seguinte:
/give @s shield{Unbreakable:1,AttributeModifiers:[{Slot:"offhand", AttributeName:"generic.attack_speed", Name:"generic.attack_speed", Amount:1000.0, Operation:0, UUID:[I; -110663, 103297, -1423577, 206238]}]} 1
A partir da 1.16, o jogador também pode usar o comando /attribute
para aplicar atributos. Este exemplo de comando torna o atributo Sorte alto o suficiente para pescar tesouros quase sempre:
/attribute @p minecraft:generic.luck base set 1024
Atributos[]
Um atributo individual controla alguma propriedade, descrita por seu nome. Um atributo sempre tem um valor base, e pode ter qualquer número de modificadores. Os atributos também têm um valor padrão (usado ao gerar um mob com uma base de atributo indefinida) e valores mínimos e máximos codificados. Os modificadores agem na base de um atributo, mas o valor calculado é sempre limitado pelo mínimo e máximo.
O mínimo e máximo são inclusivos, a menos que especificado de outra forma ou sejam iguais a 1,7×10308.
Observe que os modificadores de atributo que têm o mesmo UUID e afetam o mesmo atributo não se acumulam; apenas aquele que afetou um jogador ou uma criatura mais recentemente tem efeito, substituindo o(s) modificador(es) que afeta(m) anteriormente.
Atributos disponíveis em todas as entidades vivas[]
Esses atributos são encontrados em todas as entidades vivas, incluindo jogadores.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máximo | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
generic.max_health | O máximo saúde desta criatura (em meio coração); determina a maior saúde que eles podem ser curados. Se o jogador estiver usando isso para gerar uma criatura com alta saúde, use isso e a tag de Saúde {Health:200.0f} por exemplo. (Desativado em 1.17)
|
20.0 | 0.0 | 1024.0 | ||||||||||||||||||||||||||||||||||
generic.follow_range | O intervalo em blocos dentro do qual uma criatura com este atributo direciona jogadores ou outras criaturas para rastrear. Sair desse alcance faz com que a criatura pare de seguir o jogador/criatura. O valor real usado pela maioria das criaturas é 16; para zumbis é 40. | 32.0 | 0.0 | 2048.0 | ||||||||||||||||||||||||||||||||||
generic.knockback_resistance | A escala de repulsão horizontal resistida a ataques e projéteis. A repulsão vertical não é afetada. Não afeta explosões.[3] 1.0 é 100% resistente a repulsão. 0,4 significa que 60% da repulsão é aplicada. | 0.0 | 0.0 | 1.0 | ||||||||||||||||||||||||||||||||||
generic.movement_speed | Velocidade de movimento em alguma métrica desconhecida. A velocidade máxima da criatura em blocos/segundo é um pouco mais de 20 vezes esse valor, mas pode ser afetada por várias condições, como: ser montado (se for um cavalo), correr, fugir (se for uma criatura passiva), atacar (se for um criatura como o Enderman ou Piglin-zumbi), sendo conduzido por um laço, estando sob o efeito de uma poção de velocidade ou lentidão, sendo um bebê zumbi, ou sendo uma bruxa e bebendo uma poção.
|
0.7 | 0.0 | 1024.0 | ||||||||||||||||||||||||||||||||||
generic.attack_damage | Dano causado por ataques, em meios corações. Este atributo não é encontrado em criaturas e golems passivos. | 2.0 | 0.0 | 2048.0 | ||||||||||||||||||||||||||||||||||
generic.armor | Pontos de defesa da armadura. | 0.0 | 0.0 | 30.0 | ||||||||||||||||||||||||||||||||||
generic.armor_toughness | Resistência da armadura. | 0.0 | 0.0 | 20.0 | ||||||||||||||||||||||||||||||||||
generic.attack_knockback | Repulsão aplicada a ataques. Aplica-se apenas a criaturas com ataques físicos.[4] Devastador e Defensor: 1.5 Hoglin e Zoglin: 1.0 |
0.0 | 0.0 | 5.0 |
Atributos para jogadores[]
Esses atributos se aplicam a jogadores.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máximo |
---|---|---|---|---|
generic.attack_speed | Determina a taxa de recarga da força de ataque. Valor é o número de ataques de força total por segundo. | 4.0 | 0.0 | 1024.0 |
generic.luck | Afeta os resultados das tabela de saque usando a marcação quality ou bonus_rolls (por exemplo, ao abrir baús ou minecarts de baús, pescar e matar criaturas).
|
0.0 | -1024.0 | 1024.0 |
Atributos para cavalos[]
Esses atributos se aplicam a cavalos.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máximo |
---|---|---|---|---|
horse.jump_strength | Força do salto do cavalo em alguma métrica desconhecida. | 0.7 | 0.0 | 2.0 |
Atributos para abelhas e papagaios[]
Esses atributos se aplicam a abelhas e papagaios.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máximo |
---|---|---|---|---|
generic.flying_speed | Modificador de velocidade de voo em alguma métrica desconhecida. Define para 0,6 para abelhas e 0,4 para papagaios. | 0.4 | 0.0 | 1024.0 |
Atributos para zumbis[]
Esses atributos se aplicam a zumbis.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máximo |
---|---|---|---|---|
zombie.spawn_reinforcements | Chance de um zumbi gerar outro zumbi quando atacado. | 0.0 | 0.0 | 1.0 |
Propriedades de atributos desconhecidos[]
Quando o jogo encontra um atributo com um nome não reconhecido, ele aplica essas propriedades a ele.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máximo |
---|---|---|---|---|
Qualquer nome de Atributo não Vanilla | Desconhecido | 0.0 | -1.8×10308 (Negative Double.MAX_VALUE )
|
1.8×10308 (Double.MAX_VALUE )
|
Modificadores[]
Os modificadores agem sobre o valor base de um atributo, aumentando-o ou diminuindo-o. Observe que o valor resultante após a modificação é limitado pelo mínimo e máximo do atributo. Assim como os atributos, os modificadores possuem um nome, porém este nome não define o comportamento do modificador. Em vez disso, o comportamento de um modificador é determinado por sua operação. Os modificadores também carregam uma quantidade para sua modificação e um UUID para identificar exclusivamente o modificador.
Operações[]
A operação de um modificador determina como ele modifica o valor base de um atributo. Existem três operações:
add (amount +/-): Salvo como operação 0. Adiciona todos os valores dos modificadores ao valor atual do atributo. Por exemplo, modificar um atributo com {Amount:2,Operation:0} e {Amount:4,Operation:0} com uma Base de 3 resulta em 9 (3 + 2 + 4 = 9).
multiply_base (amount % +/-, additive): Salvo como operação 1. Multiplica o valor atual do atributo por (1 + x), onde x é a soma dos valores dos modificadores. Por exemplo, modificar um atributo com {Amount:2,Operation:1} e {Amount:4,Operation:1} com uma Base de 3 resulta em 21 (3 * (1 + 2 + 4) = 21).
multiply (amount % +/-, multiplicative): Salvo como operação 2. Para cada modificador, multiplica o valor atual do atributo por (1 + x), onde x é a quantidade do modificador específico. Funciona da mesma forma que a Operação 1 se houver apenas um único modificador com a operação 1 ou 2. No entanto, para vários modificadores, ela multiplica os modificadores em vez de adicioná-los. Por exemplo, modificar um atributo com {Amount:2,Operation:2} e {Amount:4,Operation:2} com uma Base de 3 resulta em 45 (3 * (1 + 2) * (1 + 4) = 45 ).[5]
O comportamento matemático é o seguinte:
- add: Incrementar X por Valor
- multiply_base: Incrementa Y por X * Quantidade
- multiply: Y = Y * (1 + Quantidade) (equivalente a Incrementar Y por Y * Quantidade).
O jogo primeiro define X = Base, depois executa toda a operação add, depois define Y = X, depois executa todos os modificadores multiply_base e, finalmente, executa todos os modificadores multiply .
Modificadores vanilla[]
Como afirmado anteriormente, o nome de um modificador pode ser qualquer coisa e isso não afeta seu comportamento. A seguir estão nomes e valores de modificadores conhecidos usados no Minecraft vanilla. Observe que alguns UUIDs são gerados instantaneamente, enquanto outros são representados como strings fixas no código - eles também foram listados. Não adicione UUIDs a esta tabela para modificadores onde eles não estão listados - se um UUID não estiver listado, isso significa que ele é diferente toda vez que o modificador é criado.
Nome do modificador | Descrição e valores conhecidos | Atributos conhecidos modificados |
---|---|---|
Bônus de geração aleatória | Gerado na desova; um número aleatório de uma distribuição gaussiana variando de 0,0 a 0,05. Para Resistência a repulsão zumbi, outro valor entre 0,0 e 0,05 também é gerado. | generic.follow_range (Operation 1; all mobs), Knockback Resistance (Operation 0; Villagers and Zombies only) |
Modificador de ferramenta | O valor varia de acordo com a ferramenta e o nível. | generic.attack_damage (Operation 0; tridents, shovels, pickaxes, axes, hoes; UUID CB3F55D3-645C-4F38-A497-9C13A33DB5CF), generic.attack_speed (Operation 0; tridents, shovels, pickaxes, axes, hoes; UUID FA233E1C-4180-4865-B01B-BCCE9785ACA3) |
Modificador de arma | O valor varia de acordo com o nível da arma. | generic.attack_damage (Operation 0; swords; UUID CB3F55D3-645C-4F38-A497-9C13A33DB5CF), generic.attack_speed (Operation 0; swords; UUID FA233E1C-4180-4865-B01B-BCCE9785ACA3) (same UUIDs as Tool modifier) |
Modificador de armadura | O valor varia de acordo com o slot e o nível. | generic.armor (Operation 0; boots - UUID 845DB27C-C624-495F-8C9F-6020A9A58B6B, leggings - UUID D8499B04-0E66-4726-AB29-64469D734E0D, chestplate - UUID 9F3D476D-C118-4544-8365-64846904B48E, helmet - UUID 2AD3F246-FEE1-4E67-B886-69FD380BB150) |
Resistência da armadura | O valor varia de acordo com o nível. | generic.armor_toughness (Operation 0; boots - UUID 845DB27C-C624-495F-8C9F-6020A9A58B6B, leggings - UUID D8499B04-0E66-4726-AB29-64469D734E0D, chestplate - UUID 9F3D476D-C118-4544-8365-64846904B48E, helmet - UUID 2AD3F246-FEE1-4E67-B886-69FD380BB150) |
Resistência a repulsão | Aplica resistência a repulsão de forma semelhante à armadura de netherita. Uma peça de armadura de netherita é equivalente à operação 0 com valor 0,1. | generic.knockback_resistance (UUID 0-1-438d-0-28d34) |
Aumento de velocidade de corrida | Valor fixo de 0,3 usado por todos as criaturas (incluindo jogadores) ao correr. | generic.movement_speed (Operation 2; all living entities; UUID 662A6B8D-DA3E-4C1C-8813-96EA6097278D) |
Aumento de velocidade de fuga | Valor fixo de 2 usado por todos as criaturas passivas ao fugir. | generic.movement_speed (Operation 2; all passive mobs; UUID E199AD21-BA8A-4C53-8D13-6182D5C69D3A) |
Aumento de velocidade de ataque | Valor fixo de 6,2 para Enderman e 0,45 para Piglin-zumbi; existe apenas ao atacar. | generic.movement_speed (Operation 0; Enderman - UUID 020E0DFB-87AE-4653-9556-831010E291A0, Piglin-zumbi - UUID 49455A49-7EC5-45BA-B886-3B90B23A1718) |
Bônus de armadura coberta | O valor fixo de 20,0 para Shulker existe apenas quando totalmente fechado. | generic.armor (Operation 0; Shulker; UUID 7E0292F2-9434-48D5-A29F-9583AF7DF27F) |
Bônus de armadura de cavalo | O valor varia de acordo com a armadura do cavalo (Nenhuma = 0; Ferro = 5; Ouro = 7; Diamante = 11) | generic.armor (Operation 0; EntityHorse; 556E1665-8B10-40C8-8F9D-CF9B1667F295) |
Aumento de velocidade do bebê | Valor fixo de 0,5; existe apenas para bebês zumbis e bebês zumbis aldeões. | generic.movement_speed (Operation 1; Baby Zombies; UUID B9766B59-9566-4402-BC1F-2EE2A276D836) |
Penalidade por velocidade de bebida | Valor fixo de -0,25 para bruxas ao beber uma poção. | generic.movement_speed (Operation 0; Witches; UUID 5CD17E52-A79A-43D3-A529-90FDE04B181E) |
Bônus aleatório de geração de zumbis | Gerado na desova; um número aleatório entre 0,0 e 1,5. | generic.follow_range (Operation 2; Zombies) |
Bônus líder zumbi | Tem uma (pequena) chance aleatória de ser gerado em um zumbi quando gerado. Para Chance de gerar reforços, um número aleatório entre 0,5 e 0,75. Para generic.max_health, um número aleatório entre 1,0 e 4,0. | zombie.spawn_reinforcements (Operation 0; Zombies), generic.maxHealth (Operation 2; Zombies) |
Carga de chamador de reforço zumbi | Valor fixo de -0,05 criado cada vez que um zumbi gera outro zumbi como reforço. | zombie.spawn_reinforcements (Operation 0; Zombies) |
Carga de reforço zumbi chamado | Valor fixo de -0,05 criado para cada zumbi gerado como reforço. | zombie.spawn_reinforcements (Operation 0; Zombies) |
effect.moveSpeed ou effect.moveSpeed # (onde # é o amplificador da poção) | Valor fixo de 0,2 quando sob efeito de Velocidade, multiplicado pelo nível do efeito (amplificador + 1). | generic.movement_speed (Operation 2; All living entities; UUID 91AEAA56-376B-4498-935B-2F7F68070635) |
effect.moveSlowdown ou effect.moveSlowdown # (onde # é o amplificador da poção) | Valor fixo de -0,15 quando sob efeito de Lentidão, multiplicado pelo nível do efeito. | generic.movement_speed (Operation 2; All living entities; UUID 7107DE5E-7CE8-4030-940E-514C1F160890) |
effect.digSpeed ou effect.digSpeed# (onde # é o amplificador da poção) | Valor fixo de 0,1 quando sob o efeito de Pressa, multiplicado pelo nível do efeito. | generic.attack_speed (Operation 2; All living entities; UUID AF8B6E3F-3328-4C0A-AA36-5BA2BB9DBEF3) |
effect.digSlowDown ou effect.digSlowDown# (onde # é o amplificador da poção) | Valor fixo de -0,1 quando sob o efeito de Exaustão, multiplicado pelo nível do efeito. | generic.attack_speed (Operation 2; All living entities; UUID 55FCED67-E92A-486E-9800-B47F202C4386) |
effect.damageBoost ou effect.damageBoost # (onde # é o amplificador da poção) | Valor fixo de 3 quando sob o efeito de Força, multiplicado pelo nível do efeito. | generic.attack_damage (Operation 0; All living entities; UUID 648D7064-6A60-4F59-8ABE-C2C23A6DD7A9) |
effect.weakness ou effect.weakness # (onde # é o amplificador da poção) | Valor fixo de -4 quando sob efeito de Fraqueza, multiplicado pelo nível do efeito. | generic.attack_damage (Operation 0; All living entities; UUID 22653B89-116E-49DC-9B6B-9971489B5BE5) |
effect.healthBoost # (onde # é o amplificador da poção. Pode ser 0.) | Valor fixo de 4 quando sob o efeito de Vida extra, multiplicado pelo nível do efeito. | generic.max_health (Operation 0; All living entities; UUID 5D6F0BA2-1186-46AC-B896-C61C5CEE99CC) |
effect.luck ou effect.luck# (onde # é o amplificador da poção) | Valor fixo de 1 quando sob efeito de Sorte, multiplicado pelo nível do efeito. | generic.luck(Operation 0; All living entities; UUID 03C3C89D-7037-4B42-869F-B146BCB64D2E) |
effect.unluck ou effect.unluck # (onde # é o amplificador da poção) | Valor fixo de -1 quando sob o efeito de Má sorte, multiplicado pelo nível do efeito. | generic.luck(Operation 0; All living entities; UUID CC5AF142-2BD2-4215-B636-2605AED11727) |
Modificador de atributo sincronizado desconhecido | Desconhecido; criado quando o cliente lê os dados de atributo enviados pelo servidor. | varia |
Histórico[]
Edição Java | |||||
---|---|---|---|---|---|
1.6.1 | 13w16a | Os atributos e modificadores foram adicionados. | |||
Existiam os seguintes atributos: "Vida máxima", "Alcance de seguimento", "Resistência a repulsão"; além disso, "Força de salto" e "Velocidade" existiam como atributos específicos do cavalo. | |||||
Os únicos modificadores foram ambos "Bônus de geração aleatória", um usado em Zumbis para resistência a repulsão com operação 0, e o outro em todas as criaturas para seguir alcance com operação 1. | |||||
13w17a | Adicionado o atributo "Chance de gerar reforços" para Zumbis. | ||||
Os atributos "Carga de reforço zumbi" (para gerar carga de reforços), "Bônus aleatório de geração de zumbis" (para o alcance) e "Bônus líder zumbi" (para carga de reforços e saúde máxima). | |||||
13w18a | Substituído "Carga de reforço de zumbi" por "Carga de chamador de reforço zumbi" | ||||
13w21a | Os atributos agora podem ser especificados no NBT. | ||||
Os atributos agora possuem IDs e chaves de tradução correspondentes. | |||||
Os modificadores agora são exibidos nos itens. | |||||
O atributo "Dano de Ataque" foi adicionado e o atributo "Velocidade" foi tornado genérico. | |||||
Os modificadores "potion.moveSpeed", "potion.moveSlowdown", "potion.damageBoost" e "potion.weakness" foram adicionados. | |||||
Os atributos "Aumento de velocidade de corrida", "Aumento de velocidade de fuga", "Aumento de velocidade de ataque" (para o pigmen e o enderman), "Penalidade por velocidade de bebida", e "Aumento de velocidade do bebê" foram adicionados. | |||||
Os atributos "Modificador de ferramenta" e "Modificador de arma" foram adicionados. | |||||
13w23b | O modificador "potion.healthBoost" foi adicionado. | ||||
1.7.2 | 13w36a | Os atributos/modificadores podem ser adicionados a itens ou mobs sem o uso de software de edição NBT de terceiros adicionando tags de dados aos comandos /give e /summon . | |||
1.9 | 15w34b | O atributo de velocidade de ataque foi adicionado. | |||
15w36d | O atributo de armadura foi adicionado. | ||||
15w44b | O atributo de sorte foi adicionado. | ||||
1.9.1 | pre1 | O atributo armorToughness foi adicionado. | |||
1.14 | 18w43a | O atributo attackKnockback foi adicionado. | |||
1.16 | 20w06a | A resistência ao repulsão agora é uma escala em vez de probabilidade. | |||
20w14a | Os itens e entidades não mantêm mais atributos desconhecidos. | ||||
Os nomes de alguns atributos foram renomeados para atender aos requisitos da localização do recurso (ou seja, letras minúsculas separadas por sublinhados em vez de maiúsculas e minúsculas). | |||||
Renomeado generic.maxHealth para generic.max_health . | |||||
Renomeado zombie.spawnReinforcements para zombie.spawn_reinforcements . | |||||
Renomeado horse.jumpStrength para horse.jump_strength . | |||||
Renomeado generic.followRange para generic.follow_range . | |||||
Renomeado generic.knockbackResistance para generic.knockback_resistance . | |||||
Renomeado generic.movementSpeed para generic.movement_speed . | |||||
Renomeado generic.flyingSpeed para generic.flying_speed . | |||||
Renomeado generic.attackDamage para generic.attack_damage | |||||
Renomeado generic.attackKnockback para generic.attack_knockback | |||||
Renomeado generic.attackSpeed para generic.attack_speed | |||||
Renomeado generic.armorToughness para generic.armor_toughness . | |||||
20w17a | O comando /attribute foi adicionado, que pode consultar e alterar atributos. | ||||
1.18.2 | 22w03a | A resistência a repulsão não dá mais 50% de chance de ignorar todas as repulsões. | |||
Em breve na Edição Java | |||||
Combat Tests | 1.14.3 - Combat Test | O atributo attackReach foi adicionado. | |||
Edição Pocket Alpha | |||||
v0.12.1 | build 1 | Os atributos foram adicionados. |
Referências[]
- ↑ "Good news for mapmakers: Items can have attribute modifiers. It's possible to make a bow that slows the holder, helm that buffs health, etc" – @Dinnerbone no Twitter, May 23, 2013
- ↑ "Equipped as armour or held in hand." – @Dinnerbone no Twitter, May 23, 2013
- ↑ MC-32578
- ↑ MC-138868
- ↑ "Attribute modifiers can be: +- amount, +- amount % (additive), +- amount % (multiplicative)." – @Dinnerbone no Twitter, May 23, 2013