グローバル変数を使って…(質問掲示板

投稿: Icon mini cdv30200 投稿:2012/08/02 02:11:02(最新:2012/08/07 00:18:07)
2DRPGで、既存の作品からレベルやアイテム等を引き継いだゲームを作りたいのですが、うまくいきません。



  • 1作目の開始スクリプト

clearSaveGlobalVariable()
clearLoadGlobalVariable()
loadGlobalVariable()

  • 1作目ゲーム中、アイテム等入手と同時に

setVariable("助手日記", getVariable("助手日記")+1)



  • 1作目クリア時に変数を保存

speak("おつかれさま。")
clearSaveGlobalVariable()
addSaveGlobalVariable("助手日記", getVariable("助手日記"))
goEnding()


  • 2作目の開始スクリプトで1作目の変数を読み込み


clearLoadGlobalVariable()
addLoadGlobalVariable(15737, "助手日記")
loadGlobalVariable()

  • 2作目で1作目の変数を表示


speak("お前が\n前回ゲームクリア時にもっていたアイテムは\n
" + getLoadedGlobalVariable(15737, "助手日記") + "個だな。")



以上です。
どなたか教えて下さるとありがたいです。

コメントする

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

コメント一覧

Nyan mini rurun9(投稿日:2012/08/02 16:30, 履歴)
スクリプト/グローバル変数

使い方はリファレンスとwikiを見ての通り
ちょっとやってみた感じでは、ロードする側のゲームが「非公開でのテストプレー」だとデータにアクセスできないっぽいです
これはsaveGameData()も似たような形だったので、グロバール変数とは、とりあえず公開した作品に仕込む事ができるものだと考えて良いカモ。


さて。
#1作目開始スクリプト
setVariable("アイテム", 0)
ゲーム中にアイテム取ったら+1ずつ増やす
#1作目クリア時
speak("おつかれさま。")
clearSaveGlobalVariable()
addSaveGlobalVariable("助手日記", getVariable("アイテム"))
goEnding()
保存のみをする1作目には開始スクリプトでの仕込み不要、変数名を同じにすると後々紛らわしいので名前を別にしてみます

#2作目の開始スクリプト
clearLoadGlobalVariable()
addLoadGlobalVariable(15737, "助手日記")
loadGlobalVariable()
#2作目のイベントスクリプト
n=getLoadedGlobalVariable(15737, "助手日記")
if n
 w=n+" 個だな。"
else
 w="わからない"
end
speak("お前が\n前回ゲームクリア時にもっていたアイテムは\n "+w)
Icon mini cdv30200(投稿日:2012/08/03 22:11, 履歴)
コメント嬉しいです。ありがとうございます!
さっそく試してみます。
Icon mini cdv30200(投稿日:2012/08/04 09:37, 履歴)
やってみました!でも「レベルを上げませんでした」としか
表示されません。

最初に「アイテムで」と言っておきながら
「レベル」を表示しようとしています。
同じ事だから良いだろうと思ったのですが
それがいけないのでしょうか…。


  • 1作目開始スクリプト

setVariable("レベル", 1)


ゲーム中にレベルを上げたら+1ずつ増やす

  • 1作目クリア時

speak("おつかれさま。")
clearSaveGlobalVariable()
addSaveGlobalVariable("助手日記", getVariable("レベル"))
goEnding()


  • 2作目開始スクリプト

clearLoadGlobalVariable()
addLoadGlobalVariable(15737, "助手日記")
loadGlobalVariable()


  • 2作目イベントスクリプト

n=getLoadedGlobalVariable(15737, "助手日記")
if n
w=n+"まで上げたのですね。"
else
w="を上げませんでしたね。"
end
speak("あなたはゲーム「グローバル変数のテスト」で\nレベル"+w)
Nyan mini rurun9(投稿日:2012/08/04 19:55, 履歴)
んーなんでなのか謎。

アイテムをレベルに変えても、それはグローバル変数"助手日記"の中身が変わるだけなので、そこは何ら問題はありません

2作目開始スクリプトのloadGlobalVariable()がtrueなのに、getLoadedGlovalVariable()はnullしか出ませんねぇ…

ちょっと判ったのは、ノベル型ゲームではgetLoadedGlobalVariable()でちゃんと拾えている、という事ですが。
コレは掲示板過去記事を見る限り、RPG(プレイヤーキャラ設定による?)だとグローバル変数がロードされない不具合がまだ残ってる可能性が高そうですが、何とも言えません
Material 6858 mini akasata(投稿日:2012/08/04 21:04, 履歴)
運営のあかさたです。
Rmakeのご利用ありがとうございます。

プレイヤーキャラクタが異なるとグローバル変数が読み込め
なくなる不具合が発生していました。先ほど修正したので
現在は読み込めるようになっているかと思います。

よろしくお願いします。
Nyan mini rurun9(投稿日:2012/08/04 21:18, 履歴)
超早い修正対応、有難うございまーす
Icon mini cdv30200(投稿日:2012/08/04 22:40, 履歴)
修正ありがとうございます!

読み込み確認できました!嬉しい〜。
分かりやすく教えて下さってありがとうございました!!

今はレベルの「表示」だけですが、実際にレベルアップさせる方法を考えようと思います。また行き詰まったら、ここに書き込みするかもしれません。
Icon mini cdv30200(投稿日:2012/08/07 00:18, 履歴)
2作目開始時に、1作目でクリアした時のレベルまで自動的に上げる事ができました。

また分からない事がありましたら質問するかと思いますので、その時はよろしくお願いします。
ありがとうございました!