Atributos são um sistema de buffs / debuffs que são propriedades em mobs e jogadores. Atributos também têm modificadores que ajustam a força de seu efeito.
- 1 Aplicando atributos
- 2 Atributos
- 3 modificadores
- 3.1 Operações
- 3.2 modificadores Vanilla
- História 4
- 5
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 mobs 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 de outro modificador.
O seguinte comando dá ao jogador uma espada netherita que distribui 20 × 10 de dano extra. Se o jogador mudar a operação de 0 para 1, ele multiplica o dano de ataque:
/ give @s netherite_sword {AttributeModifiers: [{AttributeName: "generic.attack_damage", Nome: "generic.attack_damage", Quantidade: 20.0, Operação: 0, UUID: [I; 42853, 1689024593, -201178, -1559272105]}]} 1
O comando a seguir invoca um zumbi que segue os jogadores quando eles estão a 100 blocos ou menos, em vez dos 40 habituais:
/ invocar zumbi ~ ~ ~ {Atributos: [{Nome: "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", Nome: "generic.attack_damage", Quantidade: 20.0, Operação: 0, UUID: [I; -192596, -61963, -161679, -10288428]}]} 1
A ranhura pode ser mainhand, improvisada, cabeça, tórax, 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: "improvisado", AttributeName: "generic.attack_speed", Nome: "generic.attack_speed", Quantidade: 1000.0, Operação: 0, UUID: [I; -110663, 103297, -1423577, 206238]}]} 1
A partir de 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 todas as vezes:
/ attribute @p minecraft: generic.luck base set 1024
Atributos
Um atributo individual controla alguma propriedade, descrita por seu nome. Um atributo sempre tem um base valor, e pode ter qualquer número de modificadores. Atributos também têm um valor padrão (usado ao gerar um mob com uma base de atributos indefinida) e valores mínimos e máximos embutidos em código. Os modificadores atuam na base de um atributo, mas o valor calculado é sempre limitado pelo mínimo e pelo máximo.
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 são empilhados; apenas aquele que afetou mais recentemente um jogador ou mob tem um efeito, substituindo o (s) modificador (es) que o afetaram 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áxima | ||||||||||||||||||||||||||||||||||
---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
generic.max_health | A saúde máxima desta multidão (em meio-corações); determina a saúde mais elevada para a qual eles podem ser curados. Se o jogador está usando isso para invocar um mob com alta saúde, use isso e a etiqueta 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 um mob com este atributo tem como alvo jogadores ou outros mobs para rastrear. Sair deste alcance faz com que o mob pare de seguir o jogador / mob. O valor real usado pela maioria dos mobs é 16; para zumbis, 40. | 32.0 | 0.0 | 2048.0 | ||||||||||||||||||||||||||||||||||
generic.knockback_resistance | A escala de recuo horizontal resistiu a ataques e projéteis. O recuo vertical não é afetado. Não afeta as explosões. [3] 1.0 é 100% de resistência ao knockback. 0.4 significa que 60% do knockback é aplicado. | 0.0 | 0.0 | 1.0 | ||||||||||||||||||||||||||||||||||
generic.movement_speed | Velocidade de movimento em alguma métrica desconhecida. A velocidade máxima do mob em blocos / segundo é um pouco mais de 43 vezes este valor, mas pode ser afetada por várias condições, tais como: ser montado (se for um cavalo), correr, fugir (se for um mob passivo), atacar (se for um Enderman ou Zombified Piglin), sendo conduzido por uma coleira, 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 mobs e golems passivos. | 2.0 | 0.0 | 2048.0 | ||||||||||||||||||||||||||||||||||
generic.armor | Pontos de defesa de armadura. | 0.0 | 0.0 | 30.0 | ||||||||||||||||||||||||||||||||||
generic.armor_toughness | Resistência da armadura. | 0.0 | 0.0 | 20.0 | ||||||||||||||||||||||||||||||||||
generic.attack_knockback | Rebatidas aplicadas a ataques. Aplica-se apenas a mobs com ataques físicos. [4] Devastação: 1.5 Hoglin e Zoglin: 1.0 |
0.0 | 0.0 | 5.0 |
Atributos para jogadores
Esses atributos se aplicam aos jogadores.
Nome do Atributo | Descrição | Base Padrão | Mínimo | Máxima |
---|---|---|---|---|
generic.attack_speed | Determina a taxa de recarga da força de ataque. O valor é o número de ataques de força total por segundo. | 4.0 | 0.0 | 1024.0 |
generic.luck | Afeta os resultados das tabelas de loot usando a tag de qualidade ou bonus_rolls (por exemplo, ao abrir baús ou minecarts de baús, pescar e matar mobs). | 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áxima |
---|---|---|---|---|
horse.jump_strength | Cavalo salta força 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áxima |
---|---|---|---|---|
generic.flying_speed | Modificador de velocidade de vôo em alguma métrica desconhecida. Defina como 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áxima |
---|---|---|---|---|
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áxima |
---|---|---|---|---|
Qualquer nome de atributo não Vanilla | Desconhecido | 0.0 | -1.8 × 10308 (negativo duplo.MAX_VALUE) | 1.8 × 10308 (Double.MAX_VALUE) |
Modificadores
Os modificadores atuam sobre o valor base de um atributo, aumentando 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 têm um nome, entretanto, esse nome não define o comportamento do modificador. Em vez disso, o comportamento de um modificador é determinado por seu operação. Os modificadores também carregam um quantidade à 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:
adicionar (valor +/-): 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 (valor% +/-, aditivo): 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).
multiplicar (quantidade% +/-, multiplicativo): Salvo como operação 2. Para cada modificador, multiplica o valor atual do atributo por (1 + x), onde x é a quantidade do modificador particular. 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, ele 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:
- adicionar: Incrementar X pelo valor
- multiply_base: Incrementar Y por X * Quantidade
- multiplicar: Y = Y * (1 + valor) (equivalente ao incremento Y por Y * valor).
O jogo primeiro define X = Base e, em seguida, executa todas as operações adicionar, então define Y = X e executa todos multiply_base modificadores e, finalmente, executa todos multiplicar modificadores.
Modificadores baunilha
Como declarado antes, o nome de um modificador pode ser qualquer coisa e isso não afeta seu comportamento. A seguir estão nomes de modificadores e valores 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 é diferente cada vez que o modificador é criado.
Nome do Modificador | Descrição e valores conhecidos | Atributos conhecidos modificados |
---|---|---|
Bônus de desova aleatório | Gerado na desova; um número aleatório de uma distribuição gaussiana variando de 0.0 a 0.05. Para Zombie Knockback Resistance, outro valor entre 0.0 e 0.05 também é gerado. | generic.follow_range (Operação 1; todos os mobs), Resistência a Knockback (Operação 0; Aldeões e zumbis apenas) |
Modificador de ferramenta | O valor varia de acordo com a ferramenta e o nível. | generic.attack_damage (Operação 0; tridentes, pás, picaretas, machados, enxadas; UUID CB3F55D3-645C-4F38-A497-9C13A33DB5CF), generic.attack_speed (Operação 0; tridentes, pás, picaretas, machados, enxadas233 -1-B4180B-BCCE4865ACA01) |
Edição de arma | O valor varia com base no nível da arma. | generic.attack_damage (Operação 0; espadas; UUID CB3F55D3-645C-4F38-A497-9C13A33DB5CF), generic.attack_speed (Operação 0; espadas; UUID FA233E1C-4180-4865-B01B-BCCE9785ACA3) (mesmo UUID do modificador de ferramenta) |
Edição 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 de 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) |
Aumento de velocidade de sprint | Valor fixo de 0.3 usado por todos os mobs (incluindo jogadores) ao correr. | generic.movement_speed (Operação 2; todas as entidades vivas; UUID 662A6B8D-DA3E-4C1C-8813-96EA6097278D) |
Fugindo de aumento de velocidade | Valor fixo de 2 usado por todos os mobs passivos ao fugir. | generic.movement_speed (Operação 2; todos os mobs passivos; UUID E199AD21-BA8A-4C53-8D13-6182D5C69D3A) |
Aumento de velocidade de ataque | Valor fixo de 6.2 para Endermen e 0.45 para Zombie Pigmen; existe apenas quando está atacando. | generic.movement_speed (Operação 0; Endermen - UUID 020E0DFB-87AE-4653-9556-831010E291A0, Zombified Piglins - 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 com base na armadura do cavalo (Nenhum = 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 (Operação 1; bebês zumbis; UUID B9766B59-9566-4402-BC1F-2EE2A276D836) |
Penalidade de 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 (Operação 2; Zumbis) |
Bônus líder zumbi | Tem uma (pequena) chance aleatória de ser gerado em um zumbi quando gerado. Para a chance de reforço de Spawn, número aleatório entre 0.5 e 0.75. Para generic.max_health, número aleatório entre 1.0 e 4.0. | zombie.spawn_reinforcements (Operação 0; Zumbis), generic.maxHealth (Operação 2; Zumbis) |
Zumbi reforço chamador cobrar | Valor fixo de -0.05 criado cada vez que um zumbi gera outro zumbi como reforço. | zombie.spawn_reinforcements (Operação 0; Zumbis) |
Zombie reforço callee carga | Valor fixo de -0.05 criado para cada zumbi gerado como reforço. | zombie.spawn_reinforcements (Operação 0; Zumbis) |
effect.moveSpeed or effect.moveSpeed # (onde # é o amplificador da poção) | Valor fixo de 0.2 quando sob o efeito Velocidade, multiplicado pelo nível do efeito (amplificador + 1). | generic.movement_speed (Operação 2; Todas as entidades vivas; UUID 91AEAA56-376B-4498-935B-2F7F68070635) |
effect.moveSlowdown or effect.moveSlowdown # (onde # é o amplificador da poção) | Valor fixo de -0.15 quando sob o efeito de lentidão, multiplicado pelo nível do efeito. | generic.movement_speed (Operação 2; Todas as entidades vivas; UUID 7107DE5E-7CE8-4030-940E-514C1F160890) |
effect.digSpeed or effect.digSpeed # (onde # é o amplificador da poção) | Valor fixo de 0.1 quando sob o efeito Haste, multiplicado pelo nível do efeito. | generic.attack_speed (Operação 2; todas as entidades vivas; UUID AF8B6E3F-3328-4C0A-AA36-5BA2BB9DBEF3) |
effect.digSlowDown or effect.digSlowDown # (onde # é o amplificador da poção) | Valor fixo de -0.1 quando sob o efeito de fadiga de mineração, multiplicado pelo nível do efeito. | generic.attack_speed (Operação 2; todas as entidades vivas; UUID 55FCED67-E92A-486E-9800-B47F202C4386) |
effect.damageBoost or 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 (Operação 0; todas as entidades vivas; UUID 648D7064-6A60-4F59-8ABE-C2C23A6DD7A9) |
effect.weakness or effect.weakness # (onde # é o amplificador da poção) | Valor fixo de -4 quando sob o efeito Fraqueza, multiplicado pelo nível do efeito. | generic.attack_damage (Operação 0; todas as entidades vivas; 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 Health Boost, multiplicado pelo nível do efeito. | generic.max_health (Operação 0; todas as entidades vivas; UUID 5D6F0BA2-1186-46AC-B896-C61C5CEE99CC) |
effect.luck or effect.luck # (onde # é o amplificador da poção) | Valor fixo de 1 quando sob o efeito Sorte, multiplicado pelo nível do efeito. | generic.luck (Operação 0; Todas as entidades vivas; UUID 03C3C89D-7037-4B42-869F-B146BCB64D2E) |
effect.unluck or effect.unluck # (onde # é o amplificador da poção) | Valor fixo de -1 quando sob o efeito Unluck, multiplicado pelo nível do efeito. | generic.luck (Operação 0; Todas as entidades vivas; UUID CC5AF142-2BD2-4215-B636-2605AED11727) |
Modificador de atributo sincronizado desconhecido | Desconhecido; criado quando o cliente lê dados de atributos enviados pelo servidor. | varia |
História
Java Edition | |||||
---|---|---|---|---|---|
1.6.1 | 13w16a | Atributos e modificadores adicionados. | |||
Os seguintes atributos existiam: "Max Health", "Follow Range", "Knockback Resistance"; além disso, "Força de salto" e "Velocidade" existiam como atributos específicos do cavalo. | |||||
Os únicos modificadores foram ambos "Bônus de desova aleatório", um usado em Zumbis para resistência ao empurrão com a operação 0, e o outro em todos os mobs para seguir o alcance com a operação 1. | |||||
13w17a | Adicionado o atributo "Spawn Reinforcements Chance" para Zumbis. | ||||
Adicionado "carga de reforço de zumbi" (para gerar carga de reforços), "Bônus aleatório de geração de zumbis" (para seguir o alcance) e "bônus de líder zumbi" (para carga de reforços e saúde máxima). | |||||
13w18a | Substituída "Taxa de reforço de zumbi" por "Taxa de chamada de reforço de zumbi" | ||||
13w21a | Os atributos agora podem ser especificados no NBT. | ||||
Os atributos agora têm IDs e chaves de tradução correspondentes. | |||||
Os modificadores agora são exibidos nos itens. | |||||
Adicionado "Dano de Ataque" e tornado "Velocidade" genérico. | |||||
Adicionados modificadores "potion.moveSpeed", "potion.moveSlowdown", "potion.damageBoost" e "potion.weakness". | |||||
Adicionado "Aumento de velocidade de corrida", "Bônus de velocidade de fuga", "Aumento de velocidade de ataque" (para homens porcos e endermen), "Penalidade de velocidade de bebida" e "Aumento de velocidade do bebê". | |||||
Adicionado "Modificador de ferramenta" e "Modificador de arma". | |||||
13w23b | Adicionado modificador "potion.healthBoost". | ||||
1.7.2 | 13w36a | 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 | Adicionado atributo de velocidade de ataque. | |||
15w36d | Adicionado atributo de armadura. | ||||
15w44b | Adicionado atributo de sorte. | ||||
1.9.1 | pre1 | Adicionado atributo armorToughness. | |||
1.14 | 18w43a | Adicionado atributo attackKnockback. | |||
1.16 | 20w06a | A resistência a rebatidas agora é uma escala, e não uma probabilidade. | |||
20w14a | Itens e entidades não mantêm mais atributos desconhecidos. | ||||
Os nomes de alguns atributos foram renomeados para atender aos requisitos de ID de espaço de nomes (ou seja, letras minúsculas separadas por sublinhados em vez de maiúsculas). | |||||
Generic.maxHealth renomeado para generic.max_health. | |||||
Zombie.spawnReinforcements renomeado para zombie.spawn_reinforcements. | |||||
Horse.jumpStrength renomeado para horse.jump_strength. | |||||
Generic.followRange renomeado para generic.follow_range. | |||||
Generic.knockbackResistance renomeado para generic.knockback_resistance. | |||||
Generic.movementSpeed renomeado para generic.movement_speed. | |||||
Generic.flyingSpeed renomeado para generic.flying_speed. | |||||
Generic.attackDamage renomeado para generic.attack_damage | |||||
Generic.attackKnockback renomeado para generic.attack_knockback | |||||
Generic.attackSpeed renomeado para generic.attack_speed | |||||
Generic.armorToughness renomeado para generic.armor_toughness. | |||||
20w17a | Adicionado o comando / attribute, que pode consultar e alterar atributos. | ||||
Próxima edição Java | |||||
Testes de Combate | 1.14.3 - Teste de Combate | Adicionado atributo attackReach. | |||
Pocket Edition Alpha | |||||
v0.12.1 | construir 1 | Atributos adicionados. |
- ↑ https://twitter.com/Dinnerbone/status/337540303647027201
- ↑ https://twitter.com/Dinnerbone/status/337543314435878913
- ↑ MC-32578
- ↑ MC-138868
- ↑ https://twitter.com/Dinnerbone/status/337542071386783744