回答よろしくお願いします〜。
hsptvのゲームを作っているのですが、ランキング機能をランキング以外の形として利用したいと考えております。
ランキングはスコアが高い順に登録され、そこが面倒なのですが、hsptv_up命令のオプション値を使えばなんとかなると思っています。
例えばオプション値が0x3000であれば、任意のインデックスのスコアを消すことができます。
しかしスコアを消すと、ランキングのそれより下位のスコアがシフトされません。
例:
スコア:5
スコア:4
スコア:3
スコア:2
スコア:1
↓インデックス2(上から三番目)を消す
スコア:5
スコア:4
スコア:0
スコア:2
スコア:1
(5,4,2,1とならず、0が残る)
これが解消されれば、理論上自分のゲームは成立可能ってところです。
そこで質問ですが、
スコアの上書き(すでにあるものをけして、インデックスに書き換える)や、スコアを完全に消去(0を残さず、下位のものをシフトさせる)できるhsptv_upのオプション値があれば教えていただけませんか?
どんなゲームかもよくわからないと思うので恐縮なのですが、あまりネタバレしたくないので…。
また、オプション値0x3000で、上の例のようにひとつスコアを消去したあと、下位のスコアをひとつひとつ更新させる、というのはタイムラグが発生するため、避けたいです。
(リアルタイムでランキングの情報が必要なので)
不可能なスクリプトの例:
(nは、消去するインデックス番号)
まあこのスクリプトは、ユーザー名が再送信できない点でもダメなんですが。
#include "hsptv.as" (略) hsptv_up n,"",0x3000 ;n+1位のスコア消去 repeat 29-n,n+1 hsptv_getrank score,name,comm,cnt ;n+2〜30位のスコア取得 hsptv_up score,comm ;スコアを正規の順位へ再送信 loop
オプション値の件や、他の解決法でも、遠慮なさらずお願いします。