saveGameDataのValueの中に変数を入れる場合は・・・。(質問掲示板

投稿: Aa mini #いお 投稿:2012/08/01 22:15:01(最新:2012/08/04 12:06:04)
通常変数がまだ少し覚えられていないようだったので
wikiで勉強してきたのですが
セーブする場合、
saveGameData("k", "setVariable("k", getVariable("k") + 1)")

これは何が間違っているのでしょう、
誰か回答をお願いします・・・・あ!
これは、プレイ回数みたいのを総計にして1回ゲームを起動したら貯まって行くようにしたいんです(数値が)
それで、
speak(loadGameData(k) , "回目!")

でロードしたいわけですが
間違っている部分を誰か教えてください。

コメントする

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

コメント一覧

Material 71926 1 mini なとおとき(投稿日:2012/08/01 22:30, 履歴)
そのkっていう変数が文字列じゃなくて数値だったとか?

その場合、
setVariable("k", getVariable("k") + 1)
っていう処理を直前にして
getVariable("k")=toString(getVariable("k"))
で、しっかり文字列に変えてから
saveGameData("k", getVariable("k"))
をすればたぶん行けます。
Aa mini #いお(投稿日:2012/08/01 22:33, 履歴)
toString
・・・?
Aa mini #いお(投稿日:2012/08/01 22:35, 履歴)
こんな感じですか?
getVariable("k")=toString(getVariable("k")) 
saveGameData("k", "setVariable("k", getVariable("k") + 1)")
Aa mini #いお(投稿日:2012/08/01 22:36, 履歴)
あ、ミスですすいません。
Material 71926 1 mini なとおとき(投稿日:2012/08/01 22:40, 履歴)
toStringとは、数値を文字列に変える関数。

getVariable("k")=setVariable("k", getVariable("k") + 1)
getVariable("k")=toString(getVariable("k"))
saveGameData("k", getVariable("k"))

これで、できると思います。
Aa mini #いお(投稿日:2012/08/01 22:43, 履歴)
動作しなかったです・・・。
間違っているのかもしれないので聞きますが
setVariable("k", getVariable("k") + 1) 
getVariable("k")=toString(getVariable("k")) 
saveGameData("k", getVariable("k"))

こうですか?
他の方法も試して
getVariable("k")=toString(getVariable("k")
が間違ってるらしいので消したら
「k回目!」と出てしまいました
Aa mini #いお(投稿日:2012/08/01 22:46, 履歴)
getVariable("k")=setVariable("k", getVariable("k") + 1)

この部分が間違ってるらしいです。(テストプレーによれば)

でも、ありがとうございました
どうしたらいいんでしょうか・・・。
Material 71926 1 mini なとおとき(投稿日:2012/08/01 22:46, 履歴)
あ!、すみません。
1行目、getVariable("k")=
いらなかったです;
2行目は?ちょっと1行目を直してから
もう1回入れてみてください。
それでも直らなかったらいってください;
Aa mini #いお(投稿日:2012/08/01 22:47, 履歴)
そろそろ寝ます^^
また明日~~♪
Material 71926 1 mini なとおとき(投稿日:2012/08/01 22:49, 履歴)
即解決できなくてすみませんーー;
おやすですm(_ _)m
Aa mini #いお(投稿日:2012/08/01 22:49, 履歴)
最後に試してみたのですが、
getVariable("k")=toString(getVariable("k"))

の部分が動作しません。
今日はありがとうございました
また明日会いましょう?会いましょう!
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/08/01 22:55, 履歴)
通常変数への代入は
getVariable関数ではなく、setVariable関数を使用します
Material 71926 1 mini なとおとき(投稿日:2012/08/01 23:03, 履歴)
あ、それもsetVariable関数でしたか!
勉強になりました。
あ、あと誤答すみませんでした
Aa mini #いお(投稿日:2012/08/02 08:51, 履歴)
ありがとうございます!
Aa mini #いお(投稿日:2012/08/02 09:02, 履歴)
でもどうやって使ったらいいのかまだ分かりません・・・。
いろいろ試してみたのですが
setVariable("k", setVariable("k") + 1) 
saveGameData("k", setVariable("k"))

これや
setVariable("k", getVariable("k") + 1) 
saveGameData("k", setVariable("k"))

これや
setVariable("k", getVariable("k") + 1) 
getVariable("k")=toString(getVariable("k")) 
saveGameData("k", getVariable("k"))

これや
setVariable("k", getVariable("k") + 1) 
getVariable("k")=toString(getVariable("k")) 
saveGameData("k", getVariable("k"))

こんなのを試しましたが全く動作しません・・・。
どうしたらいいでしょうか
Orichara01 2 700x700  mini ラジアン(投稿日:2012/08/02 10:16, 履歴)
getVariable("k")=toString(getVariable("k"))

は、
setVariable("k", toString(getVariable("k")))

だと問題ないと思います。

4つのうち上の2つは、saveGameDataのところにsetVariableを使ってるからだと。getVariableにしたほうがいいと思いますよ。
Aa mini #いお(投稿日:2012/08/02 14:41, 履歴)
saveGameDataの第2引数が文字列ではありません。
と、
setVariable("k", setVariable("k") + 1) 
saveGameData("k", getVariable("k"))

をしたら出ました。
Material 71926 1 mini なとおとき(投稿日:2012/08/02 15:36, 履歴)
その2行の間にグイッと

setVariable("k", toString(getVariable("k")))

ですよ
Aa mini #いお(投稿日:2012/08/02 18:09, 履歴)
このゲームの石に使いたいのですが、
http://rmake.jp/games/15732/play
ずっと1という数字が動きません。
Material 71926 1 mini なとおとき(投稿日:2012/08/02 19:19, 履歴)
waitTimei(1000)
value=loadGameData("k")#データを読み込み、変数に置き換える。
value=toNumber(value)#文字列を数値へ変換
value=value+1#値を足す
value=toString(value)#数値を文字列へ変換
waitTime(1000)
saveGameData("k", value)#データをセーブ
speak("あなたは")
speak(value,"回たたきました!")#結果を表示


僕のテストゲームの2部屋目のスクリプトを
加工したものです。
これをあの石にセットしてみてください。
Aa mini #いお(投稿日:2012/08/02 22:36, 履歴)
ありがとうございます!
あの・・・○○○回を超えたらイベントをゲームをプレイする人共通で岩を消す動作をやりたいです。
あと、誰が壊したかも知らせたいです
その場合どうしたらいいでしょうか。
そこでこんな風につけ足してみたんですが
あと、内容を知られたくないのでなるべく文字を変換しています
ごめんなさい
やっぱり間違いがあるようです
間違いの指摘お願いします!
case speakWithSelect(2,"はい","いいえ", 
    "岩をたたきますか?")
  when 0
if getFlag("○○○回こえ")
speak("岩は崩れている")
else
playSound(ID)
value=loadGameData("k")#データを読み込み、変数に置き換える。
value=toNumber(value)#文字列を数値へ変換
value=value+1#値を足す
value=toString(value)#数値を文字列へ変換
playSound(ID)
waitTime(2000)
saveGameData("k", value)#データをセーブ
speak("あなたは")
playSound(ID)
speak(value,"回目にたたきました!")#結果を表示
speak("少しお待ちください")
waitTime(1000)
speak("ロードが終わりました。")
if value=500
setEventTarget("playerCharacterEvent", 7, 10)
setEventTarget("event0", 7, 8)
runEventMove()
setEventTarget("event0", 7, 9)
runEventMove()
speak("壊れたZ")
daiwan=setFlag("○○回こえ", true)
openActivityFeedWindow("アクティビティ")
saveGameData(w, daiwan)
speak("少しお待ちください")
waitTime(1000)
speak("セーブが完了しました。\nなお、ゲームのセーブではないです。")
end
  when 1
    speak("たたこう!")
end
Aa mini #いお(投稿日:2012/08/02 22:39, 履歴)
追記
if value=500
この部分が間違っているようです
どうしたらいいでしょう
あと、前の文で説明していることもできる範囲で答えてくれませんか・・・?
お願いします!
Material 71926 1 mini なとおとき(投稿日:2012/08/02 22:47, 履歴)
if value=500

は、条件式としては成り立ちません。

if value>=500#valueが500以上


if value==500#valueが500に等しい

このどちらがふさわしいかはわかりませんが、
このどちらかにすればたぶんエラー文は消えると思います。
Orichara01 2 700x700  mini ラジアン(投稿日:2012/08/03 01:06, 履歴)
フラグの"○○○回こえ"っていうのは、その人だけのフラグなので、
超えた人だけしか、speak("岩は崩れている")は表示されないのではないでしょうか?
ここはloadGameDataとかを、どうにかこうにかして岩を共通でこわせばいいのかなと。

2DRPGや2DアクションRPGのほうは作ったこと無いので
じしんはありませんが・・・
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/08/03 07:43, 履歴)
関数名などのヒントをもらったり
エラーが表示されたら
その関数や周囲のスクリプトが
どういった動作をしているのか
きちんと調べて
ひとつひとつ理解することが
先のような気がします

setVariable関数やgetVariable関数についての
使い方の説明は
ノウハウ内の記事にもありますし、

if文の使い方の問題についても同様に
ノウハウ内の記事に使用法や
過去の記事に質問と解決法が掲載されています

理解する、という段階まで進まないと
同じ失敗を何度も繰り返してしまいますよ
Aa mini #いお(投稿日:2012/08/04 12:03, 履歴)
ありがとうございます。
なんとか自力でエラーを直しました・・・!
明日には公開ができるようになりました。
Cdv30200 aoi icon mini aoihikawa(投稿日:2012/08/04 12:06, 履歴)
おめでとうございます
&おつかれさまです

作品、楽しみにしていますね