メインコンテンツまでスキップ

Elite Script 条件

条件を使用すると、スクリプター(scripter)は特定の条件に基づいてスクリプトやアクションを実行しないようにすることができます。

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

この例では、Exampleスクリプトはエリートがまだ生きている場合にのみ実行され、エリートの位置から3ブロック上のブロックが空気ブロックの場合にのみ土ブロックを配置します。個々のアクションには個別の条件を設定できます。

Target

条件はTargetsシステムを使用して、条件が適用されるエンティティまたは場所をターゲットにします。つまり、ボスやプレイヤー、またはターゲットできる他の何にでも条件を関連付けることができます。


Condition Type

Key詳細
conditionType条件のタイプを設定しますBLOCKING / FILTERING

条件にはBLOCKINGFILTERINGの2つのタイプがあります。BLOCKING条件はスクリプトまたはアクションの実行を停止させます。FILTERING条件は、条件を満たさないターゲットをアクションがスキップするようにします。つまり、空気でないブロックのみをターゲットにしたい場合はFILTERING条件を使用し、プレイヤーが死んでいる場合にアクションを停止したい場合はBLOCKING条件を使用します。

アクションの外にある条件は常にBLOCKINGです。アクション内の条件はBLOCKINGまたはFILTERINGのいずれかになります。

注意: ターゲットがSELF(ボス)で、条件チェックがisAliveの場合、チェックは常にBLOCKINGです! これはFILTERING条件の中に配置できますが、この特定の部分はBLOCKINGとして動作します。

アクション内の条件はデフォルトでFILTERINGに設定されています。


Condition Block Placement

条件ブロックは2つの方法で配置またはネストできます:

  1. 個別のアクションの下 – 条件は特定のアクションにのみ適用されます。条件が満たされた場合、アクションが実行されます。そうでない場合は実行されません。

  2. スクリプト全体の下 – 条件はスクリプト内のすべてのアクションに適用されます。条件が満たされない場合、アクションは一つも実行されません。

以下は、個別のアクションとスクリプト全体の両方に条件ブロックをネストする方法を示す例です。

個別のアクションの下:

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"

ボスが立っている場所から2ブロック上の位置が空気かどうかをチェックし、空気の場合はmobがヒットされたときにSET_WEATHERアクションを実行します。そうでない場合はSET_WEATHERアクションをブロックします。しかし、MESSAGEアクションには条件が適用されていないため、ボスはヒットされたときに常にMESSAGEアクションを実行します。

スクリプト全体の下:

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"

ボスが立っている場所から2スペース上にあるブロックが空気の場合、mobがヒットされたときにすべてのスクリプトの実行を許可します。そうでない場合は、SET_WEATHERとMESSAGEアクションを含むスクリプト全体の実行をブロックします。


runIfConditionIs

Key詳細
runIfConditionIs条件が真または偽のときにアクションの実行を許可するかどうかを設定します。true / false

条件名の前にrunIfプレフィックスとIsサフィックスを付けることで、条件を反転させることができます。

例えば、isAlive条件を見てみましょう。通常、次のように書きます: isAlive: true これは、ボスが生きている場合にのみアクションが実行されることを意味します。

しかし、同じ条件に次のように書くと: runIfIsAliveIs: false 条件が反転され、ボスが死んでいる場合にのみアクションが実行されるようになります。

この構造により、アクションを実行する前に条件が合格または失敗すべきかどうかを制御できます。

例:

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

このスクリプトは、ボスが死んでいる場合にのみ天候を雷に設定します。


場所ベースの条件

locationIsAir

ターゲットの場所が空気かどうかを条件に設定します。

Key詳細
locationIsAir場所が空気ブロックかどうか(またはその逆)をチェックするように設定します。Boolean
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"

ボスが立っている場所から2ブロック上の位置が空気かどうかをチェックし、空気の場合はmobがヒットされたときに天候スクリプトの実行をブロックしません。そうでない場合はアクションをブロックします。


isOnFloor

場所が床の上にあるかどうかをチェックします。これは、その場所のブロックが固体ではないが、その下のブロックが固体であることを意味します。

Key詳細
isOnFloor場所が床の場所かどうか(またはその逆)をチェックするように設定します。Boolean
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isOnFloor: true
Target:
targetType: SELF

ボスが固体ブロックの上にいるかどうかをチェックし、いる場合はスクリプトを実行し、そうでない場合はスクリプトの実行をブロックします。


isStandingOnMaterial

ターゲットの下にある場所が一致するマテリアルタイプかどうかをチェックします。

Key詳細
isStandingOnMaterialどのマテリアルタイプをチェックするかを設定します。Material
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isStandingOnMaterial: BIRCH_WOOD
Target:
targetType: SELF

ボスがBIRCH_WOODブロックの上に立っている場合にのみ実行され、そうでない場合はスクリプトの実行がブロックされます。

エンティティベースの条件

isAlive

条件ターゲットエンティティが生きているかどうかを条件に設定します。

Key詳細
isAliveエンティティが生きているか(または死んでいるか)をチェックするように設定します。Boolean
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
isAlive: true
Target:
targetType: SELF

ボスが現在生きている場合にのみ実行され、そうでない場合はスクリプトがブロックされます。


hasTags

ターゲットエンティティが特定のタグを持っているかどうかをチェックします。スクリプターはアクションを通じて任意のタグを割り当てたり解除したりでき、後の動作の条件として使用できます。タグは単に文字列(単語)であり、ボスに割り当てることができます。

Key詳細
hasTagsエンティティがタグのリストを持っているかどうかをチェックするように設定します。String List
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
hasTags:
- isCool
- hasANiceBeard
Target:
targetType: SELF

ボスが「isCool」と「hasANiceBeard」のタグを持っている場合にのみ実行され、そうでない場合はスクリプトがブロックされます。


doesNotHaveTags

hasTagsと同じですが、ボスがこれらの値を持っていないことをチェックします。

Key詳細
doesNotHaveTagsエンティティがタグのリストを持っていないことをチェックするように設定します。String List
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
doesNotHaveTags:
- isStinky
- isSus
Target:
targetType: SELF

ボスが「isStinky」と「isSus」のタグを持っていない場合にのみ実行され、そうでない場合はスクリプトがブロックされます。

その他の条件

randomChance

条件が有効になるランダムチャンスを与えます。

Key詳細
randomChance条件が有効になる確率。0.0から1.0の間の数値
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
randomChance: 0.1
Target: # 不要
targetType: SELF # 不要

これにより、スクリプトは10%の確率で実行され、そうでない場合はスクリプトがブロックされます。

この条件は特別で、ターゲットを必要としません。

タグでNEARBYをフィルタリングする

特定のタグに基づいてNEARBY_MOBSまたはNEARBY_PLAYERSをフィルタリングするには、条件のターゲットとしてACTION_TARGETを使用します(条件がスクリプト自体ではなくアクションに適用される場合)。これにより、スクリプトは指定されたタグを持つmobs/playersのみを正確にフィルタリングできます。

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

このスクリプトは、TurnOffタグを持つ近くのmobsを探し、タグを持っている場合はそれらのAIをオフにします。

targetCountLowerThan and targetCountGreaterThan

指定されたターゲット数が定義された値よりも少ないか多い場合にのみアクションの実行を許可する条件を作成します。

Key詳細
targetCountLowerThanターゲット数が指定された数値よりも少ない場合にのみアクションを実行します。0から999の間の数値
Key詳細
targetCountGreaterThanターゲット数が指定された数値よりも多い場合にのみアクションを実行します。0から999の間の数値
eliteScript:
Example:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: SET_WEATHER
Target:
targetType: SELF
weather: THUNDER
duration: 120
Conditions:
conditionType: BLOCKING
targetCountGreaterThan: 2
Target: #必須
targetType: NEARBY_MOBS #必須
range: 15

スクリプトは、15ブロックの範囲内に2体を超えるmobsがいる場合にのみ実行されます。

この条件はターゲットを必要とします。