2019/10/16より、『beatmania IIDX 27 HEROIC VERSE』が稼動しました。
が、レジェンダリアの一部クリアランプが引き継がれないクソみたいなバグが発生しました。
レジェンダリア譜面のクリアランプ消えてる人いる? pic.twitter.com/SNwJQLM5s8
— axel*まるです (@Axel_Marudesu) October 15, 2019
クリアランプいくつか消えてます
— タそのっち (@harukaze_taso) October 15, 2019
2枚目3枚目はルーテージ#IIDX #IIDX27 pic.twitter.com/fSuRP1tP8G
原因は「該当楽曲のNORMAL、HYPER、ANOTHER譜面が全てNO PLAYの場合、LEGGENDARIA譜面もNO PLAYとなる」ことが判明しました。
(2019/10/16 13時ごろ)原因が違っていたりしたところを修正しました。
【重要なお知らせ】
— 【公式】beatmania IIDX (@IIDX_OFFICIAL) October 16, 2019
本日より稼動開始しておりますbeatmania IIDX 27 HEROIC VERSEにおいて以下の症状を確認しております。
【症状1】
LEGGENDARIA譜面のクリアタイプが正常に引き継ぎされない症状が発生しておりました。
本件につきましては修正を実施し解消いたし
続きは→https://t.co/Lr5rGbI1fj
(2019/10/16 14:22)修正されたようです。
推測
前作と今作の違い
いままでのレジェンダリアは、
①他の楽曲と別曲の扱い
②ANOTHER譜面扱い
③LEGGENDARIAの譜面である属性を持っている(だから文字が赤かったり、LEGGENDARIAフォルダに入っている)
といった取り扱いでした。
今作から通常フォルダーにBEGINNERとLEGGENDARIAも一緒に組み込まれるようになりました。つまり、
①ひとつの楽曲に含まれるようになる。別曲扱いされない。
②LEGGENDARIA譜面扱い
といった形で管理されるようになりました。
この微妙な違いが、引継ぎの際に障害発生の原因になり、あの条件になっているのだと思います。
引継ぎで何が起こったのか?
※前に記載していた推測は誤っていたため削除、新しい推測を記載しました。
公式CSV見たけどやっぱ1レコード5譜面に変わってた。公式CSVはどの譜面もNO PLAYの曲は表示されない仕様。サーバー内の実際のテーブルも同じ持ち方なら、LだけプレーしててNHAを未プレーだと、移行処理時に外部結合するNHA側のレコードがなくてLからNHAに飛び付けないためランプが消えるって感じかな
— 木野 (@capue) October 16, 2019
公式のCSVから前回内容は正しくないことがわかりました。
スコアのDBですが、該当楽曲のプレイがないとレコードが存在しない状態になります。
26のDBだと、NHA譜面とL譜面は別曲のため、別レコードとなります。
データー以降するときに恐らくですが、NHA譜面とL譜面を外部結合(LEFT JOINですかね)した場合、NHA譜面のレコードが存在しなければ、L譜面のレコードとくっつかずにNO PLAYになります。
KONAMIはとりあえず早急になんとかしてほしいところですね。
→修正されました。
図解
26のDB
・この一列の情報は1レコードである。1楽曲に1レコードである。ただし、 L譜面は別楽曲扱いという形になり、別レコードとなる。
・全ての譜面がNO PLAYの場合、該当のレコードはDBに存在しない状態である。
・1レコードに対してN/H/Aの3項目が存在する。
・L譜面のレコードは、Aの項目にクリアやスコア状況を格納する。
27のDB
・ この一列の情報は1レコードである。1楽曲に1レコードである。
・全ての譜面がNO PLAYの場合、該当のレコードはDBに存在しない状態である。
・1レコードに対してB/N/H/A/Lの5項目が存在する。
とまあ、LEFT JOINによる外部結合がうまくいかなかったので発生した可能性が高いです。
ここの処理はINNER JOIN(内部結合)すればよかったんじゃないかなーと思います。