ツクールMZのスクリプトで条件分岐を行う方法
RPGツクールVXAce & MV & MZスクリプトwikiとプラグイン

ツクールMZのスクリプトで条件分岐を行う方法 > MZスクリプトwiki

トップページ > ツクールMZスクリプトリファレンスwikiトップページ > 条件分岐

条件分岐 / ツクールMZスクリプトリファレンスwiki

ツクールMZで条件分岐をスクリプトで行うなら以下の通りです。


目次

スイッチ

変数

セルフスイッチ

タイマー

アクターがパーティーにいるか

アクターの名前

アクターの職業

アクターのスキル

アクターが武器を装備しているか

アクターが防具を装備しているか

アクターのステート

敵キャラが出現しているか

敵キャラのステート

キャラクターの向き

乗り物

お金

アイテム

武器を持っているか

防具を持っているか

ボタン


スイッチ

$gameSwitches.value(スイッチID)

サンプルコード(スイッチ4がonで条件分岐)

if($gameSwitches.value(4)){
//(処理)
}

変数

$gameVariables.value(変数ID)

サンプルコード(変数3の値が20以上で条件分岐)

if($gameVariables.value(3) >= 20){
//(処理)
}

セルフスイッチ

var key = [マップID, イベントID, セルフスイッチ]
$gameSelfSwitches.value(key)

サンプルコード(マップIDが2、イベントIDが4のイベントのセルフスイッチBがonで分岐)

var key = [2, 4, "B"]
if($gameSelfSwitches.value(key)){
//(処理)
}

タイマー

$gameTimer.seconds()

サンプルコード(タイマーが2秒以下で分岐)

if($gameTimer.seconds() <= 2){
//(処理)
}

アクターがパーティーにいるか

$gameParty.members().includes($gameActors.actor(アクターID))

サンプルコード(アクターIDが1のアクター(デフォルトでリード)がパーティーにいるかどうかで分岐)

if($gameParty.members().includes($gameActors.actor(1))){
//(処理)
}

アクターの名前

$gameActors.actor(アクターID).name()

サンプルコード(アクターIDが2のアクターの名前がプリシアかどうかで分岐)

if($gameActors.actor(2).name() == "プリシア"){
//(処理)
}

アクターの職業

$gameActors.actor(アクターID).isClass($dataClasses[職業ID])

サンプルコード(アクターIDが2のアクターの職業が職業ID3(デフォルトで僧侶)かどうかで分岐)

if($gameActors.actor(2).isClass($dataClasses[3])){
//(処理)
}

アクターのスキル

$gameActors.actor(アクターID).hasSkill(スキルID)

サンプルコード(アクターIDが2のアクターがスキルID18(デフォルトで瞑想)を習得しているかどうかで分岐)

if($gameActors.actor(2).hasSkill(18)){
//(処理)
}

アクターが武器を装備しているか

$gameActors.actor(アクターID).hasWeapon($dataWeapons[武器ID])

サンプルコード(アクターIDが2のアクターが武器ID3(デフォルトで氷の剣)を持っているかどうかで分岐)

if($gameActors.actor(2).hasWeapon($dataWeapons[3])){
//(処理)
}

アクターが防具を装備しているか

$gameActors.actor(アクターID).hasArmor($dataWeapons[防具ID])

サンプルコード(アクターIDが2のアクターが防具ID4(デフォルトで冒険者の服)を持っているかどうかで分岐)

if($gameActors.actor(2).hasArmor($dataWeapons[4])){
//(処理)
}

アクターのステート

$gameActors.actor(アクターID).isStateAffected(ステートID)

サンプルコード(アクターIDが1のアクターがステートID5(デフォルトで暗闇)かどうかで分岐)

if($gameActors.actor(1).isStateAffected(5)){
//(処理)
}

敵キャラが出現しているか

$gameTroop.members()[敵キャラID].isAlive()

サンプルコード(敵IDが3の敵が出現しているかどうかで分岐)

if($gameTroop.members()[2].isAlive()){
//(処理)
}

敵キャラのステート

$gameTroop.members()[敵キャラID].isStateAffected(ステートID)

サンプルコード(敵IDが1の敵がステートID5のステート(デフォルトで暗闇)かどうかで分岐)

if($gameTroop.members()[0].isStateAffected(5)){
//(処理)
}

キャラクターの向き

this.character(イベントID).direction()

イベントIDは負の数でプレイヤー、0でこのイベント、1~でイベントIDを指定します。

向きはテンキー(下:2 左:4 右:6 上:8)に対応しています。


サンプルコード(プレイヤーが下を向いているかどうかで分岐)

if(this.character(-1).direction() == 2){
//(処理)
}

乗り物

$gamePlayer.vehicle() === $gameMap.vehicle(乗り物ID)

乗り物IDは以下のように対応しています。

小型船:0

大型船:1

飛行船:2


サンプルコード(大型船に乗っているかどうかで分岐)

if($gamePlayer.vehicle() === $gameMap.vehicle(1)){
//(処理)
}

お金

$gameParty.gold()

サンプルコード(お金を1000以上持っているかどうかで分岐)

if($gameParty.gold() >= 1000){
//(処理)
}

アイテム

$gameParty.hasItem($dataItems[アイテムID])

サンプルコード(アイテムIDが4のアイテムを持っているどうかで分岐)

if($gameParty.hasItem($dataItems[4])){
//(処理)
}

武器を持っているか

$gameParty.hasItem($dataWeapons[武器ID], 装備品も含めるか(true/false))

サンプルコード(武器IDが2の武器(デフォルトで剣)を持っているかどうかで分岐。装備品も含める)

if($gameParty.hasItem($dataWeapons[2], true)){
//(処理)
}

防具を持っているか

$gameParty.hasItem($dataArmors[防具ID], 装備品も含めるか(true/false))

サンプルコード(防具IDが3の防具(デフォルトで盾)を持っているかどうかで分岐。装備品は含めない)

if($gameParty.hasItem($dataArmors[3], false)){
//(処理)
}

ボタン

ボタンを押下されているとき

Input.isPressed(ボタン)

ボタンを押下されたときのみ

Input.isTriggered(ボタン)

ボタンを押下され続けているとき

Input.isRepeated(ボタン)

ボタンは以下のように対応しています。


決定 "ok"

キャンセル "cancel"

シフト "shift"

下 "down"

上 "up"

右 "right"

左 "left"

ページアップ "pageup"

ページダウン "pagedown"


サンプルコード(シフトボタンが押されつづけているかどうかで分岐)

if(Input.isRepeated("shift")){
//(処理)
}

イベントコマンドでできる条件分岐は以上です。


MVから変更があったのは「アクターがパーティーにいるか」のスクリプト、「ボタン押下の条件」のみです。

 



オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。



表示変更

任意の色に変えるときはテキストボックスをクリックしてカラーピッカーで決め、変更ボタンを押してください



文字色変更





コード色変更





コード背景色変更





背景色変更