loadGameData()でロード出来ない(質問掲示板)
投稿:
闇さん
投稿:2012/03/24 15:40:24(最新:2012/03/26 12:27:26)
case speakWithSelect(2,"はい","いいえ",
"変数を読み込みますか")
when 0
while l<1
q=1
w=0
case speakWithSelect(11,"0","1","2","3","4","5","6","7","8","9", "終了",
"コードを入力してください")
when 0
w=w+(q*0)
when 1
w=w+(q*1)
when 2
w=w+(q*2)
when 3
w=w+(q*3)
when 4
w=w+(q*4)
when 5
w=w+(q*5)
when 6
w=w+(q*6)
when 7
w=w+(q*7)
when 8
w=w+(q*8)
when 9
w=w+(q*9)
when 10
l=10
end
q=q*10
end
w=toString(w) when 1
speak("読み込みませんでした")
end
e=loadGameData(w)
e=toNumber(e)
speak("ロードした変数の値",e,"変数[0]の値",e[0],"変数[1]の値",e[1],"です")
エラー文
line: 4 not defined variable : l
line: 34 not defined variable : w
valueの存在しないkeyにアクセスしたためデータを取得できませんでした
しかも数字を選ぶ選択肢が出ないです
コメントする
コメントするには、ログインする必要があります。
コメント一覧
えーと、根本的に何がどーなれば完成なのかがワカラナイ事には。
・プレイヤーキャラのパラメータからgetCharacterIdIndex()で何の番号が出てくるのか解説どうぞ
・桁数が謎、という事なのでqとか不要で、単純に数字ひとつずつを文字としてwに繋げていくだけの方が良いカモ
一体入力しているコードとは何なのか、その説明もどうぞ
・プレイヤーキャラのパラメータからgetCharacterIdIndex()で何の番号が出てくるのか解説どうぞ
・桁数が謎、という事なのでqとか不要で、単純に数字ひとつずつを文字としてwに繋げていくだけの方が良いカモ
一体入力しているコードとは何なのか、その説明もどうぞ
一つ目はRPG系でプレーヤーキャラクターのID所得です
僕は主に自分のみデバック表示したいとき使っていました
二つ目は↑をアクティビティーなんかに出して他のプレーヤーがそれを見て
その人のチームと対戦するって考えていました
僕は主に自分のみデバック表示したいとき使っていました
二つ目は↑をアクティビティーなんかに出して他のプレーヤーがそれを見て
その人のチームと対戦するって考えていました
キャラのID番号て、同じキャラをプレイヤーキャラ登録してる人がいたら、被る気がする
ただ、プレイヤーキャラに登録するのはキャラ画像だし、キャラ画像ID番号なのかな…?
フィードに出すのは「データを凝縮&加工したパスワード」なのね
となると、今回のように数字入力したものをイキナリセーブする事は無いワケですね!
状況が激変しますので、覚悟して下さいね
ただ、プレイヤーキャラに登録するのはキャラ画像だし、キャラ画像ID番号なのかな…?
フィードに出すのは「データを凝縮&加工したパスワード」なのね
となると、今回のように数字入力したものをイキナリセーブする事は無いワケですね!
状況が激変しますので、覚悟して下さいね
被らないのか…つまりプレイヤー毎の番号が出てくるって事かな
ゲストだといくつなんだろ…後で調べてみよう
ところでフィードで出すだけなら、そもそもsaveGameData(), loadGameData()は不要ですよね?
今回必要なのは、作成してるゲーム上の各数値状態を何に少ない文字数の暗号に変換するか、というパスワードの作り方なのでは?
ゲストだといくつなんだろ…後で調べてみよう
ところでフィードで出すだけなら、そもそもsaveGameData(), loadGameData()は不要ですよね?
今回必要なのは、作成してるゲーム上の各数値状態を何に少ない文字数の暗号に変換するか、というパスワードの作り方なのでは?
読み込みについては解決しました
eの値がNaNでe[0]とe[1]がnullになってしまいました
1st argument is not array. line : 39
1st argument is not array. line : 39
eの値がNaNでe[0]とe[1]がnullになってしまいました
e=loadGameData(w)
#ここだとe=5,5(正常)e[0]とe[1]はnull
e=toNumber(e)
speak("ロードした変数の値",e,"変数[0]の値",e[0],"変数[1]の値",e[1],"です")
#↑この辺りが39行目
1st argument is not array. line : 39
1st argument is not array. line : 39
e=loadGameData(w)
でeに入ったのは文字列です
なのでコレをtoNumber(e)としただけでは厳密には数値にはなりません
少なくともロード直後にeの中身を表示して「5,5」のようにカンマが入っている時点で、数値に変換したらおかしな状態に突入する筈です
加えてひとつの文字列を入れただけのローカル変数eは、配列になってないので『そりゃ配列じゃねぇよ』とツッコミがきてるのです
としないとダメでしょうね
でeに入ったのは文字列です
なのでコレをtoNumber(e)としただけでは厳密には数値にはなりません
少なくともロード直後にeの中身を表示して「5,5」のようにカンマが入っている時点で、数値に変換したらおかしな状態に突入する筈です
加えてひとつの文字列を入れただけのローカル変数eは、配列になってないので『そりゃ配列じゃねぇよ』とツッコミがきてるのです
e=splitString(e, ",") #コレで強制的にeに配列が入る n=0 while n<getArrayLength(e) e[n]=toNumber( e[n] ) n=n+1 end
#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
when 8
w[n]=8#w=w+(q*?)をw[n]=?に変更
when 9
w[n]=9
when 10
l=10
end
q=q*10
n=n+1#ここに週回数を数える『n』を追加
end
w=toString(w)
when 1
speak("読み込みませんでした")
end
e=loadGameData(w)
e=toNumber(e)
speak("ロードした変数の値",e,"変数[0]の値",e[0],"変数[1]の値",e[1],"です")
s=0#ここに入れ替えたものを保存 f=1 while n>0 s=w[n]*f#ここで入れ替える n=n-1#週回数だけまわす f=f*10 end
こんなのを考えました
が
valueの存在しないkeyにアクセスしたためデータを取得できませんでした
1st argument is not array. line : 47
1st argument is not array. line : 47
だそうです
>1234と入力したら4321になってしまう
だってひとつ入力する毎にq=q*10してるんだから
後から入れた方が桁が多い、つまり左側に追加されるから当前ですw
保存するデータの名前をパスコードにしてしまう、という発想は良いとして、流石に桁数制限はした方が良いので4桁に固定するとこんな感じ
ただ全員がプレイ時にアクセスできる為に、他人が同じパスコードで上書きする可能性がある事と、100個データが保存されたら次以降は全てセーブに失敗
その辺はどーしますか?
だってひとつ入力する毎にq=q*10してるんだから
後から入れた方が桁が多い、つまり左側に追加されるから当前ですw
case speakWithSelect(2,"はい","いいえ", "変数を読み込みますか")
when 0
loop=0
while loop<4
q=1000; w=0
a=speakWithSelect(11,"0","1","2","3","4","5","6","7","8","9","終了", "コードを入力してください")
if a==10
loop=false
else
w=w+(q*a)
end
q=q/10
end #loopループ終
w=toString(w)
waitTime(1200); e=toNumber( loadGameData(w) )
speak("ロードした変数の値 ",e,"\n変数[0]の値 ",e[0],"\n変数[1]の値 ",e[1]," です")
when 1
speak("読み込みませんでした")
end #case終
ただ全員がプレイ時にアクセスできる為に、他人が同じパスコードで上書きする可能性がある事と、100個データが保存されたら次以降は全てセーブに失敗
その辺はどーしますか?
これを使ったテストゲームを公開しました
ゲームの概要は文字数の限度の関係により一部協力者様のURLを省略しました