WOLF RPGエディター(ウディタ)/演出・システム【サイトトップへ戻る】
■周回プレイ:【タイトル画面へ戻る】でタイトル画面に戻って2周目を開始
(更新:2023/03/11)


周回プレイで2周目を始める時の処理方法(【タイトル画面へ戻る】を使った方法)を紹介します。


ショートカット
■2周目を始める2つの方法
■処理の流れなどを確認
■基本設定
■クリア時にセーブ画面でセーブする
■引き継ぐデータの設定
■セーブ画面にクリア回数を表示

周回プレイやクリア特典に関する基礎情報は別ページに記載しています。
【周回プレイやクリア特典の基礎を見る】


  
■2周目を始める2つの方法

1周目をクリアして2周目を始める方法には、
【場所移動】で2周目を始める方法【タイトル画面へ戻る】で2周目を始める方法があります。

【場所移動】を使う イベントコマンド【場所移動】を使って
タイトル画面やオープニングが始まるマップへ移動して2周目を開始します。
通常変数や予備変数、主人公などの可変DBを初期化する作業が必要です。
マップイベントのセルフ変数は、
主人公がそのマップへ移動しないと初期化する事ができないため、
起動条件の変数には、通常変数や予備変数を使うなどの工夫が必要です。
セーブする必要はありませんが、
1周目のクリア時にセーブしてから2周目を始める事もできます。
【タイトル画面へ戻る】を使う イベントコマンド【タイトル画面へ戻る】を使って
タイトル画面のマップへ移動して2周目を開始します。
通常変数やセルフ変数の値が全て「0」になり、
主人公のステータスなどの可変DBも全て初期状態になります。
そのため、1周目からの引き継ぎが少ない場合は便利な始め方です。
【タイトル画面へ戻る】を実行すると全ての変数の値が初期化するので、
例えば「通常変数[1:周回数]=1」のような設定を行っても、
【タイトル画面へ戻る】を実行すると「通常変数[1:周回数]=0」になってしまい、
1周目をクリアしてタイトル画面へ戻って来たのか、新規プレイなのか、
どちらなのかが判断できません。
そのため1周目が終わる時にセーブを実行してから【タイトル画面へ戻る】を実行し、
タイトル画面でセーブデータから読み込んで、新規プレイなのか2周目なのかを判断します。

また他の通常変数や可変DBなどを2周目に引き継ぐ場合も、
セーブしてタイトル画面に戻ったあとにセーブデータから読み込む作業が必要です。
データ引き継ぎのイベント設定がやや難しいので、初心者向けではありません。

当ページは「【タイトル画面へ戻る】を使う」の設定方法を紹介します。

【場所移動】を使う」の設定方法は別のページで紹介しています。
【【場所移動】を使った設定方法を見る】


▲トップへ戻る▲


  
■処理の流れなどを確認

1周目が終わったら【タイトル画面へ戻る】を実行してタイトル画面へ移動し、2周目を開始します。

処理の流れは以下の通りです。

1周目のエンディングが終了

通常変数[1:周回数]の値を1増やす

「System.sav」に通常変数[1:周回数]を保存

【タイトル画面へ戻る】を実行

「System.sav」の通常変数[1:周回数]を読み込んで2周目を始める

制作者によっては、1周目のクリア時にセーブ画面でセーブができるようにする場合もあります。



当ページの設定例では、クリア回数をカウントする変数に通常変数[1:周回数]を使っていますが、
他の予備変数や通常変数を使っても問題ありません。





【タイトル画面へ戻る】を実行すると全ての変数の値が初期化されるため、
【タイトル画面へ戻る】を実行する前にセーブファイル「System.sav」通常変数[1:周回数]を保存します。

そして【タイトル画面へ戻る】を実行してタイトル画面に戻ったあとに、
セーブファイル「System.sav」通常変数[1:周回数]の値を読み取り、「1以上」の場合は2周目を開始します。

セーブファイル「System.sav」通常変数[1:周回数]の値は「0」にしておきます。
「0」に戻さないと、新規プレイ(1周目)が出来なくなります。



2周目に引き継ぐ情報がある場合は、【タイトル画面へ戻る】を実行する前にセーブファイル「System.sav」へ保存しておきます。

例えば通常変数[5]の情報を引き継ぐ場合は、セーブファイル「System.sav」通常変数[5]を保存して、
2周目の開始時にセーブファイル「System.sav」から通常変数[5]を読み込みます。



クリアする前にセーブ画面でセーブができる場合は、【タイトル画面へ戻る】を実行してタイトル画面に戻ったあとに、
「コンティニュー」からクリアした時のセーブデータをロードすると、2周目が始まります。

こちらの処理でもロード時にセーブファイル「System.sav」を使用して、通常変数[1:周回数]セーブ番号[1〜20]を保存します。

そして【タイトル画面へ戻る】を実行してタイトル画面に戻ったあとに、
セーブファイル「System.sav」通常変数[1:周回数]の値を読み取り、「1以上」の場合は2周目を開始し、
保存したセーブ番号から2周目に引き継ぐ情報(周回数など)を読み込みます。

こちらも最後にセーブファイル「System.sav」通常変数[1:周回数]の値を「0」にしておきます。



セーブファイル「System.sav」通常変数[0]にはシステム変数[25:現在セーブデータ番号(0〜)]の情報を保存しているため、
セーブファイル「System.sav」通常変数[0]には何も保存しないでください。



2周目で主人公のステータスを変えた場合は、2周目を開始する前に全ての主人公を全回復した方が良いでしょう。

パーティにいない主人公を含め、全ての主人公を全回復する場合は、以下のように設定してください。

【イベントコード表示】

■DB読込(可変): このEvのセルフ変数0 = 可変DB[タイプ主人公ステータス(0)のデータ数]
■回数付きループ [ このEvのセルフ変数0 ]回
|■変数操作: このEvのセルフ変数0 -= 1 + 0
|■イベントの挿入: コモン4:[ ○回復・ダメージ処理 ] / 7:完全回復 / CSelf11[DBデータ数] / 0
|■
◇ループここまで◇◇


▲トップへ戻る▲


  
■基本設定

クリア時には以下のイベントを実行してください。

【イベントコード表示】

■変数操作: V1[周回数] += 1 + 0
■文字列操作:S0[[サンプル]一時文字列] = "Save/System.sav"
■セーブデータに書き込み:セーブデータ[S0[[サンプル]一時文字列]]の V1[周回数] = V1[周回数]
▼ 他に引き継ぐデータがある場合は「System.sav」に保存する
■タイトル画面へ戻る



タイトル画面のマップにあるマップイベントの31行目に以下のイベントを追加してください。

【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = "Save/System.sav"
■セーブデータの内容読込: このEvのセルフ変数0 = セーブデータ[S0[[サンプル]一時文字列]]の Sys24:[読]セーブデータ読込判定(1=成功 0=失敗)
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 と同じ ]の場合↓
|■セーブデータの内容読込: このEvのセルフ変数0 = セーブデータ[S0[[サンプル]一時文字列]]の V1[周回数]
|■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 以上
|-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 以上 ]の場合↓
||■変数操作: V1[周回数] = このEvのセルフ変数0 + 0
||■セーブデータに書き込み:セーブデータ[S0[[サンプル]一時文字列]]の V1[周回数] = 0
||▼ 他に引き継ぐデータがある場合は読み込む
||■
|◇分岐終了◇
|■
◇分岐終了◇





以上で設定完了です。

▼マップイベントを調べたらクリア時の処理を実行


▼タイトル画面に戻ったら[F9]を押して、周回数が増えているかどうかを確認



▲トップへ戻る▲


  
■クリア時にセーブ画面でセーブする

1周目のクリア時にセーブ画面が表示されて、セーブしたらタイトル画面へ戻り、
コンティニューからロードすると2周目が始まるようにします。



この処理を設定する場合は、セーブするための専用のマップを用意した方が良いでしょう。





作成したマップへ移動してくる時には、【ピクチャ表示】で画面を真っ暗にしてください。

【イベントコード表示】

■ピクチャ表示:1 [左上]ウィンドウ「<SQUARE>」サイズ[Sys116:[読]画面サイズX,Sys117:[読]画面サイズY] X:0 Y:0 /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
■場所移動:主人公 ▲マップID4[クリア時セーブ] X:0 Y:1 [トランジションなし]



作成したマップに設定するマップイベントは以下のように設定してください。

【イベントコード表示】

■マップイベント「クリア時セーブ」

グラフィック:なし
起動条件:自動実行
起動条件変数:なし

■条件分岐(変数): 【1】 このEvのセルフ変数0 が 0 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 0 と同じ ]の場合↓
|■変数操作: このEvのセルフ変数0 = 1 + 0
|▼ クリアした時に実行する処理
|■変数操作: V1[周回数] += 1 + 0
|■文章:周回プレイを実行する場合は、\nクリアデータをセーブしてください。
|■イベントの挿入[名]: ["○各種メニュー呼出"] <コモンEv 14> / 0:セーブ画面
|■タイトル画面へ戻る
|■
◇分岐終了◇
▼ タイトル画面のコンティニューからロードした時
■文字列操作:S0[[サンプル]一時文字列] = "Save/System.sav"
■セーブデータに書き込み:セーブデータ[S0[[サンプル]一時文字列]]の V1[周回数] = Sys25:現在セーブデータ番号(0〜)
■タイトル画面へ戻る



タイトル画面のマップイベントの0行目に以下のイベントを追加してください。

【イベントコード表示】

■文字列操作:S0[[サンプル]一時文字列] = "Save/System.sav"
■セーブデータの内容読込: このEvのセルフ変数0 = セーブデータ[S0[[サンプル]一時文字列]]の Sys24:[読]セーブデータ読込判定(1=成功 0=失敗)
■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 と同じ
-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 と同じ ]の場合↓
|■セーブデータの内容読込: このEvのセルフ変数0 = セーブデータ[S0[[サンプル]一時文字列]]の V1[周回プレイ]
|■条件分岐(変数): 【1】 このEvのセルフ変数0 が 1 以上
|-◇分岐: 【1】 [ このEvのセルフ変数0 が 1 以上 ]の場合↓
||■ピクチャ表示:1 [左上]ウィンドウ「<SQUARE>」サイズ[Sys116:[読]画面サイズX,Sys117:[読]画面サイズY] X:0 Y:0 / 0(0)フレーム /
        パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[0] G[0] B[0]
||■ウェイト:1 フレーム
||■セーブデータの内容読込: V1[周回プレイ] = セーブデータ[このEvのセルフ変数0]の V1[周回プレイ]
||▼ 他に引き継ぐデータがある場合は読み込む
||▼
||▼ 「System.sav」に保存したセーブ番号を初期化

||■セーブデータに書き込み:セーブデータ[S0[[サンプル]一時文字列]]の V1[周回プレイ] = 0
||▼ オープニングが始まる位置へ移動
||●ラベル「オープニング」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■
◇分岐終了◇



タイトル画面の選択肢で「スタート」を選択したあとの行に以下のイベントを追加してください。

【イベントコード表示】

●ラベル地点「オープニング」 <<<<<<<<<<<<<<<<<<<<<<<<★





タイトル画面のBGMは、システムDB[0:マップ設定]ではなく、マップイベントに設定してください。

▼追加したイベントのあとの行に追加


▼BGMは「無し」を設定



以上で設定完了です。


▲トップへ戻る▲


  
■引き継ぐデータの設定

引き継ぐデータがある場合は、セーブファイルに保存してください。

引き継ぐデータのショートカット
■予備変数を引き継ぐ
■主人公のステータスを引き継ぐ
■技能を引き継ぐ
■所持アイテムを引き継ぐ
■所持金を引き継ぐ

可変DBの引き継ぎに関しては、通常変数文字列変数などに保存してください。

▼予備変数を引き継ぐ

予備変数1[0〜4]を2周目に引き継ぐ場合の設定例です。



セーブファイル「System.sav」に保存する場合は、
コメント「他に引き継ぐデータがある場合は「System.sav」に保存する」の所に以下のイベントを追加してください。

※セーブ画面でセーブしている場合は、設定不要です。

【イベントコード表示】

■変数操作: このEvのセルフ変数1 = 2100000 + 0
■回数付きループ [ 5 ]回
|■変数操作: このEvのセルフ変数2 = V[このEvのセルフ変数1] + 0
|■セーブデータに書き込み:セーブデータ[S0[[サンプル]一時文字列]]の V[このEvのセルフ変数1] = このEvのセルフ変数2
|■変数操作: このEvのセルフ変数1 += 1 + 0
|■
◇ループここまで◇◇



マップ「タイトル」にあるマップイベントのコメント「他に引き継ぐデータがある場合は読み込む」の所に、
以下のイベントを追加してください。

▼セーブファイル「System.sav」で保存している場合
【イベントコード表示】

■変数操作: このEvのセルフ変数1 = 2100000 + 0
■回数付きループ [ 5 ]回
■セーブデータの内容読込: このEvのセルフ変数2 = セーブデータ[S0[[サンプル]一時文字列]]の V[このEvのセルフ変数1]
■変数操作: V[このEvのセルフ変数1] = このEvのセルフ変数2 + 0
■変数操作: このEvのセルフ変数1 += 1 + 0

◇ループここまで◇◇

▼セーブ画面で保存している場合
【イベントコード表示】

■変数操作: このEvのセルフ変数1 = 2100000 + 0
■回数付きループ [ 5 ]回
|■セーブデータの内容読込: このEvのセルフ変数2 = セーブデータ[このEvのセルフ変数0]の V[このEvのセルフ変数1]
|■変数操作: V[このEvのセルフ変数1] = このEvのセルフ変数2 + 0
|■変数操作: このEvのセルフ変数1 += 1 + 0
|■
◇ループここまで◇◇
▼主人公のステータスを引き継ぐ

可変DB[0:主人公ステータス]を2周目に引き継ぐ場合の設定例です。



可変DB[0:主人公ステータス]の全データをセーブファイル「System.sav」文字列変数[0]に保存、
または読み込む時に使うコモンイベントを設定してください。

▼セーブファイル「System.sav」にセーブ、セーブ画面でセーブの両方に対応
【イベントコード表示】【コモン出力ファイル】

■コモンイベント「周回プレイ 主人公出入力」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 保存0 読込1 0 [0]保存
[1]読込

■文字列操作:CSelf9[ファイルアドレス] = "Save/System.sav"
■条件分岐(変数): 【1】 CSelf0[保存0 読込1] が 0 と同じ 【2】 CSelf0[保存0 読込1] が 1 と同じ
-◇分岐: 【1】 [ CSelf0[保存0 読込1] が 0 と同じ ]の場合↓
|▼ 保存
|■DB読込(可変): CSelf10[データ総数] = 可変DB[タイプ0(主人公ステータス)のデータ数]
|■DB読込(可変): CSelf11[項目総数] = 可変DB[タイプ0(主人公ステータス)の内容数]
|■文字列操作:CSelf5[主人公データ] = "\cself[10]\n\cself[11]\n"
|▼ 全主人公データを文字列変数に出力
|■変数操作: CSelf12[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf12[データID] += 1 + 0
||■文字列操作:CSelf8[一時保存] = ""
||■変数操作: CSelf13[項目ID] = -1 + 0
||■回数付きループ [ CSelf11[項目総数] ]回
|||■変数操作: CSelf13[項目ID] += 1 + 0
|||■文字列操作:CSelf8[一時保存] += "\cdb[0:\cself[12]:\cself[13]]|"
|||■
||◇ループここまで◇◇
||■文字列操作:CSelf5[主人公データ] += CSelf8[一時保存]
||■
|◇ループここまで◇◇
|■セーブデータに書き込み:セーブデータ[CSelf9[ファイルアドレス]]の S0[[サンプル]一時文字列] = CSelf5[主人公データ]
|■
-◇分岐: 【2】 [ CSelf0[保存0 読込1] が 1 と同じ ]の場合↓
|▼ 読み込み
|■セーブデータの内容読込: CSelf5[主人公データ] = セーブデータ[CSelf9[ファイルアドレス]]の S0[[サンプル]一時文字列]
|■条件分岐(文字): 【1】 CSelf5[主人公データ]が "|" を含む
|-◇分岐: 【1】 [ CSelf5[主人公データ] "|" を含む ]の場合↓
||■
|-◇上記以外
||■デバッグ文:主人公データが出力できません。
||■イベント処理中断
||■
|◇分岐終了◇
|■文字列操作:CSelf8[一時文字列] = ""
|■セーブデータに書き込み:セーブデータ[CSelf9[ファイルアドレス]]の S0[[サンプル]一時文字列] = CSelf8[一時文字列]
|■変数操作: CSelf10[データ総数] = CSelf5[主人公データ] + 0
|■文字列操作:CSelf8[一時保存] =<上1行切出> CSelf5[主人公データ]
|■変数操作: CSelf11[項目総数] = CSelf5[主人公データ] + 0
|■文字列操作:CSelf8[一時保存] =<上1行切出> CSelf5[主人公データ]
|▼ 全主人公データを読み込み
|■変数操作: CSelf12[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf12[データID] += 1 + 0
||■変数操作: CSelf13[項目ID] = -1 + 0
||■回数付きループ [ CSelf11[項目総数] ]回
|||■変数操作: CSelf13[項目ID] += 1 + 0
|||■文字列操作:CSelf6[項目内容] = CSelf5[主人公データ]
|||■文字列操作:CSelf5[主人公データ] =<の指定文字以降を切り出し> "|"
|||■文字列操作:CSelf6[項目内容] =<から指定文字まで切り出し> "|"
|||■文字列操作:CSelf7[数値チェック] = CSelf6[項目内容]
|||■条件分岐(文字): 【1】 CSelf6[項目内容]が "" と同じ 【2】 CSelf7[数値チェック]が "-" が先頭にある
|||-◇分岐: 【1】 [ CSelf6[項目内容] "" と同じ ]の場合↓
||||■可変DB書込:DB[ 0 : CSelf12[データID] : CSelf13[項目ID] ] (主人公ステータス : - : -) =
||||■ループ開始へ戻る
||||■
|||-◇分岐: 【2】 [ CSelf7[数値チェック] "-" が先頭にある ]の場合↓
||||■文字列操作:CSelf8[一時保存] =<1文字切出> CSelf7[数値チェック]
||||■
|||◇分岐終了◇
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "0" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "1" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "2" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "3" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "4" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "5" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "6" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "7" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "8" → ""
|||■文字列操作:CSelf7[数値チェック] =<から文字列を置換> "9" → ""
|||■条件分岐(文字): 【1】 CSelf7[数値チェック]が "" と同じ
|||-◇分岐: 【1】 [ CSelf7[数値チェック] "" と同じ ]の場合↓
||||■変数操作: CSelf15[一時保存] = CSelf6[項目内容] + 0
||||■可変DB書込:DB[ 0 : CSelf12[データID] : CSelf13[項目ID] ] (主人公ステータス : - : -) = CSelf15[一時保存]
||||■
|||-◇上記以外
||||■可変DB書込:DB[ 0 : CSelf12[データID] : CSelf13[項目ID] ] (主人公ステータス : - : -) = CSelf6[項目内容]
||||■
|||◇分岐終了◇
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■
◇分岐終了◇



【タイトル画面へ戻る】を実行する前に、コモンイベント「周回プレイ 主人公出入力」を呼び出し、
主人公データをセーブファイルの文字列変数[0]に保存する設定を実行してください。

セーブファイル「System.sav」で保存している場合は、
コメント「引き継ぐデータがある場合は「System.sav」に保存する」の所に設定。

セーブ画面で保存している場合は、セーブするための専用のマップに設定したマップイベントにある、
コメント「タイトル画面のコンティニューからロードした時」の所に設定。

【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 主人公出入力"] <コモンEv 215> / 0:保存



マップ「タイトル」にあるマップイベントのコメント「他に引き継ぐデータがある場合は読み込む」の所に、
以下のイベントを追加してください。

【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 主人公出入力"] <コモンEv 215> / 1:読込
▼技能を引き継ぐ

可変DB[1:┣ 技能習得Lv]を2周目に引き継ぐ場合の設定例です。



可変DB[1:┣ 技能習得Lv]の技能は、習得レベルが満たされると自動的に使用できるようになります。

そのため、上記の▼主人公のステータスを引き継ぐを設定している場合は自動的に使えるようになるため、
この▼技能を引き継ぐの設定は必要ありません。

▼主人公のステータスを引き継ぐを設定していない場合やイベント処理で習得技能を増減して、
ゲーム開始時の可変DB[1:┣ 技能習得Lv]とは異なる場合は、この▼技能を引き継ぐの設定が必要です。



可変DB[1:┣ 技能習得Lv]の全データをセーブファイル「System.sav」文字列変数[1]に保存、
または読み込む時に使うコモンイベントを設定してください。

▼セーブファイル「System.sav」にセーブ、セーブ画面でセーブの両方に対応
【イベントコード表示】【コモン出力ファイル】

■コモンイベント「周回プレイ 技能出入力」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 保存0 読込1 0 [0]保存
[1]読込

■文字列操作:CSelf9[ファイルアドレス] = "Save/System.sav"
■条件分岐(変数): 【1】 CSelf0[保存0 読込1] が 0 と同じ 【2】 CSelf0[保存0 読込1] が 1 と同じ
-◇分岐: 【1】 [ CSelf0[保存0 読込1] が 0 と同じ ]の場合↓
|▼ 保存
|■DB読込(可変): CSelf10[データ総数] = 可変DB[タイプ1(┣ 技能習得Lv)のデータ数]
|■DB読込(可変): CSelf11[項目総数] = 可変DB[タイプ1(┣ 技能習得Lv)の内容数]
|■文字列操作:CSelf5[技能データ] = "\cself[10]\n\cself[11]\n"
|▼ 全主人公の習得技能データを文字列変数に出力
|■変数操作: CSelf12[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf12[データID] += 1 + 0
||■文字列操作:CSelf8[一時文字列] = ""
||■変数操作: CSelf13[項目ID] = -1 + 0
||■回数付きループ [ CSelf11[項目総数] ]回
|||■変数操作: CSelf13[項目ID] += 1 + 0
|||■文字列操作:CSelf8[一時文字列] += "\cdb[1:\cself[12]:\cself[13]]|"
|||■
||◇ループここまで◇◇
||■文字列操作:CSelf5[技能データ] += CSelf8[一時文字列]
||■
|◇ループここまで◇◇
|■セーブデータに書き込み:セーブデータ[CSelf9[ファイルアドレス]]の S1[] = CSelf5[技能データ]
|■
-◇分岐: 【2】 [ CSelf0[保存0 読込1] が 1 と同じ ]の場合↓
|▼ 読み込み
|■セーブデータの内容読込: CSelf5[技能データ] = セーブデータ[CSelf9[ファイルアドレス]]の S1[]
|■条件分岐(文字): 【1】 CSelf5[技能データ]が "|" を含む
|-◇分岐: 【1】 [ CSelf5[技能データ] "|" を含む ]の場合↓
||■
|-◇上記以外
||■デバッグ文:習得技能データが出力できません。
||■イベント処理中断
||■
|◇分岐終了◇
|■文字列操作:CSelf8[一時文字列] = ""
|■セーブデータに書き込み:セーブデータ[CSelf9[ファイルアドレス]]の S1[] = CSelf8[一時文字列]
|■変数操作: CSelf10[データ総数] = CSelf5[技能データ] + 0
|■文字列操作:CSelf8[一時文字列] =<上1行切出> CSelf5[技能データ]
|■変数操作: CSelf11[項目総数] = CSelf5[技能データ] + 0
|■文字列操作:CSelf8[一時文字列] =<上1行切出> CSelf5[技能データ]
|▼ 全主人公の習得技能データを読み込み
|■変数操作: CSelf12[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf12[データID] += 1 + 0
||■変数操作: CSelf13[項目ID] = -1 + 0
||■回数付きループ [ CSelf11[項目総数] ]回
|||■変数操作: CSelf13[項目ID] += 1 + 0
|||■文字列操作:CSelf6[項目内容] = CSelf5[技能データ]
|||■変数操作: CSelf15[一時数値] = CSelf5[技能データ] + 0
|||■可変DB書込:DB[ 1 : CSelf12[データID] : CSelf13[項目ID] ] (┣ 技能習得Lv : - : -) = CSelf15[一時数値]
|||■文字列操作:CSelf5[技能データ] =<の指定文字以降を切り出し> "|"
|||■
||◇ループここまで◇◇
||■
|◇ループここまで◇◇
|■
◇分岐終了◇



【タイトル画面へ戻る】を実行する前に、コモンイベント「周回プレイ 技能出入力」を呼び出し、
習得技能データをセーブファイルの文字列変数[1]に保存する設定を実行してください。

セーブファイル「System.sav」で保存している場合は、
コメント「引き継ぐデータがある場合は「System.sav」に保存する」の所に設定。

セーブ画面で保存している場合は、セーブするための専用のマップに設定したマップイベントにある、
コメント「タイトル画面のコンティニューからロードした時」の所に設定。

【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 技能出入力"] <コモンEv 216> / 0:保存



マップ「タイトル」にあるマップイベントのコメント「他に引き継ぐデータがある場合は読み込む」の所に、
以下のイベントを追加してください。

【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 技能出入力"] <コモンEv 216> / 1:読込
▼所持アイテムを引き継ぐ

所持しているアイテム・武器・防具を2周目に引き継ぐ場合の設定例です。



可変DB[7〜9]の所持数をセーブファイル「System.sav」文字列変数[2]に保存、
または読み込む時に使うコモンイベントを設定してください。

▼セーブファイル「System.sav」にセーブ、セーブ画面でセーブの両方に対応
【イベントコード表示】【コモン出力ファイル】

■コモンイベント「周回プレイ 所持数出入力」

起動条件:呼び出しのみ

入力の数 / 結果を返す
設定 名前 初期値 特殊指定
数値1 保存0 読込1〜2 0 [0]保存
[1]読込(代入)
[2]読込(加算)

■文字列操作:CSelf9[ファイルアドレス] = "Save/System.sav"
■条件分岐(変数): 【1】 CSelf0[保存0 読込1〜2] が 0 と同じ 【2】 CSelf0[保存0 読込1〜2] が 1 以上
-◇分岐: 【1】 [ CSelf0[保存0 読込1〜2] が 0 と同じ ]の場合↓
|▼ 保存
|■DB読込(可変): CSelf10[データ総数] = 可変DB[タイプ7(┣所持アイテム個数)のデータ数]
|■文字列操作:CSelf5[所持数データ] = "アイテム"
|■変数操作: CSelf11[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf11[データID] += 1 + 0
||■DB読込(可変): CSelf15[一時数値] = 可変DB[ 7 : CSelf11[データID] : 0 ] (┣所持アイテム個数 : - : 所持個数)
||■文字列操作:CSelf5[所持数データ] += "\n\cself[15]"
||■
|◇ループここまで◇◇
|■DB読込(可変): CSelf10[データ総数] = 可変DB[タイプ8(┣所持武器個数)のデータ数]
|■文字列操作:CSelf5[所持数データ] += "\n武器"
|■変数操作: CSelf11[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf11[データID] += 1 + 0
||■DB読込(可変): CSelf15[一時数値] = 可変DB[ 8 : CSelf11[データID] : 0 ] (┣所持武器個数 : - : 所持個数)
||■文字列操作:CSelf5[所持数データ] += "\n\cself[15]"
||■
|◇ループここまで◇◇
|■DB読込(可変): CSelf10[データ総数] = 可変DB[タイプ9(┗所持防具個数)のデータ数]
|■文字列操作:CSelf5[所持数データ] += "\n防具"
|■変数操作: CSelf11[データID] = -1 + 0
|■回数付きループ [ CSelf10[データ総数] ]回
||■変数操作: CSelf11[データID] += 1 + 0
||■DB読込(可変): CSelf15[一時数値] = 可変DB[ 9 : CSelf11[データID] : 0 ] (┗所持防具個数 : - : 所持個数)
||■文字列操作:CSelf5[所持数データ] += "\n\cself[15]"
||■
|◇ループここまで◇◇
|■文字列操作:CSelf5[所持数データ] += "\n終了"
|■セーブデータに書き込み:セーブデータ[CSelf9[ファイルアドレス]]の S2[] = CSelf5[所持数データ]
|■
-◇分岐: 【2】 [ CSelf0[保存0 読込1〜2] が 1 以上 ]の場合↓
|▼ 読み込み
|■セーブデータの内容読込: CSelf5[所持数データ] = セーブデータ[CSelf9[ファイルアドレス]]の S2[]
|■条件分岐(文字): 【1】 CSelf5[所持数データ]が "アイテム" が先頭にある
|-◇分岐: 【1】 [ CSelf5[所持数データ] "アイテム" が先頭にある ]の場合↓
||■
|-◇上記以外
||■デバッグ文:所持数データが出力できません。
||■イベント処理中断
||■
|◇分岐終了◇
|■文字列操作:CSelf8[一時文字列] = ""
|■セーブデータに書き込み:セーブデータ[CSelf9[ファイルアドレス]]の S2[] = CSelf8[一時文字列]
|■変数操作: CSelf11[データID] = -1 + 0
|■ループ開始
||■変数操作: CSelf11[データID] += 1 + 0
||■文字列操作:CSelf8[一時文字列] =<上1行切出> CSelf5[所持数データ]
||■条件分岐(文字): 【1】 CSelf5[所持数データ]が "武器" が先頭にある
||-◇分岐: 【1】 [ CSelf5[所持数データ] "武器" が先頭にある ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf15[一時数値] = CSelf5[所持数データ] + 0
||■条件分岐(変数): 【1】 CSelf0[保存0 読込1〜2] が 1 と同じ
||-◇分岐: 【1】 [ CSelf0[保存0 読込1〜2] が 1 と同じ ]の場合↓
|||■可変DB書込:DB[ 7 : CSelf11[データID] : 0 ] (┣所持アイテム個数 : - : 所持個数) = CSelf15[一時数値]
|||■
||-◇上記以外
|||■可変DB書込:DB[ 7 : CSelf11[データID] : 0 ] (┣所持アイテム個数 : - : 所持個数) += CSelf15[一時数値]
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■変数操作: CSelf11[データID] = -1 + 0
|■ループ開始
||■変数操作: CSelf11[データID] += 1 + 0
||■文字列操作:CSelf8[一時文字列] =<上1行切出> CSelf5[所持数データ]
||■条件分岐(文字): 【1】 CSelf5[所持数データ]が "防具" が先頭にある
||-◇分岐: 【1】 [ CSelf5[所持数データ] "防具" が先頭にある ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf15[一時数値] = CSelf5[所持数データ] + 0
||■条件分岐(変数): 【1】 CSelf0[保存0 読込1〜2] が 1 と同じ
||-◇分岐: 【1】 [ CSelf0[保存0 読込1〜2] が 1 と同じ ]の場合↓
|||■可変DB書込:DB[ 8 : CSelf11[データID] : 0 ] (┣所持武器個数 : - : 所持個数) = CSelf15[一時数値]
|||■
||-◇上記以外
|||■可変DB書込:DB[ 8 : CSelf11[データID] : 0 ] (┣所持武器個数 : - : 所持個数) += CSelf15[一時数値]
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■変数操作: CSelf11[データID] = -1 + 0
|■ループ開始
||■変数操作: CSelf11[データID] += 1 + 0
||■文字列操作:CSelf8[一時文字列] =<上1行切出> CSelf5[所持数データ]
||■条件分岐(文字): 【1】 CSelf5[所持数データ]が "終了" が先頭にある
||-◇分岐: 【1】 [ CSelf5[所持数データ] "終了" が先頭にある ]の場合↓
|||■ループ中断
|||■
||◇分岐終了◇
||■変数操作: CSelf15[一時数値] = CSelf5[所持数データ] + 0
||■条件分岐(変数): 【1】 CSelf0[保存0 読込1〜2] が 1 と同じ
||-◇分岐: 【1】 [ CSelf0[保存0 読込1〜2] が 1 と同じ ]の場合↓
|||■可変DB書込:DB[ 9 : CSelf11[データID] : 0 ] (┗所持防具個数 : - : 所持個数) = CSelf15[一時数値]
|||■
||-◇上記以外
|||■可変DB書込:DB[ 9 : CSelf11[データID] : 0 ] (┗所持防具個数 : - : 所持個数) += CSelf15[一時数値]
|||■
||◇分岐終了◇
||■
|◇ループここまで◇◇
|■
◇分岐終了◇



【タイトル画面へ戻る】を実行する前に、コモンイベント「周回プレイ 所持数出入力」を呼び出し、
所持数データをセーブファイルの文字列変数[2]に保存する設定を実行してください。

セーブファイル「System.sav」で保存している場合は、
コメント「引き継ぐデータがある場合は「System.sav」に保存する」の所に設定。

セーブ画面で保存している場合は、セーブするための専用のマップに設定したマップイベントにある、
コメント「タイトル画面のコンティニューからロードした時」の所に設定。

【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 所持数出入力"] <コモンEv 217> / 0:保存



マップ「タイトル」にあるマップイベントのコメント「他に引き継ぐデータがある場合は読み込む」の所に、
以下のイベントを追加してください。



なお、設定方法には「読込(代入)」と「読込(加算)」があります。

読込(代入)」の場合は、1周目のクリア時に持っていたアイテムの所持数がそのまま引き継がれます。

読込(加算)」の場合は、初期設定の所持数に加算する形でアイテムが引き継がれます。
例えば可変DB[7:┣所持アイテム個数]の「0:薬草」を「5」にしている場合で、
1周目のクリア時に薬草を「3」持っている場合は、2周目の開始時の薬草は「8」になります。

▼読込(代入)
【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 所持数出入力"] <コモンEv 217> / 1:読込(代入)

▼読込(加算)
【イベントコード表示】

■イベントの挿入[名]: ["周回プレイ 所持数出入力"] <コモンEv 217> / 1:読込(加算)



アイテムを引き継ぐ場合は、ゲームの進行に重要なアイテムを外しておく必要があります。

ウディタのサンプルゲームで言えば、アイテム「ダンジョンのカギ」や「WOLF RPGエディター」などです。

上記の所持数の引き継ぎが終わったあとに…
■イベントの挿入[名]: ["周回プレイ 所持数出入力"] <コモンEv 217> / 1:読込(代入)
■イベントの挿入[名]: ["○アイテム増減"] <コモンEv 0> / 19:ダンジョンのカギ / -99 / 0:なし
■イベントの挿入[名]: ["○アイテム増減"] <コモンEv 0> / 20:WOLF RPGエディター / -99 / 0:なし
と言った感じに、外す必要があるアイテムの所持数を「0」にしてください。
▼所持金を引き継ぐ

所持金を2周目に引き継ぐ場合の設定例です。



セーブファイル「System.sav」に保存する場合は、
コメント「他に引き継ぐデータがある場合は「System.sav」に保存する」の所に以下のイベントを追加してください。

なお、セーブファイル「System.sav」の場合は通常変数[2]に保存して引き継ぎます。

※セーブ画面でセーブしている場合は、設定不要です。

【イベントコード表示】

■セーブデータに書き込み:セーブデータ[S0[[サンプル]一時文字列]]の V2[] = 可変DB(6,0,0)[メイン設定 所持金 ]



マップ「タイトル」にあるマップイベントのコメント「他に引き継ぐデータがある場合は読み込む」の所に、
以下のイベントを追加してください。

▼セーブファイル「System.sav」で保存している場合
【イベントコード表示】

■セーブデータの内容読込: このEvのセルフ変数1 = セーブデータ[S0[[サンプル]一時文字列]]の V2[]
■可変DB書込:DB[ 6 : 0 : 0 ] (パーティー情報 : メイン設定 : 所持金) = このEvのセルフ変数1

▼セーブ画面で保存している場合
【イベントコード表示】

■セーブデータの内容読込: このEvのセルフ変数1 = セーブデータ[このEvのセルフ変数0]の 可変DB(6,0,0)[メイン設定 所持金 ]
■可変DB書込:DB[ 6 : 0 : 0 ] (パーティー情報 : メイン設定 : 所持金) = このEvのセルフ変数1


▲トップへ戻る▲


  
■セーブ画面にクリア回数を表示

セーブ画面にクリア回数が表示されるようにコモンイベント[094:X[移]セーブ・ロード画面描画]を改造します。





改造する場合はコモンイベント[094:X[移]セーブ・ロード画面描画]をコピーして、
コモンイベント[215]以降に貼り付けて複製品を作り、貼り付けた複製品を改造する事で、
改造前のコモンイベント[094:X[移]セーブ・ロード画面描画]を残す事ができます。



コモンイベント[X[移]セーブ・ロード画面描画]268行目にある…
■変数操作: CSelf10[一時変数A] = CSelf21[一時ピクチャ番号] + -1
の設定を…
■変数操作: CSelf10[一時変数A] = CSelf21[一時ピクチャ番号] + 0
に変えてください。



276行目に以下のイベントを追加してください。

【イベントコード表示】

■回数付きループ [ 1 ]回
|▼ クリア回数
|■セーブデータの内容読込: CSelf65[クリア回数] = セーブデータ[CSelf50[注目セーブ番号]]の V1[周回数]
|■条件分岐(変数): 【1】 CSelf65[クリア回数] が 1 以上
|-◇分岐: 【1】 [ CSelf65[クリア回数] が 1 以上 ]の場合↓
||■文字列操作:CSelf6[付与文字列] = "クリア:\cself[65]回"
||■変数操作: CSelf21[一時ピクチャ番号] = CSelf20[基本ピクチャ番号] + 66
||■変数操作: CSelf21[一時ピクチャ番号] += CSelf55[セーブ1セットあたり使用枚数] * CSelf43[処理中個数]
||■ピクチャ表示:CSelf21[一時ピクチャ番号] [左上]文字列[\f[\cself[18]]\c] X:CSelf41[一時項目表示X] Y:CSelf42[一時項目表示Y] / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
||■変数操作: CSelf10[一時変数A] = CSelf79[プレイタイム位置Y] + 0
||■変数操作: CSelf10[一時変数A] -= CSelf87[座標倍率Y[x10]] + 0
||■ピクチャエフェクト:CSelf21[一時ピクチャ番号] [描画座標シフト(最終値)] Xシフト CSelf76[データ名位置X] / Yシフト CSelf10[一時変数A] (0)フレーム
||■回数付きループ [ 1 ]回
|||▼ 表示エフェクト
|||■変数操作: CSelf51[一時項目表示X2] = CSelf41[一時項目表示X] + CSelf48[エフェクトシフト量X]
|||■変数操作: CSelf52[一時項目表示Y2] = CSelf42[一時項目表示Y] + 0
|||■ピクチャ移動:CSelf21[一時ピクチャ番号] X:CSelf51[一時項目表示X2] Y:CSelf52[一時項目表示Y2] / 0(0)フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■ピクチャ移動:CSelf21[一時ピクチャ番号] X:CSelf41[一時項目表示X] Y:CSelf42[一時項目表示Y] / 5(CSelf96[ディレイフレーム1])フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■ピクチャ移動:CSelf21[一時ピクチャ番号] X:CSelf41[一時項目表示X] Y:CSelf42[一時項目表示Y] / 5(CSelf97[ディレイフレーム2])フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■ピクチャ移動:CSelf21[一時ピクチャ番号] X:CSelf41[一時項目表示X] Y:CSelf42[一時項目表示Y] / 5(CSelf98[ディレイフレーム3])フレーム / パターン 1 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
|||■
||◇ループここまで◇◇
||■
|◇分岐終了◇
|■
◇ループここまで◇◇



クリア回数の表示色を変えたい時には、284行目【ピクチャ表示】のカラー設定を変えてください。

▼黄色のカラー設定にした時







以上で改造完了です。

▼改造後の設定画面



▲トップへ戻る▲



◎関連ページ

◆周回プレイやクリア特典の基礎
┣◆周回プレイ:【場所移動】でタイトル画面に戻って2周目を開始
┣◆周回プレイ:【タイトル画面へ戻る】でタイトル画面に戻って2周目を開始
┣◆サンプルゲームを周回プレイ化してみる
┗◆クリアしたらタイトル画面で「おまけ」が選択できるようにする

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