質問/グローバル変数に配列をいれて読み込む方法(質問掲示板)
投稿: shirosaboten
投稿:2010/08/10 17:10:10(最新:2010/08/18 00:26:18)
グローバル変数を使うとゲーム同士でデータが引き継げるということで、やってみたんですがうまくいきません。
↓引継ぎもとのゲーム
↓引き継ぎ先開始スクリプト
↓マップ上イベント
> 0
giveEquipment(a[i])
end
i = i + 1
end
]
こうすると5分の3くらいの確立で装備を引き継ぎを失敗します。
グローバル変数に配列を入れること(もしくはやり方)が間違っているのか
グローバル変数の読み込みに失敗しているのか、
1st argument is not array . line: 6 ←ここはたまに2だったりします
と出ます。
wikiとか探したんですが、それらしい答えが見つからなかったので質問してみました。よろしくお願いします。
ツイート
↓引継ぎもとのゲーム
addSaveGlobalVariable("ゲーム1装備配列", getEquipmentIdArray())
↓引き継ぎ先開始スクリプト
clearLoadGlobalVariable() addLoadGlobalVariable(ゲームID , "ゲーム1装備配列") loadGlobalVariable()
↓マップ上イベント
a = createArray() a = getLoadedGlobalVariable(ゲームID, "ゲーム1装備配列") i = 0 while i < 16 if a[i
giveEquipment(a[i])
end
i = i + 1
end
]
こうすると5分の3くらいの確立で装備を引き継ぎを失敗します。
グローバル変数に配列を入れること(もしくはやり方)が間違っているのか
グローバル変数の読み込みに失敗しているのか、
1st argument is not array . line: 6 ←ここはたまに2だったりします
と出ます。
wikiとか探したんですが、それらしい答えが見つからなかったので質問してみました。よろしくお願いします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
shirosaboten(投稿日:2010/08/17 17:13,
履歴)
addSaveGlobalVariable("変数名", getVariable("配列"))
でクリア直前に
speak(getVariable("配列"))
ではちゃんと配列が表示されています。
その直後にクリアにしても
読み込み側で
speak(getLoadedGlobalVariable(5722, "変数名"))
ではnullが返ってきました
保存側も読み込み側も何度も確認、修正をしたのですが、原因が見つかりません。お手上げです^^;
でクリア直前に
speak(getVariable("配列"))
ではちゃんと配列が表示されています。
その直後にクリアにしても
読み込み側で
speak(getLoadedGlobalVariable(5722, "変数名"))
ではnullが返ってきました
保存側も読み込み側も何度も確認、修正をしたのですが、原因が見つかりません。お手上げです^^;
shirosaboten(投稿日:2010/08/15 23:13,
履歴)
こちらこそお手数かけて申し訳ないです^^;
早速確認してみました。
ID:914の変数は読み込みに成功するようになりました。(失敗なし)
ところが
ID:5722の変数は毎回失敗するようです。(成功しなくなりました)
お手数かけます、よろしくお願いします。
早速確認してみました。
ID:914の変数は読み込みに成功するようになりました。(失敗なし)
ところが
ID:5722の変数は毎回失敗するようです。(成功しなくなりました)
お手数かけます、よろしくお願いします。
shirosaboten(投稿日:2010/08/14 18:46,
履歴)
書き込みのゲームは
ID:914(サボネシア)とID:5722(魔法使いアポロ)です。
読み込みはID:4679のゲームです。
コードを書き換えるわけではなく、プレイしなおすだけで読み込み成功と失敗の変数がランダムで出ます。
(4679のサボテンに話しかけると判定をします。)
ID:914(サボネシア)とID:5722(魔法使いアポロ)です。
読み込みはID:4679のゲームです。
コードを書き換えるわけではなく、プレイしなおすだけで読み込み成功と失敗の変数がランダムで出ます。
(4679のサボテンに話しかけると判定をします。)
2つのゲームから2つずつグローバル変数を読み込む
スクリプトを書いてみましたが、問題は再現しませんでした。
問題が発生しているゲームのidをお伝えいただくことは可能でしょうか?
(データの書き込みと読み込みを行っている
両方のゲームのがあるとよいです)
>1st Argument is not arrayと出ます。
これは、データが配列でないもの(読み込めなくてnullなどになっている場合)に対して配列の操作を行うとそうなるかと思います。
再現コードを書いている間、数字が全角か半角かで
似たような問題が起こることはありました。
(ただし、ランダム性はありませんでした)
よろしくお願いします。
スクリプトを書いてみましたが、問題は再現しませんでした。
問題が発生しているゲームのidをお伝えいただくことは可能でしょうか?
(データの書き込みと読み込みを行っている
両方のゲームのがあるとよいです)
>1st Argument is not arrayと出ます。
これは、データが配列でないもの(読み込めなくてnullなどになっている場合)に対して配列の操作を行うとそうなるかと思います。
再現コードを書いている間、数字が全角か半角かで
似たような問題が起こることはありました。
(ただし、ランダム性はありませんでした)
よろしくお願いします。
shirosaboten(投稿日:2010/08/14 12:07,
履歴)
まず、開始スクリプトの
では、毎回『読み込み成功』と出ます。
読み込むグローバル変数は4つで(二つのゲームから2つずつ、いずれも配列)、それぞれに判定をしました。
すると
2つ~3つの変数の読み込みに失敗と出ます。
失敗する変数は毎回ランダムで失敗したものについては
1st Argument is not arrayと出ます。
なぜでしょう…><;
if loadGlobalVariable() speak("グローバル変数読み込み成功") else speak("グローバル変数読み込み失敗") end
では、毎回『読み込み成功』と出ます。
読み込むグローバル変数は4つで(二つのゲームから2つずつ、いずれも配列)、それぞれに判定をしました。
if getLoadedGlobalVariable(1234, "ゲームA変数1") speak("ゲームA変数1の読み込み成功しました") else speak("ゲームA変数1の読み込みに失敗しました") end if getLoadedGlobalVariable(1234, "ゲームA変数2") speak("ゲームA変数2の読み込み成功しました") else speak("ゲームA変数2の読み込みに失敗しました") end if getLoadedGlobalVariable(5678, "ゲームB変数1") speak("ゲームB変数1の読み込み成功しました") else speak("ゲームB変数1の読み込みに失敗しました") end if getLoadedGlobalVariable(5678, "ゲームB変数2") speak("ゲームB変数2の読み込み成功しました") else speak("ゲームB変数2の読み込みに失敗しました") end
すると
2つ~3つの変数の読み込みに失敗と出ます。
失敗する変数は毎回ランダムで失敗したものについては
1st Argument is not arrayと出ます。
なぜでしょう…><;
shirosaboten(投稿日:2010/08/14 11:17,
履歴)
わかりました。ありがとうございます。
shirosaboten(投稿日:2010/08/10 17:12,
履歴)
失敗。
↓マップ上のイベント
↓マップ上のイベント
a = createArray() a = getLoadedGlobalVariable(ゲームID, "ゲーム1装備配列") i = 0 while i < 16 if a[i] > 0 giveEquipment(a[i]) end i = i + 1 end
読み込みができるようになりました。
お手数をかけて申し訳ないのですが、もし可能でしたら具体的な装備配列名が出ているコメントを削除してもらえませんか?
(8.17/17:51のところです)
原因を探るためには仕方なかったのですが、どのIDのゲームを引き継ぐかとか、どんな配列を呼ぶのかとかはほかの人にはあまり知られたくない内容です。
今回は長々と付き合ってくださりありがとうございました
今後はより的確に現状報告をできるよう努めます…。