日記/2025-04-13
雑記:検討中:ChatAnalyzerでの「MD/クエスト管理」ネタ†
先日から実施している「討伐回数記録」と並行して、ちょっと考えている話。
メモリアルダンジョンやデイリークエなどの「今の実行状況(今日実行できる?)」を管理しようとする話。
タイトルにある通り「検討中」:別途検討のためのネタページも作っているんですが、正直難航中。
どうみてもダメっぽいのもあるので。
以下、検討中メモ。
やりたいこと。†
いわゆる「フラグ」的な行為を実施したら /savechat して、その「最後に実施した時刻」を記録。
それ以降、現在時刻と「最後に実施した時刻」とを比較して、十分な時間がたったら「プレイ可能」的な表示を出す。
そんなかたちにしておきたい。
ぶっちゃけ、これも先日からの「討伐回数記録」と同じ『簡単にやりたい』というのが背景。
頭使わずに「Excel的なものを使ってそっちでボタン押す/テキスト編集する」というやり方は十分可能なんですが、それって存外面倒なんですよ。
課題その1:「どのキャラで?」†
これを指定しないと、当然わからない。
実現はそこそこ容易:クライアント上で発言→savechatすれば、ログ上先頭にキャラ名が入る。
これに基づいて「どのキャラがログインしているのか」をアプリで拾える。
これを忘れるとうまく動かないといえば動かないので・・・
アプリ側でも、キャラ名を表示して「今だれの状況を表示しているのか」を示す必要はあると思う。
また、これは1回設定すればキャラ変更するまでは切り替える必要もないので、savechatでなくてアプリ側でやってもいいような気はする。
課題その2:「何を・いつを」実施可能の判断材料にするのか。†
「デイリー」的なモノには何種類かあり、いくつかは対処できそうだけど、ダメそうなものもある、というような状況。
課題その2−1:MD系統†
そのMDは「デイリー/3日ごと/1週間ごと・・・」といった、特定の条件でのみ利用できる、という系統。
これについては、おおよそ解決している:MDに入った際にクエストログに次のような感じのものがでるので、これをトリガーにすればよい。
メモリアルダンジョン[xxxxx] に入場しました : PT名称 (キャラ名)
MDは実は「作ったけど入らなかった」ならカウントが進まないという仕様になっています。
例えばデイリーMDを作って入らないまま時間が経って「不在時間でMD消滅」となった場合、同じ日に改めてMD作成をやりなおせます。
逆に言えば、一度入ってしまうと次の作成には条件を満たさないとMD作成ができなくなる。
これを踏まえても「入った」タイミングで実施日を確定できる。
- 1点だけ難点というか追加の課題がある:「変なPT名」問題。
- 前提として、前述の「xxxに入場しました」というログは、実は「自分以外の、まったく別のPT」が同じMDに入ったときにも出力されている。
そのためこの入場ログは無条件には受け入れず、このログにあるキャラ名も踏まえて判断しなければならない。 - で。ROの仕様上、このPT名に # だったかな?なんか特殊文字をいれておくと、次のような感じでログにPT名・キャラ名がはいらない。
メモリアルダンジョン[Cursed Knight] に入場しました :
- 前提として、前述の「xxxに入場しました」というログは、実は「自分以外の、まったく別のPT」が同じMDに入ったときにも出力されている。
- 他の人のPTなら「該当しないから」と捨てればいいですが。自分のPTがこの状態だと、当然「自分が入った」というログが拾えないのでカウントできないということ。
課題その2−2:討伐を伴うミッション†
NPCから討伐ミッション受注→討伐実施→NPCに報告・・・とするタイプ。
いくつかのミッションでは最初の「受注」がなく、一度報告すると自動的に次を受注できるものもある。
キーとなるのは「最後に報告をしたのがいつか」:その報告を行ったことをトリガーに、次の受注可能タイミングが変わる。
そのためその最後の「報告」を拾いたい。
で、このタイプは次の課題2−3と干渉するのがネック。
この2−2単体なら問題ないんです:討伐を伴うクエストでは、その討伐に対応した「クエスト名」が作られており、それがログ上に残る。
具体的には、該当敵を倒すたびに
[深淵の孤独]クエストの [ドローリアン]モンスターを倒しました。(10/10)
・・・というように「どのクエストで」「どの敵を」倒したかのログがあり。
報告すると
深淵の孤独 クエストが削除されました。
・・・というように、「どのクエストが終わったのか」を拾える。
問題は、このログだけだと次の2−3と区別がつかない、ってことなんだよね・・・
課題その2−3:討伐を伴わないミッション†
NPCから受注→討伐以外での作業→NPCに報告、とするタイプ。
結論から言うと、これが対応できなさそう。
具体的な事例でいうと、データバックアップ :ウェルス発掘地4Fのマップ内にいるNPCに話しかけてこい、というクエスト。
前述の「討伐を伴うミッション」と同様、NPC報告時のタイミングを拾いたいのだが、これがログから読み取れない。
討伐タイプと同じように、報告時には次のようなログが出力はされてはいる。
データバックアップ クエストが削除されました。
問題は、これとまったく同じログが「マップ内のNPCと会話」した際にも出力されている、ということ。
論理的に言えば、討伐型と対比するように書くならば『[データバックアップ]クエストの [NPC]会話を実施しました(1/1)』的な意味合いの出力があるのですが、これが「完了時の出力」と区別できないかたちになっている。
さて、どうしたものか・・・
先の「討伐回数記録」と同様に、例えば『済:データバックアップ』とか発言→savechat、とかすれば拾えないこともないけど。
この文字列入力がハードル高すぎるんですよね:文字数の問題に加えて、MVPなどの敵名称と違って「クエスト名」となると直感的ではないためいきなりハードル上がるので。
MDだけでも管理できると楽っちゃ言えば楽なんで、とりあえずそれだけでも対応するかなぁ・・・
ご意見などがあれば。

