#include "hspda.as"
dim sc,10 ;スコアデータ
sdim nm,30,10 ;元の名前データ
sdim nm2,30,10 ;ソート後の名前データ
alloc sd,1000 ;データ読みこみ書きこみ用バッファ
datamax=5
;データファイルのチェック
;存在する場合は読みこむ
;ない場合はこのスクリプト内のデータを使う
chdir exedir
onerror 1
bload "tokuten.txt",sd
ernum=err
onerror 0
if ernum=12:goto *top1 ;12 is ファイルが無い
;読みこんだデータを配列に変換
notesel sd
repeat datamax
noteget a,cnt
strmid b,a,0,8 ;数字部分
strmid c,a,8,30 ;30の部分は文字の最大値、とりあえず30文字
int b:sc.cnt=b
nm.cnt=c
loop
goto *top2
*top1
sc.0=100:nm.0="百"
sc.1=7000:nm.1="7千"
sc.2=5000:nm.2="五千"
sc.3=200:nm.3="二百"
sc.4=9999:nm.4="最大"
*top2
gosub *name_sort ;本当はソートされたものが入っているはずだけど一応ソート
gosub *name_put ;内容を表示
mes " "
testsc=400 ;試しに得点を300としてやってみます
mes "得点"+testsc
;最小値と比較
if sc.4>testsc:goto *name_end ;最小値より小さい場合は終了
mes "名前を入力してください"
nowname=""
input nowname,150,25
button "OK",*name_add
stop
*name_add
cls
sc.4=testsc
nm.4=nowname
gosub *name_sort ;最終的にソート
gosub *name_put ;表示
;ここから保存
sd=""
repeat datamax
s=sc.cnt
str s,8 ;数字の最大桁数
sd+=s+nm.cnt+"\n"
loop
;mes sd
strlen sdl,sd
bsave "tokuten.txt",sd,sdl
stop
*name_end
mes "ランキング5位以内に入りません。"
stop
*name_put
repeat datamax
p=" "+sc.cnt+":"+nm.cnt
mes p:loop
return
*name_sort
sortval sc,1 ;数値により大きい順に
repeat datamax
sortget n,cnt
nm2.cnt=nm.n
loop
repeat datamax
nm.cnt=nm2.cnt
loop
return
stop
上記のスクリプトはハイスコアを記録するためのスクリプトなのですが、
このスクリプトですと、パラメータの値が無効ですとなってしまいます。
初心者で大変恥ずかしい質問なのですが、教えて下さい。