WOLF RPGエディター(ウディタ)/イベントコマンド【サイトトップへ戻る】
■【使用例】チップ処理
(更新:2024/05/05)


イベントコマンド【チップ処理】に関する使用例を紹介します。


ショートカット
■【使用例】アイテムを使用する(持っている)と水面が歩ける
「単体チップ設定を変更」
■【使用例】水のチップを別のチップに置き換える
「マップチップの上書き」
■【使用例】サブキーで橋を架ける
「マップチップの上書き」



以下は【チップ処理】を使った別のページにある使用例です。
クリックするとYADOT-WOLF内の別ページが開きます。

別ページの使用例
■隠し通路を作る
「マップチップの上書き」
■ゲーム中にマウスでツボを置く
「マップチップの上書き」



【チップ処理】の基本説明は別ページに記載しています。
【チップ処理の基本説明を開く】


  
「単体チップ設定を変更」
■【使用例】アイテムを使用する(持っている)と水面が歩ける

アイテム「ミズグモのお守り」を使用する、または持っていると水面が歩けるように設定します。



ユーザー[2:アイテム]アイテム「ミズグモのお守り」を準備してください。



主な設定内容は以下のとおりです。
(記載されていない項目は自由に設定してください)

項目名 使用するタイプ 所持するタイプ
2:使用可能な場面 [0]マップ時だけ
3:効果のタイプ [3]イベント起動 [0]効果のないアイテム
6:┗[3]イベント番号指定 500215  
7:使用回数制限 [0]一回でなくなる [1]無制限に使用可能

「500215」はコモンイベント[215]を呼び出す設定です。
このあと設定するコモンイベントのコモンIDが「234」の場合は「500234」と設定してください。



今回はチップID[4][5][6]の通行設定を変えます。





▼アイテムを使用

アイテム「ミズグモのお守り」を使った時に水の上を歩けるようにします。

別のマップへ移動すると効果が切れます。

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

■コモンイベント[215:ミズグモのお守りの処理]

起動条件:呼び出しのみ

■マップチップ通行設定: チップ4 = ()
■マップチップ通行設定: チップ5 = ()
■マップチップ通行設定: チップ6 = ()



▼アイテムを所持

アイテム「ミズグモのお守り」を持っている時に水の上を歩けるようにします。

コモンイベント[ミズグモのお守りの処理]は以下のように設定してください。

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

■コモンイベント[ミズグモのお守りの処理]

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

■変数操作+: CSelf0[所持確認] = 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■変数操作: CSelf0[所持確認] -= 500000 + 0
■変数操作+: CSelf0[所持確認] -= このコモンイベントID(コモンでなければ-1)
■条件分岐(変数): 【1】 CSelf0[所持確認] が 0 と同じ
-◇分岐: 【1】 [ CSelf0[所持確認] が 0 と同じ ]の場合↓
|▼ コモン[050:X[共]アイテム増減]から呼び出して実行した時
|■イベントの挿入[名]: CSelf10[アイテム所持] = ["▲アイテム所持数取得"] <コモンEv 17> / 24:ミズグモのお守り
|■条件分岐(変数): 【1】 CSelf10[アイテム所持] が 1 以上
|-◇分岐: 【1】 [ CSelf10[アイテム所持] が 1 以上 ]の場合↓
||●ラベル「チップ変更」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|▼ 元に戻す
|■マップチップ通行設定: チップ4 = (↓禁 ←禁 →禁 ↑禁 )
|■マップチップ通行設定: チップ5 = (↓禁 ←禁 →禁 ↑禁 )
|■マップチップ通行設定: チップ6 = (↓禁 ←禁 →禁 ↑禁 )
|■イベント処理中断
|■
◇分岐終了◇
■変数操作+: CSelf11[現在のマップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf11[現在のマップID] が CSelf12[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf11[現在のマップID] が CSelf12[処理したマップID] と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■ウェイト:1 フレーム
■変数操作+: CSelf12[処理したマップID] = 現在のマップID
■イベントの挿入[名]: CSelf10[アイテム所持] = ["▲アイテム所持数取得"] <コモンEv 17> / 24:ミズグモのお守り
■条件分岐(変数): 【1】 CSelf10[アイテム所持] が 0 と同じ
-◇分岐: 【1】 [ CSelf10[アイテム所持] が 0 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
●ラベル地点「チップ変更」 <<<<<<<<<<<<<<<<<<<<<<<<★
■マップチップ通行設定: チップ4 = ()
■マップチップ通行設定: チップ5 = ()
■マップチップ通行設定: チップ6 = ()


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

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

■イベントの挿入[名]: ["ミズグモのお守りの処理"] <コモンEv 215>



▼マップごとにタイルセットIDを登録

複数のタイルセットを使用している場合、
水のタイルIDが異なっていたり、水のタイルが無かったりします。

そこでマップごとにタイルセット番号を登録し、
タイルセットごとに歩けるようにするタイルIDを変えるように設定します。

システムDB[0:マップ設定]項目[タイルセット]を作成してください。



作成した項目[タイルセット]には、マップごとにタイルセット番号を設定してください。



▼左側のタイルセット番号を設定




コモンイベントは以下のように設定します。

なお、タイルセット[3:ワールドマップ]では使用できないように設定します。

▼アイテムを使用
【イベントコード表示】【コモン出力ファイル】

■コモンイベント[215:ミズグモのお守りの処理]

起動条件:呼び出しのみ

■変数操作+: CSelf10[マップID] = 現在のマップID
■DB読込(システム): CSelf11[タイルセット番号] =
         システムDB[ マップ設定 : CSelf10[マップID] : タイルセット ] (0 : - : 8)
■条件分岐(変数): 【1】 CSelf11[タイルセット番号] が 0 と同じ
-◇分岐: 【1】 [ CSelf11[タイルセット番号] が 0 と同じ ]の場合↓
|■マップチップ通行設定: チップ4 = ()
|■マップチップ通行設定: チップ5 = ()
|■マップチップ通行設定: チップ6 = ()
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf11[タイルセット番号] が 1 と同じ
-◇分岐: 【1】 [ CSelf11[タイルセット番号] が 1 と同じ ]の場合↓
|■マップチップ通行設定: チップ9 = ()
|■マップチップ通行設定: チップ10 = ()
|■マップチップ通行設定: チップ11 = ()
|■マップチップ通行設定: チップ12 = ()
|■マップチップ通行設定: チップ13 = ()
|■マップチップ通行設定: チップ14 = ()
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf11[タイルセット番号] が 2 と同じ
-◇分岐: 【1】 [ CSelf11[タイルセット番号] が 2 と同じ ]の場合↓
|■マップチップ通行設定: チップ4 = ()
|■マップチップ通行設定: チップ5 = ()
|■マップチップ通行設定: チップ6 = ()
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf11[タイルセット番号] が 3 と同じ
-◇分岐: 【1】 [ CSelf11[タイルセット番号] が 3 と同じ ]の場合↓
|■文章:ここでは使用できない。
|■イベントの挿入: コモン0:[ ○アイテム増減 ] / 24:ミズグモのお守り / 1 / 0:なし
|■
◇分岐終了◇

▼アイテムを所持
【イベントコード表示】【コモン出力ファイル】

■コモンイベント[ミズグモのお守りの処理]

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

■変数操作+: CSelf0[所持確認] = 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■変数操作: CSelf0[所持確認] -= 500000 + 0
■変数操作+: CSelf0[所持確認] -= このコモンイベントID(コモンでなければ-1)
■条件分岐(変数): 【1】 CSelf0[所持確認] が 0 と同じ
-◇分岐: 【1】 [ CSelf0[所持確認] が 0 と同じ ]の場合↓
|▼ コモン[050:X[共]アイテム増減]から呼び出して実行した時
|■イベントの挿入[名]: CSelf10[アイテム所持] =
            ["▲アイテム所持数取得"] <コモンEv 17> / 24:ミズグモのお守り

|■条件分岐(変数): 【1】 CSelf10[アイテム所持] が 1 以上
|-◇分岐: 【1】 [ CSelf10[アイテム所持] が 1 以上 ]の場合↓
||●ラベル「チップ変更」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|▼ 元に戻す
|■条件分岐(変数): 【1】 CSelf13[タイルセット番号] が 0 と同じ
|-◇分岐: 【1】 [ CSelf13[タイルセット番号] が 0 と同じ ]の場合↓
||■マップチップ通行設定: チップ4 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ5 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ6 = (↓禁 ←禁 →禁 ↑禁 )
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf13[タイルセット番号] が 1 と同じ
|-◇分岐: 【1】 [ CSelf13[タイルセット番号] が 1 と同じ ]の場合↓
||■マップチップ通行設定: チップ9 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ10 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ11 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ12 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ13 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ14 = (↓禁 ←禁 →禁 ↑禁 )
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf13[タイルセット番号] が 2 と同じ
|-◇分岐: 【1】 [ CSelf13[タイルセット番号] が 2 と同じ ]の場合↓
||■マップチップ通行設定: チップ4 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ5 = (↓禁 ←禁 →禁 ↑禁 )
||■マップチップ通行設定: チップ6 = (↓禁 ←禁 →禁 ↑禁 )
||■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇
■変数操作+: CSelf11[現在のマップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf11[現在のマップID] が CSelf12[処理したマップID] と同じ
-◇分岐: 【1】 [ CSelf11[現在のマップID] が CSelf12[処理したマップID] と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■ウェイト:1 フレーム
■変数操作+: CSelf12[処理したマップID] = 現在のマップID
■イベントの挿入[名]: CSelf10[アイテム所持] =
            ["▲アイテム所持数取得"] <コモンEv 17> / 24:ミズグモのお守り

■条件分岐(変数): 【1】 CSelf10[アイテム所持] が 0 と同じ
-◇分岐: 【1】 [ CSelf10[アイテム所持] が 0 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
●ラベル地点「チップ変更」 <<<<<<<<<<<<<<<<<<<<<<<<★
■DB読込(システム): CSelf13[タイルセット番号] =
         システムDB[ マップ設定 : CSelf11[現在のマップID] : タイルセット ] (0 : - : 8)
■条件分岐(変数): 【1】 CSelf13[タイルセット番号] が 0 と同じ
-◇分岐: 【1】 [ CSelf13[タイルセット番号] が 0 と同じ ]の場合↓
|■マップチップ通行設定: チップ4 = ()
|■マップチップ通行設定: チップ5 = ()
|■マップチップ通行設定: チップ6 = ()
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf13[タイルセット番号] が 1 と同じ
-◇分岐: 【1】 [ CSelf13[タイルセット番号] が 1 と同じ ]の場合↓
|■マップチップ通行設定: チップ9 = ()
|■マップチップ通行設定: チップ10 = ()
|■マップチップ通行設定: チップ11 = ()
|■マップチップ通行設定: チップ12 = ()
|■マップチップ通行設定: チップ13 = ()
|■マップチップ通行設定: チップ14 = ()
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf13[タイルセット番号] が 2 と同じ
-◇分岐: 【1】 [ CSelf13[タイルセット番号] が 2 と同じ ]の場合↓
|■マップチップ通行設定: チップ4 = ()
|■マップチップ通行設定: チップ5 = ()
|■マップチップ通行設定: チップ6 = ()
|■
◇分岐終了◇



水面が歩けるようになると、滝のチップの所に主人公が移動すると、不自然な重なり方になります。



滝のチップに関しては、通行不可にした方が良いでしょう。





主人公が水面上を歩けるようにすると、マップイベントも歩けるようになります。



もしも水面上を主人公は歩けて、マップイベントは歩けないようにする場合は、
水のマスに近づけないように移動するマップイベントの移動設定を調整するか、
水ぎわのマスにマップイベント(初期状態)を設定して、
マップイベントが水のマスに入らないようにするなど、何らかの対策を行う必要があります。

▼マップイベントで移動を制限


▼マップイベントがあってこれ以上先へ進めない



▲トップへ戻る▲


  
「マップチップの上書き」
■【使用例】水のチップを別のチップに置き換える

水のチップを別にチップに置き換えます。

置き換え前 置き換え後



今回は「レイヤー2」にあるチップID[4]チップID[1]に置き換えます。





マップ内の全マスを調べる処理なので、以下のコモンイベントを呼び出すだけで、
現在いるマップ内の全ての水のチップが置き換わります。

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

■コモンイベント[水チップを置き換え]

起動条件:呼び出しのみ

■変数操作+: CSelf10[横マス数] = マップサイズ[横]
■変数操作+: CSelf11[縦マス数] = マップサイズ[縦]
■変数操作: CSelf12[X座標]〜CSelf13[Y座標] = 0 + 0
■回数付きループ [ CSelf11[縦マス数] ]回
|■回数付きループ [ CSelf10[横マス数] ]回
||■変数操作+: CSelf14[タイルID] = X:CSelf12[X座標] Y:CSelf13[Y座標]の
        レイヤー2のチップ番号(0:透明,1-15:オート,16-:etc)
||■条件分岐(変数): 【1】 CSelf14[タイルID] が 4 と同じ
||-◇分岐: 【1】 [ CSelf14[タイルID] が 4 と同じ ]の場合↓
|||■マップチップ上書き:[ レイヤー 2 / X CSelf12[X座標] / Y CSelf13[Y座標] ]から[ 横1 / 縦1 ] をチップ[ 1 ]で上書き
|||■
||◇分岐終了◇
||■変数操作: CSelf12[X座標] += 1 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf12[X座標] = 0 + 0
|■変数操作: CSelf13[Y座標] += 1 + 0
|■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 450000 以上
|-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 450000 以上 ]の場合↓
||■ウェイト:1 フレーム
||■
|◇分岐終了◇
|■
◇ループここまで◇◇



▼元に戻す

元に戻す方法は主に3つあります。

◆場所移動

別のマップへ移動して戻ってくる方法です。
チップの置き換えは一時的なものなので、別のマップへ移動して戻ってくると、元の状態に戻ります。

場所移動を使う方法では他に、水があるマップと水が無いマップの2つを用意して、
場所移動で行き来して表示を切り替える方法もあります。
この場合は上記の【マップチップ上書き】の処理は要らなくなります。

別のマップへ場所移動すると、マップイベントの位置が初期位置に戻る問題があります。
◆チップID[1]からチップID[4]へ置き戻す

「レイヤー2」に設定されているチップID[1]チップID[4]に戻す処理です。

最初から「レイヤー2」にチップID[1]が設定されている場合は、
水のチップの置き換えではないチップID[1]の部分も変わってしまうので、この方法は使えません。

サンプルゲームではチップID[1]が使われていますが、このチップID[1]は「レイヤー1」に設定されているので、
水のチップへ戻す時に最初から設定されていたチップID[1]のマスが水のチップに置き換わる事はありません。



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

■コモンイベント[水チップに戻す]

起動条件:呼び出しのみ

■変数操作+: CSelf10[横マス数] = マップサイズ[横]
■変数操作+: CSelf11[縦マス数] = マップサイズ[縦]
■変数操作: CSelf12[X座標]〜CSelf13[Y座標] = 0 + 0
■回数付きループ [ CSelf11[縦マス数] ]回
|■回数付きループ [ CSelf10[横マス数] ]回
||■変数操作+: CSelf14[タイルID] = X:CSelf12[X座標] Y:CSelf13[Y座標]の
        レイヤー2のチップ番号(0:透明,1-15:オート,16-:etc)
||■条件分岐(変数): 【1】 CSelf14[タイルID] が 1 と同じ
||-◇分岐: 【1】 [ CSelf14[タイルID] が 1 と同じ ]の場合↓
|||■マップチップ上書き:[ レイヤー 2 / X CSelf12[X座標] / Y CSelf13[Y座標]]から[横1 / 縦1]をチップ[ 4 ]で上書き
|||■
||◇分岐終了◇
||■変数操作: CSelf12[X座標] += 1 + 0
||■
|◇ループここまで◇◇
|■変数操作: CSelf12[X座標] = 0 + 0
|■変数操作: CSelf13[Y座標] += 1 + 0
|■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 450000 以上
|-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 450000 以上 ]の場合↓
||■ウェイト:1 フレーム
||■
|◇分岐終了◇
|■
◇ループここまで◇◇
◆変更した座標を保存する

水のチップを置き換えた座標を文字列に保存し、その文字列の情報を基に水のチップを置き戻します。

コモンイベントは並列実行で処理し、別のマップへ移動した時には文字列を初期化します。

コモンイベントを呼び出す事でチップの置き換え、置き戻しが実行されます。

文字列には「X座標×1000+Y座標」の値が1行ごとに保存されます。
例えば「X=12、Y=36」の場合は「12036<改行>」が設定されます。

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

■コモンイベント[水チップを置き換え&戻し]

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

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 置換0 戻す1 0  

■変数操作+: CSelf20[呼び出し確認] = 処理中の自動/接触/決定キーEv番号[コモンなら+500000]
■変数操作: CSelf20[呼び出し確認] -= 500000 + 0
■変数操作+: CSelf20[呼び出し確認] -= このコモンイベントID(コモンでなければ-1)
■条件分岐(変数): 【1】 CSelf20[呼び出し確認] が 0 以外
-◇分岐: 【1】 [ CSelf20[呼び出し確認] が 0 以外 ]の場合↓
|▼ 並列実行
|■変数操作+: CSelf21[現在のマップID] = 現在のマップID
|■条件分岐(変数): 【1】 CSelf21[現在のマップID] が CSelf22[前回のマップID] 以外
|-◇分岐: 【1】 [ CSelf21[現在のマップID] が CSelf22[前回のマップID] 以外 ]の場合↓
||■変数操作+: CSelf22[前回のマップID] = 現在のマップID
||■文字列操作:CSelf5[XY座標] = ""
||■
|◇分岐終了◇
|■イベント処理中断
|■
◇分岐終了◇
▼ 呼び出して実行
■条件分岐(変数): 【1】 CSelf0[置換0 戻す1] が 0 と同じ
         【2】 CSelf0[置換0 戻す1] が 1 と同じ
-◇分岐: 【1】 [ CSelf0[置換0 戻す1] が 0 と同じ ]の場合↓
|▼ チップID[4](水) → チップID[1]
|■変数操作+: CSelf10[横マス数] = マップサイズ[横]
|■変数操作+: CSelf11[縦マス数] = マップサイズ[縦]
|■変数操作: CSelf12[X座標]〜CSelf14[XY座標] = 0 + 0
|■回数付きループ [ CSelf11[縦マス数] ]回
||■回数付きループ [ CSelf10[横マス数] ]回
|||■変数操作+: CSelf15[タイルID] = X:CSelf12[X座標] Y:CSelf13[Y座標]の
        レイヤー2のチップ番号(0:透明,1-15:オート,16-:etc)
|||■条件分岐(変数): 【1】 CSelf15[タイルID] が 4 と同じ
|||-◇分岐: 【1】 [ CSelf15[タイルID] が 4 と同じ ]の場合↓
||||■マップチップ上書き:[レイヤー 2 / X CSelf12[X座標] / Y CSelf13[Y座標]]から[横1 / 縦1]をチップ[ 1 ]で上書き
||||■文字列操作:CSelf5[XY座標] += "\cself[14]\n"
||||■
|||◇分岐終了◇
|||■変数操作: CSelf12[X座標] += 1 + 0
|||■変数操作: CSelf14[XY座標] += 1000 + 0
|||■
||◇ループここまで◇◇
||■変数操作: CSelf12[X座標] = 0 + 0
||■変数操作: CSelf13[Y座標]〜CSelf14[XY座標] += 1 + 0
||■変数操作: CSelf14[XY座標] %= 1000 + 0
||■条件分岐(変数): 【1】 Sys108:[読]現フレームのコマンド処理数 が 450000 以上
||-◇分岐: 【1】 [ Sys108:[読]現フレームのコマンド処理数 が 450000 以上 ]の場合↓
|||■ウェイト:1 フレーム
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
-◇分岐: 【2】 [ CSelf0[置換0 戻す1] が 1 と同じ ]の場合↓
|▼ チップID[1] → チップID[4](水)
|■ループ開始
||■条件分岐(文字): 【1】 CSelf5[XY座標]が "" と同じ
||-◇分岐: 【1】 [ CSelf5[XY座標] "" と同じ ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■文字列操作:CSelf6[1行切り出し] =<上1行切出> CSelf5[XY座標]
||■変数操作: CSelf12[X座標] = CSelf6[1行切り出し] / 1000
||■変数操作: CSelf13[Y座標] = CSelf6[1行切り出し] % 1000
||■マップチップ上書き:[ レイヤー 2 / X CSelf12[X座標] / Y CSelf13[Y座標]]から[横1 / 縦1]をチップ[ 4 ]で上書き
||■
|◇ループここまで◇◇
|■
◇分岐終了◇

動作確認をする場合は、以下のマップイベントを設定して実行してみると良いでしょう。

▼水のチップを置き換えて、1秒後に元に戻す
【イベントコード表示】

■マップイベント

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

■イベントの挿入[名]: ["水チップを置き換え&戻し"] <コモンEv 215> / 0
■ウェイト:60 フレーム
■イベントの挿入[名]: ["水チップを置き換え&戻し"] <コモンEv 215> / 1


▲トップへ戻る▲


  
「マップチップの上書き」
■【使用例】サブキーで橋を架ける

水面に向かってサブキーを押すと、1マス幅の橋が5マス先まで架かるように設定します。

縦方向 横方向



橋を設置する仕様は以下のとおりです。

●サブキー(Shift)を押した時に、主人公の目の前に水のチップがある時には橋を設置する。
●レイヤー2のタグIDが「1」の時に「水のチップがある」と判定する。
●橋は水のチップが続く5マス先まで設置する。マップのループ設定にも対応。
●橋のチップはレイヤー3に設置する。
 レイヤー3に何らかのチップがある場合は、そのチップの手前まで設置する。

●橋板の1つ下のマスも水面である場合は、橋脚を設置する。
●橋を設置した状態でさらにサブキーを押した場合は、前に設置した橋は撤去する。
 なお、別のマップへ移動すると自動的に橋は消去する。



使用するチップとチップIDは以下のとおりです。

水のチップ 橋のチップ



タイルセットの設定画面を開き、「タグ番号設定」をクリックし、水のチップのタグ番号を「01」にしてください。





橋を設置したマスの座標は、セルフ変数[5:橋の設定座標]に保存します。

座標の保存は「X座標×1000+Y座標」で保存します。

例えば…

のように、サンプルゲームのサンプルマップAの「X座標=11」「Y座標=13」「左向き」で、
サブキーを押した時のセルフ変数[5:橋の設定座標]の文字列は…
10013
10014
9013
9014
8013
8014
7013
7014
6013
6014
になります。



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

■コモンイベント[サブキーで橋を架ける]

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

■変数操作+: CSelf10[現在のマップID] = 現在のマップID
■条件分岐(変数): 【1】 CSelf10[現在のマップID] が CSelf11[処理したマップID] 以外
-◇分岐: 【1】 [ CSelf10[現在のマップID] が CSelf11[処理したマップID] 以外 ]の場合↓
|■変数操作+: CSelf11[処理したマップID] = 現在のマップID
|■文字列操作:CSelf5[橋の設定座標] = ""
|■
◇分岐終了◇
■キー入力:CSelf12[サブキー] サブキー(12)
■条件分岐(変数): 【1】 CSelf12[サブキー] が 0 と同じ
         【2】 CSelf13[入力可能] が 0 と同じ
-◇分岐: 【1】 [ CSelf12[サブキー] が 0 と同じ ]の場合↓
|■変数操作: CSelf13[入力可能] = 1 + 0
|■イベント処理中断
|■
-◇分岐: 【2】 [ CSelf13[入力可能] が 0 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf13[入力可能] = 0 + 0
■変数操作: CSelf20[向き] = 主人公の方向 % 2
■条件分岐(変数): 【1】 Sys13:イベント実行中?(1=ON) が 1 と同じ
         【2】 Sys35:主人公移動中?(1=YES) マスの間にいるかどう が 1 と同じ
         【3】 CSelf20[向き] が 1 と同じ
-◇分岐: 【1】 [ Sys13:イベント実行中?(1=ON) が 1 と同じ ]の場合↓
|■イベント処理中断
|■
-◇分岐: 【2】 [ Sys35:主人公移動中?(1=YES) マスの間にいるかどう が 1 と同じ ]の場合↓
|■イベント処理中断
|■
-◇分岐: 【3】 [ CSelf20[向き] が 1 と同じ ]の場合↓
|▼ 斜めを向いている
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■座標の初期化
■変数操作: CSelf20[向き] = 主人公の方向 + 0
■変数操作: CSelf21[X座標] = 主人公のX座標(マップ) + 0
■変数操作: CSelf22[Y座標] = 主人公のY座標(マップ) + 0
■変数操作: CSelf23[Y座標+1] = 主人公のY座標(マップ) + 1
■条件分岐(変数): 【1】 CSelf20[向き] が 4 と同じ
         【2】 CSelf20[向き] が 6 と同じ
         【3】 CSelf20[向き] が 8 と同じ
-◇分岐: 【1】 [ CSelf20[向き] が 4 と同じ ]の場合↓
|■変数操作: CSelf24[X±] = -1 + 0
|■変数操作: CSelf25[Y±] = 0 + 0
|■
-◇分岐: 【2】 [ CSelf20[向き] が 6 と同じ ]の場合↓
|■変数操作: CSelf24[X±] = 1 + 0
|■変数操作: CSelf25[Y±] = 0 + 0
|■
-◇分岐: 【3】 [ CSelf20[向き] が 8 と同じ ]の場合↓
|■変数操作: CSelf24[X±] = 0 + 0
|■変数操作: CSelf25[Y±] = -1 + 0
|■
-◇上記以外
|■変数操作: CSelf24[X±] = 0 + 0
|■変数操作: CSelf25[Y±] = 1 + 0
|■
◇分岐終了◇
▼ ■■■■■■■■■■橋のチップIDを設定
■変数操作: CSelf20[向き] %= 8 + 0
■条件分岐(変数): 【1】 CSelf20[向き] が 4 以上
-◇分岐: 【1】 [ CSelf20[向き] が 4 以上 ]の場合↓
|■変数操作: CSelf14[チップID:橋板] = 240 + 0
|■変数操作: CSelf15[チップID:橋脚] = 248 + 0
|■
-◇上記以外
|■変数操作: CSelf14[チップID:橋板] = 241 + 0
|■変数操作: CSelf15[チップID:橋脚] = 249 + 0
|■
◇分岐終了◇
▼ ■■■■■■■■■■マップループ確認
■DB読込(システム): CSelf16[ループ確認] =
         システムDB[ マップ設定 : CSelf10[現在のマップID] : ループ:1横2縦3両方 ] (0 : - : 3)
■変数操作: CSelf17[ループ横マス数]〜CSelf18[ルーぷ縦マス数] = 0 + 0
■条件分岐(変数): 【1】 CSelf16[ループ確認] が 1 と同じ
         【2】 CSelf16[ループ確認] が 2 と同じ
         【3】 CSelf16[ループ確認] が 3 と同じ
-◇分岐: 【1】 [ CSelf16[ループ確認] が 1 と同じ ]の場合↓
|■変数操作+: CSelf17[ループ横マス数] = マップサイズ[横]
|■
-◇分岐: 【2】 [ CSelf16[ループ確認] が 2 と同じ ]の場合↓
|■変数操作+: CSelf18[ルーぷ縦マス数] = マップサイズ[縦]
|■
-◇分岐: 【3】 [ CSelf16[ループ確認] が 3 と同じ ]の場合↓
|■変数操作+: CSelf17[ループ横マス数] = マップサイズ[横]
|■変数操作+: CSelf18[ルーぷ縦マス数] = マップサイズ[縦]
|■
◇分岐終了◇
▼ ■■■■■■■■■■足元のチップが水の場合は処理中断
■変数操作+: CSelf30[タグID] = X:CSelf21[X座標] Y:CSelf22[Y座標]のレイヤー2のタグ番号
■条件分岐(変数): 【1】 CSelf30[タグID] が 1 と同じ
-◇分岐: 【1】 [ CSelf30[タグID] が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf26[0.5マスX座標] = 主人公のX座標(精密) + 1
■変数操作: CSelf27[0.5マスY座標] = 主人公のY座標(精密) + 0
■変数操作+: CSelf30[タグID] =X:CSelf26[0.5マスX座標] Y:CSelf27[0.5マスY座標]のレイヤー2のタグ番号
■条件分岐(変数): 【1】 CSelf30[タグID] が 1 と同じ
-◇分岐: 【1】 [ CSelf30[タグID] が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
■変数操作: CSelf26[0.5マスX座標] = 主人公のX座標(精密) + 0
■変数操作: CSelf27[0.5マスY座標] = 主人公のY座標(精密) + 1
■変数操作+: CSelf30[タグID] =X:CSelf26[0.5マスX座標] Y:CSelf27[0.5マスY座標]のレイヤー2のタグ番号
■条件分岐(変数): 【1】 CSelf30[タグID] が 1 と同じ
-◇分岐: 【1】 [ CSelf30[タグID] が 1 と同じ ]の場合↓
|■イベント処理中断
|■
◇分岐終了◇
▼ ■■■■■■■■■■橋を撤去
■ループ開始
|■条件分岐(文字): 【1】 CSelf5[橋の設定座標]が "" と同じ
|-◇分岐: 【1】 [ CSelf5[橋の設定座標] "" と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■文字列操作:CSelf6[1行切り出し] =<上1行切出> CSelf5[橋の設定座標]
|■変数操作: CSelf32[出力X座標] = CSelf6[1行切り出し] / 1000
|■変数操作: CSelf33[出力Y座標] = CSelf6[1行切り出し] % 1000
|■マップチップ上書き: [ レイヤー 3 / X CSelf32[出力X座標] / Y CSelf33[出力Y座標] ] から
          [ 横1 / 縦1 ] をチップ[ 0 ]で上書き
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■橋の設置
■回数付きループ [ 5 ]回
|■変数操作: CSelf21[X座標] += CSelf24[X±] + 0
|■変数操作: CSelf22[Y座標]〜CSelf23[Y座標+1] += CSelf25[Y±] + 0
|■条件分岐(変数): 【1】 CSelf17[ループ横マス数] が 1 以上
|-◇分岐: 【1】 [ CSelf17[ループ横マス数] が 1 以上 ]の場合↓
||■変数操作: CSelf21[X座標] += CSelf17[ループ横マス数] + 0
||■変数操作: CSelf21[X座標] %= CSelf17[ループ横マス数] + 0
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf18[ルーぷ縦マス数] が 1 以上
|-◇分岐: 【1】 [ CSelf18[ルーぷ縦マス数] が 1 以上 ]の場合↓
||■変数操作: CSelf22[Y座標]〜CSelf23[Y座標+1] += CSelf18[ループ縦マス数] + 0
||■変数操作: CSelf22[Y座標]〜CSelf23[Y座標+1] %= CSelf18[ループ縦マス数] + 0
||■
|◇分岐終了◇
|■変数操作+: CSelf30[タグID] = X:CSelf21[X座標] Y:CSelf22[Y座標]のレイヤー2のタグ番号
|■変数操作+: CSelf31[チップID] = X:CSelf21[X座標] Y:CSelf22[Y座標]の
       レイヤー3のチップ番号(0:透明,1-15:オート,16-:etc)
|■条件分岐(変数): 【1】 CSelf30[タグID] が 1 以外
          【2】 CSelf31[チップID] が CSelf15[チップID:橋脚] と同じ
          【3】 CSelf31[チップID] が 1 以上
|-◇分岐: 【1】 [ CSelf30[タグID] が 1 以外 ]の場合↓
||■ループ中断
||■
|-◇分岐: 【2】 [ CSelf31[チップID] が CSelf15[チップID:橋脚] と同じ ]の場合↓
||■
|-◇分岐: 【3】 [ CSelf31[チップID] が 1 以上 ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■マップチップ上書き: [ レイヤー 3 / X CSelf21[X座標] / Y CSelf22[Y座標] ] から
          [ 横1 / 縦1 ] をチップ[ CSelf14[チップID:橋板] ]で上書き
|■変数操作: CSelf34[X×1000+Y]〜CSelf35[X×1000+Y+1] = CSelf21[X座標] * 1000
|■変数操作: CSelf34[X×1000+Y] += CSelf22[Y座標] + 0
|■文字列操作:CSelf5[橋の設定座標] += "\cself[34]\n"
|■変数操作+: CSelf30[タグID] = X:CSelf21[X座標] Y:CSelf23[Y座標+1]のレイヤー2のタグ番号
|■変数操作+: CSelf31[チップID] = X:CSelf21[X座標] Y:CSelf23[Y座標+1]の
       レイヤー3のチップ番号(0:透明,1-15:オート,16-:etc)
|■条件分岐(変数): 【1】 CSelf30[タグID] が 1 以外
          【2】 CSelf31[チップID] が 0 と同じ
|-◇分岐: 【1】 [ CSelf30[タグID] が 1 以外 ]の場合↓
||■
|-◇分岐: 【2】 [ CSelf31[チップID] が 0 と同じ ]の場合↓
||■マップチップ上書き: [ レイヤー 3 / X CSelf21[X座標] / Y CSelf23[Y座標+1] ] から
           [ 横1 / 縦1 ] をチップ[ CSelf15[チップID:橋脚] ]で上書き
||■変数操作: CSelf35[X×1000+Y+1] += CSelf23[Y座標+1] + 0
||■文字列操作:CSelf5[橋の設定座標] += "\cself[35]\n"
||■
|◇分岐終了◇
|■
◇ループここまで◇◇


▲トップへ戻る▲



◎関連ページ

◆「イベントコマンド」って何?
┣◆文章の表示
┃┗◆特殊文字
┣◆選択肢
┃┗◆【使用例】選択肢
┣◆変数操作
┃┗◆演算子について
┣◆DB操作
┣◆文字列操作
┃┗◆【使用例】文字列操作
┣◆変数操作+
┃┣◆「X座標・Y座標」と「画面X座標・画面Y座標」の違い
┃┣◆【使用例】変数操作+の「キャラ」と「位置」
┃┗◆【使用例】変数操作+の「ピクチャ」と「その他」
┣◆条件(変数)
┣◆条件(文字列)
┣◆キー入力
┃┗◆【使用例】キー入力
┣◆ピクチャ
┃┗◆表示形式(通常・加算・減算・乗算)について
┣◆エフェクト
┃┣◆「Zオーダー」について
┃┗◆【使用例】エフェクト
┣◆サウンド
┣◆セーブ・ロード操作
┣◆パーティ画像
┣◆チップ処理
┃┗◆【使用例】チップ処理
┣◆場所移動
┣◆イベント制御
┃┣◆キャラクターの動作指定
┃┗◆【使用例】イベント制御
┣◆コモンイベント
┣◆ダウンロード
┗◆プロ版機能
 ┗◆起動時の引数について

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