行 |
処理内容 |
35-59 |
▼ 初期化 |
主要な変数の値を初期化。 |
主人公の並び順に合わせてピクチャ番号をセルフ[20]に準備。 |
60-70 |
▼ 基本パラメータを呼び出し |
データベースから情報を取得。 |
73-95 |
▼ 一個あたりのキャラクター欄のサイズ指定や、各内容の表示位置などをここで指定 |
ステータス画面に関するピクチャのサイズや表示位置を設定。 |
設定値はゲーム画面のサイズ[320×240[x2]]に合わせてピクセル単位で設定します。
違うゲーム画面のサイズの場合は、あとで画面サイズに合わせてピクセル値が変動します。 |
ピクチャはステータス画面の中心を基点にして表示します。
▼主人公の名前の表示位置の設定の場合
■変数操作: CSelf62[キャラ名位置X] = -36 + 0
■変数操作: CSelf63[キャラ名位置Y] = -23 + 0 |
|
|
98-125 |
▼ ここで解像度補正 |
73〜95行目で設定した表示位置や表示サイズを現在の画面サイズに合わせて補正。
例えば設定値が「-36」の場合は、
[640×480]の時には「-72」になり、[800×600]の時には「-90」になります。 |
129-144 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が -1 と同じ |
ステータス画面を消去します。 |
145-431 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 0 と同じ |
ステータス画面を表示します。 |
|
150-155 |
▼ もし主人公IDがマイナスだったら終了 |
可変DB[10:×┏ 戦闘一時ステータス[基]]のデータIDが
存在しないデータIDになっている場合は、処理を中断させる。 |
|
156-160 |
▼ まず表示先座標を取得する (なお、この座標は倍率補正済み) |
ステータス画面の表示位置を取得。 |
|
161-167 |
▼ 表示するパラメータ情報をここで取得 |
可変DB[10:×┏ 戦闘一時ステータス[基]]の項目[17:キャラクタ番号[1万以上は敵]]に
主人公のIDが設定されていない場合は処理を中断。 |
|
168-172 |
HP、SP、色番号(ステータス画面の色)を取得。 |
|
175-209 |
■回数付きループ [ 1 ]回 |
ステータス画面の色を変更。 |
|
211-214 |
▼ カーソル用画像(明るさ0で常に表示しておく、
ウィンドウを光らせるためのものなのでウィンドウ画像でよい) |
主人公を選択する時に使用するカーソル用(点滅用)の画像を、
下地のウィンドウ画像と同じもので「表示形式:加算」で表示。
そして【ピクチャエフェクト】(カラー補正:R-100、G-100、B-100)を設定。
「表示形式:加算」で表示しているので、
「カラー補正:R-100、G-100、B-100」にすると透明になり、
「カラー補正:R0、G0、B0」にするとウィンドウの色の値が2倍になり、明るくなります。
▼表示例
|
|
220-271 |
■回数付きループ [ 1 ]回 |
顔グラフィックの表示に関する処理を実行。 |
|
|
221-228 |
▼ 顔グラフィック
▼ 一時上書きグラフィックがあればそれを表示、なければ元の顔グラフィックを表示 |
顔グラフィックのファイルアドレスを取得。
なおユーザーDB[8:状態設定]の項目[45:状態時の顔グラフィック]にファイルアドレスが
設定されている状態異常が付与している場合は、その画像のファイルアドレスを設定する。 |
|
|
229-233 |
▼ 顔の枠のサイズを計算 |
顔グラフィックの画像サイズを設定。
この画像サイズはゲーム画面の縦サイズの5分の1のサイズになっています。
[320×240[x2]]の場合に「48×48ピクセル」、
[640×480]の場合は「96×96ピクセル」、
[800×600]の場合は「120×120ピクセル」で表示します。 |
|
|
237-262 |
■条件分岐(文字): 【1】 CSelf7[表示項目名]が "" 以外 |
顔グラフィック用の画像アドレスが設定されている場合は分岐し、
顔グラフィックを表示する。 |
ユーザーDB[17:システム設定]の項目[24:ステータス 顔グラフィック倍率]に倍率の設定がある場合は
その指定された倍率で表示し、倍率設定が無い場合は229〜233行目で設定したサイズで表示。 |
表示位置は顔グラフィックを表示する枠内の中心を基点にしています。
なお表示設定では、まず【ピクチャ表示】でステータス画面の中央に表示し、
【ピクチャエフェクト】で指定した表示位置に移動しています。 |
|
|
263-269 |
■回数付きループ [ 0 ]回 |
デバッグ用の設定です。
ループ回数を「1」にすると、下図のように顔グラフィックの表示範囲を枠で表示します。
|
|
273-278 |
▼ キャラ名 |
主人公の名前を表示。 |
|
282-289 |
▼ 状態異常表示 |
状態を表示。 |
|
293-349 |
■回数付きループ [ 1 ]回 |
HPの表示処理を実行。 |
|
|
296-303 |
▼ HP数値表示用に、横幅を得る |
「HP」の名称の左端と、HPの数値の右端との距離を設定。
|
[320×240[x2]]の場合は、長さを2倍にします。
これは文章の表示位置を設定する特殊文字「\ax」が[640×480]で処理されるためです。
【特殊文字「\ax」の説明を見る】 |
|
|
304-309 |
▼ HPの数値 (表示位置は左下基点) |
HPの文字列を表示。
「HP」の名称と「60(現在のHP)」は同じ1つのピクチャで表示します。 |
|
|
310-327 |
▼ ゲージ表示 [上部分ゲージ] (表示位置は左上) |
HPゲージを表示。
ゲージの横サイズは横拡大率で設定。 |
|
|
328-331 |
▼ ゲージ表示 [下地ゲージ・赤部分] (表示位置は左上) |
HPゲージの下に表示する赤い下地を表示。 |
|
|
332-343 |
▼ ゲージ表示[枠部分] (表示位置は左上) |
HPゲージの周りに表示する枠を表示。 |
|
|
344-348 |
▼ ゲージ下の黒背景 |
HPゲージとゲージの周りに表示した枠との間の色を設定。
▼紫色に変えた場合の表示例
|
|
350-406 |
■回数付きループ [ 1 ]回 |
SPの表示処理を実行。 |
|
|
353-360 |
▼ SP数値表示用に、横幅を得る |
「SP」の名称の左端と、SPの数値の右端との距離を設定。(HPの時と同じ処理) |
|
|
361-366 |
▼ SPの数値 (表示位置は左下基点) |
SPの文字列を表示。
「SP」の名称と「60(現在のSP)」は同じ1つのピクチャで表示します。 |
|
|
367-386 |
▼ ゲージ表示 [上部分ゲージ] (表示位置は左上) |
SPゲージを表示。
ゲージの横サイズは横拡大率で設定。 |
|
|
385-388 |
▼ ゲージ表示 [下地ゲージ・赤部分] (表示位置は左上) |
SPゲージの下に表示する赤い下地を表示。 |
|
|
389-400 |
▼ ゲージ表示[枠部分] (表示位置は左上) |
SPゲージの周りに表示する枠を表示。 |
|
|
401-404 |
▼ ゲージ下の黒背景 |
SPゲージとゲージの周りに表示した枠との間の色を設定。 |
|
408-428 |
■回数付きループ [ CSelf50[エフェクト表示フラグ] ]回 |
ステータス画面を画面下からスクロールで表示。 |
|
|
409-413 |
▼ ここでメニュー表示時エフェクト(「移動」コマンドで実現している) |
画面の下の方(画面の外)の座標を設定し、ディレイを「0」に初期化。 |
|
|
414-418 |
▼ 初期位置をシフト |
1人分のピクチャ番号(1人目の場合はセルフ[20]=10100、セルフ[21]=10124)を設定し、
画面の下の方に1人分の全てのピクチャを移動。 |
|
|
419-426 |
▼ 目標位置まで慣性移動 |
画面の下の方から実際に表示する位置まで徐々に速度を落としながら移動。 |
432-460 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 10 と同じ |
仲間の主人公に対して、アイテムや特殊技能を使用する時の使用する主人公の選択時に、
選択中の主人公のステータス画面を点滅させる時に使用します。 |
セルフ[1]が「-1」の場合は、全ての主人公のステータス画面を点滅させます。 |
セルフ[1]が「0以上」の場合は、「セルフ[1]=パーティの並び順(0〜5)」として、
指定したパーティの順番にいる主人公のステータス画面を点滅させます。 |
461-477 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 11 と同じ |
「味方一人ランダム」の特殊技能を使用する時の使用する主人公の選択時に、
全ての主人公のステータス画面を点滅させる時に使用します。 |
点滅の間隔は「5〜20フレーム」であり、主人公ごとにランダムで設定されます。 |
478-506 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 12 と同じ |
ステータス画面の点滅を終了させます。 |
セルフ[1]が「-1」の場合は、全ての主人公のステータス画面の点滅を終了させます。 |
セルフ[1]が「0以上」の場合は、「セルフ[1]=パーティの並び順(0〜5)」として、
指定したパーティの順番にいる主人公のステータス画面の点滅を終了させます。 |
507-559 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 21 以上
■条件分岐(変数): 【1】 CSelf0[処理モード] が 29 以下
|
ダメージを受けた時にステータス画面を赤色にフラッシュさせ、
ステータス画面を上下に揺らします。 |
|
520-526 |
▼ ここでメニュー表示時エフェクト(「移動」コマンドで実現している) |
ステータス画面の表示位置を取得。 |
|
527-529 |
▼ レベルの分だけシフト量をアップ |
セルフ[0]の一の位(「セルフ[0]=25」なら「5」)を算出し、
「セルフ[0]の一の位×(ゲーム画面の縦サイズ÷24)」を計算して、揺れの移動量を算出。
例えば「セルフ[0]=25」の場合は一の位は「5」になり、
ゲーム画面のサイズが[320×240[x2]]の場合は、「5×(240÷24)=50」の計算によって、
ステータス画面を現在の位置より「50ピクセル」下へ移動させます。 |
|
530-532 |
■変数操作: CSelf57[ウェイト数] = CSelf10[一時変数A] * 2 |
決定キーやサブキーを押し続けていた場合は、縦揺れの移動速度を上げます。 |
|
535-539 |
▼ 初期位置をシフト |
指定した位置まで一気に下げます。 |
|
540-549 |
▼ 目標位置まで慣性移動 |
移動速度を徐々に落としながら元の位置まで移動します。 |
559-573 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 30 と同じ |
回復した時にステータス画面を緑色にフラッシュさせます。 |
574-588 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 40 と同じ |
行動を開始する主人公のステータス画面をフラッシュさせます。 |
589-629 |
■条件分岐(変数): 【1】 CSelf0[処理モード] が 50 と同じ |
主人公が逃走した時のステータス画面の表示を処理します。 |
|
599-605 |
▼ ここでメニュー表示時エフェクト(「移動」コマンドで実現している) |
ステータス画面の表示位置を取得。 |
|
606-607 |
▼ 逃走不能(セルフ1=1)なら、「戦闘・逃走コマンド」を出さない。 |
ステータス画面を下に移動させる移動量を「8×(ゲーム画面の縦サイズ÷24)」で算出。
例えばゲーム画面のサイズが[320×240[x2]]の場合は、
「8×(240÷24)=80」の計算によって、ステータス画面を「80ピクセル」下へ移動させます。 |
|
608-609 |
■変数操作: CSelf57[ウェイト数] = 11 + 0 |
決定キーやサブキーを押し続けていた場合は、縦揺れの移動速度を上げます。 |
|
616-622 |
▼ 目標位置まで慣性移動 |
移動速度を徐々に落としながら画面の下の方(画面の外)へ移動します。 |