0:30 まで麻雀の練習を続けてそれから就寝。

8:10 起床。妙に寒い。洗濯機を回しつつ朝食。おにぎりのかかみその風味がわからない。 天気予報を確認して、洗濯機が止まるまで PC 作業。

8:50 洗濯物が終わる。PC 鞄を持って外出。

9:40 荒川区ゆいの森あらかわ入館。三階閲覧席で PC を開いて作業。おもに MathJax コードの動作確認。 読書ノートの一部ページでは面倒な図式を指定しているので require{AMScd} をしていたが、MathJax v3 ではこれを修正する。 パッケージ名を小文字に書き換えるか、スクリプト設定でマップするかしなければレンダーされない。 Upgrading from v2 to v3 — MathJax 3.1 documentation の説明による。

11:00 やっと動作確認が終わる。まだ 40 分残っている。DOLCE プロのマリオメーカー配信のアーカイブを聴く。 朝刊(朝日)を読んで 12:00 前に退館。

素直に明治通りのバス停から曳舟に戻る。部屋できのう買っておいたおやつを食いながら休憩。

地獄の伯爵令嬢の逆襲のラスボスだけプレイ。レベル 45 装備なしで挑んだらべらぼうに強い。 初手がフリーリになるはずだから、そこで壊滅させられる。

外出。まずスカイツリータウンに行ってトイレを使う。それから都営浅草線に乗って三田駅まで移動。 港区芝五丁目に着くわけだが、ワンブロック歩くと港区三田図書館がある。

15:00 三田図書館に入館。朝刊(東京、産経)、将棋講座を読んで二階に上がる。 オライリーの Python 文法詳解の関数の章を主に読む。

16:10 退館。再び都営浅草線に。隣駅の大門まで行って大江戸線に切り替える。両国駅で下車。 徒歩で錦糸町へ向かう。

17:15 タイトー F ステーションオリナス店で 5 クレ遊ぶ。MJ プロ卓東風戦とビートマニア STANDARD モード。 調子に乗って後ろに待ち人がいるのに気づかず連コインしかける。カードをかざす時点で指摘が間に合うから大事には至らない。

【SCORE】
合計SCORE:+9.2

【最終段位】
四人打ち段位:魔神 幻球:6

【10/16の最新8試合の履歴】
1st|-----*--
2nd|***----*
3rd|----*-*-
4th|---*----
old         new

【順位】
1位回数:1(11.11%)
2位回数:5(55.56%)
3位回数:2(22.22%)
4位回数:1(11.11%)
平均順位:2.33

プレイ局数:43局

【打ち筋】
アガリ率:18.60%(8/43)
平均アガリ翻:3.13翻
平均アガリ巡目:10.88巡
振込み率:4.65%(2/43)

【10/16の最高役】
・跳満

19:45 カスミオリナス錦糸町店。214 円。八宝菜丼。

20:15 ビッグエー墨田業平店。376 円。

  • シュークリーム
  • 大きなおむすび鮭
  • ふっくらおむすび鮭
  • パンケーキメープル&マーガリン
  • すっぱムーチョ (+10%)

20:20 曳舟の部屋に戻る。PC だ。晩飯だ。テザリング。

21:00 ウディタ研究。

  • ピクチャ表示呼び出しの引数を呼び出し元の CSelf5 の値で指定することに成功
  • ユーザーデータベースの使い方を理解しかけている

22:10 風呂に入る。

22:45 風呂から出る。また時間が妙にかかった。湯に浸かっていろいろ考え事をしているのか?

ウディタ再開。可変データベースとユーザーデータベースの概念を理解。ドラクエ解析で得た知恵が適用できる。 前者と後者はそれぞれ RAM, ROM で配列上に定義された同型オブジェクトの列。データベースの用語を無理に使うとテーブルに相当する。 SQL みたいなものはもちろん提供されていない。それでもウディタのすごい点がなんとなくわかってきた。このテーブルをウディターユーザーが任意に定義できるのだ。

そこで私もそれを試みる。

  1. ユーザーデータベースに例えば CrystalBallEvent と名付けて新しく「タイプの内容設定」する。
  2. ゲームに合わせてデータを 3 個定義する。ID には関連する名前をつける。
  3. ページ 1 にオブジェクト指向プログラミング用語で言うところのメンバー変数を追加する。なおこれらは read only な property として扱われる。

    • target: 主人公ステータス ID (0..2)
    • image_path: 戦闘開始前に出す紙芝居の画像パスを示す文字列 e.g. Picture/xxxx.png.
    • enemy_group_id: 敵グループ ID (50..52)
    • command_id: 技能 ID; 0 なら未定義扱いとする。
  4. このクラスのオブジェクトにアクセスするコモンイベントを呼び出すときに CrystalBallEvent の ID を入力する。
  5. そのコモンイベントのコードで「DB 操作イベント」を駆使して上述のメンバー変数を読み取る。

可変データベースやユーザーデータベースを参照して文字列を出力する方法を理解。 このゲームでは cdb 0 がパーティーメンバー情報、udb 0 が戦闘コマンド情報となっている。そこで

\cdb[0:\cself[12]:0]は
魔術「\udb[0:\cself[11]:0]」を習得した!

のようにすると、実行時には上の例では CSelf12 の値により表されるメンバーが、 CSelf11 の値により表される戦闘コマンドを習得した旨を告げる文言になる。

もう夜も更けているので仕上げは明日にする。