WOLF RPGエディター(ウディタ)/自作メニュー【サイトトップへ戻る】
■自作アイテムメニューを作る
(更新:2024/06/01)


所持しているアイテムの名前を一覧で表示する自作メニューを作成します。



◆当ページでは、武器や防具も「アイテム」の名称で統一して記載しています。

◆アイテムの説明欄の設定やマウス操作の設定は、
 当ページをご覧頂いた上で、追加設定のページをご覧ください。
自作メニューに関する基礎説明は別のページに書かれています。
まだご覧頂いていない場合は、先に自作メニューの基礎講座をご覧ください。
【自作メニューの基礎講座を見る】

ショートカット
■アイテムの一覧表について
■万能ウィンドウとの違い
■ピクチャ番号について
■変数について
■試作品を作る
■試作品から完成品に仕上げる:ピクチャ番号をセルフ変数で設定
■試作品から完成品に仕上げる:アイテムデータを可変DBに保存
■試作品から完成品に仕上げる:アイテム名を表示
■試作品から完成品に仕上げる:スクロール機能を追加

動作確認用のサンプルデータ
ダウンロード後に右クリック→[すべて展開]で解凍し、
中に入っている「★このデータについて」をご覧ください。

サンプルデータには「説明欄」「マウス操作」「スクロールバー」を含めた状態で、
「横1×縦12」と「横2×縦12」のコモンイベントデータが入っています。

説明欄やマウス操作などが無い、単なる「横1×縦12」のデータが欲しい場合は、
設定例にある【イベントコード表示】【コモン出力ファイル】をご利用ください。


  
■自作アイテムメニューについて

当ページでは、アイテム名と所持数を表示する自作メニューを作成します。

当ページの処理は、自作メニューの処理構造を理解する事を目的としているため、
処理内容はアイテムを選択するだけになっています。

そのため、アイテムを選択した後の処理(回復など)はありません。



当ページの処理には、自作メニューを開くための「起動設定」がありません。

起動設定に関しては自作メニューの基礎講座に書かれているので、そちらをご覧ください。
【自作メニューの基礎講座の「自作メニューの起動方法について」を見る】

制作中の動作テストは、マップイベントを調べるとコモンイベントが呼び出される設定で行うと良いでしょう。

■マップイベント

グラフィック:何らかの画像
起動条件:決定キーで実行

■イベントの挿入[名]: ["自作アイテムメニュー"] <コモンEv 215>

ゲーム開始位置のすぐ下に動作テスト用のマップイベントを設定すれば、
テストプレイの開始後にすぐに自作メニューを開く事ができます。





アイテムを持っているかどうかの判断は、
可変DB[7:┣所持アイテム個数][8:┣所持武器個数][9:┣所持防具個数]の「所持数が1以上=持っている」で判断します。

アイテム名はユーザーDB[2:アイテム][3:武器][4:防具]項目[0]から取得します。



動作テストの時には、可変DBのアイテムの所持個数を「1以上」にする事で、
ゲーム開始時からそのアイテムを持っている状態になります。



可変DB[7〜9]の所持数を増やす以外には、マップイベントにアイテム増減の処理を設定したり、
お店イベントの売買でアイテムの所持内容を変えたりする方法があります。



イベントを設定する前に可変DB[一覧表用]を準備してください。
※下図では「タイプID=20」に設定していますが、20以外のタイプIDでも問題ありません。
※データ数は「1」のままで良いです。
※項目には数値タイプの項目「アイテムID」を準備してください。

※可変DB[一覧表用]のファイルデータが欲しい場合は「動作確認用のサンプルデータ」から取得できます。



今回の設定例では専用の可変DBを用意していますが、自作アイテムメニューを表示している時に使用していない
可変DB[16:× お店一時処理用]可変DB[19:万能ウィンドウ一時DB]などを利用しても問題ありません。

可変DB[16:× お店一時処理用]可変DB[19:万能ウィンドウ一時DB]を利用する場合は、
項目[1]にアイテムIDを設定してください。



当ページでは「横1×縦12」の一覧表を作成します。

「横2以上」にするとアイテム名の表示やカーソルの移動処理が複雑化するため、当ページでは「横1」で設定します。

もしも「横2」で設定したい場合は、当ページをご覧になった上で、
当ページの最下部にあるリンクから「横2×縦12」に改造するページをご覧ください。



当ページの設定例は、ゲーム画面のサイズ「320×240[x2]」に合わせた設定になっています。


▲トップへ戻る▲


  
■万能ウィンドウとの違い

万能ウィンドウは基本システムに用意されている機能であり、アイテムや特殊技能を選択する一覧を表示する時に使います。
【万能ウィンドウの説明を見る】

▼万能ウィンドウの表示例


当ページの処理も一応万能ウィンドウのような処理になっていますが、機能性よりも処理構造の解りやすさを重視しているため、
万能ウィンドウと比べるとかなり機能が簡略化されており、「万能ウィンドウの簡易版」と言った感じになっています。



万能ウィンドウの処理では、予め可変DB[19:万能ウィンドウ一時DB]に一覧で表示する情報を保存しておき、
その可変DB[19:万能ウィンドウ一時DB]の情報を読み取って一覧を表示しています。

可変DB[19:万能ウィンドウ一時DB]の情報を変える事で、イベント処理を改造しなくても、
アイテムの一覧以外に、特殊技能の一覧や戦闘コマンドの一覧などを表示する事ができます。

▼可変DB[19:万能ウィンドウ一時DB]


一方当ページの自作アイテムメニューは、可変DBにはアイテムIDのみを保存し、
アイテム名や所持数などはユーザーDB[2〜4]可変DB[7〜9]から取得して表示しています。

もしもアイテム以外の一覧を表示にする場合は、イベント処理を改造する必要があります。



万能ウィンドウのアイテム名の表示では、「アイテム名」「×」「所持数」をまとめて1つのピクチャ番号で表示しています。

しかし「アイテム名」「×」「所持数」を1つのピクチャにまとめて表示する設定がかなり難しいので、
当ページの自作アイテムメニューでは「アイテム名」と「×」と「所持数」を別々のピクチャ番号で表示しています。
【万能ウィンドウの「アイテム名×所持数」の表示設定を見る】



万能ウィンドウでは、項目の文字数が多い場合は、自動的に左右の拡大率を縮小して表示します。




当ページの自作アイテムメニューも長い項目名の場合は横倍率が小さくなりますが、
縮小するのはアイテム名のみであるため、「×」や所持数の横倍率はそのままになります。





万能ウィンドウの一覧のスクロール表示では、項目が上下に移動してスクロールする演出が設定されていますが、
当ページの一覧のスクロールは、パッと表示が切り替わる仕様になっています。



万能ウィンドウの右側にはスクロールバーがあります。



このスクロールバーの設定は、当ページの自作アイテムメニューではオプション設定となっており、
別ページに追加設定として記載されています。



万能ウィンドウは画面上に1つしか表示する事ができませんが、
当ページの自作アイテムメニューは、複数のコモンイベントと可変DBを用意し、
使用するピクチャ番号を変える事で、複数の自作アイテムメニューを同時に表示する事ができます。



万能ウィンドウはマウス操作には対応しておりませんが、当ページの自作アイテムメニューは、
別のページで紹介しているマウス操作のイベント設定を追加する事で、マウスの操作が可能になります。


▲トップへ戻る▲


  
■ピクチャ番号について

自作アイテムメニューでは、ピクチャ番号を以下のように使用します。

ピクチャー
番号 表示内容 使用するページ
0 ウィンドウ 当ページ
1 説明欄ウィンドウ 説明欄を追加
2 説明文 説明欄を追加
3 スクロールバー スクロールバーを追加
10 カーソル画像 当ページ
11 マウスポインタの反応範囲 マウス操作を追加
20 スクロール可能を示すアイコン[▲] 当ページ
21 スクロール可能を示すアイコン[▼] 当ページ
22 マウスポインタが[▲][▼]に乗った時 マウス操作を追加
100〜199 アイテム名 当ページ
200〜299 アイテム名と所持数の間に表示する「×」 当ページ
300〜399 所持数 当ページ



アイテム名の表示で使用するピクチャ番号は[100〜199]、[200〜299]、[300〜399]の範囲で使用します。

ピクチャ番号[100〜199][200〜299][300〜399]の下二桁は連動して使用するため、
例えばアイテム名をピクチャ番号[108]で表示した場合は、
「×」の表示はピクチャ番号[208]で表示し、
所持数の表示はピクチャ番号[308]で表示します。



基本システムのメニュー画面、戦闘画面、お店画面などと一緒に表示する場合は、
ピクチャ番号[10000〜19999]以外を使用してください。


▲トップへ戻る▲


  
■変数について

自作アイテムメニューのセルフ変数は、以下のようなグループに分けて使用します。

10〜14 キー入力・クリック関連
15〜18 一時的に計算などで使用
20〜22 縦横の項目数
24〜28 カーソル移動関連
30〜38 データベース関連
40〜53 ピクチャ処理関連
55〜67 ピクチャ番号の設定

「横2×縦12」やマウス操作などの追加設定を考慮しているため、変数番号の使い方が飛び飛びになっています。

コモンイベントのセルフ変数
番号 名前 使用内容
10 キー入力・マウス操作 押したキーのキーコード、マウスのクリックやホイールの情報を取得。
【キーコードの一覧を見る】
11 キー待ち時間 方向キーを押し続けた時に、次にカーソルが移動するまでの時間をカウント。
カーソルが移動すると「12」が設定され、1フレームごとに「減算1」となり、
「0以下」になると再びカーソルの移動が可能になります。
方向キーを離すと「0」になるので、方向キーを連打するとカーソルが速く移動します。
12 起動時キー押し禁止 起動時に「1」を設定し、キーを押していない状態になると「0」になります。
「0」になると、自作メニューのキー操作ができるようになります。
この設定により、決定キーやキャンセルキーを押しながら自作メニューを表示しても、
すぐに項目を決定したり、自作メニューを閉じたりする事はありません。
13 クリック処理内容 【マウス処理で使用】

アイコン[▲][▼]の上にマウスポインタが乗ると、
アイコン[▲][▼]のピクチャ番号がこの変数に設定され、
ピクチャ[22]の初期設定などが行われます。
14 クリック待ち時間 【マウス処理で使用】

アイコン[▲][▼]の上にマウスポインタを乗せ、
マウスのマウスの左ボタンを押し続けてスクロールさせる時に、
そのスクロールのウェイトをカウントします。
15 一時:所持数・拡大率・幅 可変DB[7〜9]の所持数の取得、アイテム名の横拡大率の設定、
スクロールバーの幅などを設定する時に使用。
16 一時:カーソル位置+行 カーソル位置+行数×横項目数」を設定。
17 一時:カーソル位置計算 方向キーの処理で使用。
18 一時:乗っているか判断 【マウス処理で使用】

マウスポインタが[▲][▼]やスクロールバーの上に乗っている時には「1」を設定。
20 横項目数 【横2以上で使用】

横の項目数を設定。

「横2×縦12」の場合は「2」を設定。
「横3×縦12」の場合は「3」を設定。
21 縦項目数 縦の項目数「12」を設定。
22 画面上項目数 【横2以上で使用】

セルフ変数[20:横項目数]×セルフ変数[21:縦項目数]」の値を設定。

「横2×縦12」の場合は「24」を設定。
「横3×縦12」の場合は「36」を設定。
24 カーソル位置 メニュー画面上のカーソルの位置を設定。
最上行が「0」、最下行が「11」。
25 マウスカーソル位置 【マウス処理で使用】

マウスポインタがある位置のカーソル位置を設定。

マウスポインタがあるカーソル位置にアイテム名がある場合は、
セルフ変数[25:マウスカーソル位置]の値をセルフ変数[24:カーソル位置]に保存。
26 SE:カーソル移動 【マウス処理で使用】

キーボードかマウスでカーソルを操作した時に、1回だけSEを演奏させる時に使用。
27 スクロール行数 現在スクロールしている行数を設定。
28 スクロール最大行 スクロールできる最大行数を設定。

「横1×縦12」の場合で、セルフ変数[32:可変DB登録数]が「15」の場合は、
「15−12」で、このセルフ変数[28:スクロール最大行]には「3」が設定されます。

「横2×縦12」の場合で、セルフ変数[32:可変DB登録数]が「34」の場合は、
「34÷2−12」で、このセルフ変数[28:スクロール最大行]には「5」が設定されます。
30 保存可変:タイプID 「一覧表用」の名前がある可変DBのタイプIDを設定。
31 保存可変:項目ID 可変DB[一覧表用]のアイテムIDを保存する項目IDを設定。
32 可変DB登録数 可変DBに保存したアイテム・武器・防具の登録数を設定。
33 全データ数 ユーザーDB[2〜4]の全データ数を設定。
34 データID アイテム、武器、防具のデータIDを設定し、
ユーザーDB[2〜4]からアイテムの名前し、
可変DB[7〜9]からアイテムの所持数を取得。
35 アイテムID 可変DB[一覧表用]にアイテムIDを保存する時や、
可変DB[一覧表用]に保存しているアイテムIDを取得する時に使用。

アイテムIDは「ユーザーDBのタイプID×10000+データID」で保存しています。
36 タイプID:ユーザ[2-4] 可変DB[一覧表用]に保存されているアイテムIDを「除算10000」にして、
ユーザーDBのタイプIDを設定し、アイテムの名前や説明文の取得に使用。
アイテム「2」、武器「3」、防具「4」。
37 タイプID:可変[7-9] 可変DB[一覧表用]に保存されているアイテムIDを「除算10000+5」にして、
可変DBのタイプIDを設定し、アイテムの所持数の取得に使用。
アイテム「7」、武器「8」、防具「9」。
38 一覧表示済み数 【横2以上で使用】

画面上に表示したアイテム名の数をカウントし、
次に表示するアイテム名の表示位置を設定する時に使用。

「横2×縦12」の場合は、
「余剰2」で横の位置(0〜1)、「除算2」で縦の位置(0〜11)を算出。
40 ピクチャ処理[100〜] アイテム名を表示するピクチャ番号を設定。
41 ピクチャ処理[200〜] 「×」を表示するピクチャ番号を設定。
42 ピクチャ処理[300〜] 所持数を表示するピクチャ番号を設定。
43 X位置[100〜] アイテム名を表示する時のX表示位置を設定。
【横2以上の場合】

セルフ[38:一覧表示済み数]%セルフ[20:横項目数]×134+セルフ[50:左上X[100〜]]
の値を設定。
カーソルのX表示位置の設定でも使用。
44 X位置[200〜] [×]を表示する時のX表示位置を設定。
【横2以上の場合】

セルフ[38:一覧表示済み数]%セルフ[20:横項目数]×134+セルフ[51:左上X[200〜]]
の値を設定。
45 X位置[300〜] 所持数を表示する時のX表示位置を設定。
【横2以上の場合】

セルフ[38:一覧表示済み数]%セルフ[20:横項目数]×134+セルフ[52:左上X[300〜]]
の値を設定。
46 Y位置 アイテム名、[×]、所持数を表示する時のY表示位置を設定。
【横2以上の場合】

セルフ[38:一覧表示済み数]÷セルフ[21:縦項目数]×16+セルフ[53:左上Y]
の値を設定。
カーソルのY表示位置の設定でも使用。
47 マウス項目選択中 選択項目の上にマウスポインタが乗っている時には「1」を設定。
「1」の時には、方向キーの処理が実行できないようにします。
48 バー開始マウスY 【マウス処理+スクロールバーで使用】

スクロールバーをクリックした時のY位置を設定し、
マウスを動かした量を調べる時に使用。
また「1以上=スクロールバーを移動中」と判断する処理でも使用。
50 左上X[100〜] 【横2以上で使用】

アイテム名を表示するピクチャのカーソル位置[0]のX表示位置を設定。
実際にアイテム名を表示する時にはセルフ変数[43:X位置[100〜]]を使用。
51 左上X[200〜] 【横2以上で使用】

[×]を表示するピクチャのカーソル位置[0]のX表示位置を設定。
実際に[×]を表示する時には、セルフ変数[44:X位置[200〜]]を使用。
52 左上X[300〜] 【横2以上で使用】

所持数を表示するピクチャのカーソル位置[0]のX表示位置を設定。
実際に所持数を表示する時には、セルフ変数[45:X位置[300〜]]を使用。
53 左上Y 【横2以上で使用】

アイテム名、[×]、所持数を表示するピクチャのカーソル位置[0]のY表示位置を設定。
実際にアイテム名などを表示する時には、セルフ変数[46:Y位置]を使います。
55 基本ピクチャ[0]ウィンドウ ウィンドウを表示するピクチャ番号を設定。
このセルフ変数[55:基本ピクチャ[0]ウィンドウ]の値を変えると、
他のピクチャ番号も連動して変わります。
56 ピクチャ[1]説明欄 【説明欄の表示で使用】

説明欄のウィンドウを表示するピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+1」で設定。
57 ピクチャ[2]説明文 【説明欄の表示で使用】

アイテムの説明文の文字列を表示するピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+2」で設定。

アイテムの説明文は、ユーザーDB[2〜4]項目[1]から取得。
58 ピクチャ[3]スクロールバー 【スクロールバーの表示で使用】

スクロールバーを表示するピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+3」で設定。
59 ピクチャ[10]カーソル カーソルを表示するピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+10」で設定。
60 ピクチャ[11]マウス範囲 【マウス処理で使用】

マウスが反応する範囲を設定するピクチャのピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+11」で設定。
61 ピクチャ[20]▲ [▲]を表示するピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+20」で設定。
62 ピクチャ[21]▼ [▼]を表示するピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+21」で設定。
63 ピクチャ[22]▲▼マウス 【マウス処理で使用】

マウスポインタが[▲][▼]に乗った時に表示するピクチャのピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+22」で設定。
64 ピクチャ[100]アイテム名 アイテム名を表示するピクチャのカーソル位置[0]のピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+100」で設定。
65 ピクチャ[200]× 「×」を表示するピクチャのカーソル位置[0]のピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+200」で設定。
66 ピクチャ[300]所持数 所持数を表示するピクチャのカーソル位置[0]のピクチャ番号を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+300」で設定。
67 ピクチャ[399]消去 全てのピクチャを消去する時のピクチャ番号の最大値を設定。

ピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+399」で設定。

【変数の一覧を別ウィンドウで表示】


▲トップへ戻る▲


  
■試作品を作る

まずは最低限の設定を行った「試作品」を作ります。

▼試作品の表示見本


最初から本格的にアイテムメニューを作ってしまうと、あとで修正するのに時間がかかってしまうため、
まずは仮の文字を設定して、表示位置や表示サイズなどを確認します。

今回は「全角8文字」が表示されるように設定するため、
アイテム名は全角文字で「あいうえおかきく」を設定し、所持数は半角数字で「00」を設定します。

なお、ウディタ[3.00]から初期設定になっているフォント「Meiryo」半角文字の横幅がちょっと広いため、
全角1文字の横幅=半角2文字分の横幅」ではありません。





ピクチャの表示設定は以下にように設定します。



ピクチャー
番号 使用内容 位置
0 ウィンドウ画像 中心 160 120
10 カーソル画像 左上 93 (表示行×16)+24
20 スクロール可能を示すアイコン[▲] 中心 160 19
21 スクロール可能を示すアイコン[▼] 中心 160 221
100〜199 アイテム名 左上 97 (表示行×16)+26
200〜299 アイテム名と所持数の間に表示する「×」 左上 196 (表示行×16)+26
300〜399 所持数 右上 223 (表示行×16)+26

アイテム名のY表示位置は「(表示行×16)+26」の計算で算出します。
一番上の行は「0行目」なので「(0×16)+26」の計算によってY表示位置は「26」、
一番下の行は「11行目」なので「(11×16)+26」の計算によってY表示位置は「202」になります。

カーソルの画像はアイテム名の画像サイズよりも少し大きい画像で表示するため、
表示位置の設定がアイテム名の設定とは少々異なります。

所持数は「位置:右上」で表示します。
右上にする事で、所持数が1桁でも2桁でも右側に揃えて表示する事ができます。

位置「左上」の場合 位置「右上」の場合
アイテム01 × 12
アイテム02 × 8
アイテム03 × 2
アイテム04 × 26
アイテム05 × 1
アイテム06 × 5
アイテム07 × 15
アイテム08 × 2
アイテム01 × 12
アイテム02 × 8
アイテム03 × 2
アイテム04 × 26
アイテム05 × 1
アイテム06 × 5
アイテム07 × 15
アイテム08 × 2



ピクチャ番号や表示位置の設定では「変数呼び出し値(セルフ変数[30]=1600030)」を使って変数の値で設定します。
【変数呼び出し値の説明を見る】

▼ピクチャ[0](ウィンドウ画像)



▼ピクチャ[10](カーソル画像)


表示形式は「加算」にしてください。
【表示形式の説明を見る】


▼ピクチャ[20](アイコン[▲])


文字サイズを変える特殊文字「\f[数値]」を使って少し小さく表示します。

「▲」の文字は「さんかく」を入力して変換すれば出てきます。


▼ピクチャ[21](アイコン[▼])



▼ピクチャ[100〜199](アイテム名)



▼ピクチャ[200〜299]([×])


「×」の文字は「かける」を入力して変換すれば出てきます。


▼ピクチャ[300〜399](所持数)



カーソルの画像は【ピクチャエフェクト】を使って点滅するように設定します。





【イベントコード表示】【コモン出力ファイル】

■試作品

▼ ■■■■■■■■■■■■■■■■■■■■初期設定
■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf24[カーソル位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■ウィンドウ・カーソルを表示
■ピクチャ表示:0 [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,206] X:160 Y:120 / 0(0)フレーム /
        パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:10 [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[134,16] X:93 Y:24 / 0(0)フレーム / パターン 1 /
        透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:10 [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
●ラベル地点「表示更新」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ ■■■■■[▲][▼]を表示
■ピクチャ表示:20 [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:21 [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
▼ ■■■■■アイテム名を表示
■変数操作: CSelf40[ピクチャ処理[100〜]] = 100 + 0
■変数操作: CSelf41[ピクチャ処理[200〜]] = 200 + 0
■変数操作: CSelf42[ピクチャ処理[300〜]] = 300 + 0
■変数操作: CSelf43[X位置[100〜]] = 97 + 0
■変数操作: CSelf44[X位置[200〜]] = 196 + 0
■変数操作: CSelf45[X位置[300〜]] = 223 + 0
■変数操作: CSelf46[Y位置] = 26 + 0
■回数付きループ [ 12 ]回
|■ピクチャ表示:CSelf40[ピクチャ処理[100〜]] [左上]文字列[あいうえおかきく]
       X:CSelf43[X位置[100〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf41[ピクチャ処理[200〜]] [左上]文字列[×]
       X:CSelf44[X位置[200〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf42[ピクチャ処理[300〜]] [右上]文字列[00]
       X:CSelf45[X位置[300〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf40[ピクチャ処理[100〜]]〜CSelf42[ピクチャ処理[300〜]] += 1 + 0
|■変数操作: CSelf46[Y位置] += 16 + 0
|■
◇ループここまで◇◇
▼ ■■■■■カーソルを表示
■変数操作: CSelf46[Y位置] = CSelf24[カーソル位置] * 16
■変数操作: CSelf46[Y位置] += 24 + 0
■ピクチャ移動:10 X:93 Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
▼ ■■■■■■■■■■■■■■■■■■■■キー処理
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力・マウス操作] 上下(8,2) 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 10 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 10 と同じ ]の場合↓
||●ラベル「決定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 11 と同じ ]の場合↓
||●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■カーソル移動処理
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 8 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 8 と同じ ]の場合↓
||▼ ■■■■■上キーを押した
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 1 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 1 以上 ]の場合↓
|||■変数操作: CSelf24[カーソル位置] -= 1 + 0
|||■
||-◇上記以外
|||■変数操作: CSelf24[カーソル位置] = 11 + 0
|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 2 と同じ ]の場合↓
||▼ ■■■■■下キーを押した
||■変数操作: CSelf24[カーソル位置] += 1 + 0
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 12 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 12 以上 ]の場合↓
|| |■変数操作: CSelf24[カーソル位置] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■決定した時の処理
|●ラベル地点「決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■文章:\cself[20]行目を決定。
|■
◇ループここまで◇◇
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■キャンセルした時の処理
|●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■ピクチャ消去:0 〜 399 / 0(0)フレーム
■ウェイト:1 フレーム



■SEの設定について

カーソル移動時にSEを演奏させる場合は…
▼ ■■■■■■■■■■カーソル移動処理
■サウンド:SE1「[システム]カーソル移動」(0 チャンネル) 再生 / 遅延:0フレーム
などと設定してください。


項目を決定した時のSEの演奏は…
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■決定した時の処理
|●ラベル地点「決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■サウンド:SE0「[システム]決定音」(0 チャンネル) 再生 / 遅延:0フレーム
|■文章:\cself[20]行目を決定。
|■
◇ループここまで◇◇
などと設定してください。


キャンセルを実行した時のSEの演奏は…
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■キャンセルした時の処理
|●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■サウンド:SE2「[システム]キャンセル音」(0 チャンネル) 再生 / 遅延:0フレーム
|■
◇ループここまで◇◇
などと設定してください。



★動作テスト

テストプレイを実行し、カーソルの移動や表示サイズなどを確認してください。


▲トップへ戻る▲


  
■試作品から完成品に仕上げる:ピクチャ番号をセルフ変数で設定

上記の試作品から改造し、ピクチャ番号の設定をセルフ変数を使って設定します。

使用内容 ピクチャ番号 セルフ変数
ウィンドウ画像 0 55:基本ピクチャ[0]ウィンドウ
カーソル画像 10 59:ピクチャ[10]カーソル
スクロール可能を示すアイコン[▲] 20 61:ピクチャ[20]▲
スクロール可能を示すアイコン[▼] 21 62:ピクチャ[21]▼
アイテム名 100 64:ピクチャ[100]アイテム名
アイテム名と所持数の間に表示する「×」 200 65:ピクチャ[200]×
所持数 300 66:ピクチャ[300]所持数
消去用 399 67:ピクチャ[399]消去

変数で設定する事で、あとでピクチャ番号を変える時にも、簡単に変える事ができます。

またセルフ変数に名前を設定する事で、何のピクチャの設定なのかが解りやすくなります。



ウィンドウ画像以外のピクチャ番号は「セルフ変数[55:基本ピクチャ[0]ウィンドウ]+10」などで設定します。

このように設定する事で、あとでピクチャ番号を「+1000」にする場合は、
セルフ変数[55:基本ピクチャ[0]ウィンドウ]の値を「1000」にするだけで、全てのピクチャ番号が「+1000」になります。



【イベントコード表示】【コモン出力ファイル】

■試作品+ピクチャ変数

▼ ■■■■■■■■■■■■■■■■■■■■初期設定
▼ ■■■■■ピクチャ番号

■変数操作: CSelf55[基本ピクチャ[0]ウィンドウ] = 0 + 0
■変数操作: CSelf59[ピクチャ[10]カーソル] = CSelf55[基本ピクチャ[0]ウィンドウ] + 10
■変数操作: CSelf61[ピクチャ[20]▲] = CSelf55[基本ピクチャ[0]ウィンドウ] + 20
■変数操作: CSelf62[ピクチャ[21]▼] = CSelf55[基本ピクチャ[0]ウィンドウ] + 21
■変数操作: CSelf64[ピクチャ[100]アイテム名] = CSelf55[基本ピクチャ[0]ウィンドウ] + 100
■変数操作: CSelf65[ピクチャ[200]×] = CSelf55[基本ピクチャ[0]ウィンドウ] + 200
■変数操作: CSelf66[ピクチャ[300]所持数] = CSelf55[基本ピクチャ[0]ウィンドウ] + 300
■変数操作: CSelf67[ピクチャ[399]消去] = CSelf55[基本ピクチャ[0]ウィンドウ] + 399

▼ ■■■■■変数の値を初期化
■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf24[カーソル位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■ウィンドウ・カーソルを表示
■ピクチャ表示:CSelf55[基本ピクチャ[0]ウィンドウ] [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,206]
       X:160 Y:120 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf59[ピクチャ[10]カーソル] [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[134,16]
       X:93 Y:24 / 0(0)フレーム / パターン 1 / 透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf59[ピクチャ[10]カーソル] [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
●ラベル地点「表示更新」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ ■■■■■[▲][▼]を表示
■ピクチャ表示:CSelf61[ピクチャ[20]▲] [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf62[ピクチャ[21]▼] [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
▼ ■■■■■アイテム名を表示
■変数操作: CSelf40[ピクチャ処理[100〜]] = CSelf64[ピクチャ[100]アイテム名] + 0
■変数操作: CSelf41[ピクチャ処理[200〜]] = CSelf65[ピクチャ[200]×] + 0
■変数操作: CSelf42[ピクチャ処理[300〜]] = CSelf66[ピクチャ[300]所持数] + 0
■変数操作: CSelf43[X位置[100〜]] = 97 + 0
■変数操作: CSelf44[X位置[200〜]] = 196 + 0
■変数操作: CSelf45[X位置[300〜]] = 223 + 0
■変数操作: CSelf46[Y位置] = 26 + 0
■回数付きループ [ 12 ]回
|■ピクチャ表示:CSelf40[ピクチャ処理[100〜]] [左上]文字列[あいうえおかきく]
       X:CSelf43[X位置[100〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf41[ピクチャ処理[200〜]] [左上]文字列[×]
       X:CSelf44[X位置[200〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf42[ピクチャ処理[300〜]] [右上]文字列[00]
       X:CSelf45[X位置[300〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf40[ピクチャ処理[100〜]]〜CSelf42[ピクチャ処理[300〜]] += 1 + 0
|■変数操作: CSelf46[Y位置] += 16 + 0
|■
◇ループここまで◇◇
▼ ■■■■■カーソルを表示
■変数操作: CSelf46[Y位置] = CSelf24[カーソル位置] * 16
■変数操作: CSelf46[Y位置] += 24 + 0
■ピクチャ移動:CSelf59[ピクチャ[10]カーソル] X:93 Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
▼ ■■■■■■■■■■■■■■■■■■■■キー処理
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力・マウス操作] 上下(8,2) 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 10 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 10 と同じ ]の場合↓
||●ラベル「決定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 11 と同じ ]の場合↓
||●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■カーソル移動処理
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 8 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 8 と同じ ]の場合↓
||▼ ■■■■■上キーを押した
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 1 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 1 以上 ]の場合↓
|||■変数操作: CSelf24[カーソル位置] -= 1 + 0
|||■
||-◇上記以外
|||■変数操作: CSelf24[カーソル位置] = 11 + 0
|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 2 と同じ ]の場合↓
||▼ ■■■■■下キーを押した
||■変数操作: CSelf24[カーソル位置] += 1 + 0
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 12 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 12 以上 ]の場合↓
|| |■変数操作: CSelf24[カーソル位置] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■決定した時の処理
|●ラベル地点「決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■文章:\cself[20]行目を決定。
|■
◇ループここまで◇◇
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■キャンセルした時の処理
|●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■ピクチャ消去:CSelf55[基本ピクチャ[0]ウィンドウ]CSelf67[ピクチャ[399]消去] / 0(0)フレーム
■ウェイト:1 フレーム



★動作テスト

メニュ画面が試作品と変わらず表示されているかどうかを確認してください。


▲トップへ戻る▲


  
■試作品から完成品に仕上げる:アイテムデータを可変DBに保存

上記の設定に、所持しているアイテムの情報を可変DB[一覧表用]に保存するイベントを追加します。



アイテムを持っているかどうかの判断は、可変DB[7〜9]を調べて「所持数が1以上=持っている」で判断します。



可変DB[一覧表用]には「ユーザーDBのタイプ番号×10000+データID」の情報が保存されます。

アイテム[3:エリクサー]の場合は「ユーザーDB[2:アイテム]×10000+3」で「20003」が保存されます。

武器[5:木の杖]の場合は「ユーザーDB[3:武器]×10000+5」で「30005」が保存されます。

防具[12:ナイトシールド]の場合は「ユーザーDB[4:防具]×10000+12」で「40012」が保存されます。



可変DB[一覧表用]を操作する処理では、セルフ変数[30:保存可変:タイプID]可変DB[一覧表用]のタイプIDを保存し、
セルフ変数[30:保存可変:タイプID]を使って可変DB[一覧表用]を操作します。



コモンイベントの2〜3行目に追加する…
■DB読込(可変): CSelf30[保存可変:タイプID] = 可変DB[タイプ一覧表用(20) のタイプ番号]
■変数操作: CSelf31[保存可変:項目ID] = 0 + 0
の設定を…
■DB読込(可変): CSelf30[保存可変:タイプID] = 可変DB[タイプ× お店一時処理用(16) のタイプ番号]
■変数操作: CSelf31[保存可変:項目ID] = 0 + 0
などに変えると、可変DB[16:× お店一時処理用]で保存する事ができます。

可変DB[16:× お店一時処理用]可変DB[19:万能ウィンドウ一時DB]で保存する場合は、項目[0]文字列であるため…
■DB読込(可変): CSelf30[保存可変:タイプID] = 可変DB[タイプ× お店一時処理用(16) のタイプ番号]
■変数操作: CSelf31[保存可変:項目ID] = 1 + 0
と言ったように、項目[1]に保存するように設定する必要があります。

なお、可変DB[16:× お店一時処理用]可変DB[19:万能ウィンドウ一時DB]を使う場合は、可変DB[一覧表用]の設定は不要です。



【イベントコード表示】【コモン出力ファイル】

■試作品+ピクチャ変数+可変DBに保存

▼ ■■■■■■■■■■■■■■■■■■■■初期設定
▼ ■■■■■アイテムIDを保存する可変DB
■DB読込(可変): CSelf30[保存可変:タイプID] = 可変DB[タイプ一覧表用(20) のタイプ番号]
■変数操作: CSelf31[保存可変:項目ID] = 0 + 0

▼ ■■■■■ピクチャ番号
■変数操作: CSelf55[基本ピクチャ[0]ウィンドウ] = 0 + 0
■変数操作: CSelf59[ピクチャ[10]カーソル] = CSelf55[基本ピクチャ[0]ウィンドウ] + 10
■変数操作: CSelf61[ピクチャ[20]▲] = CSelf55[基本ピクチャ[0]ウィンドウ] + 20
■変数操作: CSelf62[ピクチャ[21]▼] = CSelf55[基本ピクチャ[0]ウィンドウ] + 21
■変数操作: CSelf64[ピクチャ[100]アイテム名] = CSelf55[基本ピクチャ[0]ウィンドウ] + 100
■変数操作: CSelf65[ピクチャ[200]×] = CSelf55[基本ピクチャ[0]ウィンドウ] + 200
■変数操作: CSelf66[ピクチャ[300]所持数] = CSelf55[基本ピクチャ[0]ウィンドウ] + 300
■変数操作: CSelf67[ピクチャ[399]消去] = CSelf55[基本ピクチャ[0]ウィンドウ] + 399
▼ ■■■■■変数の値を初期化
■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf24[カーソル位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■ウィンドウ・カーソルを表示
■ピクチャ表示:CSelf55[基本ピクチャ[0]ウィンドウ] [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,206]
       X:160 Y:120 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf59[ピクチャ[10]カーソル] [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[134,16]
       X:93 Y:24 / 0(0)フレーム / パターン 1 / 透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf59[ピクチャ[10]カーソル] [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■■■■■■■■■■■所持アイテムをチェック
■可変DB書込:[タイプ CSelf30[保存可変:タイプID](-) を初期化]
■変数操作: CSelf32[可変DB登録数] = 0 + 0
▼ ■■■■■アイテムの所持数1以上→可変DBに「20000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┣所持アイテム個数(7)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┣所持アイテム個数 : CSelf34[データID] : 0 ] (7 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 20000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■武器の所持数1以上→可変DBに「30000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┣所持武器個数(8)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┣所持武器個数 : CSelf34[データID] : 0 ] (8 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 30000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■防具の所持数1以上→可変DBに「40000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┗所持防具個数(9)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┗所持防具個数 : CSelf34[データID] : 0 ] (9 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 40000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
■文章:所持有り総数=\cself[32]<動作テスト用に設定
▼ ■■■■■スクロールできる最大数を設定
■変数操作: CSelf28[スクロール最大行] = CSelf32[可変DB登録数] - 12
■変数操作: CSelf28[スクロール最大行] 下限= 0 + 0

▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
●ラベル地点「表示更新」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ ■■■■■[▲][▼]を表示
■ピクチャ表示:CSelf61[ピクチャ[20]▲] [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf62[ピクチャ[21]▼] [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
▼ ■■■■■アイテム名を表示
■変数操作: CSelf40[ピクチャ処理[100〜]] = CSelf64[ピクチャ[100]アイテム名] + 0
■変数操作: CSelf41[ピクチャ処理[200〜]] = CSelf65[ピクチャ[200]×] + 0
■変数操作: CSelf42[ピクチャ処理[300〜]] = CSelf66[ピクチャ[300]所持数] + 0
■変数操作: CSelf43[X位置[100〜]] = 97 + 0
■変数操作: CSelf44[X位置[200〜]] = 196 + 0
■変数操作: CSelf45[X位置[300〜]] = 223 + 0
■変数操作: CSelf46[Y位置] = 26 + 0
■回数付きループ [ 12 ]回
|■ピクチャ表示:CSelf40[ピクチャ処理[100〜]] [左上]文字列[あいうえおかきく]
       X:CSelf43[X位置[100〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf41[ピクチャ処理[200〜]] [左上]文字列[×]
       X:CSelf44[X位置[200〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf42[ピクチャ処理[300〜]] [右上]文字列[00]
       X:CSelf45[X位置[300〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf40[ピクチャ処理[100〜]]〜CSelf42[ピクチャ処理[300〜]] += 1 + 0
|■変数操作: CSelf46[Y位置] += 16 + 0
|■
◇ループここまで◇◇
▼ ■■■■■カーソルを表示
■変数操作: CSelf46[Y位置] = CSelf24[カーソル位置] * 16
■変数操作: CSelf46[Y位置] += 24 + 0
■ピクチャ移動:CSelf59[ピクチャ[10]カーソル] X:93 Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
▼ ■■■■■■■■■■■■■■■■■■■■キー処理
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力・マウス操作] 上下(8,2) 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 10 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 10 と同じ ]の場合↓
||●ラベル「決定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 11 と同じ ]の場合↓
||●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■カーソル移動処理
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 8 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 8 と同じ ]の場合↓
||▼ ■■■■■上キーを押した
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 1 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 1 以上 ]の場合↓
|||■変数操作: CSelf24[カーソル位置] -= 1 + 0
|||■
||-◇上記以外
|||■変数操作: CSelf24[カーソル位置] = 11 + 0
|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 2 と同じ ]の場合↓
||▼ ■■■■■下キーを押した
||■変数操作: CSelf24[カーソル位置] += 1 + 0
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 12 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 12 以上 ]の場合↓
|| |■変数操作: CSelf24[カーソル位置] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■決定した時の処理
|●ラベル地点「決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■文章:\cself[20]行目を決定。
|■
◇ループここまで◇◇
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■キャンセルした時の処理
|●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■ピクチャ消去:CSelf55[基本ピクチャ[0]ウィンドウ] 〜 CSelf67[ピクチャ[399]消去] / 0(0)フレーム
■ウェイト:1 フレーム



★動作テスト

自作アイテムメニューを起動すると、メッセージウィンドウにセルフ[32:可変DB登録数]が表示されます。

例えばアイテム「薬草」「癒しの水」、武器「ダガー」、防具「レザーシールド」の4種類を持っている場合は、
メッセージウィンドウには下図のように「所持有り総数=4」が表示されます。



メッセージウィンドウを消した後のメニュー画面の表示は、現段階では試作品と変わらず「あいうえおかきく×00」になります。


▲トップへ戻る▲


  
■試作品から完成品に仕上げる:アイテム名を表示

上記の設定に、アイテム名を表示する処理を追加します。



可変DB[一覧表用]に保存したアイテムIDを基にユーザーDB[2〜4]から名前を取得して表示します。

また可変DB[7〜9]から所持数を取得して表示します。



ピクチャの文字列の設定は、以下のように変更します。

ピクチャー
番号 変更前文字列 変更後文字列
100〜199 あいうえおかきく \udb[\cself[36]:\cself[35]:0]
200〜299 × ×
300〜399 00 \cdb[\cself[37]:\cself[35]:0]



セルフ[27:スクロール行数]の値が「1以上」の場合は、その行数分の可変DB[一覧表用]のデータIDがパスされます。

例えばアイテム[A][B][C]が可変DB[一覧表用]に登録されている場合、通常は[A]から順に表示していきますが、
セルフ[27:スクロール行数]が「2」の場合は、最初の2つ([A][B])は表示せず、[C]からの表示になります。



アイテム名が全角8文字より長い場合は、横拡大率を小さくして表示します。



座標は「相対モード」にチェックを入れて「X=0」「Y=0」を設定。

拡大率は「別々」にチェックを入れて「横:1600015」を設定。



ピクチャ[20〜21]([▲][▼])を表示するイベントコマンドは、設定内容は変わっていませんが、
イベントコマンドの設定位置が条件分岐の中に移動しています。



【イベントコード表示】【コモン出力ファイル】

■試作品+ピクチャ変数+可変DBに保存+アイテム名表示

▼ ■■■■■■■■■■■■■■■■■■■■初期設定
▼ ■■■■■アイテムIDを保存する可変DB
■DB読込(可変): CSelf30[保存可変:タイプID] = 可変DB[タイプ一覧表用(20) のタイプ番号]
■変数操作: CSelf31[保存可変:項目ID] = 0 + 0
▼ ■■■■■一覧の表示数
■変数操作: CSelf21[縦項目数] = 12 + 0
▼ ■■■■■ピクチャ番号
■変数操作: CSelf55[基本ピクチャ[0]ウィンドウ] = 0 + 0
■変数操作: CSelf59[ピクチャ[10]カーソル] = CSelf55[基本ピクチャ[0]ウィンドウ] + 10
■変数操作: CSelf61[ピクチャ[20]▲] = CSelf55[基本ピクチャ[0]ウィンドウ] + 20
■変数操作: CSelf62[ピクチャ[21]▼] = CSelf55[基本ピクチャ[0]ウィンドウ] + 21
■変数操作: CSelf64[ピクチャ[100]アイテム名] = CSelf55[基本ピクチャ[0]ウィンドウ] + 100
■変数操作: CSelf65[ピクチャ[200]×] = CSelf55[基本ピクチャ[0]ウィンドウ] + 200
■変数操作: CSelf66[ピクチャ[300]所持数] = CSelf55[基本ピクチャ[0]ウィンドウ] + 300
■変数操作: CSelf67[ピクチャ[399]消去] = CSelf55[基本ピクチャ[0]ウィンドウ] + 399
▼ ■■■■■変数の値を初期化
■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf24[カーソル位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■ウィンドウ・カーソルを表示
■ピクチャ表示:CSelf55[基本ピクチャ[0]ウィンドウ] [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,206]
       X:160 Y:120 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf59[ピクチャ[10]カーソル] [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[134,16]
       X:93 Y:24 / 0(0)フレーム / パターン 1 / 透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf59[ピクチャ[10]カーソル] [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■■■■■■■■■■■所持アイテムをチェック
■可変DB書込:[タイプ CSelf30[保存可変:タイプID](-) を初期化]
■変数操作: CSelf32[可変DB登録数] = 0 + 0
▼ ■■■■■アイテムの所持数1以上→可変DBに「20000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┣所持アイテム個数(7)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┣所持アイテム個数 : CSelf34[データID] : 0 ] (7 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 20000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■武器の所持数1以上→可変DBに「30000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┣所持武器個数(8)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┣所持武器個数 : CSelf34[データID] : 0 ] (8 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 30000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■防具の所持数1以上→可変DBに「40000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┗所持防具個数(9)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┗所持防具個数 : CSelf34[データID] : 0 ] (9 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 40000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
■文章:所持有り総数=\cself[32]<削除
▼ ■■■■■スクロールできる最大数を設定
■変数操作: CSelf28[スクロール最大行] = CSelf32[可変DB登録数] - CSelf21[縦項目数]
■変数操作: CSelf28[スクロール最大行] 下限= 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
●ラベル地点「表示更新」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ ■■■■■[▲][▼]を表示
■ピクチャ消去:CSelf61[ピクチャ[20]▲] 〜 CSelf62[ピクチャ[21]▼] / 0(0)フレーム
■条件分岐(変数): 【1】 CSelf27[スクロール行数] が 1 以上
-◇分岐: 【1】 [ CSelf27[スクロール行数] が 1 以上 ]の場合↓
|■ピクチャ表示:CSelf61[ピクチャ[20]▲] [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
<条件分岐内へ移動
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf27[スクロール行数] が CSelf28[スクロール最大行] 未満
-◇分岐: 【1】 [ CSelf27[スクロール行数] が CSelf28[スクロール最大行] 未満 ]の場合↓
|■ピクチャ表示:CSelf62[ピクチャ[21]▼] [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
<条件分岐内へ移動
|■
◇分岐終了◇
▼ ■■■■■アイテム名を表示
■ピクチャ消去:CSelf64[ピクチャ[100]アイテム名] 〜 CSelf67[ピクチャ[399]消去] / 0(0)フレーム

■変数操作: CSelf40[ピクチャ処理[100〜]] = CSelf64[ピクチャ[100]アイテム名] + 0
■変数操作: CSelf41[ピクチャ処理[200〜]] = CSelf65[ピクチャ[200]×] + 0
■変数操作: CSelf42[ピクチャ処理[300〜]] = CSelf66[ピクチャ[300]所持数] + 0
■変数操作: CSelf43[X位置[100〜]] = 97 + 0
■変数操作: CSelf44[X位置[200〜]] = 196 + 0
■変数操作: CSelf45[X位置[300〜]] = 223 + 0
■変数操作: CSelf46[Y位置] = 26 + 0
■変数操作: CSelf34[データID] = CSelf27[スクロール行数] + 0
■回数付きループ [ CSelf21[縦項目数] ]回
|■DB読込(可変): CSelf35[アイテムID] =
         可変DB[CSelf30[保存可変:タイプID]:CSelf34[データID]:CSelf31[保存可変:項目ID]](- : - : -)
|■条件分岐(変数): 【1】 CSelf35[アイテムID] が 0 と同じ
|-◇分岐: 【1】 [ CSelf35[アイテムID] が 0 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf36[タイプID:ユーザ[2-4]]〜CSelf37[タイプID:可変[7-9]] = CSelf35[アイテムID] / 10000
|■変数操作: CSelf37[タイプID:可変[7-9]] += 5 + 0
|■変数操作: CSelf35[アイテムID] %= 10000 + 0

|■ピクチャ表示:CSelf40[ピクチャ処理[100〜]] [左上]文字列[\udb[\cself[36]:\cself[35]:0]]
       X:CSelf43[X位置[100〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf41[ピクチャ処理[200〜]] [左上]文字列[×] X:CSelf44[X位置[200〜]] Y:CSelf46[Y位置] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf42[ピクチャ処理[300〜]] [右上]文字列[\cdb[\cself[37]:\cself[35]:0]]
       X:CSelf45[X位置[300〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf15[一時:所持数・拡大率・幅] = 96 * 100
|■変数操作+: CSelf15[一時:所持数・拡大率・幅] /= ピクチャ:CSelf40[ピクチャ処理[100〜]] の 画像サイズ(横)
|■変数操作: CSelf15[一時:所持数・拡大率・幅] 上限= 100 + 0
|■ピクチャ移動:CSelf40[ピクチャ処理[100〜]] 相対X:0 Y:0 / 0(0)フレーム / パターン 同値 /
       透 同値 / 表示形式:同値 / 角 同値 / 拡 CSelf15[一時:所持数・拡大率・幅]x100% / カラー 同値

|■変数操作: CSelf40[ピクチャ処理[100〜]]〜CSelf42[ピクチャ処理[300〜]] += 1 + 0
|■変数操作: CSelf46[Y位置] += 16 + 0
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■カーソルを表示
■変数操作: CSelf46[Y位置] = CSelf24[カーソル位置] * 16
■変数操作: CSelf46[Y位置] += 24 + 0
■ピクチャ移動:CSelf59[ピクチャ[10]カーソル] X:93 Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
▼ ■■■■■■■■■■■■■■■■■■■■キー処理
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力・マウス操作] 上下(8,2) 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 10 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 10 と同じ ]の場合↓
||●ラベル「決定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 11 と同じ ]の場合↓
||●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■カーソル移動処理
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 8 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 8 と同じ ]の場合↓
||▼ ■■■■■上キーを押した
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 1 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 1 以上 ]の場合↓
|||■変数操作: CSelf24[カーソル位置] -= 1 + 0
|||■
||-◇上記以外
|||■変数操作: CSelf24[カーソル位置] = 11 + 0
|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 2 と同じ ]の場合↓
||▼ ■■■■■下キーを押した
||■変数操作: CSelf24[カーソル位置] += 1 + 0
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が CSelf21[縦項目数] 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が CSelf21[縦項目数] 以上 ]の場合↓
|| |■変数操作: CSelf24[カーソル位置] = 0 + 0
|||■
||◇分岐終了◇
||■
|◇分岐終了◇
|●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■決定した時の処理
|●ラベル地点「決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■文章:\cself[20]行目を決定。
|■
◇ループここまで◇◇
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■キャンセルした時の処理
|●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■ピクチャ消去:CSelf55[基本ピクチャ[0]ウィンドウ] 〜 CSelf67[ピクチャ[399]消去] / 0(0)フレーム
■ウェイト:1 フレーム



★動作テスト

動作テストを行うと、メニュー画面に現在所持しているアイテム名と所持数が表示されます。

現段階ではスクロール機能を設定していないので、13個のアイテムがあっても最初の12個のアイテムしか表示できません。

また11個以下の場合、アイテム名が無い所にもカーソルが移動できる状態になります。


▲トップへ戻る▲


  
■試作品から完成品に仕上げる:スクロール機能を追加

上記の設定に、スクロール機能を追加し、「横1×縦12」の処理を完成させます。



セルフ[32:可変DB登録数]が「13以上」の時に、
メニュー画面の最上行で上キー、または最下行で下キーを押した時には、メニュー画面がスクロールします。



コメント「決定した時の処理」の所にある【文章の表示】は、決定したアイテムの名前が表示されるように改造します。



【イベントコード表示】【コモン出力ファイル】

■「横1×縦12」の完成品

▼ ■■■■■■■■■■■■■■■■■■■■初期設定
▼ ■■■■■アイテムIDを保存する可変DB
■DB読込(可変): CSelf30[保存可変:タイプID] = 可変DB[タイプ一覧表用(20) のタイプ番号]
■変数操作: CSelf31[保存可変:項目ID] = 0 + 0
▼ ■■■■■一覧の表示数
■変数操作: CSelf21[縦項目数] = 12 + 0
▼ ■■■■■ピクチャ番号
■変数操作: CSelf55[基本ピクチャ[0]ウィンドウ] = 0 + 0
■変数操作: CSelf59[ピクチャ[10]カーソル] = CSelf55[基本ピクチャ[0]ウィンドウ] + 10
■変数操作: CSelf61[ピクチャ[20]▲] = CSelf55[基本ピクチャ[0]ウィンドウ] + 20
■変数操作: CSelf62[ピクチャ[21]▼] = CSelf55[基本ピクチャ[0]ウィンドウ] + 21
■変数操作: CSelf64[ピクチャ[100]アイテム名] = CSelf55[基本ピクチャ[0]ウィンドウ] + 100
■変数操作: CSelf65[ピクチャ[200]×] = CSelf55[基本ピクチャ[0]ウィンドウ] + 200
■変数操作: CSelf66[ピクチャ[300]所持数] = CSelf55[基本ピクチャ[0]ウィンドウ] + 300
■変数操作: CSelf67[ピクチャ[399]消去] = CSelf55[基本ピクチャ[0]ウィンドウ] + 399
▼ ■■■■■変数の値を初期化
■変数操作: CSelf12[起動時キー押し禁止] = 1 + 0
■変数操作: CSelf24[カーソル位置] = 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■ウィンドウ・カーソルを表示
■ピクチャ表示:CSelf55[基本ピクチャ[0]ウィンドウ] [中心]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,206]
       X:160 Y:120 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャ表示:CSelf59[ピクチャ[10]カーソル] [左上]ウィンドウ「SystemFile/CursorBase.png」サイズ[134,16]
       X:93 Y:24 / 0(0)フレーム / パターン 1 / 透 255 / 加算 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ピクチャエフェクト:CSelf59[ピクチャ[10]カーソル] [点滅A(明滅)] R100/G100/B100 明滅間隔(30)フレーム
▼ ■■■■■■■■■■■■■■■■■■■■所持アイテムをチェック
■可変DB書込:[タイプ CSelf30[保存可変:タイプID](-) を初期化]
■変数操作: CSelf32[可変DB登録数] = 0 + 0
▼ ■■■■■アイテムの所持数1以上→可変DBに「20000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┣所持アイテム個数(7)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┣所持アイテム個数 : CSelf34[データID] : 0 ] (7 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 20000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■武器の所持数1以上→可変DBに「30000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┣所持武器個数(8)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┣所持武器個数 : CSelf34[データID] : 0 ] (8 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 30000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■防具の所持数1以上→可変DBに「40000+データID」を保存
■DB読込(可変): CSelf33[全データ数] = 可変DB[タイプ┗所持防具個数(9)のデータ数]
■変数操作: CSelf34[データID] = 0 + 0
■回数付きループ [ CSelf33[全データ数] ]回
|■DB読込(可変): CSelf15[一時:所持数・拡大率・幅] =
         可変DB[ ┗所持防具個数 : CSelf34[データID] : 0 ] (9 : - : 所持個数)
|■条件分岐(変数): 【1】 CSelf15[一時:所持数・拡大率・幅] が 1 以上
|-◇分岐: 【1】 [ CSelf15[一時:所持数・拡大率・幅] が 1 以上 ]の場合↓
||■変数操作: CSelf35[アイテムID] = CSelf34[データID] + 40000
||■可変DB書込:DB[ CSelf30[保存可変:タイプID] : CSelf32[可変DB登録数] : CSelf31[保存可変:項目ID] ]
        (- : - : -) = CSelf35[アイテムID]
||■変数操作: CSelf32[可変DB登録数] += 1 + 0
||■
|◇分岐終了◇
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■スクロールできる最大数を設定
■変数操作: CSelf28[スクロール最大行] = CSelf32[可変DB登録数] - CSelf21[縦項目数]
■変数操作: CSelf28[スクロール最大行] 下限= 0 + 0
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
●ラベル地点「表示更新」 <<<<<<<<<<<<<<<<<<<<<<<<★
▼ ■■■■■[▲][▼]を表示
■ピクチャ消去:CSelf61[ピクチャ[20]▲] 〜 CSelf62[ピクチャ[21]▼] / 0(0)フレーム
■条件分岐(変数): 【1】 CSelf27[スクロール行数] が 1 以上
-◇分岐: 【1】 [ CSelf27[スクロール行数] が 1 以上 ]の場合↓
|■ピクチャ表示:CSelf61[ピクチャ[20]▲] [中心]文字列[\f[10]▲] X:160 Y:19 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇
■条件分岐(変数): 【1】 CSelf27[スクロール行数] が CSelf28[スクロール最大行] 未満
-◇分岐: 【1】 [ CSelf27[スクロール行数] が CSelf28[スクロール最大行] 未満 ]の場合↓
|■ピクチャ表示:CSelf62[ピクチャ[21]▼] [中心]文字列[\f[10]▼] X:160 Y:221 / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■
◇分岐終了◇
▼ ■■■■■アイテム名を表示
■ピクチャ消去:CSelf64[ピクチャ[100]アイテム名] 〜 CSelf67[ピクチャ[399]消去] / 0(0)フレーム
■変数操作: CSelf40[ピクチャ処理[100〜]] = CSelf64[ピクチャ[100]アイテム名] + 0
■変数操作: CSelf41[ピクチャ処理[200〜]] = CSelf65[ピクチャ[200]×] + 0
■変数操作: CSelf42[ピクチャ処理[300〜]] = CSelf66[ピクチャ[300]所持数] + 0
■変数操作: CSelf43[X位置[100〜]] = 97 + 0
■変数操作: CSelf44[X位置[200〜]] = 196 + 0
■変数操作: CSelf45[X位置[300〜]] = 223 + 0
■変数操作: CSelf46[Y位置] = 26 + 0
■変数操作: CSelf34[データID] = CSelf27[スクロール行数] + 0
■回数付きループ [ CSelf21[縦項目数] ]回
|■DB読込(可変): CSelf35[アイテムID] =
         可変DB[CSelf30[保存可変:タイプID]:CSelf34[データID]:CSelf31[保存可変:項目ID]](- : - : -)
|■条件分岐(変数): 【1】 CSelf35[アイテムID] が 0 と同じ
|-◇分岐: 【1】 [ CSelf35[アイテムID] が 0 と同じ ]の場合↓
||■ループ中断
||■
|◇分岐終了◇
|■変数操作: CSelf36[タイプID:ユーザ[2-4]]〜CSelf37[タイプID:可変[7-9]] = CSelf35[アイテムID] / 10000
|■変数操作: CSelf37[タイプID:可変[7-9]] += 5 + 0
|■変数操作: CSelf35[アイテムID] %= 10000 + 0
|■ピクチャ表示:CSelf40[ピクチャ処理[100〜]] [左上]文字列[\udb[\cself[36]:\cself[35]:0]]
       X:CSelf43[X位置[100〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf41[ピクチャ処理[200〜]] [左上]文字列[×] X:CSelf44[X位置[200〜]] Y:CSelf46[Y位置] /
       0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■ピクチャ表示:CSelf42[ピクチャ処理[300〜]] [右上]文字列[\cdb[\cself[37]:\cself[35]:0]]
       X:CSelf45[X位置[300〜]] Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■変数操作: CSelf15[一時:所持数・拡大率・幅] = 96 * 100
|■変数操作+: CSelf15[一時:所持数・拡大率・幅] /= ピクチャ:CSelf40[ピクチャ処理[100〜]] の 画像サイズ(横)
|■変数操作: CSelf15[一時:所持数・拡大率・幅] 上限= 100 + 0
|■ピクチャ移動:CSelf40[ピクチャ処理[100〜]] 相対X:0 Y:0 / 0(0)フレーム / パターン 同値 /
       透 同値 / 表示形式:同値 / 角 同値 / 拡 CSelf15[一時:所持数・拡大率・幅]x100% / カラー 同値
|■変数操作: CSelf40[ピクチャ処理[100〜]]〜CSelf42[ピクチャ処理[300〜]] += 1 + 0
|■変数操作: CSelf46[Y位置] += 16 + 0
|■変数操作: CSelf34[データID] += 1 + 0
|■
◇ループここまで◇◇
▼ ■■■■■カーソルを表示
■変数操作: CSelf46[Y位置] = CSelf24[カーソル位置] * 16
■変数操作: CSelf46[Y位置] += 24 + 0
■ピクチャ移動:CSelf59[ピクチャ[10]カーソル] X:93 Y:CSelf46[Y位置] / 0(0)フレーム / パターン 1 /
       透 255 / 表示形式:同値 / 角 0 / 拡 同値 / カラー 同値
▼ ■■■■■■■■■■■■■■■■■■■■キー処理
■ループ開始
|■ウェイト:1 フレーム
|■変数操作: CSelf11[キー待ち時間] -= 1 + 0
|■キー入力:CSelf10[キー入力・マウス操作] 上下(8,2) 決定(10) キャンセル(11)
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 0 と同じ
          【2】 CSelf12[起動時キー押し禁止] が 1 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 0 と同じ ]の場合↓
||■変数操作: CSelf11[キー待ち時間]〜CSelf12[起動時キー押し禁止] = 0 + 0
||■ループ開始へ戻る
||■
|-◇分岐: 【2】 [ CSelf12[起動時キー押し禁止] が 1 と同じ ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 10 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 11 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 10 と同じ ]の場合↓
||●ラベル「決定」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 11 と同じ ]の場合↓
||●ラベル「キャンセル」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
||■
|◇分岐終了◇
|■条件分岐(変数): 【1】 CSelf11[キー待ち時間] が 1 以上
|-◇分岐: 【1】 [ CSelf11[キー待ち時間] が 1 以上 ]の場合↓
||■ループ開始へ戻る
||■
|◇分岐終了◇
|▼ ■■■■■■■■■■カーソル移動処理
|■変数操作: CSelf11[キー待ち時間] = 12 + 0
|■条件分岐(変数): 【1】 CSelf10[キー入力・マウス操作] が 8 と同じ
          【2】 CSelf10[キー入力・マウス操作] が 2 と同じ
|-◇分岐: 【1】 [ CSelf10[キー入力・マウス操作] が 8 と同じ ]の場合↓
||▼ ■■■■■上キーを押した
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が 1 以上
          【2】 CSelf27[スクロール行数] が 1 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が 1 以上 ]の場合↓
|||■変数操作: CSelf24[カーソル位置] -= 1 + 0
|||■
||-◇分岐: 【2】 [ CSelf27[スクロール行数] が 1 以上 ]の場合↓
|||■変数操作: CSelf27[スクロール行数] -= 1 + 0
|||■

||-◇上記以外
|||■変数操作: CSelf24[カーソル位置] = CSelf32[可変DB登録数] - 1
|||■変数操作: CSelf24[カーソル位置] -= CSelf28[スクロール最大行] + 0
|||■変数操作: CSelf27[スクロール行数] = CSelf28[スクロール最大行] + 0

|||■
||◇分岐終了◇
||■
|-◇分岐: 【2】 [ CSelf10[キー入力・マウス操作] が 2 と同じ ]の場合↓
||▼ ■■■■■下キーを押した
||■変数操作: CSelf24[カーソル位置] += 1 + 0
||■条件分岐(変数): 【1】 CSelf24[カーソル位置] が CSelf21[縦項目数] 以上
          【2】 CSelf24[カーソル位置] が CSelf32[可変DB登録数] 以上
||-◇分岐: 【1】 [ CSelf24[カーソル位置] が CSelf21[縦項目数] 以上 ]の場合↓
|||■条件分岐(変数): 【1】 CSelf27[スクロール行数] が CSelf28[スクロール最大行] 未満
|||-◇分岐: 【1】 [ CSelf27[スクロール行数] が CSelf28[スクロール最大行] 未満 ]の場合↓
||||■変数操作: CSelf24[カーソル位置] -= 1 + 0
||||■変数操作: CSelf27[スクロール行数] += 1 + 0
||||■
|||-◇上記以外
||||■変数操作: CSelf24[カーソル位置] = 0 + 0<設定位置を移動
||||■変数操作: CSelf27[スクロール行数] = 0 + 0
||||■
|||◇分岐終了◇

|||■
||-◇分岐: 【2】 [ CSelf24[カーソル位置] が CSelf32[可変DB登録数] 以上 ]の場合↓
|||■変数操作: CSelf24[カーソル位置] = 0 + 0
|||■

||◇分岐終了◇
|●ラベル「表示更新」に飛ぶ >>>>>>>>>>>>>>>>>>>>>>>>>
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■■
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■決定した時の処理
|●ラベル地点「決定」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■条件分岐(変数): 【1】 CSelf32[可変DB登録数] が 0 と同じ
|-◇分岐: 【1】 [ CSelf32[可変DB登録数] が 0 と同じ ]の場合↓
| |■ループ中断
| |■
|◇分岐終了◇
|■変数操作: CSelf24[カーソル位置] += CSelf27[スクロール行数] + 0
|■DB読込(可変): CSelf35[アイテムID] =
         可変DB[CSelf30[保存可変:タイプID]:CSelf24[カーソル位置]:CSelf31[保存可変:項目ID]](-: - :-)
|■変数操作: CSelf36[タイプID:ユーザ[2-4]] = CSelf35[アイテムID] / 10000
|■変数操作: CSelf35[アイテムID] %= 10000 + 0

|■文章:「\udb[\cself[36]:\cself[35]:0]」を決定。
|■
◇ループここまで◇◇
■回数付きループ [ 0 ]回
|▼ ■■■■■■■■■■キャンセルした時の処理
|●ラベル地点「キャンセル」 <<<<<<<<<<<<<<<<<<<<<<<<★
|■
◇ループここまで◇◇
▼ ■■■■■■■■■■終了処理
■ピクチャ消去:CSelf55[基本ピクチャ[0]ウィンドウ] 〜 CSelf67[ピクチャ[399]消去] / 0(0)フレーム
■ウェイト:1 フレーム



以上で設定完了です。

テストプレイを実行して、動作確認を行ってください。

▼動作イメージ



▲トップへ戻る▲



◎関連ページ

◆自作アイテムメニューを作る
┣◆自作アイテムメニュー:[横2×縦12]に改造
┣◆自作アイテムメニュー:説明欄を追加
┣◆自作アイテムメニュー:マウス操作を追加
┗◆自作アイテムメニュー:スクロールバーを追加

◆自作メニューの基礎講座
┗◆自作メニュー:横4×縦3

◆万能ウィンドウについて
┗◆万能ウィンドウの設定例

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