ウディタ解体記
おさらい
まずは、これまでのおさらい。
ウディタ初期にあるコモンイベントで並列実行(常時)を起動条件とするものは2つある。
[048-X[共]基本システム自動初期化]の、
0行~204行通して見てみると、
をしていることが分かった。
おさらいが終わったら今日の学習の始まりでェす。
「最新セーブデータの取得」
205行~のコマンドからみていきまSHOW!
205~207行コメント/最新セーブデータ番号をSystem.savから取得 (System.savの通常変数0番を最終セーブデータ番号として使用)
206行
文字列操作で”このコモンセルフ5:[Cself5])”に”Save/System.sav”を設定。
207行
”一時保存コード”にセーブデータ[Cself5](1600005)のV0[[サンプルゲーム]コック出現](2000000)を渡す。
208行
変数操作で”Sys25:現在セーブデータ番号(0~)”に”一時保存コード”を渡す。
「黒から徐々にフェードイン」
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行)の解体
0~18行コメント/処理の内容などの説明文
主に下記の2点を行っている。
・メニュー表示用のキャンセルキー受付
・一歩あるいた時の処理を実行
細かくは、メニュー起動の際、{
「イベント中はメニューが起動しないようにする」
「マスとマスの間を移動中は、メニューの表示を待つ(一定時間が過ぎたら入力キャンセル)」
「メニューを開いたときは次の一歩を歩き出さないようにする」
}等の処理
19行 コメント/イベント実行中はキーが押されても無視
20~123行まで条件分岐内の処理。
条件分岐後
124行 コメント/直前のイベント実行中がオンなら10フレームはメニューを出さない
125行
CSelf16[直前イベント実行中?]に「Sys13:イベント実行中?(1=ON)*10」の値を渡す。
では条件分岐内を見て行こう
20行
Sys13:イベント実行中?(1=ON)が0と同じOR「上位以外の場合」で分岐
Sys13:イベント実行中?(1=ON)が0と同じ場合{
22行
キャンセルボタンの入力情報を確認しCSelf13[キー入力状態]に渡す。
23行 コメント/新しくキーが押された場合(コモン3と4が異なる値のとき)のみ処理する。
24行
CSelf16[直前イベント実行中?]を1減算する。
25行
CSelf16[直前イベント実行中?]が0以下で条件分岐
}
「上位以外の場合」の場合{
121行
CSelf3に4方向とキャンセルボタンのキー入力受付
}
おっと、そろそろ1時間か。
今日はここまで。
明日は25行から学習開始。
明日もレッツウディタ♪
コメント