063X共メッセージウィンドウ

Last-modified: 2019-03-25 (月) 11:38:04
コモンイベント

▼ ―――――――――――――――――――――――――――――――――――
▼ メッセージウィンドウ処理
▼ ―――――――――――――――――――――――――――――――――――
▼ 【処理の内容】
▼ メッセージ枠と顔グラフィックを表示します。
▼ このコモンイベントは常時作動しており、システム変数0番(顔グラフィック番号)が
▼ 変化すると、メッセージウィンドウを表示したり消去したり顔グラフィックを表示させたりします。

▼ 「システム変数0:顔グラフィック番号」を読み込んで、
▼ その番号に応じた顔グラフィックを表示します。
▼ Sys0 = 0 の時は、メッセージウィンドウは表示されません。
▼ Sys0 = 1 の時は、メッセージウィンドウのみ表示されます。
▼ Sys0が2以上の時は、設定された顔グラフィックを画面右下に表示します。
▼ ―――――――――――――――――――――――――――――――――――
▼ 【設定】
▼ 顔グラフィックのファイルは、システムデータベース24番「顔グラフィック名」で設定してください。

▼ メッセージウィンドウ画像は、ユーザデータベース「画像/音声設定」で設定してください。
▼ 画像が何も設定されていなければ、黒い背景が表示されます。
▼ ―――――――――――――――――――――――――――――――――――

■変数操作: CSelf20[基本ピクチャ番号] = 19500 + 0
▼ Ver2.20 座標倍率を縦横別に修正
■DB読込(可変): CSelf88[座標倍率X(x10)] = 可変DB[ 基本システム用変数 : 97 : 0 ] (18 : 座標倍率X[x10] : 数値)
■DB読込(可変): CSelf89[座標倍率Y(x10)] = 可変DB[ 基本システム用変数 : 98 : 0 ] (18 : 座標倍率Y[x10] : 数値)
■DB読込(ユーザ): CSelf9[ウィンドウ画像ファイル] = ユーザDB[ 画像/音声設定 : 0 : メッセージウィンドウ ベース画像 ] (16 : 画像/音声基本設定 : 2)
■変数操作: CSelf35[ウィンドウ表示中フラグ] = 0 + 0
▼ メッセージウィンドウの表示位置とサイズを設定
■変数操作: CSelf38[サイズX] = 30 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf39[サイズY] = 7 * CSelf89[座標倍率Y(x10)]
■変数操作: CSelf30[基本表示位置X] = 16 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf31[基本表示位置Y] = 20 * CSelf89[座標倍率Y(x10)]
■変数操作: CSelf32[隠し表示位置X] = 16 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf33[隠し表示位置Y] = 28 * CSelf89[座標倍率Y(x10)]

■変数操作: CSelf91[ピクチャカウンタ最大値] = 3 + 0
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 9 + 0

■変数操作: CSelf42[画面サイズX] = CSelf88[座標倍率X(x10)] * 32
■変数操作: CSelf43[画面サイズY] = CSelf89[座標倍率Y(x10)] * 24

■変数操作: CSelf40[戻り先番号] = 1 + 0
■回数付きループ [ 1 ]回
●ラベル地点「文章表示位置設定」 <<<<<<<<<<<<<<<<<<<<<<<<★
■変数操作: Sys1:メッセージウィンドウ X座標 = 2 * CSelf88[座標倍率X(x10)]
■変数操作: Sys2:メッセージウィンドウ Y座標 = 17 * CSelf89[座標倍率Y(x10)]
■変数操作: Sys2:メッセージウィンドウ Y座標 += CSelf89[座標倍率Y(x10)] / 10
■変数操作: Sys3:選択肢ウィンドウ X座標 = 16 * CSelf88[座標倍率X(x10)]
■変数操作: Sys4:選択肢ウィンドウ Y座標 = 8 * CSelf89[座標倍率Y(x10)]
■変数操作: Sys5:ポーズカーソルX (1=自動) = 16 * CSelf88[座標倍率X(x10)]
■変数操作: Sys6:ポーズカーソルY (1=自動) = 6 * CSelf89[座標倍率Y(x10)]
●ラベル「戻り先\cself[40]」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>

◇ループここまで◇◇
●ラベル地点「戻り先1」 <<<<<<<<<<<<<<<<<<<<<<<<★

■変数操作: Sys0:顔グラフィック番号 = 1 + 0
■ループ開始
▼ 顔グラフィック番号が1以下になったら処理待ち状態
▼ 基本的に、処理が終わったら1になる

■条件分岐(変数): 【1】 Sys0:顔グラフィック番号 が 1 以下

◇分岐: 【1】 [ Sys0:顔グラフィック番号 が 1 以下 ]の場合↓
■ウェイト:1 フレーム
■ループ開始へ戻る

◇分岐終了◇

■ウェイト:1 フレーム
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 表示処理
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ

◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
▼ メッセージウィンドウ表示
●ラベル地点「ウィンドウ表示」 <<<<<<<<<<<<<<<<<<<<<<<<★
■変数操作: CSelf49[顔グラフィック番号] = Sys0:顔グラフィック番号 + 0

■条件分岐(変数): 【1】 CSelf48[直前顔グラ番号] が CSelf49[顔グラフィック番号] 以外

◇分岐: 【1】 [ CSelf48[直前顔グラ番号] が CSelf49[顔グラフィック番号] 以外 ]の場合↓
■変数操作: CSelf48[直前顔グラ番号] = CSelf49[顔グラフィック番号] + 0

■条件分岐(変数): 【1】 CSelf49[顔グラフィック番号] が 1 以上

◇分岐: 【1】 [ CSelf49[顔グラフィック番号] が 1 以上 ]の場合↓
&color(#00a000){▼ 顔番号が1以上ならメッセージウィンドウ表示
&color(#b4b400){■ピクチャ[ディレイ内容リセット]:CSelf20[基本ピクチャ番号]

■条件分岐(変数): 【1】 CSelf35[ウィンドウ表示中フラグ] が 0 と同じ

◇分岐: 【1】 [ CSelf35[ウィンドウ表示中フラグ] が 0 と同じ ]の場合↓
▼ メッセージウィンドウを新規表示する処理
▼ メッセージウィンドウの表示位置を再設定
■変数操作: CSelf40[戻り先番号] = 2 + 0
●ラベル「文章表示位置設定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
●ラベル地点「戻り先2」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ 表示されていなければ新規に表示する
■ピクチャ表示:CSelf20[基本ピクチャ番号] [中心]ウィンドウ(CSelf9[ウィンドウ画像ファイル]) サイズ[CSelf38[サイズX],CSelf39[サイズY]] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] / 5(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]

◇分岐終了◇

■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf30[基本表示位置X] Y:CSelf31[基本表示位置Y] / 5(0)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf30[基本表示位置X] Y:CSelf31[基本表示位置Y] / 5(3)フレーム / パターン 同値 / 透 同値 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■変数操作: CSelf35[ウィンドウ表示中フラグ] = 1 + 0
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 1 + 0

◇上記以外
▼ 表示なし(0)の場合
▼ 隠す座標へ移動
■ピクチャ[ディレイ内容リセット]:CSelf20[基本ピクチャ番号]
■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] / 4(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] / 4(2)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■変数操作: CSelf35[ウィンドウ表示中フラグ] = 0 + 0
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 1 + 0

◇分岐終了◇

▼ ――――――――――――――――――――――――――――――――
▼ 顔グラフィックの消去+表示処理
▼ ――――――――――――――――――――――――――――――――
▼ まず今表示されてる顔グラフィックを消去
■変数操作: CSelf21[一時ピクチャ番号A] = CSelf20[基本ピクチャ番号] + 1
■変数操作: CSelf22[一時ピクチャ番号B] = CSelf20[基本ピクチャ番号] + CSelf91[ピクチャカウンタ最大値]
■ピクチャ[ディレイ内容リセット]:CSelf21[一時ピクチャ番号A] ~ CSelf22[一時ピクチャ番号B]
■ピクチャ消去:CSelf21[一時ピクチャ番号A] ~ CSelf22[一時ピクチャ番号B] / 5(0)フレーム

■条件分岐(変数): 【1】 CSelf49[顔グラフィック番号] が 2 以上

◇分岐: 【1】 [ CSelf49[顔グラフィック番号] が 2 以上 ]の場合↓
▼ 顔番号が2以上なら顔グラフィック表示
■DB読込(システム): CSelf8[顔画像ファイル] = システムDB[ 顔グラフィック名 : CSelf49[顔グラフィック番号] : 顔画像ファイル ] (24 : : 0)

■条件分岐(文字): 【1】 CSelf8[顔画像ファイル]が "" 以外

◇分岐: 【1】 [ CSelf8[顔画像ファイル] "" 以外 ]の場合↓

▼ 新しいピクチャのサイズから初期表示座標を算出
▼ 新しいピクチャを表示する
■変数操作: CSelf21[一時ピクチャ番号A] = CSelf20[基本ピクチャ番号] + 1
■変数操作: CSelf21[一時ピクチャ番号A] += CSelf90[顔表示用ピクチャカウンタ] + 0
▼ システム設定の メッセージ顔グラフィック 拡大率を反映
■DB読込(ユーザ): CSelf23[拡大率(横)] = ユーザDB[ システム設定 : 0 : メッセージ 顔グラフィック倍率 ] (17 : システム基本設定 : 25)
■DB読込(ユーザ): CSelf24[縦拡大率] = ユーザDB[ システム設定 : 0 : メッセージ 顔グラフィック倍率 ] (17 : システム基本設定 : 25)
■ピクチャ[ディレイ内容リセット]:CSelf21[一時ピクチャ番号A]
■ピクチャ表示:CSelf21[一時ピクチャ番号A] [右下]ファイル(CSelf8[顔画像ファイル]) X:CSelf44[一時座標X] Y:CSelf45[一時座標Y] / 0(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 CSelf23[拡大率(横)]xCSelf24[縦拡大率]% / カラー 同値

■条件分岐(変数): 【1】 CSelf23[拡大率(横)] が 0 と同じ

◇分岐: 【1】 [ CSelf23[拡大率(横)] が 0 と同じ ]の場合↓
▼ 拡大率0=標準サイズに合わせる
■変数操作+: CSelf10[一時変数A] = ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(縦)
■変数操作+: CSelf11[一時変数B] = ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(横)
▼ 顔の枠のサイズを計算
■変数操作: CSelf57[顔横サイズ] = 96 * CSelf88[座標倍率X(x10)]
■変数操作: CSelf58[顔縦サイズ] = 96 * CSelf89[座標倍率Y(x10)]
■変数操作: CSelf57[顔横サイズ] /= 10 + 0
■変数操作: CSelf58[顔縦サイズ] /= 10 + 0
▼ 顔の表示を、枠に合わせる場合
■変数操作: CSelf10[一時変数A] = CSelf57[顔横サイズ] * 100
■変数操作: CSelf11[一時変数B] = CSelf58[顔縦サイズ] * 100
■変数操作+: CSelf10[一時変数A] /= ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(横)
■変数操作+: CSelf11[一時変数B] /= ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(縦)
■変数操作: CSelf23[拡大率(横)] = CSelf10[一時変数A] + 0
■変数操作: CSelf24[縦拡大率] = CSelf11[一時変数B] + 0

◇分岐終了◇

▼ 表示元の座標を計算
■変数操作: CSelf44[一時座標X] = CSelf42[画面サイズX] + 0
■変数操作: CSelf45[一時座標Y] = CSelf43[画面サイズY] + 0
■変数操作+: CSelf10[一時変数A] = ピクチャ:CSelf21[一時ピクチャ番号A] の 画像サイズ(縦)
■変数操作: CSelf10[一時変数A] *= CSelf23[拡大率(横)] + 0
■変数操作: CSelf10[一時変数A] /= 100 + 0 };
■変数操作: CSelf44[一時座標X] += CSelf10[一時変数A] + 0
■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf44[一時座標X] Y:CSelf45[一時座標Y] / 0(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 CSelf23[拡大率(横)]xCSelf24[縦拡大率]% / カラー 同値
▼ 表示先へと移動
■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf42[画面サイズX] Y:CSelf43[画面サイズY] / 5(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf42[画面サイズX] Y:CSelf43[画面サイズY] / 5(3)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■ピクチャ移動:CSelf21[一時ピクチャ番号A] X:CSelf42[画面サイズX] Y:CSelf43[画面サイズY] / 5(5)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
▼ ピクチャカウンタ+1
■変数操作: CSelf90[顔表示用ピクチャカウンタ] += 1 + 0
■変数操作: CSelf90[顔表示用ピクチャカウンタ] %= CSelf91[ピクチャカウンタ最大値] + 0

◇分岐終了◇


◇分岐終了◇


◇分岐終了◇


◇分岐終了◇

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
▼ 消去処理
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■

■条件分岐(変数): 【1】 CSelf35[ウィンドウ表示中フラグ] が 0 以外

◇分岐: 【1】 [ CSelf35[ウィンドウ表示中フラグ] が 0 以外 ]の場合↓

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ

◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
▼ もし開いてる状態なら、数フレーム待って、なければ閉じる。
■回数付きループ [ 3 ]回

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ

◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
●ラベル「ウィンドウ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>

◇分岐終了◇

■ウェイト:1 フレーム

◇ループここまで◇◇
▼ 値を初期化
■変数操作: Sys10:メッセージ表示ウェイト(X フレーム) = 9 + 0
■変数操作: CSelf48[直前顔グラ番号] = 1 + 0

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 0 と同じ

◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 0 と同じ ]の場合↓
▼ 表示されてない場合だけ顔グラ番号初期化
■変数操作: Sys0:顔グラフィック番号 = 1 + 0

◇分岐終了◇

▼ 隠す座標へ移動
■ピクチャ[ディレイ内容リセット]:CSelf20[基本ピクチャ番号]
■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] / 4(0)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
■ピクチャ移動:CSelf20[基本ピクチャ番号] X:CSelf32[隠し表示位置X] Y:CSelf33[隠し表示位置Y] / 4(2)フレーム / パターン 同値 / 透 255 / 表示形式:同値 / 角 同値 / 拡 同値 / カラー 同値
▼ 完全に消えたら表示フラグをオフに
■回数付きループ [ 6 ]回

■条件分岐(変数): 【1】 Sys12:メッセージ表示中?(1=ON) が 1 と同じ

◇分岐: 【1】 [ Sys12:メッセージ表示中?(1=ON) が 1 と同じ ]の場合↓
●ラベル「ウィンドウ表示」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>

◇分岐終了◇

■ウェイト:1 フレーム

◇ループここまで◇◇
▼ 消去する
■ピクチャ消去:CSelf20[基本ピクチャ番号] / 0(6)フレーム
▼ 顔グラフィックも消去する
■変数操作: CSelf21[一時ピクチャ番号A] = CSelf20[基本ピクチャ番号] + 1
■変数操作: CSelf22[一時ピクチャ番号B] = CSelf20[基本ピクチャ番号] + CSelf91[ピクチャカウンタ最大値]
■ピクチャ[ディレイ内容リセット]:CSelf21[一時ピクチャ番号A] ~ CSelf22[一時ピクチャ番号B]
■ピクチャ消去:CSelf21[一時ピクチャ番号A] ~ CSelf22[一時ピクチャ番号B] / 5(0)フレーム
▼ ウィンドウが消えたので、次メッセージの待ち時間を元に戻す
■変数操作: CSelf35[ウィンドウ表示中フラグ] = 0 + 0

◇分岐終了◇


◇分岐終了◇


◇ループここまで◇◇