ウディタ解体記05

ウディタ解体記 学習紹介~learning~

ウディタ解体記

おさらい

まずは、これまでのおさらい。
ウディタ初期にあるコモンイベントで並列実行(常時)を起動条件とするものは2つある。

コモンイベント番号 名前 (コマンド行数)
048 X[共]基本システム自動初期化 (217行)
126 X[移]歩行時_並列キー処理 (126行)

[048-X[共]基本システム自動初期化]の、
0行~204行通して見てみると、

※「主人公ステータス」の「装備中の武器」が始まる項目番号をここで指定します。
1.可変データベースの「主人公ステータス」内の「装備中の武器」の開始番号をセット。すでに初期化が終わってたらここで停める
2.初期化が終わってるかどうかの確認。終わってる場合は以下の処理をキャンセル。画面サイズ補正値と基本フォントサイズを格納
3.Game.exeのバージョンの確認後、画面サイズの補正値と基本フォントサイズの格納をしている。
4.1~3が終わったら終了フラグに1を入れる。

その他のパラメータ初期化
5.主に可変データベースの「基本システム変数」の下記の各値を初期化および設定。
・敵/味方の最大数
・セーブ可能数
1ページのセーブ数/何ページまでかの値/セーブ可能かのフラグ
・コンフィグの設定
キー位置保存/戦闘時キー連打などのフラグ
・キーリピートフレーム数の設定
・決定、選択、キャンセルの各SE
・文字影をつけるかのフラグ
・選択肢のカーソル表示時に中央部分の処理の設定
・メッセージ速度
・仲間の車間距離
その後に仲間内の隙間の処理や重複の処理が呼ばれていた。

キャラクターの装備を、武器(コード20000~) と 防具(コード30000~) に変換する
6.主人公になりうるデータ数分の装備を検索し武器20000~か防具30000~に分類し設定する内容だった。
7.自然回復値を0に戻す設定。
8.各主人公になりえるキャラクターの装備のない状態でのステータスを一時DBに上書き<初期化>する。
9.装備補正の処理を一時DBに加える。
10.状態補正の処理を一時DBに加える。
※この時順序がおかしいと、補正の重複等が起こってしまう。
11.[X[移]パラメータ増減コモンEv70](685行)を呼び出し、22:HPのパラメータ増減の処理
12.[X[移]パラメータ増減コモンEv70](685行)を呼び出し、23:SPのパラメータ増減の処理

をしていることが分かった。

おさらいが終わったら今日の学習の始まりでェす。

「最新セーブデータの取得」

205行~のコマンドからみていきまSHOW!
コマンド32

205~207行コメント/最新セーブデータ番号をSystem.savから取得 (System.savの通常変数0番を最終セーブデータ番号として使用)
206行
文字列操作で”このコモンセルフ5:[Cself5])”に”Save/System.sav”を設定。
207行
一時保存コード”にセーブデータ[Cself5](1600005)のV0[[サンプルゲーム]コック出現](2000000)を渡す。
208行
変数操作で”Sys25:現在セーブデータ番号(0~)”に”一時保存コード”を渡す。

「黒から徐々にフェードイン」

コマンド33
211~213行コメント/黒から徐々にフェードイン
214行コメント/トランジションを実行するだけでなめらかに初期表示できる

216行
1フレームをウェイトを置く

んあ?もっとかかるのがあるかと思ってたら、最後なんてコメントとウェイトだけで終わってた。
時間配分ミスだなぁ、これは。

[X[共]基本システム自動初期化]コモンEv048 (217行)のまとめ

[X[共]基本システム自動初期化]コモンEv048は下記の流れになっていた。

1.可変データベースの「主人公ステータス」内の「装備中の武器」の開始番号をセット。
2.初期化が終わってるかどうかの確認。終わってる場合は以下の処理をキャンセル。

/*画面サイズ補正値と基本フォントサイズを格納*/
3.Game.exeのバージョンの確認後、画面サイズの補正値と基本フォントサイズの格納をしている。
4.1~3が終わったら終了フラグに1を入れる。

/*その他のパラメータ初期化*/
5.主に可変データベースの「基本システム変数」の下記の各値を初期化および設定。
・敵/味方の最大数
・セーブ可能数
1ページのセーブ数/何ページまでかの値/セーブ可能かのフラグ
・コンフィグの設定
キー位置保存/戦闘時キー連打などのフラグ
・キーリピートフレーム数の設定
・決定、選択、キャンセルの各SE
・文字影をつけるかのフラグ
・選択肢のカーソル表示時に中央部分の処理の設定
・メッセージ速度
・仲間の車間距離
その後に仲間内の隙間の処理や重複の処理が呼ばれていた。

/*キャラクターの装備を、武器(コード20000~)と防具(コード30000~)に変換する*/
6.主人公になりうるデータ数分の装備を検索し武器20000~か防具30000~に分類し設定する内容だった。
7.自然回復値を0に戻す設定。
8.各主人公になりえるキャラクターの装備のない状態でのステータスを一時DBに上書き<初期化>する。
9.装備補正の処理を一時DBに加える。
10.状態補正の処理を一時DBに加える。
※この時順序がおかしいと、補正の重複等が起こってしまう。
11.[X[移]パラメータ増減コモンEv70](685行)を呼び出し、22:HPのパラメータ増減の処理
12.[X[移]パラメータ増減コモンEv70](685行)を呼び出し、23:SPのパラメータ増減の処理

/*最新セーブデータの取得*/
13.文字列操作で”このコモンセルフ5:[Cself5])”に”Save/System.sav”を設定。
14.”一時保存コード”にセーブデータ[Cself5](1600005)のV0[[サンプルゲーム]コック出現](2000000)を渡す。
15.変数操作で”Sys25:現在セーブデータ番号(0~)”に”一時保存コード”を渡す。
/*黒から徐々にフェードイン*/
16.1フレームのウェイト

[X[移]歩行時_並列キー処理]コモンEv126 (126行)の解体

コマンド40
0~18行コメント/処理の内容などの説明文
主に下記の2点を行っている。
・メニュー表示用のキャンセルキー受付
・一歩あるいた時の処理を実行

細かくは、メニュー起動の際、{
「イベント中はメニューが起動しないようにする」
「マスとマスの間を移動中は、メニューの表示を待つ(一定時間が過ぎたら入力キャンセル)」
「メニューを開いたときは次の一歩を歩き出さないようにする」
}等の処理

コマンド41
19行 コメント/イベント実行中はキーが押されても無視
20~123行まで条件分岐内の処理。
条件分岐後
コマンド42
124行 コメント/直前のイベント実行中がオンなら10フレームはメニューを出さない
125行
CSelf16[直前イベント実行中?]に「Sys13:イベント実行中?(1=ON)*10」の値を渡す。

では条件分岐内を見て行こう
コマンド41
20行
Sys13:イベント実行中?(1=ON)0と同じOR「上位以外の場合」で分岐

Sys13:イベント実行中?(1=ON)0と同じ場合{
22行
キャンセルボタンの入力情報を確認しCSelf13[キー入力状態]に渡す。

23行 コメント/新しくキーが押された場合(コモン3と4が異なる値のとき)のみ処理する。
24行
CSelf16[直前イベント実行中?]1減算する。
25行
CSelf16[直前イベント実行中?]0以下で条件分岐

「上位以外の場合」の場合{
コマンド43
121行
CSelf34方向とキャンセルボタンのキー入力受付

おっと、そろそろ1時間か。

今日はここまで。
明日は25行から学習開始。

明日もレッツウディタ♪

コメント

タイトルとURLをコピーしました