🇧🇷 Português (Portuguese - Brazil)
🇧🇷 Português (Portuguese - Brazil)
Aparência
🇧🇷 Português (Portuguese - Brazil)
🇧🇷 Português (Portuguese - Brazil)
Aparência
This page is written for version:
1.20.4
This page is written for version:
1.20.4
Efeitos de estado, conhecidos como efeitos, são condições que podem afetar uma entidade. Eles podem ser de natureza positiva, negativa ou neutra. O jogo base aplica esses efeitos de vários modos, como comidas, poções, etc.
O comando /effect
pode ser usado para aplicar efeitos numa entidade.
Neste tutorial adicionaremos um novo efeito personalizado chamado Tater, que lhe dará um ponto de experiência a cada tick do jogo.
StatusEffect
Vamos criar uma classe de efeito personalizado estendendo StatusEffect
, sendo uma classe base para todos os efeitos.
public class TaterEffect extends StatusEffect {
protected TaterEffect() {
// category: StatusEffectCategory - describes if the effect is helpful (BENEFICIAL), harmful (HARMFUL) or useless (NEUTRAL)
// color: int - Color is the color assigned to the effect (in RGB)
super(StatusEffectCategory.BENEFICIAL, 0xe9b8b3);
}
// Called every tick to check if the effect can be applied or not
@Override
public boolean canApplyUpdateEffect(int duration, int amplifier) {
// In our case, we just make it return true so that it applies the effect every tick
return true;
}
// Called when the effect is applied.
@Override
public boolean applyUpdateEffect(LivingEntity entity, int amplifier) {
if (entity instanceof PlayerEntity) {
((PlayerEntity) entity).addExperience(1 << amplifier); // Higher amplifier gives you experience faster
}
return super.applyUpdateEffect(entity, amplifier);
}
}
Similar a registração de blocos e itens, usamos Registry.register
para registrar nosso efeito ao registro de STATUS_EFFECT
. Isso pode ser feito no nosso inicializador.
public class FabricDocsReferenceEffects implements ModInitializer {
public static final StatusEffect TATER_EFFECT;
static {
TATER_EFFECT = Registry.register(Registries.STATUS_EFFECT, Identifier.of("fabric-docs-reference", "tater"), new TaterEffect());
}
@Override
public void onInitialize() {
// ...
}
}
Você pode atribuir um nome ao seu efeito e providenciar uma textura de ícone que aparecerá na tela de inventário do jogador.
O ícone de textura é um PNG de 18x18. Coloque seu ícone personalizado em:
resources/assets/fabric-docs-reference/textures/mob_effect/tater.png
Assim como outras traduções, você pode adicionar uma entrada com o formato de ID "effect.<mod-id>.<effect-identifier>": "Value"
ao arquivo de idioma.
{
"effect.fabric-docs-reference.tater": "Tater"
}
Uso o comando /effect give @p fabric-docs-reference:tater
para dar ao jogador nosso efeito Tater. Use /effect clear @p fabric-docs-reference:tater
para remover o efeito.
INFO
Para criar uma poção que utiliza este efeito, consulte o guia de Poções.