/*:ja * @plugindesc v1.02 イベントをコピーして動的に生成します。 * @author Yanfly Engine Plugins * * @help * 翻訳:ムノクラ * https://fungamemake.com/ * https://twitter.com/munokura/ * * =========================================================================== * 導入 * =========================================================================== * * 警告:このプラグインはRPGツクールMV1.5.0以降で使用してください。 * RPGツクールMVソフトウェアが最新のものであることを確認してください。 * * RPGツクールMVでは、イベントを非表示にして、 * 何もないステートから発生したように見せるために * 自分自身を明らかにする機能があります。 * 実際には何もないところからイベントを生成するための生来の機能はありません。 * このプラグインは、事前に作成され、 * 別のマップから準備ができているイベントを * 実際に生成する機能をユーザーに提供します。 * * 生成されたイベントには、イベントのページ条件からイベントコマンド、 * 画像設定まで、元のソースからの全てのデータが含まれます。 * そして元のソースが将来更新された場合、生成されたイベントも更新されます。 * プレイヤーがマップに再び入るかセーブをリロードした場合、 * 発生したイベントは保存され、マップ上に残ることができます。 * * より多くの情報はヘルプのInstructionsの章で説明されます。 * * =========================================================================== * 説明 * =========================================================================== * * どのマップからマップをプリロードするかを選択するには、 * プラグインパラメータ'Template Maps'を使用してください。 * これらのマップには、他のイベントを発生させたいイベントが含まれています。 * トリガーイベントから自動実行イベント、並列イベントまで、 * あらゆる種類のイベントをスポーンテンプレートとして使用できます。 * * テンプレート名を使用したい場合、 * 'Template Names'プラグインパラメータを通してそれらを追加してください。 * Template Namesパラメータからのデータは変更することができ、 * それぞれのテンプレート名でスクリプトコールを使用する * 全てのイベントはそれに応じて更新されます。 * * -------------------- * 生成制限 * -------------------- * * イベントを目的の場所で生成する前に適用する必要がある * いくつかの規則があります。それらは以下のとおりです。 * * 1.イベントの優先順位が異なる場合でも、 * 出現場所が他のイベントに占有されてはいけません。 * RPGツクールMVエンジンに過剰な貼り付けや問題が発生するのを防ぐためです。 * * 2.出現場所には乗り物が存在できません。 * トリガーされた時、優先順位がイベントと競合しないようにするためです。 * * 3.生成場所はマップ上になければなりません。 * マップの境界外の座標を持つことはできません。 * * これらの規則に従っている限り、 * 以下のセクションにリストされているスクリプトコールの形式に従っていれば、 * イベントは正しく生成されます。 * * =========================================================================== * スクリプトコール * =========================================================================== * * マップにイベントを生成するには、次のスクリプトコールを使います。 * * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * イベント生成 - スクリプトコール * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * * 'mapId'、'eventId'からの情報をベースとして新しいイベントを生成します。 * 新しいイベントのIDは1001以降 * (またはプラグインパラメータ'ID Starting Range'に設定したもの) * で始まります。 * * - - - * * Yanfly.SpawnEventAt(mapId, eventId, x, y, preserved) * - 特定の座標に目的のイベントを生成します。 *      - 'mapId'をモーフィングするイベントのあるマップIDに置き換えます。 *      - 'eventId'をターゲットのモーフィング先となるイベントIDに * 置き換えます。 *      - 'x'をマップ上のX位置に置き換えてイベントを発生させます。 *      - 'y'をマップ上のY位置に置き換えてイベントを発生させます。 *      - X,Y位置の場所にイベントが存在してはいけません。 *      - spawnを保存するには、'preserved'を'true'/'false'に置き換えます。 * * * 例: Yanfly.SpawnEventAt(1, 5, 30, 40, true) * - マップ1のイベント5は、X,Y座標:30,40に出現します。 * - イベントは保存されます。 * * * 例: Yanfly.SpawnEventAt(2, 10, 50, 60, false) * - マップ2のイベント10は、X,Y座標:50,60で生成されます。 * - このイベントは保存されません。 * * - - - * * Yanfly.SpawnEventTemplateAt(template, x, y, preserved) * - 座標でテンプレート名によって希望のイベントを生み出すでしょう。 * - 'template'を 'Template Names'プラグインパラメータの名前に置き換えます。 * - 'string'形式でなければなりません(名前を引用符で囲みます)。 * - イベントを発生させるには、マップ上の 'x'をX位置に置き換えます。 * - イベントを発生させるには、マップ上の 'y'をY位置に置き換えます。 * - XとYの位置には、その場所にイベントが存在してはいけません。 * - spawnを保存するには、 'preserved'を 'true'/'false'に置き換えてください。 * * 例: Yanfly.SpawnEventTemplateAt('StrawberryPlant', 30, 40, true) * - プラグインパラメータ'StrawberryPlant'テンプレートは、 * X,Y座標:30,40に生成されます。 * - このイベントは保存されます。 * * * 例: Yanfly.SpawnEventTemplateAt('MineralVein', 50, 60, false) * - プラグインパラメータの 'MineralVein'テンプレートは、 * X,Y座標:50,60で生成されます。 * - このイベントは保存されません。 * * - - - * * Yanfly.SpawnEventInRegion(mapId, eventId, region, preserved) * - これは、リージョン内のランダムな場所で目的のイベントを生成します。 * - 'mapId'をモーフィングするイベントのあるマップのIDに置き換えます。 * - 'eventId'をターゲットをモーフィングするイベントのIDに * 置き換えてください。 * - 'region'をイベントの生成先のリージョンのIDに置き換えます。 * - 複数のリージョンを使いたい場合、それらを配列に配置します。 * - spawnを保存するには、 'preserved'を 'true'/'false'に * 置き換えてください。 * * 例: Yanfly.SpawnEventInRegion(1, 5, 20, true) * - 地図1のイベント5は地域20のランダムな地点に出現する。 * - このイベントは保存されます。 * * * 例: Yanfly.SpawnEventInRegion(2, 10, [20, 25], true) * - 地図2のイベント10は、地域20または25のランダムな地点に出現します。 * - このイベントは保存されません。 * * - - - * * Yanfly.SpawnEventTemplateInRegion(template, region, preserved) * - リージョン内のランダムな場所に目的のイベントが生成されます。 * - 'template'を'Template Names'プラグインパラメータの名前に置き換えます。 * これは'string'形式でなければなりません(名前を引用符で囲んでください)。 * - 'region'を、イベントの生成先のリージョンのIDに置き換えます。 * 複数のリージョンを使用したい場合、それらを配列に配置します。 * - spawnを保存するには、'preserved'を'true'/'false'に置き換えます。 * * * 例: Yanfly.SpawnEventTemplateInRegion('StrawberryPlant', 20, true) * - プラグインパラメータからの'StrawberryPlant'テンプレートは、 * リージョン20のランダムな位置に生成されます。 * - このイベントは保存されます。 * * * 例: Yanfly.SpawnEventTemplateInRegion('MineralVein', [20, 25], true) * - プラグインパラメータからの'MineralVein'テンプレートは、 * リージョン20か25のランダムなポイントに生成されます。 * - このイベントは保存されません。 * * - - - * * *注:生成されたイベントが保存されている場合、 * そマップが保存ファイルから再ロードされた時・別のマップから再訪問された時、 * そのマップ上に残ります。 * イベントが保存されないように設定されている場合、 * マップを離れると自動的に自動的に消滅します。 * * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * 生成したイベントデータの取得 - スクリプトコール * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * * $gameMap.event(eventId) * - イベントをオブジェクトとして取得します。 * - 'eventId'を、取得したいイベントのIDに置き換えます。 * - 過去1000回のIDは、発生したイベントです。 * (またはプラグインパラメータで設定したもの) * * - - - * * $gameMap.FirstSpawnedEvent() * - これは最初の利用可能な発生イベントをオブジェクトとして取得します。 * - 最初のイベントが消滅した場合、 * リスト内の次のイベントがオブジェクトとして返されます。 * 生成されたイベントが残っていない場合、 * このスクリプトコールは未定義の値を返します。 * * - - - * * $gameMap.FirstSpawnedEventID() * - 最初に使用可能になったイベントのIDが番号として取得されます。 * - 最初のイベントが消滅した場合、 * リスト内の次のイベントが番号として返されます。 * 生成されたイベントが残っていない場合、 * このスクリプトコールは値0を返します。 * * - - - * * $gameMap.LastSpawnedEvent() * - オブジェクトとして最後に利用可能な発生したイベントを取得します。 * - 最後のイベントが消滅した場合、 * リスト内の前のイベントがオブジェクトとして返されます。 * 生成されたイベントが残っていない場合、 * このスクリプトコールは未定義の値を返します。 * * - - - * * $gameMap.LastSpawnedEventID() * - これは最後に利用可能な発生したイベントのIDを数字として取得します。 * - 最後のイベントが消滅した場合、 * リスト内の前のイベントIDが番号として返されます。 * 生成されたイベントが残っていない場合、 * このスクリプトコールは値0を返します。 * * - - - * * $gameSystem.getMapSpawnedEventTotal() * - そのマップ上でこれまでに生成されたイベントの総数を返します。 * この数には、生成されたイベントが含まれます。 * * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * イベント消滅 - スクリプトコール * - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - * * Yanfly.DespawnEventID(eventId) * - 生成されたイベントのIDを持っている場合、 * ターゲットの生成されたイベントを消滅させます。 * - 'eventId'を生成されたイベントのIDに置き換えます。 * * * 例: Yanfly.DespawnEventID(1001) * - 現在のマップ上のイベント1001が消滅します。 * - 最近発生したイベントはもう保存されません。 * * * 例: Yanfly.DespawnEventID($gameMap.LastSpawnedEventID()) * - 現在のマップのIDに基づいて生成された最後のイベントを消滅させます。 * - イベント1001はもう保存されていません。 * * - - - * * Yanfly.DespawnEvent(event) * - ターゲットの生成されたイベントオブジェクトを生成します。 * - 'event'を生成されたイベントオブジェクトに置き換えます。 * * * 例: Yanfly.DespawnEvent($gameMap.FirstSpawnedEvent()) * - 現在のマップ上で最初に発生したイベントを消滅させるでしょう。 * - 最初に発生したイベントはもう保存されません。 * * - - - * * Yanfly.ClearSpawnedEvents() * - 発生したすべてのイベントの現在のマップを消去します。 * * - - - * * Yanfly.ClearSpawnedEvents(mapId) * - 発生したすべてのイベントの特定のマップを消去します。 * - 'mapId'を、発生したイベントをクリアしたいマップに置き換えます。 * * * 例: Yanfly.ClearSpawnedEvents(10) * - マップ10上で発生したすべてのイベントをクリアします。 * * *注:生成されたイベントが生成解除されると、 * 削除された生成イベントに加えて保存されているデータも全て削除されます。 * * =========================================================================== * Changelog * =========================================================================== * * Version 1.01: * - Bugfixed for irregular spawn ID's. * * Version 1.00: * - Finished Plugin! * * =========================================================================== * End of Helpfile * =========================================================================== * * @param ---一般--- * @default * * @param TemplateMaps * @text テンプレートマップ * @parent ---一般--- * @type number[] * @min 1 * @max 999 * @desc プラグインのテンプレートマップとしてプリロードされる全てのマップIDのリスト * @default ["1"] * * @param TemplateNames * @text テンプレート一覧 * @parent ---一般--- * @type struct