WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■隠し通路を作る
(更新:2024/05/14)


隠し通路を設定します。




ショートカット
■仕様の確認
■隠し通路を設定
■上向きで入れるようにする
■隠し通路を表示
■隠し通路の表示条件を設定


  
■仕様の確認

今回の設定では、レイヤー1と2を使い、以下のように設定します。

レイヤー1 「通行可能」or「通行不能」
レイヤー2 主人公を隠すチップ(壁のチップ)



今回はサンプルゲームのマップ[3:ダンジョン]に隠し通路を設定します。

テストプレイをスムーズに行うために、エンカウントのマップイベントは削除するか、
0行目に「イベント処理中断」を設定して、一時的にエンカウントを止めてください。

▼エンカウントのマップイベント


▼一時的にエンカウントを止める場合は0行目に【イベント処理中断】を設定




すぐに動作テストができるようにするため、一時的に「ゲーム開始位置」を設置してください。





隠し通路の設定方法は複数あるので、このページで紹介している以外の設定方法も存在します。

当ページの設定方法は、効率性よりも設定のしやすさや解りやすさを重視しており、
なるべく設定の手間がかからないようにして、設定ミスが起きないようにしています。

隠し通路の位置を表示する処理では「全てのマスを調べて隠し通路を表示する処理」を採用しているので、
マップごとに隠し通路を表示するための専用イベント設定は必要ありませんが、
巨大なマップサイズの場合、マップ移動時に処理落ちが発生する可能性があります。



当ページのコモンデータはウディタ[3.00]仕様になっているため、ウディタ[3.00]以前では読み込めません。

【イベントコード表示】の方はウディタ[3.00]以前でも読み込めますが、
イベントコードの貼り付け後に【マップチップ上書き】のチップIDの修正などが必要であり、
またウェイトを実行する条件分岐「4900000以上」の設定を「490000以上」と1桁減らす必要があります。


▲トップへ戻る▲


  
■隠し通路を設定

隠し通路を設定します。



タイルセットエディタ」を開いてください。



タイルセットの設定画面については、別ページに説明があります。
【タイルセット設定の説明を見る】



タイルセットの設定画面では「隠し通路用のタイルセット」を設定します。

まず現在使用中のタイルセットをクリックして、[Ctrt]キーを押しながら[C]キーを押してください。





未使用のタイルセットをクリックして、[Ctrl]キーを押しながら[V]キーを押してください。

そして分かりやすい名前を付けてください。





画面上部の「★=左クリック ▲=右クリック」を選択し、[Ctrl]キーを押しながら左クリックを実行してください。



画面下の「OK」をクリックしてください。



マップの基本設定」を開いてください。





タイルセット」の設定を隠し通路用のタイルセットに変えて、画面下の「OK」をクリックしてください。





レイヤー1」の黒いチップが設定されている所に「塗りつぶしツール」を使って、
通行不能のチップで黒いチップの部分を塗りつぶしてください。





四角塗りつぶしツール」を使って、通路を作りたいマスに何らかの通行可能なチップを設定してください。





レイヤー2」にてレイヤー1で黒いチップが設定されていた所に、
四角塗りつぶしツール」を使って黒いチップを設定してください。




以上で設定完了です。

テストプレイを実行し、隠し通路の移動ができるかどうかを確認してください。


▼動作イメージ(入っていく様子)



▲トップへ戻る▲


  
■上向きで入れるようにする

上向きでも入れるように設定します。





タイルセットの設定画面を開き、隠し通路用のタイルセットを選び、画面上部の「★=左クリック ▲=右クリック」を選択してください。

そして壁の上部のチップは[Ctrl]キーを押しながら左クリック
壁の下部のチップは[Ctrl]キーを押しながら右クリックを実行してください。



画面下の「OK」をクリックしてください。



レイヤー1」の上図で設定変更した壁のチップが設定されている所に、
四角塗りつぶしツール」を使って通行不能のチップを設定してください。

そして通路を設定したい所には何らかの通行可能なチップを設定してください。





レイヤー2」に壁を設定してください。




以上で設定完了です。

テストプレイを実行して、上向きの隠し通路が通れるかどうかを確認してください。


▲トップへ戻る▲


  
■隠し通路を表示

隠し通路が表示される処理を設定します。

今回は「レイヤー3にチップを設定して表示する方法」と「ピクチャで表示する方法」の2種類の設定方法を紹介します。



2つの表示方法の違いは以下のとおりです。

画像 レイヤー3 タイルセットに画像の準備が必要です。
ピクチャ お気軽ウィンドウの「<SQUARE>」を使えば画像の準備は不要です。
アニメーション レイヤー3 オートタイルならアニメーションの表示が可能ですが、
オートタイルの画像の準備が必要です。
ピクチャ 点滅やパターン変更で可能です。
処理落ち 1万マスを超えるような巨大なマップサイズの場合は、
別のマップからやってくる時や隠し通路の表示切り替え時に処理落ちが発生する可能性があります。
この処理落ちはパソコンの性能などによっても発生度合いが異なります。
レイヤー3 処理落ちは無いです。
ピクチャ 隠し通路のマスが大量にあると処理落ちが発生する可能性があります。



どちらの表示方法でも並列実行のコモンイベントで、別のマップへ移動したかどうかを調べます。

別のマップへ移動した時には、マップ内の全てのマスを検索し、隠し通路の存在を調べます。

隠し通路の有無は、以下の2つの条件を満たしている時に「隠し通路がある」と判断されます。

●レイヤー2のタイルIDが「15」である。
●通行可能である。



別のマップへ移動した時に、隠し通路が無いマップなのに全てのマスを調べる処理を実行しても無意味なので、
システムDB[0:マップ設定]項目[8:隠し通路あり]を追加し、隠し通路があるマップは「1」にしてください。

▼項目[8:隠し通路あり]を追加


▼隠し通路があるマップは項目[8:隠し通路あり]を「1」にする




通常変数[1:隠し通路表示=1]を準備してください。



この通常変数[1:隠し通路表示=1]が「1」の時に隠し通路を表示します。

取りあえず動作確認で隠し通路の表示切り替えを行いたい時には、
実行する度に表示のON/OFFが切り替わる以下のマップイベントを設定してください。

【イベントコード表示】

■マップイベント

起動条件:決定キーで実行

■変数操作: V1[隠し通路表示=1] += 1 + 0
■変数操作: V1[隠し通路表示=1] %= 2 + 0

▼「ピクチャで表示」の説明までジャンプ


  
▼レイヤー3で表示

レイヤー3にチップを設定して隠し通路を表示します。



タイルセット用の画像ファイルに「隠し通路用のチップ」を準備してください。

設定例では「ID:361」のチップを使用します。





タイルセットの設定画面を開き、隠し通路用のタイルセットを選び、
隠し通路を表示するチップの上で左クリックを実行して「」にしてください。



画面下の「OK」をクリックしてください。



コモンイベントを設定してください。

なお、隠し通路を表示するチップが「ID=361」以外の場合は「361」となっている設定を修正してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「隠し通路(レイヤー3)」

起動条件:並列実行(常時)

■変数操作: CSelf20[表示する=1] = V1[隠し通路表示=1] + 0
■変数操作+: CSelf10[現在マップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf20[表示する=1] が CSelf21[表示実行=1] 以外
         【2】 CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf20[表示する=1] が CSelf21[表示実行=1] 以外 ]の場合↓
|■変数操作: CSelf21[表示実行=1] = CSelf20[表示する=1] + 0
|■
-◇分岐: 【2】 [ CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ ]の場合↓
|■イベント処理中断
|■
-◇上記以外
|■ウェイト:1 フレーム
|■
◇分岐終了◇
▼ 別のマップへ移動、または表示切替
■DB読込(システム): CSelf22[隠し通路あり=1] = システムDB[ マップ設定 : CSelf10[現在マップID] : 隠し通路あり ] (0 : - : 8)
■条件分岐(変数): 【1】 CSelf22[隠し通路あり=1] が 0 と同じ
-◇分岐: 【1】 [ CSelf22[隠し通路あり=1] が 0 と同じ ]の場合↓
|■変数操作+: CSelf11[処理したマップID] = 現在のマップID
|■イベント処理中断
|■
◇分岐終了◇
■変数操作+: CSelf12[横マス数] = マップサイズ[横]
■変数操作+: CSelf13[縦マス数] = マップサイズ[縦]
■変数操作: CSelf14[X座標]〜CSelf15[Y座標] = 0 + 0
■条件分岐(変数): 【1】 CSelf21[表示実行=1] が 1 と同じ
         【2】 CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf21[表示実行=1] が 1 と同じ ]の場合↓
|▼ 表示処理
|■回数付きループ [ CSelf13[縦マス数] ]回
||■回数付きループ [ CSelf12[横マス数] ]回
|||■変数操作+: CSelf16[タイルID] =
        X:CSelf14[X座標] Y:CSelf15[Y座標]のレイヤー2のチップ番号(0:透明,1-31:オート,32-:etc)
|||■変数操作+: CSelf17[通行可能=0] = X:CSelf14[X座標] Y:CSelf15[Y座標]の通行判定:タイル(○=0,×=1)
|||■条件分岐(変数): 【1】 CSelf16[タイルID] が 15 以外
           【2】 CSelf17[通行可能=0] が 0 と同じ
|||-◇分岐: 【1】 [ CSelf16[タイルID] が 15 以外 ]の場合↓
||||■
|||-◇分岐: 【2】 [ CSelf17[通行可能=0] が 0 と同じ ]の場合↓
||||■マップチップ上書き: [ レイヤー 3 / X CSelf14[X座標] / Y CSelf15[Y座標] ] から [ 横1 / 縦1 ] をチップ[ 361 ]で上書き
||||■
|||◇分岐終了◇
|||■変数操作: CSelf14[X座標] += 1 + 0
|||■
||◇ループここまで◇◇
||■変数操作: CSelf14[X座標] = 0 + 0
||■変数操作: CSelf15[Y座標] += 1 + 0
||■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 4900000 以上
||-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 4900000 以上 ]の場合↓
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
-◇分岐: 【2】 [ CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ ]の場合↓
|▼ 消去処理
|■回数付きループ [ CSelf13[縦マス数] ]回
||■回数付きループ [ CSelf12[横マス数] ]回
|||■変数操作+: CSelf16[タイルID] =
        X:CSelf14[X座標] Y:CSelf15[Y座標]のレイヤー3のチップ番号(0:透明,1-31:オート,32-:etc)
|||■条件分岐(変数): 【1】 CSelf16[タイルID] が 361 と同じ
|||-◇分岐: 【1】 [ CSelf16[タイルID] が 361 と同じ ]の場合↓
||||■マップチップ上書き: [ レイヤー 3 / X CSelf14[X座標] / Y CSelf15[Y座標] ] から [ 横1 / 縦1 ] をチップ[ 0 ]で上書き
||||■
|||◇分岐終了◇
|||■変数操作: CSelf14[X座標] += 1 + 0
|||■
||◇ループここまで◇◇
||■変数操作: CSelf14[X座標] = 0 + 0
||■変数操作: CSelf15[Y座標] += 1 + 0
||■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 4900000 以上
||-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 4900000 以上 ]の場合↓
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
◇分岐終了◇
■変数操作+: CSelf11[処理したマップID] = 現在のマップID

▼動作イメージ



▼「■隠し通路の表示条件を設定」までジャンプ


  
▼ピクチャで表示

ピクチャで隠し通路を表示します。



【ピクチャ表示】の設定は以下のように設定します。

設定名 設定内容
ピクチャ番号 1600030
教示タイプ [4]お気軽ウィンドウ
ファイル名 <SQUARE>
生成サイズ 横[9000118] 縦[9000118]
座標 X[1600031] Y[1600032]
表示形式 加算
カラー R[40] G[40] B[40]



ピクチャは【ピクチャエフェクト】を使って点滅させます。

点滅が不要な場合は【ピクチャエフェクト】の設定を削除してください。



コモンイベントを設定してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「隠し通路(ピクチャ)」

起動条件:並列実行(常時)

■変数操作: CSelf20[表示する=1] = V1[隠し通路表示=1] + 0
■変数操作+: CSelf10[現在マップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf20[表示する=1] が CSelf21[表示実行=1] 以外
         【2】 CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf20[表示する=1] が CSelf21[表示実行=1] 以外 ]の場合↓
|■変数操作: CSelf21[表示実行=1] = CSelf20[表示する=1] + 0
|■
-◇分岐: 【2】 [ CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ ]の場合↓
|■イベント処理中断
|■
-◇上記以外
|■ウェイト:1 フレーム
|■
◇分岐終了◇
▼ 別のマップへ移動、または表示切替
■変数操作+: CSelf11[処理したマップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf30[呼出実行確認] が 1000 以上
-◇分岐: 【1】 [ CSelf30[呼出実行確認] が 1000 以上 ]の場合↓
|▼ 消去処理
|■ピクチャ消去:1000 〜 CSelf30[呼出実行確認] / 0(0)フレーム
|■ピクチャエフェクト:1000 〜 CSelf30[呼出実行確認] [点滅A(明滅)] R0/G0/B0 明滅間隔(0)フレーム
|■変数操作: CSelf30[呼出実行確認] = 999 + 0
|■
◇分岐終了◇
■DB読込(システム): CSelf22[隠し通路あり=1] = システムDB[ マップ設定 : CSelf10[現在マップID] : 隠し通路あり ] (0 : - : 8)
■条件分岐(変数): 【1】 CSelf22[隠し通路あり=1] が 0 と同じ
-◇分岐: 【1】 [ CSelf22[隠し通路あり=1] が 0 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf21[表示実行=1] が 1 と同じ
-◇分岐: 【1】 [ CSelf21[表示実行=1] が 1 と同じ ]の場合↓
|▼ 表示処理
|■変数操作+: CSelf12[横マス数] = マップサイズ[横]
|■変数操作+: CSelf13[縦マス数] = マップサイズ[縦]
|■変数操作: CSelf14[X座標]〜CSelf15[Y座標] = 0 + 0
|■変数操作: CSelf30[呼出実行確認] = 1000 + 0
|■変数操作: CSelf31[可変6項目番号] = Sys104:Xスクロール値 * -1
|■変数操作: CSelf32[主人公ID] = Sys105:Yスクロール値 * -1
|■回数付きループ [ CSelf13[縦マス数] ]回
||■回数付きループ [ CSelf12[横マス数] ]回
|||■変数操作+: CSelf16[タイルID] =
        X:CSelf14[X座標] Y:CSelf15[Y座標]のレイヤー2のチップ番号(0:透明,1-31:オート,32-:etc)
|||■変数操作+: CSelf17[通行可能=0] = X:CSelf14[X座標] Y:CSelf15[Y座標]の通行判定:タイル(○=0,×=1)
|||■条件分岐(変数): 【1】 CSelf16[タイルID] が 15 以外 【2】 CSelf17[通行可能=0] が 0 と同じ
|||-◇分岐: 【1】 [ CSelf16[タイルID] が 15 以外 ]の場合↓
||||■
|||-◇分岐: 【2】 [ CSelf17[通行可能=0] が 0 と同じ ]の場合↓
||||■ピクチャ表示:CSelf30[呼出実行確認] [左上]ウィンドウ「<SQUARE>」
         サイズ[Sys118:[読]タイルサイズ,Sys118:[読]タイルサイズ]
         X:CSelf31[可変6項目番号] Y:CSelf32[主人公ID] / 0(0)フレーム / パターン 1 /
         透 255 / 加算 / 角 0 / 拡 100% / カラー R[40] G[40] B[40]
||||■変数操作: CSelf30[呼出実行確認] += 1 + 0
||||■
|||◇分岐終了◇
|||■変数操作: CSelf14[X座標] += 1 + 0
|||■変数操作: CSelf31[可変6項目番号] += Sys118:[読]タイルサイズ + 0
|||■
||◇ループここまで◇◇
||■変数操作: CSelf14[X座標] = 0 + 0
||■変数操作: CSelf15[Y座標] += 1 + 0
||■変数操作: CSelf31[可変6項目番号] = Sys104:Xスクロール値 * -1
||■変数操作: CSelf32[主人公ID] += Sys118:[読]タイルサイズ + 0
||■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 4900000 以上
||-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 4900000 以上 ]の場合↓
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■変数操作: CSelf30[呼出実行確認] -= 1 + 0
|■条件分岐(変数): 【1】 CSelf30[呼出実行確認] が 1000 以上
|-◇分岐: 【1】 [ CSelf30[呼出実行確認] が 1000 以上 ]の場合↓
||■ピクチャエフェクト:1000 〜 160030 [点滅A(明滅)] R-10/G-10/B-10 明滅間隔(30)フレーム
||■
|◇分岐終了◇
|■
◇分岐終了◇

▼動作イメージ



▲トップへ戻る▲


  
■隠し通路の表示条件を設定

隠し通路が表示される条件を設定します。

複数の条件を併用して設定する事もできます。

ショートカット
▼設定の基本
▼特定のアイテムを持っている
▼特定の武器や防具を装備する
▼特定の主人公がパーティにいる
▼ボスを倒す
▼一時的に見えるようにする
▼コモンイベント「隠し通路表示」に全て設定


  
▼設定の基本

基本的に「通常変数[1]=1」にすれば、隠し通路が表示されます。

【イベントコード表示】

■変数操作: V1[隠し通路表示=1] = 1 + 0


▲隠し通路の表示条件を設定へ戻る▲


  
▼特定のアイテムを持っている

アイテム「盗賊の目」を持っている時に隠し通路を表示します。



ユーザーDB[2:アイテム]にてアイテムを準備してください。

設定例ではデータID[24]に設定しています。





通常変数[2:隠し通路アイテム=1]を準備してください。



コモンイベント[050:X[共]アイテム増減]最後の行(39行目)に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■条件分岐(変数): 【1】 可変DB(7,24,0)[×NoData 所持個数 ] が 1 以上
-◇分岐: 【1】 [ 可変DB(7,24,0)[×NoData 所持個数 ] が 1 以上 ]の場合↓
|■変数操作: V2[隠し通路アイテム=1] = 1 + 0
|■
-◇上記以外
|■変数操作: V2[隠し通路アイテム=1] = 0 + 0
|■
◇分岐終了◇

上記設定例では「×NoData」と表示されていますが、「×NoData」のままでも問題ありません。
気になる方は、可変DB[7:┣所持アイテム個数]のデータ数を増やしてください。



コモンイベント[隠し通路表示]1行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■変数操作: CSelf20[表示する=1] 下限= V2[隠し通路アイテム=1] + 0


▲隠し通路の表示条件を設定へ戻る▲


  
▼特定の武器や防具を装備する

パーティ内にいる主人公が特定の武器や防具を装備している時に隠し通路を表示します。



ユーザーDB[3:武器]ユーザーDB[4:防具]に装備品を準備してください。

設定例では武器はデータID[25]、防具はデータID[35]に設定しています。







コモンイベント[080:X[移]パーティー画像再設定]最後の行(35行目)に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■イベントの挿入[名]: ["隠し通路表示"] <コモンEv 215>



コモンイベント[109:X[移]装備欄_選択実行]306行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■イベントの挿入[名]: ["隠し通路表示"] <コモンEv 215>





コモンイベント[113:X[移]装備装着・解除]最後の行(85行目)に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■イベントの挿入[名]: ["隠し通路表示"] <コモンEv 215>



コモンイベント[隠し通路表示]1行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■変数操作+: CSelf30[呼出実行確認] = 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■変数操作: CSelf30[呼出実行確認] -= 500000 + 0
■変数操作+: CSelf30[呼出実行確認] -= このコモンイベントID(コモンでなければ-1)
■条件分岐(変数): 【1】 CSelf30[呼出実行確認] が 0 と同じ
-◇分岐: 【1】 [ CSelf30[呼出実行確認] が 0 と同じ ]の場合↓
|■回数付きループ [ 1 ]回
||▼ 武器のデータID「25」を装備している時に隠し通路を表示
||■変数操作: CSelf31[可変6項目番号] = 1 + 0
||■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|||■DB読込(可変): CSelf32[主人公ID] =
          可変DB[ パーティー情報 : 0 : CSelf31[可変6項目番号] ] (6 : メイン設定 : -)
|||■変数操作: CSelf33[装備枠] = 1 + 0
|||■回数付きループ [ 2 ]回
||||■イベントの挿入[名]: CSelf34[装備ID] =
   ["▲装備取得"] <コモンEv 21> / CSelf32[主人公ID] / CSelf33[装備枠] / 0:武器

||||■条件分岐(変数): 【1】 CSelf34[装備ID] が 25 と同じ
||||-◇分岐: 【1】 [ CSelf34[装備ID] が 25 と同じ ]の場合↓
|||||■変数操作: CSelf20[表示する=1] = 1 + 0
|||||■ループ中断
|||||■
||||◇分岐終了◇
||||■変数操作: CSelf33[装備枠] += 1 + 0
||||■
|||◇ループここまで◇◇
|||■変数操作: CSelf31[可変6項目番号] += 1 + 0
|||■条件分岐(変数): 【1】 CSelf20[表示する=1] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■回数付きループ [ 1 ]回
||▼ 防具のデータID「35」を装備している時に隠し通路を表示
||■変数操作: CSelf31[可変6項目番号] = 1 + 0
||■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|||■DB読込(可変): CSelf32[主人公ID] =
          可変DB[ パーティー情報 : 0 : CSelf31[可変6項目番号] ] (6 : メイン設定 : -)
|||■変数操作: CSelf33[装備枠] = 2 + 0
|||■回数付きループ [ 7 ]回
||||■イベントの挿入[名]: CSelf34[装備ID] =
   ["▲装備取得"] <コモンEv 21> / CSelf32[主人公ID] / CSelf33[装備枠] / 1:防具

||||■条件分岐(変数): 【1】 CSelf34[装備ID] が 35 と同じ
||||-◇分岐: 【1】 [ CSelf34[装備ID] が 35 と同じ ]の場合↓
|||||■変数操作: CSelf20[表示する=1] = 1 + 0
|||||■ループ中断
|||||■
||||◇分岐終了◇
||||■変数操作: CSelf33[装備枠] += 1 + 0
||||■
|||◇ループここまで◇◇
|||■変数操作: CSelf31[可変6項目番号] += 1 + 0
|||■条件分岐(変数): 【1】 CSelf20[表示する=1] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■イベント処理中断
|■
◇分岐終了◇

武器しかない場合は、防具の方の「■回数付きループ [ 1 ]回」は削除してください。



武器しかなく、また対象の武器が2つある場合は、以下のように設定してください。

【イベントコード表示(追加分のみ)】

■変数操作+: CSelf30[呼出実行確認] = 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■変数操作: CSelf30[呼出実行確認] -= 500000 + 0
■変数操作+: CSelf30[呼出実行確認] -= このコモンイベントID(コモンでなければ-1)
■条件分岐(変数): 【1】 CSelf30[呼出実行確認] が 0 と同じ
-◇分岐: 【1】 [ CSelf30[呼出実行確認] が 0 と同じ ]の場合↓
|■回数付きループ [ 1 ]回
||▼ 武器のデータID「25」「26」を装備している時に隠し通路を表示
||■変数操作: CSelf31[可変6項目番号] = 1 + 0
||■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|||■DB読込(可変): CSelf32[主人公ID] =
          可変DB[ パーティー情報 : 0 : CSelf31[可変6項目番号] ] (6 : メイン設定 : -)
|||■変数操作: CSelf33[装備枠] = 2 + 0
|||■回数付きループ [ 2 ]回
||||■イベントの挿入[名]: CSelf34[装備ID] =
   ["▲装備取得"] <コモンEv 21> / CSelf32[主人公ID] / CSelf33[装備枠] / 0:武器

||||■条件分岐(変数): 【1】 CSelf34[装備ID] が 25 と同じ
           【2】 CSelf34[装備ID] が 26 と同じ
||||-◇分岐: 【1】 [ CSelf34[装備ID] が 25 と同じ ]の場合↓
|||||■変数操作: CSelf20[表示する=1] = 1 + 0
|||||■ループ中断
|||||■
||||-◇分岐: 【2】 [ CSelf34[装備ID] が 26 と同じ ]の場合↓
|||||■変数操作: CSelf20[表示する=1] = 1 + 0
|||||■ループ中断
|||||■
||||◇分岐終了◇
||||■変数操作: CSelf33[装備枠] += 1 + 0
||||■
|||◇ループここまで◇◇
|||■変数操作: CSelf31[可変6項目番号] += 1 + 0
|||■条件分岐(変数): 【1】 CSelf20[表示する=1] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■イベント処理中断
|■
◇分岐終了◇


▲隠し通路の表示条件を設定へ戻る▲


  
▼特定の主人公がパーティにいる

パーティ内にいる特定の主人公がいる時に隠し通路を表示します。

設定例では主人公ID「13」がいる時に隠し通路が見えるように設定します。



通常変数[3:隠し通路主人公=1]を準備してください。



コモンイベント[079:X[移]パーティー情報計算]23行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■条件分岐(変数): 【1】 CSelf20[処理主人公ID] が 13 と同じ
|-◇分岐: 【1】 [ CSelf20[処理主人公ID] が 13 と同じ ]の場合↓
|■変数操作: V3[隠し通路主人公=1] = 1 + 0
|■
◇分岐終了◇

同じコモンイベント[079:X[移]パーティー情報計算]16行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■変数操作: V3[隠し通路主人公=1] = 0 + 0





コモンイベント[隠し通路表示]1行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■変数操作: CSelf20[表示する=1] 下限= V3[隠し通路主人公=1] + 0


▲隠し通路の表示条件を設定へ戻る▲


  
▼ボスを倒す

ボスを倒したら隠し通路を表示します。



特定のボスを倒した後は、全てのマップでずっと隠し通路が表示される場合は、
そのボスを倒した時に以下のイベントを実行してください。

【イベントコード表示】

■変数操作: V1[隠し通路表示=1] = 1 + 0



複数のダンジョンでそれぞれのボスを倒した時に、その倒したダンジョンのみで隠し通路が見えるようにする場合は、
通常変数[4:隠し通路クリア=1]を準備し、さらにダンジョンごとに予備変数などを用意してください。



ボスを倒した時には、そのダンジョン用の予備変数を「1」にしてください。

【イベントコード表示】

■変数操作: V1-0[クリア:ダンジョン01] = 1 + 0



ダンジョンへ入る時には、そのダンジョン用の予備変数を通常変数[4:隠し通路クリア=1]に設定してください。

【イベントコード表示】

■変数操作: V4[隠し通路クリア=1] = V1-0[クリア:ダンジョン01] + 0



コモンイベント[隠し通路表示]1行目に以下のイベントを追加してください。

【イベントコード表示(追加分のみ)】

■変数操作: CSelf20[表示する=1] 下限= V4[隠し通路クリア=1] + 0


▲隠し通路の表示条件を設定へ戻る▲


  
▼一時的に見えるようにする

特殊技能やアイテムを使用すると一時的に隠し通路が表示されるように設定します。

今回は特殊技能やアイテムを使用すると「100マスの移動の間」で隠し通路が見えるようにします。



コモンイベント[隠し通路表示]1行目に以下のイベントを追加してください。

なお、1行目に他の条件が設定されている場合は…
■変数操作+: CSelf10[現在マップID] = 現在のマップID
が設定してある位置に追加してください。

【イベントコード表示(追加分のみ)】

■変数操作: CSelf41[現在のXY] = 主人公のX座標(マップ) * 10000
■変数操作: CSelf41[現在のXY] += 主人公のY座標(マップ) + 0
■条件分岐(変数): 【1】 CSelf41[現在のXY] が CSelf42[移動確認XY] 以外
-◇分岐: 【1】 [ CSelf41[現在のXY] が CSelf42[移動確認XY] 以外 ]の場合↓
|■変数操作: CSelf42[移動確認XY] = CSelf41[現在のXY] + 0
|■変数操作: CSelf40[効果歩数] -= 1 + 0
|■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 1 と同じ
          【2】 CSelf20[表示する=1] が 1 と同じ
          【3】 CSelf40[効果歩数] が 0 と同じ
|-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 1 と同じ ]の場合↓
||■
|-◇分岐: 【2】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf40[効果歩数] が 0 と同じ ]の場合↓
||▼ 効果が切れた時
||■文章:隠し通路が見えなくなった。
||■
|◇分岐終了◇
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf40[効果歩数] が 1 以上
-◇分岐: 【1】 [ CSelf40[効果歩数] が 1 以上 ]の場合↓
|■変数操作: CSelf20[表示する=1] 下限= 1 + 0
|■
◇分岐終了◇



コモンイベント[隠し通路表示]のコモンIDが「215」の場合、
その1つ下のコモンID「216」に以下のコモンイベントを設定してください。

【イベントコード表示】【コモン出力ファイル】

■コモンイベント「隠し通路表示効果」

起動条件:呼び出しのみ

■変数操作+: CSelf10[1つ上のコモンセルフ40] = このコモンイベントID(コモンでなければ-1)
■変数操作: CSelf10[1つ上のコモンセルフ40] *= 100 + 0
■変数操作: CSelf10[1つ上のコモンセルフ40] += 15000040 + 0
■変数操作: CSelf11[効果歩数取得] = V[CSelf10[1つ上のコモンセルフ40]] + 0
■変数操作: V[CSelf10[1つ上のコモンセルフ40]] 下限= 0 + 0
■変数操作: V[CSelf10[1つ上のコモンセルフ40]] += 100 + 0
■変数操作: V[CSelf10[1つ上のコモンセルフ40]] 上限= 200 + 0
■条件分岐(変数): 【1】 CSelf11[効果歩数取得] が 0 以下
-◇分岐: 【1】 [ CSelf11[効果歩数取得] が 0 以下 ]の場合↓
|■文章:隠し通路が見えるようになった。
|■
◇分岐終了◇


マス数をランダム(100〜110)にする場合は…
■変数操作: V[CSelf10[1つ上のコモンセルフ40]] += 100 〜 110
と設定してください。

連続で使用した場合の上限を「200マス」にしています。
もしも上限を設けない場合は…
■変数操作: V[CSelf10] 上限= 200 + 0
の部分を削除してください。



特殊技能やアイテムの設定は、以下のように設定してください。

ユーザーDB 項目名 設定内容
0:技能 2:┏ 効果対象 [100]イベント呼出[マップのみ]
6:(あれば)┗イベント番号指定 500216(コモンイベント[216]に「隠し通路表示効果」を設定した場合)
2:アイテム 2:使用可能な場面 [0]マップ時だけ
3:■効果のタイプ [3]イベント起動
6:┗[3]イベント番号指定 500216(コモンイベント[216]に「隠し通路表示効果」を設定した場合)
7:使用回数制限 [0]一回でなくなる

上記以外の設定項目は自由に設定してください。


▲隠し通路の表示条件を設定へ戻る▲


  
▼コモンイベント「隠し通路表示」に全て設定

コモンイベント「隠し通路表示」に…
▼特定のアイテムを持っている
▼特定の武器や防具を装備する
▼特定の主人公がパーティにいる
▼ボスを倒す
全て設定すると以下のようになります。

【イベントコード表示(レイヤー3)】【コモン出力ファイル(レイヤー3)】
【イベントコード表示(ピクチャ)】 【コモン出力ファイル(ピクチャ)】

■コモンイベント「隠し通路表示」(レイヤー3)

起動条件:並列実行(常時)

■変数操作: CSelf20[表示する=1] = V1[隠し通路表示=1] + 0
■変数操作: CSelf20[表示する=1] 下限= V2[隠し通路アイテム=1] + 0
■変数操作: CSelf20[表示する=1] 下限= V3[隠し通路主人公=1] + 0
■変数操作: CSelf20[表示する=1] 下限= V4[隠し通路クリア=1] + 0
■変数操作+: CSelf30[呼出実行確認] = 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■変数操作: CSelf30[呼出実行確認] -= 500000 + 0
■変数操作+: CSelf30[呼出実行確認] -= このコモンイベントID(コモンでなければ-1)
■条件分岐(変数): 【1】 CSelf30[呼出実行確認] が 0 と同じ
-◇分岐: 【1】 [ CSelf30[呼出実行確認] が 0 と同じ ]の場合↓
|■回数付きループ [ 1 ]回
||▼ 武器のデータID「25」を装備している時に隠し通路を表示
||■変数操作: CSelf31[可変6項目番号] = 1 + 0
||■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|||■DB読込(可変): CSelf32[主人公ID] = 可変DB[ パーティー情報 : 0 : CSelf31[可変6項目番号] ] (6 : メイン設定 : -)
|||■変数操作: CSelf33[装備枠] = 1 + 0
|||■回数付きループ [ 2 ]回
||||■イベントの挿入[名]: CSelf34[装備ID] =
   ["▲装備取得"] <コモンEv 21> / CSelf32[主人公ID] / CSelf33[装備枠] / 0:武器
||||■条件分岐(変数): 【1】 CSelf34[装備ID] が 25 と同じ
||||-◇分岐: 【1】 [ CSelf34[装備ID] が 25 と同じ ]の場合↓
|||||■変数操作: CSelf20[表示する=1] = 1 + 0
|||||■ループ中断
|||||■
||||◇分岐終了◇
||||■変数操作: CSelf33[装備枠] += 1 + 0
||||■
|||◇ループここまで◇◇
|||■変数操作: CSelf31[可変6項目番号] += 1 + 0
|||■条件分岐(変数): 【1】 CSelf20[表示する=1] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■回数付きループ [ 1 ]回
||▼ 防具のデータID「35」を装備している時に隠し通路を表示
||■変数操作: CSelf31[可変6項目番号] = 1 + 0
||■回数付きループ [ 可変DB(18,4,0)[現在パーティー人数 数値 ] ]回
|||■DB読込(可変): CSelf32[主人公ID] = 可変DB[ パーティー情報 : 0 : CSelf31[可変6項目番号] ] (6 : メイン設定 : -)
|||■変数操作: CSelf33[装備枠] = 2 + 0
|||■回数付きループ [ 7 ]回
||||■イベントの挿入[名]: CSelf34[装備ID] =
   ["▲装備取得"] <コモンEv 21> / CSelf32[主人公ID] / CSelf33[装備枠] / 1:防具
||||■条件分岐(変数): 【1】 CSelf34[装備ID] が 35 と同じ
||||-◇分岐: 【1】 [ CSelf34[装備ID] が 35 と同じ ]の場合↓
|||||■変数操作: CSelf20[表示する=1] = 1 + 0
|||||■ループ中断
|||||■
||||◇分岐終了◇
||||■変数操作: CSelf33[装備枠] += 1 + 0
||||■
|||◇ループここまで◇◇
|||■変数操作: CSelf31[可変6項目番号] += 1 + 0
|||■条件分岐(変数): 【1】 CSelf20[表示する=1] が 1 と同じ
|||-◇分岐: 【1】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||||■ループ中断
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf41[現在のXY] = 主人公のX座標(マップ) * 10000
■変数操作: CSelf41[現在のXY] += 主人公のY座標(マップ) + 0
■条件分岐(変数): 【1】 CSelf41[現在のXY] が CSelf42[移動確認XY] 以外
-◇分岐: 【1】 [ CSelf41[現在のXY] が CSelf42[移動確認XY] 以外 ]の場合↓
|■変数操作: CSelf42[移動確認XY] = CSelf41[現在のXY] + 0
|■変数操作: CSelf40[効果歩数] -= 1 + 0
|■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 1 と同じ
          【2】 CSelf20[表示する=1] が 1 と同じ
          【3】 CSelf40[効果歩数] が 0 と同じ
|-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 1 と同じ ]の場合↓
||■
|-◇分岐: 【2】 [ CSelf20[表示する=1] が 1 と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf40[効果歩数] が 0 と同じ ]の場合↓
||▼ 効果が切れた時
||■文章:隠し通路が見えなくなった。
||■
|◇分岐終了◇
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf40[効果歩数] が 1 以上
-◇分岐: 【1】 [ CSelf40[効果歩数] が 1 以上 ]の場合↓
|■変数操作: CSelf20[表示する=1] 下限= 1 + 0
|■
◇分岐終了◇
■変数操作+: CSelf10[現在マップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf20[表示する=1] が CSelf21[表示実行=1] 以外
         【2】 CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf20[表示する=1] が CSelf21[表示実行=1] 以外 ]の場合↓
|■変数操作: CSelf21[表示実行=1] = CSelf20[表示する=1] + 0
|■
-◇分岐: 【2】 [ CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ ]の場合↓
|■イベント処理中断
|■
-◇上記以外
|■ウェイト:1 フレーム
|■
◇分岐終了◇
▼ 別のマップへ移動、または表示切替
■DB読込(システム): CSelf22[隠し通路あり=1] =
         システムDB[ マップ設定 : CSelf10[現在マップID] : 隠し通路あり ] (0 : - : 8)
■条件分岐(変数): 【1】 CSelf22[隠し通路あり=1] が 0 と同じ
-◇分岐: 【1】 [ CSelf22[隠し通路あり=1] が 0 と同じ ]の場合↓
|■変数操作+: CSelf11[処理したマップID] = 現在のマップID
|■イベント処理中断
|■
◇分岐終了◇
■変数操作+: CSelf12[横マス数] = マップサイズ[横]
■変数操作+: CSelf13[縦マス数] = マップサイズ[縦]
■変数操作: CSelf14[X座標]〜CSelf15[Y座標] = 0 + 0
■条件分岐(変数): 【1】 CSelf21[表示実行=1] が 1 と同じ
         【2】 CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf21[表示実行=1] が 1 と同じ ]の場合↓
|▼ 表示処理
|■回数付きループ [ CSelf13[縦マス数] ]回
||■回数付きループ [ CSelf12[横マス数] ]回
|||■変数操作+: CSelf16[タイルID] =
        X:CSelf14[X座標] Y:CSelf15[Y座標]のレイヤー2のチップ番号(0:透明,1-31:オート,32-:etc)
|||■変数操作+: CSelf17[通行可能=0] = X:CSelf14[X座標] Y:CSelf15[Y座標]の通行判定:タイル(○=0,×=1)
|||■条件分岐(変数): 【1】 CSelf16[タイルID] が 15 以外
           【2】 CSelf17[通行可能=0] が 0 と同じ
|||-◇分岐: 【1】 [ CSelf16[タイルID] が 15 以外 ]の場合↓
||||■
|||-◇分岐: 【2】 [ CSelf17[通行可能=0] が 0 と同じ ]の場合↓
||||■マップチップ上書き: [ レイヤー 3 / X CSelf14[X座標] / Y CSelf15[Y座標] ] から [ 横1 / 縦1 ] をチップ[ 361 ]で上書き
||||■
|||◇分岐終了◇
|||■変数操作: CSelf14[X座標] += 1 + 0
|||■
||◇ループここまで◇◇
||■変数操作: CSelf14[X座標] = 0 + 0
||■変数操作: CSelf15[Y座標] += 1 + 0
||■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 4900000 以上
||-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 4900000 以上 ]の場合↓
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
-◇分岐: 【2】 [ CSelf10[現在マップID] が CSelf11[処理したマップID] と同じ ]の場合↓
|▼ 消去処理
|■回数付きループ [ CSelf13[縦マス数] ]回
||■回数付きループ [ CSelf12[横マス数] ]回
|||■変数操作+: CSelf16[タイルID] =
        X:CSelf14[X座標] Y:CSelf15[Y座標]のレイヤー3のチップ番号(0:透明,1-31:オート,32-:etc)
|||■条件分岐(変数): 【1】 CSelf16[タイルID] が 361 と同じ
|||-◇分岐: 【1】 [ CSelf16[タイルID] が 361 と同じ ]の場合↓
||||■マップチップ上書き: [ レイヤー 3 / X CSelf14[X座標] / Y CSelf15[Y座標] ] から [ 横1 / 縦1 ] をチップ[ 0 ]で上書き
||||■
|||◇分岐終了◇
|||■変数操作: CSelf14[X座標] += 1 + 0
|||■
||◇ループここまで◇◇
||■変数操作: CSelf14[X座標] = 0 + 0
||■変数操作: CSelf15[Y座標] += 1 + 0
||■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 4900000 以上
||-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 4900000 以上 ]の場合↓
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
◇分岐終了◇
■変数操作+: CSelf11[処理したマップID] = 現在のマップID


▲トップへ戻る▲

YADOT-WOLFトップ  気紛れな空間へ戻る  メール