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
 */

スポンサードリンク

スポンサードリンク

-MZ用プラグイン

Copyright© #ツクプラMZ , 2026 All Rights Reserved.