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

EliteScript

webapp_banner.jpg

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

概要

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

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

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

クイックスタート例

以下は、ダメージを受けたときにボスがプレイヤーに雷を落とす簡単な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は、コンポーネントシステムを通じて広範なカスタマイズを提供します。各コンポーネントの詳細については、以下のページを参照してください:

コアコンポーネント

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

一般的な使用例

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

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

実装

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

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

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

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

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

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

次のステップ

独自のEliteScriptsを作成を開始するには:

  1. イベントページを確認して、何がスクリプトをトリガーできるかを理解する
  2. アクションページを探索して、作成できる動作を確認する
  3. ターゲットについて学び、アクションが影響を与える対象を制御する
  4. 各コンポーネントページの例を研究する
  5. シンプルなスクリプトから始めて、徐々に複雑さを追加する