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

EliteScript

webapp_banner.jpg

EliteScriptは、MagmaGuyのプラグイン用の包括的なスクリプトシステムで、Minecraftのボスやその他のエンティティに動的な動作を作成するための高度なカスタマイズオプションを提供します。

概要

EliteScriptにより、サーバー管理者はカスタムボスやモブに対して複雑なイベント駆動型の動作を作成できます。スクリプトシステムは5つのコアコンポーネントで構成されています:

  • Events:スクリプトの実行を開始するトリガー(ダメージ、スポーン、死亡など)
  • Conditions:アクションが実行されるために満たす必要がある条件
  • Actions:実行する動作(ダメージ、テレポート、パーティクルのスポーンなど)
  • Targets:アクションが影響するエンティティまたは場所
  • Zones:ターゲティングと検出のためのワールド内の定義された領域
  • Cooldowns:スクリプトのスパムを防ぐための時間制限

Elite Scriptsは、スタンドアロンのパワーファイルとして、またはカスタムボス設定ファイルに直接追加できます。

クイックスタート例

以下は、ボスがダメージを受けた時にプレイヤーに雷を落とすシンプルなEliteScriptです:

eliteScript:
LightningStrike:
Events:
- EliteMobDamagedByPlayerEvent
Actions:
- action: STRIKE_LIGHTNING
Target:
targetType: DIRECT_TARGET
repeatEvery: 20
times: 3
Cooldowns:
local: 60
global: 20

このスクリプトは、プレイヤーがボスにダメージを与えると発動し、プレイヤーに3回(1秒に1回)雷を落とします。再度発動するまでに60ティックのクールダウンがあります。

スクリプトコンポーネント

EliteScriptは、そのコンポーネントシステムを通じて広範なカスタマイズを提供します。各コンポーネントの詳細情報については、以下のページを参照してください:

コアコンポーネント

  • Events - ダメージ、死亡、スポーン、戦闘、ゾーンベースのトリガーを含む13種類のイベント
  • Actions - 複雑な動作を作成するための35種類のアクション
  • Targets - エンティティと場所を選択するための17種類のターゲット
  • Conditions - 複数のチェックタイプを持つフィルタリングおよびブロッキング条件
  • Zones - 8種類のゾーン形状(球体、円柱、直方体、レイ、コーンなど)
  • Cooldowns - ローカルおよびグローバルクールダウンシステム
  • 相対ベクトル - 高度な位置決めと移動

一般的な使用例

EliteScriptは一般的に以下の用途で使用されます:

  • フェーズベースのボス戦:異なる体力割合での異なる攻撃パターン
  • アリーナメカニクス:特定のエリアでのゾーンベースのダメージ、バフ、またはスポーン
  • カスタム攻撃:ユニークなパーティクルエフェクト、プロジェクタイル、範囲攻撃
  • 環境ハザード:定期的な雷、落下ブロック、または火災
  • インタラクティブメカニクス:テレポーテーション、モブスポーン、ワールド変更
  • プレイヤーコミュニケーション:メッセージ、タイトル、アクションバー、ボスバー
  • 条件付き動作:プレイヤー数、場所、またはボスの状態に基づく異なるアクション

実装

スクリプトは2つの方法で実装できます:

  1. パワーファイル~/plugins/EliteMobs/powers/にスタンドアロンの.ymlファイルを作成
  2. カスタムボスファイル:カスタムボス設定に直接eliteScript:セクションを追加

パワーとカスタムボスの作成に関する詳細な手順については、以下を参照してください:

パフォーマンスに関する考慮事項

スクリプトを作成する際は、以下のベストプラクティスに留意してください:

  • 高速発動スクリプトによるパフォーマンス問題を防ぐためにクールダウンを使用する
  • ゾーンベースのイベント(ZoneEnterEvent、ZoneLeaveEvent)は計算コストが高い - 小さなゾーンと適切なクールダウンを使用する
  • 不要なチェックを減らすためにフィルタリング条件を使用する
  • 本番サーバーにデプロイする前にスクリプトを徹底的にテストする

次のステップ

自分のEliteScriptsの作成を始めるには:

  1. Eventsページを確認して、何がスクリプトをトリガーできるかを理解する
  2. Actionsページを探索して、どのような動作を作成できるかを確認する
  3. Targetsについて学び、アクションが何に影響するかを制御する
  4. 各コンポーネントページの例を学習する
  5. シンプルなスクリプトから始めて、徐々に複雑さを増やしていく