ongeki-score icon indicating copy to clipboard operation
ongeki-score copied to clipboard

Perfect Shining!! Lunatic 0 のスコアが 13+ の方に反映されてしまう

Open WorldRobertProject opened this issue 8 months ago • 6 comments

現象

Perfect Shining!! Lunatic 0 のスコアが 13+ の方に反映されてしまい、 ベスト枠に入らないはずがベスト枠に入ってしまいます。

発生日時

2025年04月15日 21時30分頃

ユーザーID

https://ongeki-score.net/user/2468

再現方法

https://ongeki-score.net/user/2468/rating にアクセス。 Perfect Shining!! Lunatic 13+ のスコアが 1,005,263 FC/FB になっていない。

OSバージョン

iOS 18.3.1

ブラウザ

Chrome 135.0.7049.83

その他

以前問い合わせて今の作りでは直すのが難しいという回答は得ているのですが、 レーティングの仕様変更で影響が大きくなってしまったと思いますので、 せめて workaround 的な対応はあった方が良いのではないかと思いました。

例えば、Perfect Shining!! Lunatic に関してはスコアを手動で設定しておいて スコア取得時に設定された方のスコアを反映するとか……。

WorldRobertProject avatar Apr 15 '25 14:04 WorldRobertProject

コードを読みました。 名前が被った曲はアーティスト名で区別しているようですが、 画像ファイル名で区別するようにすれば Perfect Shining!! でも対応できると思います。

既存のコードをなるべく変えないように対応するには 画像ファイル名からアーティスト名への変換テーブルを用意すると良いと思います。

変換テーブル取得用のAPIを用意して以下の値を返すようにデータベースを作成しておき、

{
  "9cc53da5e1896b30": "ETIA",
  "19bdf34c7aed1ee0": "MJ",
  "ac5cab7a8a61d825": "technoplanet",
  "142c1e27ad2bddea": "livetune",
  "bacbd6ad4f2f6df4": "蔵",
  "20a6638745f28c48": "Re:MASTER"
}

div.m_5.f_13.break の text ではなく img.m_5 f_l の attr("src") を取得して ファイル名を抽出して変換テーブルを使用してアーティスト名への変換を行うと良いと思います。

Perfect Shining!! の通常の方は 0eb6fd4b4e951e49 ではあるのですが変換テーブルに登録せず、 変換テーブルになければアーティスト名として空文字列を返すようにしたので良いかな?と思います。 (それで問題なく動くのかまでは把握していませんが)

WorldRobertProject avatar Apr 20 '25 16:04 WorldRobertProject

ありがとうございます、私の認識だとurlがコロコロ変わるはずなのでベタ打ちで対策は難しいかなぁと言う感じです。 どちらかというとLv0なら初稿とみなす、ぐらいな感じでもいいかなという感じなのですが、如何せん時間が取れず... 大きめに時間が取れたら直してみようと思います。


オフトピですが既存ユーザーのスコアどうしようかな...

slime-hatena avatar Apr 21 '25 15:04 slime-hatena

画像の中まで見れば区別はつくでしょうけど負荷を考えると厳しそうですね。 ソースを見ても画像以外の差は難易度と敵レベルくらいなので、難易度で区別するしかないんですかねえ……。

既存のスコアはどちらのスコアなのかわからないので消してしまうか、 あるいは13+のスコアであるという扱いのままにしておいて取得時に置き換えるかですかね……。 後者はスコア変動がマイナスになるケースで何か起きないかですが。

WorldRobertProject avatar Apr 21 '25 19:04 WorldRobertProject

横入失礼します。 idxの値は変動するみたいですけど画像のurlに関しては変わってない感じします。 https://github.com/zvuc/otoge-db/blob/cc575584d33bf466023e828f4b439ad2b3a3e2fd/ongeki/data/music-ex.json でperfect shining luna 0を確認するとbacbd6ad4f2f6df4.pngとなっており、現在の値と同一であるので。 もう少しコミットをさかのぼったところ、そもそものurlが<4桁の整数>.pngなどで記録されているのでここで大きく変更があったんだと... 正直ソースがグレーな気がしなくもないですけど一つの参考として受け取っていただけると幸いです。

soramame0256 avatar Apr 24 '25 03:04 soramame0256

@soramame0256 「コロコロ変わるはず」が初期だけの可能性もあるんですかねえ……。 もう変わらない確証さえ持てれば一番確実に区別がつくんですけど。

@slime-hatena #925 で、曲一覧で artist に '初稿' と入れてある行のある曲は 楽曲レベル 0 を初稿、それ以外を最終稿として扱うようにしたものを作ってみました。 Perfect Shining!! のハードコーディングを避けるならこの方法かなあ……と。

初稿でない 0 が 14+ になった例もあるものの、 まだ初稿の 0 が昇格した例はないので、多分大丈夫かなあ……大丈夫であって欲しいです。

WorldRobertProject avatar Apr 29 '25 11:04 WorldRobertProject

見た感じ変わったのが一回のみですし、もとの情報が4桁数値であることを考えると最適化で変更が入ったとして考えることができますが… SEGAの開発方針なんて外部からはわからないので今後変わらない確証は持てませんね…

soramame0256 avatar Apr 29 '25 23:04 soramame0256