Zum Hauptinhalt springen

Elite Script Bedingungen

Bedingungen ermöglichen es Skriptern, Skripte und/oder Aktionen basierend auf spezifischen Bedingungen nicht ausführen zu lassen.

Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Conditions:
isAlive: true
conditionType: BLOCKING
Target:
targetType: SELF
Actions:
- action: PLACE_BLOCK
Target:
targetType: DIRECT_TARGET
duration: 20
material: DIRT
offset: 0,3,0
Conditions:
locationIsAir: true
conditionType: BLOCKING
Target:
targetType: ACTION_TARGET
Cooldowns:
local: 60
global: 20

In diesem Beispiel wird das Example-Skript nur ausgeführt, wenn der Elite noch am Leben ist, und wird nur einen Erdblock 3 Blöcke über der Elite-Position platzieren, wenn dieser Block ein Luftblock ist. Einzelne Aktionen können individuelle Bedingungen haben.

Target

Bedingungen verwenden das Targets-System, um zu bestimmen, welche Entität oder Position den Bedingungen unterworfen wird. Das bedeutet, dass Sie Bedingungen mit dem Boss oder mit Spielern oder mit allem anderen verknüpfen können, was Sie anvisieren können.


Bedingungstyp

KeyDetailsValues
conditionTypeLegt den Typ der Bedingung festBLOCKING / FILTERING

Es gibt zwei Arten von Bedingungen: BLOCKING und FILTERING. BLOCKING-Bedingungen führen dazu, dass Skripte oder Aktionen nicht mehr ausgeführt werden. FILTERING-Bedingungen führen dazu, dass Aktionen Ziele überspringen, die die Bedingung nicht erfüllen. Das bedeutet, wenn Sie nur Blöcke anvisieren möchten, die keine Luft sind, benötigen Sie eine FILTERING-Bedingung, aber wenn Sie eine Aktion stoppen möchten, falls ein Spieler tot ist, benötigen Sie eine BLOCKING-Bedingung.

Bedingungen außerhalb von Aktionen sind immer BLOCKING. Bedingungen innerhalb von Aktionen können BLOCKING oder FILTERING sein.

Hinweis: Wenn das Ziel SELF (der Boss) ist und die Bedingungsprüfung isAlive ist, ist die Prüfung immer BLOCKING! Dies kann innerhalb einer FILTERING-Bedingung platziert werden und wird trotzdem dazu führen, dass dieser spezifische Teil sich wie BLOCKING verhält.

Bedingungen innerhalb von Aktionen sind standardmäßig auf FILTERING eingestellt.


Platzierung von Bedingungsblöcken

Sie können Bedingungsblöcke auf zwei Arten platzieren oder verschachteln:

  1. Unter einzelnen Aktionen – Die Bedingung gilt nur für eine bestimmte Aktion. Wenn die Bedingung erfüllt ist, wird die Aktion ausgeführt; andernfalls nicht.

  2. Unter dem gesamten Skript – Die Bedingung gilt für alle Aktionen innerhalb des Skripts. Wenn die Bedingung nicht erfüllt ist, wird keine der Aktionen ausgeführt.

Unten finden Sie Beispiele, die zeigen, wie Bedingungsblöcke sowohl für einzelne Aktionen als auch für das gesamte Skript verschachtelt werden.

Unter einzelnen Aktionen:

Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
locationIsAir: true
Target:
targetType: SELF
offset: "0,3,0"

Überprüft, ob die Position 2 Blöcke über dem Boss Luft ist, und wenn ja, führt die SET_WEATHER-Aktion aus, wenn der Mob getroffen wird. Andernfalls blockiert die SET_WEATHER-Aktion. Der Boss wird jedoch immer die MESSAGE-Aktion ausführen, wenn er getroffen wird, da keine Bedingungen darauf angewendet werden.

Unter dem gesamten Skript:

Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: MESSAGE
Target:
targetType: NEARBY_PLAYERS
range: 10
sValue: "&2Hello World!"
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
locationIsAir: true
Target:
targetType: SELF
offset: "0,3,0"

Wenn der Block zwei Felder über der Position, an der der Boss steht, Luft ist, dann erlaube allen Skripten zu laufen, wenn der Mob getroffen wird. Andernfalls blockiere die Ausführung des gesamten Skripts einschließlich der SET_WEATHER- und MESSAGE-Aktionen.


runIfConditionIs

KeyDetailsValues
runIfConditionIsLegt fest, ob die Bedingung die Ausführung der Aktion zulassen soll, wenn die Bedingung wahr oder falsch ist.true / false

Sie können eine Bedingung umkehren, indem Sie das runIf-Präfix und das Is-Suffix um den Bedingungsnamen verwenden.

Nehmen Sie zum Beispiel die isAlive-Bedingung. Normalerweise bedeutet das Schreiben von: isAlive: true dass die Aktion nur ausgeführt wird, wenn der Boss am Leben ist.

Aber wenn Sie auch schreiben: runIfIsAliveIs: false in derselben Bedingung, dann wird die Bedingung umgekehrt – die Aktion wird jetzt nur ausgeführt, wenn der Boss tot ist.

Diese Struktur ermöglicht es Ihnen zu kontrollieren, ob die Bedingung erfüllt oder nicht erfüllt sein soll, bevor die Aktion ausgeführt wird.

Beispiel:

eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isAlive: true
runIfIsAliveIs: false
Target:
targetType: SELF

Dieses Skript wird das Wetter jetzt nur auf Gewitter setzen, wenn der Boss tot ist.


Standortbasierte Bedingungen

locationIsAir

Legt fest, ob die Position des Ziels Luft ist.

KeyDetailsValues
locationIsAirLegt fest, ob überprüft werden soll, ob die Position ein Luftblock ist (oder das Gegenteil).Boolean
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
locationIsAir: true
Target:
targetType: SELF
offset: "0,3,0"

Überprüft, ob die Position 2 Blöcke über dem Boss Luft ist, und wenn ja, blockiere das Wetterskript nicht, wenn der Mob getroffen wird. Andernfalls blockiere die Aktion.


isOnFloor

Überprüft, ob sich die Position auf dem Boden befindet. Das bedeutet, dass der Block an der Position nicht fest ist, aber der Block darunter fest ist.

KeyDetailsValues
isOnFloorLegt fest, ob überprüft werden soll, ob die Position eine Bodenposition ist (oder das Gegenteil).Boolean
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isOnFloor: true
Target:
targetType: SELF

Überprüft, ob sich der Boss auf einem festen Block befindet, wenn ja, dann führe das Skript aus, andernfalls blockiere die Ausführung des Skripts.


isStandingOnMaterial

Überprüft, ob die Position unter dem Ziel einem passenden Materialtyp entspricht.

KeyDetailsValues
isStandingOnMaterialLegt fest, welcher Materialtyp überprüft werden soll.Material
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isStandingOnMaterial: BIRCH_WOOD
Target:
targetType: SELF

Wird nur ausgeführt, wenn der Boss auf einem BIRCH_WOOD-Block steht, andernfalls wird die Ausführung des Skripts blockiert.

Entitätsbasierte Bedingungen

isAlive

Legt fest, ob die Bedingung ist, dass die Zielentität der Bedingung am Leben ist.

KeyDetailsValues
isAliveLegt fest, ob überprüft werden soll, ob die Entität am Leben ist (oder tot).Boolean
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isAlive: true
Target:
targetType: SELF

Wird nur ausgeführt, wenn der Boss derzeit am Leben ist, andernfalls wird das Skript blockiert.


hasTags

Überprüft, ob die Zielentität bestimmte Tags hat. Skripter können beliebige Tags durch Aktionen zuweisen und entfernen und sie als Bedingungen für späteres Verhalten verwenden. Tags sind einfach Zeichenketten (Wörter), die Sie einem Boss zuweisen können.

KeyDetailsValues
hasTagsLegt fest, ob überprüft werden soll, ob die Entität eine Liste von Tags hat.String List
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
hasTags:
- isCool
- hasANiceBeard
Target:
targetType: SELF

Wird nur ausgeführt, wenn der Boss die Tags "isCool" und "hasANiceBeard" hat, andernfalls wird das Skript blockiert.


doesNotHaveTags

Wie hasTags, überprüft aber, ob der Boss diese Werte nicht hat.

KeyDetailsValues
doesNotHaveTagsLegt fest, ob überprüft werden soll, ob die Entität eine Liste von Tags nicht hat.String List
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
doesNotHaveTags:
- isStinky
- isSus
Target:
targetType: SELF

Wird nur ausgeführt, wenn der Boss die Tags "isStinky" und "isSus" nicht hat, andernfalls wird das Skript blockiert.

Andere Bedingungen

randomChance

Gibt der Bedingung eine zufällige Chance, gültig zu sein.

KeyDetailsValues
randomChanceChance, dass die Bedingung gültig sein wird.Zahl zwischen 0.0 und 1.0
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
randomChance: 0.1
Target: # Nicht erforderlich
targetType: SELF # Nicht erforderlich

Dies gibt dem Skript eine 10%ige Chance auf Ausführung, andernfalls wird das Skript blockiert.

Beachten Sie, dass diese Bedingung speziell ist, da sie kein Ziel erfordert.

NEARBY mit Tags filtern

Um NEARBY_MOBS oder NEARBY_PLAYERS basierend auf bestimmten Tags zu filtern, verwenden Sie ACTION_TARGET als Ziel der Bedingung (wenn die Bedingung auf eine Aktion und nicht auf das Skript selbst angewendet wird). Dies stellt sicher, dass das Skript nur die Mobs/Spieler mit den angegebenen Tags korrekt filtert.

Beispiel
eliteScript:
Example:
Actions:
- action: SET_MOB_AI
Target:
targetType: NEARBY_MOBS
range: 40
bValue: false
Conditions:
conditionType: FILTERING
hasTags:
- TurnOff
Target:
targetType: ACTION_TARGET

Dieses Skript sucht nach nahegelegenen Mobs mit dem Tag TurnOff und wenn sie das Tag haben, wird ihre KI ausgeschaltet.

targetCountLowerThan und targetCountGreaterThan

Erstellt eine Bedingung, die die Ausführung der Aktion nur zulässt, wenn die angegebene Zielanzahl niedriger oder höher als der definierte Wert ist.

KeyDetailsValues
targetCountLowerThanFühre die Aktion nur aus, wenn die Zielanzahl niedriger als die angegebene Zahl ist.Zahl zwischen 0 und 999
KeyDetailsValues
targetCountGreaterThanFühre die Aktion nur aus, wenn die Zielanzahl höher als die angegebene Zahl ist.Zahl zwischen 0 und 999
Beispiel
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
targetCountGreaterThan: 2
Target: #erforderlich
targetType: NEARBY_MOBS #erforderlich
range: 15

Das Skript wird nur ausgeführt, wenn mehr als 2 Mobs in einem 15-Block-Radius vorhanden sind.

Beachten Sie, dass diese Bedingung ein Ziel erfordert.