/*: * @target MZ * @plugindesc タグ付きイベントへ移動するプラグイン * @author IvI * * @help * 【使い方】 * 1. このプラグインをプロジェクトのjs/pluginsフォルダに配置し、 * プラグイン管理から読み込みます。 * 2. イベントのメモ欄に、下記のようにタグを記述します。 * 例: * 3. イベントコマンド「プラグインコマンド」から、 * 「タグ付きイベントへ移動」コマンドを選択し、タグ名を入力します。 * 4. 該当タグを持つ最初のイベントの座標へプレイヤーを移動します。 * * もし同じタグを持つイベントが複数ある場合、最初に見つかったイベントが対象となります。 * タグを持つイベントが見つからなかった場合は、場所移動は行われません。 * * @command moveToTaggedEvent * @text タグ付きイベントへ移動 * @desc イベントのメモ欄に指定したタグを検索し、そのイベントへプレイヤーを移動します。 * * @arg tag * @text タグ名 * @desc イベントのメモ欄に書かれているタグを指定してください。例:Treasure * @default */ (() => { 'use strict'; // プラグインコマンド登録 PluginManager.registerCommand(document.currentScript.src.match(/([^/]+)\.js$/)[1], "moveToTaggedEvent", args => { const tagName = args.tag.trim(); if (!tagName) { console.warn("タグ名が指定されていません。"); return; } // カレントマップ内のイベント一覧を取得 const events = $dataMap.events; if (!events) { console.warn("イベントデータが取得できませんでした。"); return; } // タグが含まれるイベントを検索(メモ欄に <タグ名> と書かれているか) const targetEvent = events.find(e => { return e && e.note && e.note.includes(`<${tagName}>`); }); // 見つからなければ処理終了 if (!targetEvent) { console.warn(`タグ「${tagName}」を持つイベントが見つかりませんでした。`); return; } // 場所移動を実行(向き:保持、フェード:なし) // 向きやフェードを変更したい場合は、第4引数・第5引数を変更してください。 $gamePlayer.reserveTransfer( $gameMap.mapId(), // 現在のマップID targetEvent.x, // イベントのX座標 targetEvent.y, // イベントのY座標 $gamePlayer.direction(), // プレイヤーの向き(保持する場合) 0 // フェード(0=なし, 1=白, 2=黒) ); } ); })();