/*:ja * @plugindesc (v.1.1) 地図上の場所を選択して移動できる新しいシーンを作れます * @url http://galvs-scripts.com * @target MZ * @author Galv * * @help * 翻訳:ムノクラ * https://fungamemake.com/ * https://twitter.com/munokura/ * * 元プラグイン: * https://galvs-scripts.com/2020/09/05/mz-map-travel/ * * Galv's * --------------------------------------------------------------------------- * プレイヤーがマウスやキーボードを使ってマップ画像上の選択した場所に * 移動できる新しいシーンを作成します。 * * 制作者は独自のマップ画像を作成し、 * 基本的なJavaScript(配列や文字列など)を理解できるスキルが必要になります。 * * * --------------------------------------------------------------------------- * 画像 * --------------------------------------------------------------------------- * * 転送マップシーンの画像は、 * 新しいフォルダに配置されています(プロジェクトに追加する必要があります)。 * Project/img/maptravel/ * * マップ画像は任意のサイズにすることができ、 * マップ転送シーンでスクロールするサイズをコントロールします。 * * 場所の画像は任意のサイズにできますが、 * 3つのフレームを保持するためには、場所の画像の高さを3x3が必要です。 * 各フレームは異なるタイミングに表示されます。 * * 上: マップ上のデフォルト * 中: 場所が選択されている場合 * 下: 位置情報が無効化されている場合 * 場所の画像の例にプラグインのデモを見てください。 * * プラグインの設定で3つの場所の変数を設定し、 * ゲーム内で他の何かに使用しないようにしてください。 * イベントコマンド'場所移動'で使用するマップID,X,Yの値を保持します。 * * * --------------------------------------------------------------------------- * プラグインコマンド * --------------------------------------------------------------------------- * Step 1. 地図を作成 * --------------------- * 転送マップシーンで使用する新しいマップを作成するには、 * プラグインコマンドを使用します: * * Create a Map * * マップで使用するマップ画像、背景画像、前景画像を指定するコマンドです。 * 作成した転送マップを参照するIDを指定します。 * * * Step 2. 場所とオブジェクトの設定 * ------------------------------------- * 追加する場所毎に、以下のコマンドを使用して、 * 必要な数の場所をマップに追加します。 * * Set a Location * * * Step 3. シーンを呼び出す * -------------------------- * プレイヤーがマップに追加された場所に移動できるように、 * 転送マップシーンを開きます。 * * Open Map * * * 全て、スクリプトを介して行うこともできます。 * 追加の機能は、スクリプトでも実行できます。 * 詳細については、以下をお読みください。 * * * --------------------------------------------------------------------------- * スクリプト * --------------------------------------------------------------------------- * Step 1. 地図を作成 * --------------------- * 転送マップシーンで使用する新しいマップを作成するには、 * 次のスクリプトを使用します: * * Galv.MAPT.createMap(id,"mapImage",[[bg],[bg]],[[fg],[fg]]); * * 情報: * id = 作成したマップを識別する重複のない番号 * "mapImage" = 使用するマップ画像のファイル名 (/img/maptravel/内) * この画像は、シーン内のマップのサイズを決定します * [bg] = マップ画像の背後に背景画像を設定する配列 * 必要な分のbg配列を入れられます * ["bgimage",xmove,ymove,opacity] * [fg] = 前景に機能します。使用方法はbg配列と同様です * ["fgimage",xmove,ymove,opacity] * * * Step 2. 場所とオブジェクトの設定 * ------------------------------------- * 追加する場所毎に、以下のスクリプトを使用して、 * 必要な数の場所をマップに追加できます。 * * Galv.MAPT.setLocation(id,"name","image",mx,my,tmid,tx,ty,"desc",f); * * 情報: * id = 作成したマップを識別する重複のない番号 * "name" = 場所の名前(参照するためにも使用されます) * "image" = 使用するマップ画像のファイル名 (/img/maptravel/内) * この画像は、スプライトシートに3行必要です: * 上部=通常、中央=アクティブ、下部=無効 * mx = 場所の地図画像上のx位置 * my = 場所の地図画像上のy位置 * tmid = 転送先のゲーム内マップID * tx = 転送先のゲーム内マップのx座標 * ty = 転送先のゲーム内マップのy座標 * "desc" = 場所を選択すると表示される短い説明。 * 改行を指定する記号に | を使用します。 * f = 場所画像内のアニメーションのフレーム。 * プラグイン設定のデフォルトフレームを使用するには、 * この属性を含めないでください * * setLocationを使用して、以前に設定したものを別の名前に変更したい場合、 * 同じ名前を使用して上書きできます。 * * 場所に加えて、同様に機能する'オブジェクト'を追加できますが、 * スプライトシートには画像が1行しかなく、場所リストには表示されません。 * * Galv.MAPT.setObject(id,"name","image",mx,my,f); * Galv.MAPT.removeObject(id,"name"); * * * Step 3. シーンを呼び出す * -------------------------- * プレイヤーがマップに追加された場所に移動できるように、 * 転送マップシーンを開くには: * * Galv.MAPT.openMap(id,p); * マップを開くために上記で設定した重複のないID。 * マップが作成されない場合、何も起こりません。 * p は true/false です。 * true はプレーヤーが転送マップシーンをキャンセルできなくします。 * * * その他のスクリプト * ------------------- * * Galv.MAPT.hasMap(id) * 条件分岐'スクリプト'で使用し、 * プレーヤーのゲームでマップが作成されているかを確認します * * Galv.MAPT.mapSelected * シーンが実行された後に条件分岐で使用し、 * プレーヤーが場所を選択したかどうかを確認します * * Galv.MAPT.initLocation(id,"name"); * マップシーンの開始位置を特定のマップIDのこの位置に設定します * * Galv.MAPT.enableLocation(id,"name",s); * s は true/false にします。 * マップIDの場所'name'を有効/無効に設定します。 * * Galv.MAPT.removeLocation(id,"name"); * mapidリストから場所を削除する * * Galv.MAPT.editLocation(id,"name","attribute",value); * 場所を編集 * * // id = 編集している場合は地図 * // "name" = 編集している場所の名前 * // "attribute" = 編集する属性。 これは次のいずれかです。 * // "image" value = "ファイル名" * // "mapXY" value = [x,y] * // "transfer" value = [mapid,x,y] * // "desc" value = "説明文" * // value = 変更する値。各属性の値は上記のとおりです。 * * 例 * Galv.MAPT.editLocation(0,"あなたの邸宅","desc","新しい説明!"); * * また、次を使用して場所全体を上書きすることもできます * Galv.MAPT.setLocation(id,"name","image",mx,my,tmid,tx,ty,"desc"); * * --------------------------------------------------------------------------- * ムノクラからの注意事項(v1.1) * --------------------------------------------------------------------------- * 転送マップの設定に背景と前景の画像を指定しない場合、エラーになります。 * バグの可能性がありますが、 * 表示したくない場合にはダミーの画像を用意する必要がありそうです。 * * * @param varMap * @text 転送マップ変数 * @type variable * @desc マップIDを代入する変数。プレイヤーが転送されます。 * @default 1 * * @param xVar * @text 転送X変数 * @type variable * @desc プレイヤーを転送するx座標を代入する変数 * @default 2 * * @param yVar * @text 転送Y変数 * @type variable * @desc プレイヤーを転送するy座標を代入する変数 * @default 3 * * @param textConfirm * @text 確認の表示テキスト * @desc 転送を実行するための確認ウィンドウに表示テキスト * @default 転送 * * @param textCancel * @text キャンセルの表示テキスト * @desc キャンセルの確認画面に表示される文字列。 * @default キャンセル * * @param windowWidth * @text 確認のウィンドウ幅 * @desc 確認ウィンドウの幅 * @default 180 * * @param spriteFrames * @text 位置画像のフレーム数 * @type number * @desc 位置情報画像のアニメーションのフレーム数 * @default 3 * * @param frameSpeed * @text フレーム速度 * @type number * @desc フレームアニメーションの速度(小さい方が速い) * @default 10 * * * @command createMap * @text マップの作成 * @desc ゲーム中に呼び出すマップを作成します。 * * @arg mapId * @text マップID(必須) * @type number * @default 0 * @desc マップの識別番号(マップIDである必要はありません) * * @arg mapImage * @text マップ画像(必須) * @type file * @dir img/maptravel * @desc 使用するマップ画像の名前を指定します。(/img/maptravel/内) * * @arg bgImages * @text 背景画像(必須) * @type string[] * @default ["imagename,0,0,255"] * @desc 背景設定のリスト。ファイル名,x座標,y座標,不透明度(0-255) * * @arg fgImages * @text 前景画像(必須) * @type string[] * @default ["imagename,0,0,255"] * @desc 前景設定のリスト。ファイル名,x座標,y座標,不透明度(0-255) * * * @command setLocation * @text 場所の設定 * @desc 作成した転送マップに場所を作成します。 * * @arg mapId * @text マップID(必須) * @type number * @default 0 * @desc 作成したマップの識別番号 * * @arg name * @text 場所名(必須) * @desc リストに表示される場所名 * * @arg image * @text 画像名(必須) * @type file * @dir img/maptravel * @desc 使用する場所画像のファイル名(/img/maptravel/内) * * @arg mx * @text X位置(必須) * @type number * @default 0 * @desc マップ画像上の場所のx位置 * * @arg my * @text Y位置(必須) * @type number * @default 0 * @desc マップ画像上の場所のy位置 * * @arg tmid * @text 転送マップID(必須) * @type number * @default 0 * @desc 転送マップID - 転送するゲーム内マップID * * @arg tx * @text 転送マップX(必須) * @type number * @default 0 * @desc ゲーム内マップのx座標に転送 * * @arg ty * @text 転送マップY(必須) * @type number * @default 0 * @desc ゲーム内マップのy座標を転送 * * @arg desc * @text 場所の説明 * @desc 場所選択時に表示される説明。|記号で改行します。 * * @arg f * @text アニメーションフレーム * @type number * @default 3 * @desc 位置情報画像のアニメーションのフレーム。0でプラグインのデフォルトを使用 * * * @command openMap * @text マップを開く * @desc 作成したIDを選択して転送マップシーンを開きます。 * * @arg mapId * @text マップID(必須) * @type number * @default 0 * @desc 作成したマップの識別番号 * * @arg preventCancel * @text キャンセル防止 * @type boolean * @on キャンセル防止 * @off キャンセル可能 * @default false * @desc マップ移動シーンをプレイヤーがキャンセルの可否を指定。防止:true / 可能:false */