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を省略しました