🇩🇪 Deutsch (German)
🇩🇪 Deutsch (German)
Erscheinungsbild
🇩🇪 Deutsch (German)
🇩🇪 Deutsch (German)
Erscheinungsbild
Diese Seite ist für folgende Version geschrieben:
1.20.4
Diese Seite ist für folgende Version geschrieben:
1.20.4
Statuseffekte, auch Effekte genannt, sind ein Zustand, der eine Entität beeinflussen kann. Sie können positiver, negativer oder neutraler Natur sein. Das Basisspiel wendet diese Effekte auf verschiedene Weise an, zum Beispiel durch Nahrung, Tränke usw.
Der Befehl /effect
kann verwendet werden, um Effekte auf eine Entität anzuwenden.
In diesem Tutorial fügen wir einen neuen benutzerdefinierten Effekt namens Tater hinzu, der dir einen Erfahrungspunkt pro Spieltick gibt.
StatusEffect
erweitern Lasst uns eine benutzerdefinierte Effektklasse erstellen, indem wir StatusEffect
erweitern, die die Basisklasse für alle Effekte ist.
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);
}
}
Ähnlich wie bei der Registrierung von Blöcken und Items verwenden wir Registry.register
, um unseren benutzerdefinierten Effekt in der STATUS_EFFECT
-Registry zu registrieren. Dies kann in unserem Initialisierer geschehen.
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() {
// ...
}
}
Du kannst deinem Statuseffekt einen Namen geben und ein Textursymbol erstellen, das in der Inventaroberfläche des Spielers angezeigt wird.
Das Statuseffekt-Symbol ist ein 18x18 PNG. Platziere dein eigenes Icon in:
resources/assets/fabric-docs-reference/textures/mob_effect/tater.png
Wie jede andere Übersetzung kannst du einen Eintrag mit dem ID-Format "effect.<mod-id>.<effect-identifier>": "Wert"
zur Sprachdatei hinzufügen.
{
"effect.fabric-docs-reference.tater": "Tater"
}
Benutze den Befehl /effect give @p fabric-docs-reference:tater
, um dem Spieler unseren Tater-Effekt zu geben. Verwende /effect clear
um den Effekt zu entfernen.
Um einen Trank zu erstellen, der diesen Effekt nutzt, lies bitte die Anleitung Tränke.