Prädikate: Unterschied zwischen den Versionen

Aus Minecraft Wiki
Zur Navigation springen Zur Suche springen
Inhalt hinzugefügt Inhalt gelöscht
(24w39a)
(24w10a)
Zeile 116: Zeile 116:
</div>
</div>


=== random_chance_with_looting (Zufallschance mit Beute) ===
=== random_chance_with_enchanted_bonus (Zufallschance mit verzauberter Beute) ===
<div class="treeview">
<div class="treeview">
* '''random_chance_with_enchanted_bonus''' - Generiert eine Zufallszahl zwischen 0,0 und 1,0 und prüft, ob sie kleiner ist als der Wert, der anhand der Stufe einer bestimmten Verzauberung ermittelt wurde. Erfordert eine <code>attacker</code>-Kreatur, die durch den [[Beutekontext]] bereitgestellt wird. Wenn sie nicht bereitgestellt wird, wird die Verzauberungsstufe als 0 betrachtet.
* '''random_chance_with_looting''' - Überprüft ob die Zufallszahl von 0.0–1.0 ist weniger als eine angegebene Variable, beeinflusst vom Level der von [[Plünderung]] auf die <code>killer</code>-Kreatur.
** {{NBT|float|unenchanted_chance}}: Die Erfolgsrate, die verwendet werden soll, wenn die Verzauberung nicht vorhanden ist; 0,0–1,0.
** {{NBT|float|chance}}: Basiserfolgsrate.
** {{NBT|float}}{{NBT|compound|enchanted_chance}}: [[Verzauberungsdefinition#Stufenbasierter Wert|Stufenbasierter Wert]]. Die Erfolgsrate basierend auf dem Level, wenn die Verzauberung vorhanden ist; 0,0–1,0.
** {{NBT|float|looting_multiplier}}: Anpassung der Plünderung zur Basis-Erfolgsrate. Formel ist <code>chance + (looting_level * looting_multiplier)</code>.
** {{NBT|string|enchantment}}: Eine Verzauberung (eine ID). Die Verzauberung, deren Level für die Wahrscheinlichkeitsberechnung verwendet werden soll. Wenn die Verzauberung nicht vorhanden ist, wird <code>0</code> als Level verwendet.
</div>
</div>


Zeile 149: Zeile 150:
*** {{NBT|int|min}}: Minimalwert.
*** {{NBT|int|min}}: Minimalwert.
** {{NBT|int|period}}: Falls vorhanden wird die Zeit durch Modulo-Division (%= , Rest der Division von) um diesen Wert (Als Beispiel, falls auf 24000 gesetzt wurde, Wert wird auf eine Zeit gesetzt in Periode von Minecraft-Tagen).
** {{NBT|int|period}}: Falls vorhanden wird die Zeit durch Modulo-Division (%= , Rest der Division von) um diesen Wert (Als Beispiel, falls auf 24000 gesetzt wurde, Wert wird auf eine Zeit gesetzt in Periode von Minecraft-Tagen).
</div>

=== weather_check (Wetterüberprüfung) ===
<div class="treeview">
* '''weather_check ''' - Prüft auf einen aktuellen [[Wetter]]zustand.
** {{NBT|boolean|raining}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es regnet.
** {{NBT|boolean|thundering}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es gewittert.
</div>
</div>


Zeile 166: Zeile 160:
*** {{NBT|int}}{{NBT|compound|min}}: Minimal-Wert.
*** {{NBT|int}}{{NBT|compound|min}}: Minimal-Wert.
*** {{NBT|int}}{{NBT|compound|max}}: Maximal-Wert.
*** {{NBT|int}}{{NBT|compound|max}}: Maximal-Wert.
</div>

=== weather_check (Wetterüberprüfung) ===
<div class="treeview">
* '''weather_check ''' - Prüft auf einen aktuellen [[Wetter]]zustand.
** {{NBT|boolean|raining}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es regnet.
** {{NBT|boolean|thundering}}: Wenn <code>true</code>, wird die Bedingung nur dann als <code>true</code> ausgewertet, wenn es gewittert.
</div>
</div>


Zeile 222: Zeile 223:
|}
|}


== Hilfsgeneratoren ==
== Externe Links ==
[https://misode.github.io/predicate/ misode.github.io]
*Siehe [https://misode.github.io/predicate/ misode.github.io]


== Geschichte ==
== Geschichte ==
Zeile 236: Zeile 237:
|list3= *Bedingung <code>alternative</code> wird in <code>any_of</code> umbenannt.
|list3= *Bedingung <code>alternative</code> wird in <code>any_of</code> umbenannt.
*Neue Bedingung <code>all_of</code> hinzugefügt, die nur erfüllt ist, wenn alle Unterbedingungen erfüllt sind, mit derselben Syntax wie <code>any_of</code>.
*Neue Bedingung <code>all_of</code> hinzugefügt, die nur erfüllt ist, wenn alle Unterbedingungen erfüllt sind, mit derselben Syntax wie <code>any_of</code>.
|group4= {{ver|1.21}}
|group4= {{ver|1.20.5|24w10a}}
|list4= *Es wird das Kreatur-Unterprädikat <code>slots</code> hinzugefügt, die verwendet werden, um einzelne oder mehrere [[Inventarplatz|Slots]] einer beliebigen Kreatur zu prüfen.
|list4=
|group5= {{ver|1.21}}
|list5=
{{Geschichtlich
{{Geschichtlich
|untergruppe=1
|untergruppe=1
Zeile 246: Zeile 249:
*Das Feld <code>gamemode</code> des <code>player</code>-Prädikats akzeptiert eine Liste von Spielmodi statt einer einzelnen Zeichenfolge.
*Das Feld <code>gamemode</code> des <code>player</code>-Prädikats akzeptiert eine Liste von Spielmodi statt einer einzelnen Zeichenfolge.
}}
}}
|group5= {{ver|1.21.2}}
|group6= {{ver|1.21.2}}
|list5=
|list6=
{{Geschichtlich
{{Geschichtlich
|untergruppe=1
|untergruppe=1

Version vom 22. Januar 2025, 18:35 Uhr

Dieser Inhalt ist nur für die Java Edition.

Prädikate beinhalten Eigenschaften für Bedingungen die ein true (wahr) oder false (falsch) zurückgeben. Man kann sie im Selektor der Zielauswahl @e[predicate=...] oder mit dem Befehl /execute (if|unless) predicate ... verwenden. Sie werden in Datenpaketen angelegt und es gibt keine Standard-Prädikatdateien, man kann sich also keine Vorlage holen um eigene zu erstellen, stattdessen benötigt man die Datenstruktur.

Definition

  • <Name des Datenpakets>
    • pack.mcmeta: Die Definitionsdatei.
    • data
      • <namensraum>
        • predicate: Eigene Prädikate.
          • <datei>.json: Eine Prädikat-Datei.

Datenstruktur

Prädikatbasisdaten

  • Die namenlose Wurzel-Eigenschaft.
    • condition: Die Bedingungen.
    • Teile der Bedingung, siehe unten.

all_of (Und-Verknüpfung)

  • all_of - Verbindet die Bedingungen der Parameter terms als ein "UND".
    • terms: Eine Liste der Bedingungen für die Teilnahme mit "UND".
      • Eine Bedingung.

any_of (Oder-Verknüpfung)

  • any_of - Verbindet die Bedingungen der Parameter terms als ein "ODER".
    • terms: Eine Liste der Bedingungen für die Teilnahme mit "ODER".
      • Eine Bedingung.

block_state_property (Blockzustandseigenschaften)

  • block_state_property - Überprüft den Blockzustand.
    • block: Eine Block-Namens-ID. Der Test wird fehlschlagen wenn der Block nicht die entsprechende Namens-ID hat.
    • properties: (Optional) Eine Zuordnung von Blockzuständen mit Variablen. Alle Variablen sind Strings. Der Test wird fehlschlagen wenn der Block nicht die entsprechenden Namens-IDs hat.
      • name: Ein Blockzustand und ein exakter Wert. Der Wert ist eine Zeichenfolge.
      • name: Ein Blockzustandsname und ein passender Bereichswert.
        • min: Der Mindestwert.
        • max: Der Höchstwert.

damage_source_properties (Schadensquelleneigenschaften)

  • damage_source_properties - Überprüft die Eigenschaften der Schadensquelle.
    • source_entity: Die Ursache des Schadens. Wenn beispielsweise ein Skelett einen Spieler mit einem Pfeil abschießt, ist das Skelett die Quelle.
    • direct_entity: Die direkte Ursache des Schadens. Wenn beispielsweise ein Skelett einen Spieler mit einem Pfeil schießt, ist der Pfeil das direkte Objekt.
    • is_direct: Wenn wahr, wird geprüft, ob der Schaden direkt ist (d. h. die direkten und Quell-Kreaturen sind identisch), wenn falsch, wird geprüft, ob der Schaden nicht direkt ist. Wird weggelassen, um keine Prüfung durchzuführen.

enchantment_active_check (Verzauberungsüberprüfung)

  • enchantment_active_check - Überprüft, ob die Verzauberung aktiv war. Erfordert den aktiven Status der Verzauberung, der vom Beutekontext bereitgestellt wird, und schlägt immer fehl, wenn er nicht bereitgestellt wird. Es ist daher nur vom Beutekontext enchanted_location aus verwendbar.
    • active: Ob geprüft werden soll, ob eine aktive (true) oder inaktive (false) Verzauberung vorliegt.

entity_properties (Objekteigenschaften)

  • entity_properties - Testeigenschaften einer Kreatur oder Objekt.
    • entity: Gibt die Kreatur an, die geprüft werden soll für die Bedingung. Wenn es auf this gesetzt ist, um die Kreatur zu verwenden, die gestorben ist, oder den Spieler, der den Fortschritt erlangt hat, den Behälter geöffnet oder den Block abgebaut hat, killer für den Killer oder killer_player für einen Killer, der ein Spieler ist .
    • predicate: Das auf den Standort angewendete Prädikat verwendet dieselbe Datenstruktur wie bei Fortschritten.
      • flags: Prädikatflags, die überprüft werden sollen.
        • is_on_fire: Überprüft, ob das Objekt brennt.
        • is_sneaking: Überprüft, ob das Objekt schleicht.
        • is_sprinting: Überprüft, ob das Objekt sprintet.
        • is_swimming: Überprüft, ob das Objekt schwimmt.
        • is_baby: Überprüft, ob das Objekt ein Baby ist.

entity_scores (Objekt-Punktestände)

  • entity_scores - Überprüft den Punktestand eines Objekts.
    • entity: Gibt das Objekt an, das überprüft werden soll für die Bedingung. Wenn this angegeben ist, um das Objekt zu verwenden, die gestorben ist, oder den Spieler, der den Fortschritt erlangt hat, den Behälter geöffnet oder den Block abgebaut hat, killer für den Killer oder killer_player für einen Killer, der ein Spieler ist.
    • scores: Alle Punktestände die überprüft werden sollen. Alle spezifischen Punktestände müssen für die Bedingung passen um zu bestehen.
      • Ein Punkte-Ziel: Schlüsselname ist das Punkte-Ziel (objective) solange die Variablen im exakten Bereich liegen, wie die Bedingung es vorgibt.
      • Ein Punkte-Ziel: Schlüsselname ist das Punkte-Ziel (objective) solange die Variablen speziell einen Bereich von score-Variablen für die Bedingung benötigen um zu bestehen.
        • min: Mindestpunktzahl.
        • max: Höchstpunktzahl.

inverted (Invertiert)

  • inverted - Negiert die Bedingung im Parameter term.
    • term: Die zu negierende Bedingung.

killed_by_player (Tötung durch Spieler)

  • killed_by_player - Testet ob killer_player-Kreatur verfügbar ist.

location_check (Ortsüberprüfung)

  • location_check - Überprüft, ob der aktuelle Standort übereinstimmt.
    • offsetX - Optional Versatz des Standorts.
    • offsetY - Optional Versatz des Standorts.
    • offsetZ - Optional Versatz des Standorts.
    • predicate: Prädikat angewendet auf Standort, nutzt dieselbe Struktur wie Fortschritte.

match_tool (Werkzeugüberprüfung)

  • match_tool - Überprüft ein Werkzeug.
    • predicate: Prädikat wird auf einen Gegenstand angewendet, verwendet dieselbe Datenstruktur wie bei Fortschritten.

random_chance (Zufallschance)

  • random_chance - Prüft, ob eine Zufallszahl zwischen 0.0 und 1.0 kleiner als ein angegebener Wert ist.
    • chance: Erfolgsquote als Zahl 0.0–1.0.

random_chance_with_enchanted_bonus (Zufallschance mit verzauberter Beute)

  • random_chance_with_enchanted_bonus - Generiert eine Zufallszahl zwischen 0,0 und 1,0 und prüft, ob sie kleiner ist als der Wert, der anhand der Stufe einer bestimmten Verzauberung ermittelt wurde. Erfordert eine attacker-Kreatur, die durch den Beutekontext bereitgestellt wird. Wenn sie nicht bereitgestellt wird, wird die Verzauberungsstufe als 0 betrachtet.
    • unenchanted_chance: Die Erfolgsrate, die verwendet werden soll, wenn die Verzauberung nicht vorhanden ist; 0,0–1,0.
    • enchanted_chance: Stufenbasierter Wert. Die Erfolgsrate basierend auf dem Level, wenn die Verzauberung vorhanden ist; 0,0–1,0.
    • enchantment: Eine Verzauberung (eine ID). Die Verzauberung, deren Level für die Wahrscheinlichkeitsberechnung verwendet werden soll. Wenn die Verzauberung nicht vorhanden ist, wird 0 als Level verwendet.

reference (Verknüpfung)

  • reference - Überprüft ob eine andere referenzierte Bedingung (predicate) besteht.
    • name: Der Namensraum ID von der Bedingung (predicate) referenziert wurde. Zyklisch referenziert führt zu einen Fehler.

survives_explosion (Explosionsüberleben)

  • survives_explosion - Gibt true mit einer Wahrscheinlichkeit von 1/Explosionsradius zurück.

table_bonus (Beutetabellenbonus)

  • table_bonus - Besteht mit der Wahrscheinlichkeit ausgewählt aus Beutetabelle, ausgehend von Verzauberungsstufe.
    • enchantment: ID der Verzauberung.
    • chances: Liste der Wahrscheinlichkeiten für die Verzauberungsstufe, ausgehend von 0.

time_check (Zeitüberprüfung)

  • time_check - Prüft die aktuelle Uhrzeit.
    • value: Die Zeit in Ticks.
    • value
      • max: Maximalwert.
      • min: Minimalwert.
    • period: Falls vorhanden wird die Zeit durch Modulo-Division (%= , Rest der Division von) um diesen Wert (Als Beispiel, falls auf 24000 gesetzt wurde, Wert wird auf eine Zeit gesetzt in Periode von Minecraft-Tagen).

value_check (Wertüberprüfung)

  • value_check - Prüft einen Wertebereich.
    • value: Darstellung von Wertebereichen. Der Wert, der überprüft werden soll.
    • range: Der genaue Wert, der überprüft werden soll.
    • range: Der Bereich, in dem der Wert geprüft wird.
      • min: Minimal-Wert.
      • max: Maximal-Wert.

weather_check (Wetterüberprüfung)

  • weather_check - Prüft auf einen aktuellen Wetterzustand.
    • raining: Wenn true, wird die Bedingung nur dann als true ausgewertet, wenn es regnet.
    • thundering: Wenn true, wird die Bedingung nur dann als true ausgewertet, wenn es gewittert.

Beispiele

Eigenschaft Beispiel
entity_properties
data/wiki/predicate/eisenhand.json
{
  "condition": "minecraft:entity_properties",
  "entity": "this",
  "predicate": {
    "equipment": {
      "mainhand": {
        "items": "minecraft:iron_sword"
      }
    }
  }
}
Überprüft ob die Kreatur ein Eisenschwert in der Hand hält. In Kombination mit den unteren Befehl wird jeder Kreatur, die ein Eisenschwert in der Hand hält, es entfernt.
/clear @e[predicate=wiki:eisenhand] minecraft:iron_sword
location_check
data/wiki/predicate/hexenhuette.json
{
  "condition": "minecraft:location_check",
  "predicate": {
    "biomes": "minecraft:swamp",
    "structures": "minecraft:swamp_hut",
    "dimension": "minecraft:overworld"
  }
}
Überprüft ob sich die Kreatur im Sumpf, in der Boundingbox der Sumpfhütte befindet. In Kombination mit den unteren Befehl wird jeder Kreatur, außer der Hexe die sich in der Boundingbox der Sumpfhütte befindet der Statuseffekt Vergiftung gegeben.
/effect give @e[predicate=wiki:hexenhuette,type=!minecraft:witch] minecraft:poison
weather_check
data/wiki/predicate/wetter.json
{
  "condition": "minecraft:weather_check",
  "raining": true,
  "thundering": false
}
Überprüft, ob es regnet. In Kombination mit den unteren Befehlen wird das Regenwetter immer auf 1000 Sekunden gesetzt.
/execute if predicate wiki:wetter run weather rain 1000

Externe Links

Geschichte

[Einklappen] Versionen der Java Edition
Vollversion
1.15 (19w38a)
1.19 (22w14a)
  • Die Felder player, fishing_hook, lightning_bolt und catType wurden durch type_specific ersetzt.
  • type_specific hat einen Feldtyp (einen von player, fishing_hook, lightning_bolt und cat) und dieselben Felder wie die entfernten Felder.
1.20 (23w18a)
  • Bedingung alternative wird in any_of umbenannt.
  • Neue Bedingung all_of hinzugefügt, die nur erfüllt ist, wenn alle Unterbedingungen erfüllt sind, mit derselben Syntax wie any_of.
1.20.5 (24w10a)
  • Es wird das Kreatur-Unterprädikat slots hinzugefügt, die verwendet werden, um einzelne oder mehrere Slots einer beliebigen Kreatur zu prüfen.
1.21
24w19a
  • Neues Feld is_direct in die Bedingung damage_source_properties hinzugefügt.
24w21a
  • Gegenstandsprädikat jukebox_playable hinzugefügt.
  • Das Feld gamemode des player-Prädikats akzeptiert eine Liste von Spielmodi statt einer einzelnen Zeichenfolge.
1.21.2
24w35a
  • Neues Kreaturunterprädikat minecraft:sheep hinzugefügt: sheared und color.
24w36a
  • Ein neues Feld input im Unterprädikat player wird hinzugefügt, mit dem erkannt werden kann, welche Bewegungstasten der Spieler drückt.
    • Es werden forward, backward, left, right, jump, sneak und sprint hinzugefügt.
24w37a
  • Kreaturunterprädikat minecraft:salmon hinzugefügt: variant.
24w39a
  • Das Objektunterprädikat minecraft:boat wird entfernt, da es für Boote keine gesonderten Varianten-Eigenschaften mehr gibt.