当サイトの運営者です。ゲーム制作とプラグイン開発が好きで、コミュニティに貢献したいと考えています。
RPGツクールMZでゲームを制作中です。
※プログラマ・エンジニアではありません。
鳶嶋式 条件判定関連のスクリプト - TF_Condition.js
シェア用テキスト:
▼鳶嶋式 条件判定関連のスクリプト(とんび@鳶嶋工房様作) - TF_Condition.js
https://plugin-mz.fungamemake.com/archives/6950
変数・スイッチ・セルフスイッチをIDだけでなく[名前]で設定できる。
ふりがな:じょうけんはんていかんれんのすくりぷと
機能概要: 変数・スイッチ・セルフスイッチをIDだけでなく[名前]で設定できる。
利用規約(ライセンス): MITライセンス
作者:とんび@鳶嶋工房
作者サイト:http://tonbi.jp/
解説ページ:https://github.com/tonbijp/RPGMakerMZ?tab=readme-ov-fil…
ダウンロードページ:https://raw.githubusercontent.com/tonbijp/RPGMakerMZ/ma…
ファイル名:TF_Condition.js
プラグインのヘルプ:
/*:ja * @target MZ * @plugindesc 条件判定関連のスクリプト * @author とんび﹫鳶嶋工房(tonbi.jp) * @url https://github.com/tonbijp/RPGMakerMZ/blob/master/TF_Condition.js * @base PluginCommonBase * @orderAfter PluginCommonBase * * @param temporarySwitch @text 一時スイッチのID * @desc 各種値を返すスイッチのID(規定値:1) * @type switch @default 1 * * @param temporaryVariable @text 一時変数のID * @desc 各種値を返す変数のID(規定値:1) * @type variable @default 1 * * @================================================ * @help * 変数・スイッチ・セルフスイッチをIDだけでなく[名前]で設定できる。 * そのため、制作途中でIDを変えても[名前]が同じなら大丈夫。 * * プレイヤー位置・前方のイベントなどの判定ができる。 * * 数値・真偽値に指定できる値について * ・基本は変数・スイッチの[名前]を指定します。 * ・PluginCommonBase 定義により V[n] S[n]が使えます。 * ・数字は名前でなく数値と判断します。 * ・true、false は名前ではなく値と判断します。 * * 一時変数・一時スイッチについて * ・名前に it をつけることを推奨します。 * プラグインコマンドの規定値が it だからです。 * 一時変数・一時スイッチ両方とも it が規定値です。 * ・IDはプラグインパラメータで変更できますが 1 を推奨します。 * イベントコマンドの規定値が 1 だから入れ替える必要がありません。 * * ※ PluginCommonBase 定義によりパラメータや引数に V[n] を使えます。 * * ●イベントコマンド * [スイッチの操作][変数の操作][セルフスイッチの操作] * 判定 * [スイッチ判定][セルフスイッチ判定] * [複数スイッチ and結合][JavaScript判定] * 比較 * [数値比較][数値範囲] * 位置 * [座標位置][前方イベント][その場イベント] * 出現条件:判定 * [スイッチ判定][セルフスイッチ判定][複数スイッチ and結合] * 出現条件:比較 * [数値比較][数値範囲] * ------------------------------ * 引数の[論理演算]の選択肢のうち get そして and、or、== は、 * 判定を連続して行いたい場合に使います。 * 論理演算の結果は一時スイッチに代入されます。 * * [一時スイッチに代入 get] * 判定結果。 * [一時スイッチとの論理積 and] * 一時スイッチと判定結果が両方ともONだとON。 * [一時スイッチとの論理和 or] * 一時スイッチと判定結果のどちらかがONだとON。 * [一時スイッチと同じ ==] * 一時スイッチと判定結果の値が同じだとON。 * * ●スクリプト * $gameVariables.setValueByName( 変数名, 変数への設定値 ) * $gameVariables.valueByName( 変数名 ) * $gameSwitches.setValueByName( スイッチ名, スイッチ状態(真偽値) ) * $gameSwitches.valueByName( スイッチ名 ) * this.TF_checkLocation( マップID, イベントID, x, y, 向き ) * this.TF_checkFrontEvent( マップID, イベントID ) * this.TF_checkHereEvent( マップID, 向き, イベントID ) * * 利用規約 : MITライセンス * * TODO: * セルフスイッチを変数として利用できる機能をつける * * @================================================ * @command switch @text スイッチの操作 * @desc 指定スイッチへの代入。 * * @arg name @text スイッチの名前 * @desc 指定スイッチ * @type string @default it * * @arg operand @text オペランド(値) * @desc スイッチの名前、true、false、not、S[n]いずれか * @type combo @default true * @option true * @option false * @option not * @option S[n] * * @================================================ * @command variable @text 変数の操作 * @desc 数値は小数値も扱う * 数値以外が入った変数の動作は保証しない * * @arg name @text 変数の名前 * @desc 指定変数 * @type string @default it * * @arg operate @text 操作 * @desc 規定値: 指定変数に代入 = * @type select @default = * @option 指定変数に代入 = @value = * @option 足し算 += @value += * @option 引き算 -= @value -= * @option 掛け算 *= @value *= * @option 割り算 /= @value /= * @option 割り算の余り %= @value %= * @option 割り算の商 //= @value //= * @option 足し算して一時変数に + @value + * @option 引き算して一時変数に - @value - * @option 掛け算して一時変数に * @value * * @option 割り算して一時変数に / @value / * @option 割り算の余りを一時変数に % @value % * @option 割り算の商を一時変数に // @value // * * @arg operand @text オペランド(値) * @desc 変数の名前、数値、V[n]いずれか * @type string @default 100 * * @================================================ * @command textVariable @text 文字変数の操作 * @desc 変数に対して文字を代入 * 数値が含まれていても文字として代入される * * @arg name @text 変数の名前 * @desc 指定変数 * @type string @default it * * @arg operate @text 操作 * @desc 規定値: 指定変数に代入 = * @type select @default = * @option 指定変数に代入 = @value = * @option 結合 += @value += * @option 結合して一時変数に代入 + @value + * * @arg operand @text オペランド(値) * @desc 変数に代入する文字(V[n]を使用できる) * @type multiline_string @default V[1] * * @================================================ * @command selfSwitch @text セルフスイッチの操作 * @desc 指定イベントのセルフスイッチを設定。 * * @arg mapId @text マップID * @desc マップをIDまたは名前で指定 * 規定値:this(現在のマップ) * @type string @default this * * @arg eventId @text イベントID * @desc イベントをIDで指定(規定値:this(このイベント)) * マップ指定が this だとイベント名で指定できる。 * @type string @default this * * @arg type @text タイプ * @desc 任意の文字が指定できるが * 通常のイベントコマンドでは使えない。 * @type combo @default A * @option A @option B @option C @option D * * @arg operand @text オペランド(値) * @desc スイッチの名前、true、false、not、S[n]いずれか * (セルフスイッチの指定はできません) * @type combo @default true * @option true * @option false * @option not * @option S[n] * * @=================== 【判定】 =============================================================== * @command rem1 @text _____ 判定 _____ * @desc [条件分岐]を行うため下準備的なものです。 * (なお、これは区切り線なので選択しても何も起きません) * * @================================================ * @command checkSwitch @text 判定:スイッチ * @desc * 指定スイッチと一時スイッチを論理演算し、 * 結果を一時スイッチに代入。 * * @arg name @text スイッチの名前 * @desc 指定スイッチ * @type string @default it * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkSelfSwitch @text 判定:セルフスイッチ * @desc * 指定セルフスイッチと一時スイッチを論理演算し、 * 結果を一時スイッチに代入。 * * @arg mapId @text マップID * @desc マップをIDまたは名前で指定 * 規定値:this(現在のマップ) * @type string @default this * * @arg eventId @text イベントID * @desc イベントをIDで指定(規定値:this(このイベント)) * マップ指定が this だとイベント名で指定できる。 * @type string @default this * * @arg type @text タイプ * @desc 任意の文字が指定できるが * 通常のイベントコマンドでは使えない。 * @type combo @default A * @option A @option B @option C @option D * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkMultiple @text 判定:複数スイッチ and結合 * @desc * 複数のスイッチの論理積(and)の結果を、 * 一時スイッチに代入。 * * @arg nameList @text スイッチ名リスト * @desc スイッチを名前で指定 * @type string[] @default [”it”, ”done”] * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkCompare @text 判定:数値比較 * @desc * 一時変数と比較した結果を一時スイッチに設定。 * * @arg leftSide @text 左辺の数値 * @desc 変数の名前、数値、V[n]いずれか * @type string @default it * * @arg compare @text 比較演算子 * @desc (規定値: ==) * @type select @default == * @option 同じ == @value == * @option 以外 ≠ @value ≠ * @option 以上 ≦ @value ≦ * @option より上 < @value < * @option 以下 ≧ @value ≧ * @option より下 > @value > * * @arg rightSide @text 右辺の数値 * @desc 変数の名前、数値、V[n]いずれか * @type string @default it * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkCompareText @text 判定:文字比較 * @desc * 一時変数と比較した結果を一時スイッチに設定。 * * @arg leftSide @text 左辺の文字変数 * @desc 変数の名前、V[n]いずれか * @type string @default it * * @arg compare @text 比較演算子 * @desc (規定値: ==) * @type select @default == * @option 同じ == @value == * @option 以外 ≠ @value ≠ * * @arg rightSide @text 右辺の文字 * @desc 文字(V[n]を使える) * @type multiline_string @default * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkRange @text 判定:数値範囲 * @desc * 指定変数が範囲内にあるか判定して、 * 結果を一時スイッチに設定。 * * @arg min @text 最小値 * @desc 変数の名前、数値、V[n]いずれか * @type number @default 0 * * @arg center @text ≦中間値 * @desc 変数の名前、数値、V[n]いずれか * @type string @default it * * @arg max @text ≦最大値 * @desc 変数の名前、数値、V[n]いずれか * @type number @default 100 * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @=================== 【特殊判定】 =============================================================== * @command rem2 @text ____ 特殊判定 ____ * @desc 標準にはついてない判定方式で[出現条件]では使えません。 * (なお、これは区切り線なので選択しても何も起きません) * * @================================================ * @command checkLocation @text 判定:座標位置 * @desc * イベントの座標位置と向きをチェックして、 * 全て合致していたか結果を一時スイッチに設定。 * * @arg mapId @text マップID * @desc マップをIDまたは名前で指定 * 規定値: this (現在のマップ) * @type string @default this * * @arg eventId @text イベントID * @desc * イベントID(数値)かイベントの名前 * 規定値: player * @type combo @default player * @option this @option player @option follower0 @option follower1 @option follower2 * * @arg position @text 位置(タイル数) * @desc マップ上の位置 * x, y 座標2つの数値を区切って入力。 * @type string @default 0,0 * * @arg d @text 向き(テンキー対応) * @desc プレイヤーの向き * 規定値: 0 (向きを問わない) * @type select @default 0 * @option ・0 @value 0 * @option ↑ 8 @value 8 * @option → 6 @value 6 * @option ← 4 @value 4 * @option ↓ 2 @value 2 * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkFrontEvent @text 判定:前方イベント * @desc * プレイヤーの前方に指定イベントがあるか、 * 判定した結果を一時スイッチに設定。 * * @arg mapId @text マップID * @desc マップをIDまたは名前で指定 * 規定値:this(現在のマップ) * @type string @default this * * @arg eventId @text イベントID * @desc イベントをIDで指定 * 規定値:this(このイベント) * @type string @default this * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkHereEvent @text 判定:その場イベント * @desc * プレイヤーと同じ場所に指定イベントがあるか、 * 判定した結果を一時スイッチに設定。 * * @arg mapId @text マップID * @desc マップをIDまたは名前で指定 * 規定値:this(現在のマップ) * @type string @default this * * @arg d @text 向き(テンキー対応) * @desc プレイヤーの向き * 規定値:0 (向きを問わない) * @type select @default 0 * @option ・0 @value 0 * @option ↑ 8 @value 8 * @option → 6 @value 6 * @option ← 4 @value 4 * @option ↓ 2 @value 2 * * @arg eventId @text イベントID * @desc イベントをIDで指定 * 規定値:this(このイベント) * @type string @default this * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @================================================ * @command checkJs @text 判定:JavaScript * @desc * このイベントを this とした JavaScriptを実行し、 * return で返った結果を一時スイッチに設定。 * * @arg script @text JavaScript * @desc 真偽値を返すJavaScriptを書く。 * @type note @default ”// 実行結果を returnで返すnreturn true;” * * @arg operate @text 論理演算 * @desc 一時変数への代入前の処理 * 規定値: そのまま代入 get * @type select @default get * @option そのまま代入 get @value get * @option 反転して代入 not @value not * @option 一時スイッチとの論理積を代入 and @value and * @option 一時スイッチとの論理和を代入 or @value or * @option 一時スイッチとの比較結果を代入 == @value == * * @=================== 【出現条件】 =============================================================== * @command rem3 @text ____ 出現条件 ____ * @desc 出現条件は[実行内容]の上の方に並べて使います。 * (なお、これは区切り線なので選択しても何も起きません) * * @================================================ * @command conditionSwitch @text 出現条件:スイッチ * @desc 指定した値と同じならページ出現。 * * @arg name @text スイッチの名前 * @desc 指定スイッチ * @type string @default it * * @arg operand @text オペランド(値) * @desc * @type boolean @default true * * @================================================ * @command conditionSelfSwitch @text 出現条件:セルフスイッチ * @desc セルフスイッチと値が同じならページ出現。 * * @arg mapId @text マップID * @desc マップをIDまたは名前で指定 * 規定値:this(現在のマップ) * @type string @default this * * @arg eventId @text イベントID * @desc イベントをIDで指定(規定値:this(このイベント)) * マップ指定が this だとイベント名で指定できる。 * @type string @default this * * @arg type @text タイプ * @desc 任意の文字が指定できるが * 通常のイベントコマンドでは使えない。 * @type combo @default A * @option A @option B @option C @option D * * @arg operand @text オペランド(値) * @desc * @type boolean @default true * * @================================================ * @command conditionMultiple @text 出現条件:複数スイッチ and結合 * @desc 指定した値がすべてtrueならページ出現。 * * @arg nameList @text スイッチ名リスト * @desc スイッチを名前で指定 * @type string[] @default [”it”, ”done”] * * @================================================ * @command conditionCompare @text 出現条件:数値比較 * @desc 比較した結果がtrueならページ出現。 * * @arg leftSide @text 左辺の数値 * @desc 変数の名前、数値いずれか * @type string @default it * * @arg compare @text 比較演算子 * @desc (規定値: ==) * @type select @default == * @option 同じ == @value == * @option 以外 ≠ @value ≠ * @option 以上 ≦ @value ≦ * @option より上 < @value < * @option 以下 ≧ @value ≧ * @option より下 > @value > * * @arg rightSide @text 右辺の数値 * @desc 変数の名前、数値いずれか * @type string @default it * * @================================================ * @command conditionCompareText @text 出現条件:文字比較 * @desc 比較した結果がtrueならページ出現。 * * @arg leftSide @text 左辺の文字変数 * @desc 変数の名前 * @type string @default it * * @arg compare @text 比較演算子 * @desc (規定値: ==) * @type select @default == * @option 同じ == @value == * @option 以外 ≠ @value ≠ * * @arg rightSide @text 右辺の文字 * @desc 文字(V[n]を使える) * @type multiline_string @default * * @================================================ * @command conditionRange @text 出現条件:数値範囲 * @desc 指定変数が範囲内にあればページ出現。 * * @arg min @text 最小値 * @desc 変数の名前、数値いずれか * @type number @default 0 * * @arg center @text ≦中間値 * @desc 変数の名前、数値いずれか * @type string @default it * * @arg max @text ≦最大値 * @desc 変数の名前、数値いずれか * @type number @default 100 */