テンプレートイベントプラグイン – TemplateEvent.js

タイトル
テンプレートイベントプラグイン
作者名
ヘルプ
TemplateEvent.js[テンプレートイベントプラグイン]

汎用的に使用するイベントをテンプレート化できます。
テンプレートイベントは、専用に用意したマップに定義してください。
実際のイベントのメモ欄に所定の記述をするだけで、テンプレートイベントと
動的に置き換えることができます。

またテンプレートイベントから置き換え元のイベントを呼び出すことができます。
宝箱や場所移動イベント等、一部だけ固有の処理をしたい場合に有効です。
外観や共通部分のイベント処理をテンプレートイベントに記述し、
アイテム入手や場所移動先指定など固有部分だけを元のイベントに記述します。

任意のマップイベントをコモンイベントのように呼び出す機能も提供します。
IDおよびイベント名で呼び出すイベントを指定可能です。

利用手順
1.テンプレートマップを作成して、テンプレートイベントを配置します。

2.テンプレートイベントに置き換えたいイベントのメモ欄を記述します。
IDとイベント名の双方が指定可能です。
<TE:1> テンプレートマップのID[1]のイベントに置き換わります。
<TE:aaa> テンプレートマップのイベント名[aaa]のイベントに置き換わります。
<TE:\v[1]> テンプレートマップのID[変数[1]の値]のイベントに置き換わります。

原則、初期配置以外の全設定はテンプレートイベントの設定に置き換わりますが
例外としてメモ欄(※1)を記述した場合は
以下の任意の設定について固有イベントの設定で上書きします。
・画像
・自律移動
・オプション
・プライオリティ
・トリガー

※1 固有イベントのメモ欄に以下の通り記述します。
<TE上書き>
<TEOverRide>

・セルフ変数機能
イベントに対してセルフ変数(そのイベント専用の変数)を定義できます。
プラグインコマンドから操作し、文章の表示やイベント出現条件として使用可能です。

「文章の表示」で使用する場合
制御文字「\sv[n](n:インデックス)」で表示できます。

「イベント出現条件」で使用する場合
対象ページのイベントコマンドの先頭を「注釈」にして
以下の書式で条件を指定してください。複数指定も可能です。

\TE{条件}

条件はJavaScriptとしてで記述し、制御文字が使用可能です。
指定例:
\TE{\sv[1] >= 3} # セルフ変数[1]が3以上の場合
\TE{\sv[2] === \v[1]} # セルフ変数[2]が変数[1]と等しい場合
\TE{\sv[3] === 'AAA'} # セルフ変数[3]が'AAA'と等しい場合

「条件分岐」などのスクリプトで使用する場合
以下のスクリプトで指定したインデックスのセルフ変数が取得できます。
this.getSelfVariable(n)
指定例:
this.getSelfVariable(1) !== 0 # セルフ変数[1]が0でない場合

プラグインコマンド詳細
イベントコマンド「プラグインコマンド」から実行。
(パラメータの間は半角スペースで区切る)

TE固有イベント呼び出し [ページ番号]
TE_CALL_ORIGIN_EVENT [ページ番号]
置き換え元のイベント処理を呼び出します。処理完了後、元の処理に戻ります。
ページ番号を省略すると、実行中のページ番号がそのまま適用されます。
テンプレートイベントに記述した場合のみ有効です。

例1:置き換え元イベントの1ページ目を呼び出します。
TE固有イベント呼び出し 1

TEマップイベント呼び出し [イベントID] [ページ番号]
TE_CALL_MAP_EVENT [イベントID] [ページ番号]
同一マップ内の別イベント処理を呼び出します。処理完了後、元の処理に戻ります。
イベントIDに数値以外を指定すると、イベント名として扱われ
イベント名が一致するイベントの処理を呼び出します。
テンプレートイベントに記述した場合以外でも有効です。

例1:ID[5]のイベントの1ページ目を呼び出します。
TEマップイベント呼び出し 5 1

例2:[aaa]という名前のイベントの1ページ目を呼び出します。
TEマップイベント呼び出し aaa 1

TEセルフ変数の操作 [インデックス] [操作種別] [オペランド]
TE_SET_SELF_VARIABLE [インデックス] [操作種別] [オペランド]
セルフ変数を操作します。
インデックス : 操作対象のセルフ変数のインデックスです。1以上の数値を指定
操作種別 : 操作種別です。以下の通り指定してください。
0 : 代入
1 : 加算
2 : 減算
3 : 乗算
4 : 除算
5 : 剰余
オペランド : 設定値です。数値を指定してください。
※セルフ変数に数値以外を設定したい場合は、スクリプトで指定してください。

例1:インデックス[1]のセルフ変数に値[100]を代入します。
TE_SET_SELF_VARIABLE 1 0 100

例2:インデックス[3]のセルフ変数から値[50]を減算します。
TE_SET_SELF_VARIABLE 3 2 50

例2:インデックス[5]のセルフ変数に値[セルフ変数[1]の値]を加算します。
TE_SET_SELF_VARIABLE 5 1 \sv[1]

TEセルフ変数の一括操作 [開始INDEX] [終了INDEX] [操作種別] [オペランド]
TE_SET_RANGE_SELF_VARIABLE [開始INDEX] [終了INDEX] [操作種別] [オペランド]
セルフ変数を一括操作します。

本プラグインのすべてのプラグインコマンドで制御文字\sv[n]を使用できます。

・スクリプト(イベントコマンドのスクリプト、変数の操作から実行)
固有処理呼び出し中にテンプレートイベントのIDと名称を取得します。
this.character(0).getTemplateId();
this.character(0).getTemplateName();

指定したインデックスのセルフ変数を取得します。
this.getSelfVariable(index);

セルフ変数に値を設定します。
このスクリプトは「移動ルートの設定」でも実行できます。
formulaFlgをtrueに設定すると、operandを計算式として評価します。
this.controlSelfVariable(index, type, operand, formulaFlg);

セルフ変数に値を一括設定します。
このスクリプトは「移動ルートの設定」でも実行できます。
this.controlSelfVariableRange(start, end, type, operand, formulaFlg);

外部のイベントのセルフ変数を操作します。
$gameSelfSwitches.setVariableValue([マップID, イベントID, INDEX], 設定値);

外部のイベントのセルフ変数を取得します。
$gameSelfSwitches.getVariableValue([マップID, イベントID, INDEX]);

SAN_MapGenerator.jsと組み合わせる場合
このプラグインをSAN_MapGenerator.jsより下に定義してください。

利用規約:
作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
についても制限はありません。
このプラグインはもうあなたのものです。
パラメータ
param TemplateMapId
text テンプレートマップID
desc テンプレートイベントが存在するマップIDです。
default 1
type number

param KeepEventId
text イベントIDを維持
desc マップイベントを呼び出す際に、呼び出し元のイベントIDを維持します。対象を「このイベント」にした際の挙動が変わります。
default false
type boolean

param OverrideTarget
text 上書き対象項目
desc メモ欄で上書き(テンプレートイベントより固有イベントの設定を優先)指定したイベントの上書き対象項目を設定します。
default {"Image":"true","Direction":"false","Move":"false","Priority":"false","Trigger":"false","Option":"false"}
type struct<override>

param AutoOverride
text 自動上書き
desc メモ欄で上書き設定をしなくても「上書き対象項目」の設定を上書きします。
default false
type boolean

param IntegrateNote
text メモ欄統合
desc テンプレートイベントと固有イベントのメモ欄を統合もしくは上書きします。
default 0
type select
option 何もしない
value 0
option 統合
value 1
option 上書き
value 2

ライセンス表記
作者に無断で改変、再配布が可能で、利用形態(商用、18禁利用等)
(C)2016 Triacontane
This software is released under the MIT License.
http://opensource.org/licenses/mit-license.php

紹介ページ https://github.com/triacontane/RPGMakerMV/blob/master/TemplateEvent.js