> [やりたいこと]
> hhttps://silka-blog.com/w-editor/battletest1
> hhttps://silka-blog.com/w-editor/battletest2
> こちらのサイトを参考に万能ウィンドウで敵グループリストから敵と戦う戦闘テストコモンを作りました。
> この戦闘テストコモンのリストの隣にウィンドウを表示させて、
> リストをカーソルを移動させる度に別ウィンドウに敵グループのモンスター名を表示させる機能を追加したい。
>
> 敵1 スライム
> 敵2 オオカミ
> 敵3 オオカミ
> 敵4
> 敵5
> 敵6
> 敵7
>
> といった風に。
> 敵が登録されていない所は空白にしたいです。
>
>
> [やってみたこと]
> ウルファールGPTに相談、グーグル検索、
> http://yado.tk/wolf/
> こちらのサイトの万能ウィンドウ関連を読む。
>
> [やってみた結果、どううまくいかないか]
> モンスター名の表示は出来たが、最初に開いた段階ではモンスター名が表示されておらず、一度カーソル移動をしないと表示されない。
> カーソル移動をする度に敵グループリストと説明欄が開閉し直す状態になっていて煩い。
>
> 万能ウィンドウ選択実行や描画処理、モンスター名取得と表示の適切な処理や順序が分からずラベルジャンプで無理やり処理させています……。
>
>
> 添付画像は戦闘テストコモンから改変した箇所のスクショです。
> どなたかご教授頂けると幸いです。
> また、初心者故に自分で追記した箇所の処理が非常に非効率になっている気もしますので、もっとスマートに処理できるのであれば、そこも教えて頂けると嬉しいです。
万能ウィンドウのキー処理の後に敵キャラの名前を表示する処理を置けば、
当然ながら万能ウィンドウのキー処理を1回実行しないと敵キャラの名前は表示されないでしょう。
またキー処理のすぐ下に消去する処理をおけば、キーを押すごとに消去と表示が繰り返されるでしょう。
以下の設定例を参考にしてみてください。
■DB書込(可変):可変DB[ 基本システム用変数:9:0 ] (18:万能ウィンドウ表示X:数値) = 0
■DB書込(可変):可変DB[ 基本システム用変数:10:0 ] (18:万能ウィンドウ表示Y:数値) = 0
■DB書込(可変):可変DB[ 基本システム用変数:11:0 ] (18:万能ウィンドウ横サイズ:数値) = 150
■DB書込(可変):可変DB[ 基本システム用変数:12:0 ] (18:万能ウィンドウ縦サイズ:数値) = Sys117:[読]画面サイズY
■DB書込(可変):可変DB[ 基本システム用変数:13:0 ] (18:万能ウィンドウ横項目数:数値) = 1
■DB書込(可変):可変DB[ 基本システム用変数:14:0 ] (18:万能ウィンドウ縦項目数:数値) = 15
■DB読込(ユーザ): CSelf10[総数] = ユーザDB[タイプ13(敵グループ)のデータ数]
■DB書込(可変):可変DB[ 基本システム用変数:万能ウィンドウ項目個数:0 ] (18:17:数値) = CSelf10[総数]
■DB書込:可変DB [タイプ 19(万能ウィンドウ一時DB) を初期化]
■変数操作: CSelf11[ID] = -1 + 0
■回数付きループ [ CSelf10[総数] ]回
|■変数操作: CSelf11[ID] += 1 + 0
|■DB読込(ユーザ): CSelf5 = ユーザDB[タイプ13(敵グループ) データCSelf11[ID](-)のデータ名]
|■DB書込(可変):可変DB[ 19:CSelf11[ID]:0 ] (万能ウィンドウ一時DB:-:項目文) = CSelf5
|■DB書込(可変):可変DB[ 19:CSelf11[ID]:1 ] (万能ウィンドウ一時DB:-:項目コード) = CSelf11[ID]
|■DB書込(可変):可変DB[ 19:CSelf11[ID]:2 ] (万能ウィンドウ一時DB:-:選択可能状態[1=可]) = 1
|■
◇ループここまで◇◇
■DB書込(可変):可変DB[ 18:万能ウィンドウ カーソル位置コード:0 ] (基本システム用変数:18:数値) = 0
■イベントの挿入[名]: ["X[共]万能ウィンドウ描画処理"] <コモンEv 64> / 0:表示 / -1 / 0:表示しない / 1:左上から展開
■ピクチャ表示:20000 [左上]ウィンドウ「SystemFile/WindowBase_amania.png」サイズ[150,104] X:150 Y:0 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
■ループ開始
|■DB読込(可変): CSelf12[敵グループ] = 可変DB[ 18:18:0 ] (基本システム用変数:万能ウィンドウ カーソル位置コード:数値)
|■変数操作: CSelf11[ID] = 0 + 0
|■文字列操作:CSelf5 = ""
|■回数付きループ [ 7 ]回
| |■DB読込(ユーザ): CSelf13[敵ID] = ユーザDB[ 13:CSelf12[敵グループ]:CSelf11[ID] ] (敵グループ:-:-)
| |■変数操作: CSelf11[ID] += 1 + 0
| |■条件分岐(変数): 【1】 CSelf13[敵ID] が -1 以下
| |-◇分岐: 【1】 [ CSelf13[敵ID] が -1 以下 ]の場合↓
| | |■文字列操作:CSelf5 += "敵\cself[11]:\n"
| | |■
| |-◇上記以外
| | |■文字列操作:CSelf5 += "敵\cself[11]:\udb[9:\cself[13]:0]\n"
| | |■
| |◇分岐終了◇
| |■
|◇ループここまで◇◇
|■ピクチャ表示:20001 [左上]文字列[\f[\cdb[18:5:0]]] X:157 Y:8 / 0(0)フレーム / パターン 1 / 透 255 / 通常 / 角 0 / 拡 100% / カラー R[100] G[100] B[100]
|■イベントの挿入[名]: CSelf14[万能キー内容] = ["X[共]万能ウィンドウ選択実行"] <コモンEv 65> / 1:キー1回分だけ処理 / 0:決定音を鳴らす
|■条件分岐(変数): 【1】 CSelf14[万能キー内容] が -200 と同じ
|-◇分岐: 【1】 [ CSelf14[万能キー内容] が -200 と同じ ]の場合↓
| |■ループ開始へ戻る
| |■
|◇分岐終了◇
|■ループ中断
|■
◇ループここまで◇◇
■ピクチャ消去:20000 〜 20001 / 5(0)フレーム
■イベントの挿入[名]: ["X[共]万能ウィンドウ描画処理"] <コモンEv 64> / -1:消去 / -1 / 0:表示しない / 1:左上から展開
■条件分岐(変数): 【1】 CSelf14[万能キー内容] が 0 以上
-◇分岐: 【1】 [ CSelf14[万能キー内容] が 0 以上 ]の場合↓
|■イベントの挿入[名]: ["◆バトルの発生"] <コモンEv 28> / CSelf14[万能キー内容] / 0:逃走可能 / 0:ゲームオーバーEvへ / 0:タウン
|■
◇分岐終了◇
■
WoditorEvCOMMAND_START
[250][5,4]<0>(18,9,0,65536,0)("","基本システム用変数","","")
[250][5,4]<0>(18,10,0,65536,0)("","基本システム用変数","","")
[250][5,4]<0>(18,11,0,65536,150)("","基本システム用変数","","")
[250][5,4]<0>(18,12,0,65536,9000117)("","基本システム用変数","","")
[250][5,4]<0>(18,13,0,65536,1)("","基本システム用変数","","")
[250][5,4]<0>(18,14,0,65536,15)("","基本システム用変数","","")
[250][5,4]<0>(13,-1,0,4608,1600010)("","","","")
[250][5,4]<0>(18,17,0,196608,1600010)("","基本システム用変数","万能ウィンドウ項目個数","")
[250][5,4]<0>(19,-2,0,0,0)("","","","")
[121][4,0]<0>(1600011,-1,0,0)()
[179][1,0]<0>(1600010)()
[121][4,0]<1>(1600011,1,0,256)()
[250][5,4]<1>(13,1600011,-3,4608,1600005)("","","","")
[250][5,4]<1>(19,1600011,0,0,1600005)("","","","")
[250][5,4]<1>(19,1600011,1,0,1600011)("","","","")
[250][5,4]<1>(19,1600011,2,0,1)("","","","")
[0][0,0]<1>()()
[498][0,0]<0>()()
[250][5,4]<0>(18,0,0,131072,0)("","","万能ウィンドウ カーソル位置コード","")
[300][6,1]<0>(0,4,0,-1,0,1)("X[共]万能ウィンドウ描画処理")
[150][11,1]<0>(48,20000,0,150,104,1,255,150,0,100,0)("SystemFile/WindowBase_amania.png")
[170][0,0]<0>()()
[250][5,4]<1>(18,18,0,4096,1600012)("","","","")
[121][4,0]<1>(1600011,0,0,0)()
[122][3,1]<1>(1600005,0,0)("")
[179][1,0]<1>(7)()
[250][5,4]<2>(13,1600012,1600011,4608,1600013)("","","","")
[121][4,0]<2>(1600011,1,0,256)()
[111][4,0]<2>(17,1600013,-1,3)()
[401][1,0]<2>(1)()
[122][3,1]<3>(1600005,256,0)("敵\cself[11]:<\n>")
[0][0,0]<3>()()
[420][1,0]<2>(0)()
[122][3,1]<3>(1600005,256,0)("敵\cself[11]:\udb[9:\cself[13]:0]<\n>")
[0][0,0]<3>()()
[499][0,0]<2>()()
[0][0,0]<2>()()
[498][0,0]<1>()()
[150][11,1]<1>(32,20001,0,1,1,1,255,157,8,100,0)("\f[\cdb[18:5:0]]\cself[5]")
[300][5,1]<1>(0,16777218,1,0,1600014)("X[共]万能ウィンドウ選択実行")
[111][4,0]<1>(1,1600014,-200,2)()
[401][1,0]<1>(1)()
[176][0,0]<2>()()
[0][0,0]<2>()()
[499][0,0]<1>()()
[171][0,0]<1>()()
[0][0,0]<1>()()
[498][0,0]<0>()()
[150][6,0]<0>(16777218,20000,5,0,0,20001)()
[300][6,1]<0>(0,4,-1,-1,0,1)("X[共]万能ウィンドウ描画処理")
[111][4,0]<0>(1,1600014,0,1)()
[401][1,0]<0>(1)()
[300][6,1]<1>(0,4,1600014,0,0,0)("◆バトルの発生")
[0][0,0]<1>()()
[499][0,0]<0>()()
WoditorEvCOMMAND_END