条件分岐 / ツクールMVスクリプトリファレンスwiki
ツクールMVで条件分岐をスクリプトで行うなら以下の通りです。
目次
スイッチ
$gameSwitches.value(スイッチID)
サンプルコード(スイッチ3がonで条件分岐)
if($gameSwitches.value(3)){
//(処理)
}
変数
$gameVariables.value(変数ID)
サンプルコード(変数2の値が10以上で条件分岐)
if($gameVariables.value(2) >= 10){
//(処理)
}
セルフスイッチ
var key = [マップID, イベントID, セルフスイッチ]
$gameSelfSwitches.value(key)
サンプルコード(マップIDが1、イベントIDが3のイベントのセルフスイッチAがonで分岐)
var key = [1, 3, "A"]
if($gameSelfSwitches.value(key)){
//(処理)
}
タイマー
$gameTimer.seconds()
サンプルコード(タイマーが10秒以下で分岐)
if($gameTimer.seconds() <= 10){
//(処理)
}
アクターがパーティーにいるか
$gameParty.members().contains($gameActors.actor(アクターID))
サンプルコード(アクターIDが2のアクター(デフォルトでテレーゼ)がパーティーにいるかどうかで分岐)
if($gameParty.members().contains($gameActors.actor(2))){
//(処理)
}
アクターの名前
$gameActors.actor(アクターID).name
サンプルコード(アクターIDが1のアクターの名前がハロルドかどうかで分岐)
if($gameActors.actor(1).name == "ハロルド"){
//(処理)
}
アクターの職業
$gameActors.actor(アクターID).isClass($dataClasses[職業ID])
サンプルコード(アクターIDが1のアクターの職業が職業ID2(デフォルトで戦士)かどうかで分岐)
if($gameActors.actor(1).isClass($dataClasses[2])){
//(処理)
}
アクターのスキル
$gameActors.actor(アクターID).isLearnedSkill(スキルID)
サンプルコード(アクターIDが1のアクターがスキルID10(デフォルトでスパーク)を習得しているかどうかで分岐)
if($gameActors.actor(1).isLearnedSkill(10)){
//(処理)
}
アクターが武器を装備しているか
$gameActors.actor(アクターID).hasWeapon($dataWeapons[武器ID])
サンプルコード(アクターIDが1のアクターが武器ID2(デフォルトで斧)を持っているかどうかで分岐)
if($gameActors.actor(1).hasWeapon($dataWeapons[2])){
//(処理)
}
アクターが防具を装備しているか
$gameActors.actor(アクターID).hasArmor($dataWeapons[防具ID])
サンプルコード(アクターIDが1のアクターが防具ID2(デフォルトで帽子)を持っているかどうかで分岐)
if($gameActors.actor(1).hasArmor($dataWeapons[2])){
//(処理)
}
アクターのステート
$gameActors.actor(アクターID).isStateAffected(ステートID)
サンプルコード(アクターIDが1のアクターがステートID4(デフォルトで毒)かどうかで分岐)
if($gameActors.actor(1).isStateAffected(4)){
//(処理)
}
敵キャラが出現しているか
$gameTroop.members()[敵キャラID].isAlive()
サンプルコード(敵IDが2の敵が出現しているかどうかで分岐)
if($gameTroop.members()[1].isAlive()){
//(処理)
}
敵キャラのステート
$gameTroop.members()[敵キャラID].isStateAffected(ステートID)
サンプルコード(敵IDが2の敵がステートID4のステート(デフォルトで毒)かどうかで分岐)
if($gameTroop.members()[1].isStateAffected(4)){
//(処理)
}
キャラクターの向き
this.character(イベントID).direction()
イベントIDは負の数でプレイヤー、0でこのイベント、1~でイベントIDを指定します。
向きはテンキー(下:2 左:4 右:6 上:8)に対応しています。
サンプルコード(このイベントが上を向いているかどうかで分岐)
if(this.character(0).direction() == 8){
//(処理)
}
乗り物
$gamePlayer.vehicle() === $gameMap.vehicle(乗り物ID)
乗り物IDは以下のように対応しています。
小型船:0
大型船:1
飛行船:2
サンプルコード(飛行船に乗っているかどうかで分岐)
if($gamePlayer.vehicle() === $gameMap.vehicle(2)){
//(処理)
}
お金
$gameParty.gold()
サンプルコード(お金を1000以上持っているかどうかで分岐)
if($gameParty.gold() >= 1000){
//(処理)
}
アイテム
$gameParty.hasItem($dataItems[アイテムID])
サンプルコード(アイテムIDが5のアイテムを持っているどうかで分岐)
if($gameParty.hasItem($dataItems[5])){
//(処理)
}
武器を持っているか
$gameParty.hasItem($dataWeapons[武器ID], 装備品も含めるか(true/false))
サンプルコード(武器IDが1の武器(デフォルトで剣)を持っているかどうかで分岐。装備品も含める)
if($gameParty.hasItem($dataWeapons[1], true)){
//(処理)
}
防具を持っているか
$gameParty.hasItem($dataArmors[防具ID], 装備品も含めるか(true/false))
サンプルコード(防具IDが1の防具(デフォルトで盾)を持っているかどうかで分岐。装備品は含めない)
if($gameParty.hasItem($dataArmors[1], false)){
//(処理)
}
ボタン
Input.isPressed(ボタン)
ボタンは以下のように対応しています。
決定 "ok"
キャンセル "cancel"
シフト "shift"
下 "down"
上 "up"
右 "right"
左 "left"
ページアップ "pageup"
ページダウン "pagedown"
サンプルコード(シフトボタンが押されているかどうかで分岐)
if(Input.isPressed("shift")){
//(処理)
}
イベントコマンドでできる条件分岐は以上です。
条件分岐はスクリプトで何かを処理する上で頻繁に使うことになる処理です。
それぞれの条件を知っていればスクリプトでできることの幅が広がります。
ツクールMVスクリプトリファレンスwikiトップページへ戻る
オリジナルシステムなどの製作依頼・相談があればプラグイン・マップ等個別製作依頼のページまでお願いします。