グローバル変数(質問掲示板

投稿: 002 1  mini ugonight 投稿:2011/08/05 14:22:05(最新:2011/08/05 23:32:05)
グローバル変数を使って自動セーブをしようと思っているのですが開始スクリプトで
addLoadGlobalVariable(10869, "進行")
if getLoadedGlobalVariable(10869, "進行")==null
setFlag("スタート", true)
else
case getLoadedGlobalVariable(10869, "進行")
when 1
setFlag("ミッション1", true)

when 2
setFlag("ミッション2", true)

end
end

とすると
if getLoadedGlobalVariable(10869, "進行")==null

でえらってしまいます。(not defined variable : null)
初めてプレイするときは変数がないのでスタートのフラグがたつようにしたいのですがどうしたらいいでしょうか

コメントする

コメントするには、ログインする必要があります。

コメント一覧

002 1  mini ugonight(投稿日:2011/08/05 23:32, 履歴)
ありがとうございます。
えぇぇぇぇぇじゃあクリアしないと保存されないわけですかぁぁぁぁ

あたさたさんにお願いできたらいいけど…
Logo1 mini fmy(投稿日:2011/08/05 21:50, 履歴)
もしかしたら夢を壊すような話かもしれないけど、
もしかしたら折れずにその壁を破ってくれるアイディアが
現れるかもしれないと期待したいのでコメントしてみる。

各グローバル変数の関数リファレンスから飛べるのですが、
スクリプト/グローバル変数 - Rmake Wiki
はもうご覧になられてますでしょうか。

まず、
addLoadGlobalVariable(10869, "進行")

の後に
getLoadedGlobalVariable(10869, "進行")

で取得する為には
loadGlobalVariable()

が必要になる仕様のようです。
これを最初の方に加えるとよろしいかと。

とはいえこれはさほど大きな問題ではないのです。

僕が大丈夫かなーと思うのはWikiの説明にある、
> 動作
> グローバル変数をセーブするときは
> エンジン内部のテーブルに、保存する変数を書き込み、
> ゲームクリア時にサーバーに保存します。
という項目。

自動セーブを作りたいという事は、
ゲームプレイ中の裏でセーブしつつプレイも続行したい、
という仕様を目指しているのかと僕は解釈したのですが、
言わずもがなgoEnding()が走るとそこでゲームは終了してしまうわけで…。

さて主様はこの困難、どう切り抜けるのでしょう。(厨二病コメ
002 1  mini ugonight(投稿日:2011/08/05 17:51, 履歴)
ありがとうございます。エラーはなくなったのですが…
addLoadGlobalVariable(10869, "進行")

if getLoadedGlobalVariable(10869, "進行")==false
 addSaveGlobalVariable("進行", 1)
else
 case speakWithSelect(2,"はい","いいえ", 
    "セーブデータがあります続きから始めますか?")
  when 0
    
  when 1
    case speakWithSelect(2,"はい","いいえ", 
    "セーブデータは消えますが最初からプレイしますか?")
  when 0 
     addSaveGlobalVariable("進行", 1)
     addLoadGlobalVariable(10869, "進行")
  when 1
     
end

end

end
speak(getLoadedGlobalVariable(10869, "進行"))

case getLoadedGlobalVariable(10869, "進行")
when 1
setFlag("スタート", true)

when 2
setFlag("ミッション1", true)

when 3
setFlag("ミッション2", true)

end

ためしにこうやってみたところ何回やっても
speak(getLoadedGlobalVariable(10869, "進行"))

がnullになるのですが保存の仕方に問題があるのでしょうか
000 1  mini naoki(投稿日:2011/08/05 16:36, 履歴)
どうも。自動セーブは(・∀・)イイ!!ですね。
if getLoadedGlobalVariable(10869, "進行")==null

ではなくて、
if getLoadedGlobalVariable(10869, "進行")==false

なのでは?
よろしくお願いします。