銀行を作ろうと頑張った結果orz(質問掲示板)
投稿:
退会したユーザー
投稿:2012/07/24 17:55:24(最新:2012/07/25 16:29:25)
x=true
if x=getMoney()>999
setVariable("銀行", 0)
case speakWithSelect(3,"1000G","10000G","預けない",
"こちらは銀行です。\nいくら預けますか?")
when 0
setVariable("銀行",getVariable("銀行")+1000)
subMoney(1000)
when 1
setVariable("銀行",getVariable("銀行")+10000)
subMoney(10000)
when 2
speak("そうですか\nありがとうございました。")
else
speak("すいません、お預かりは1000Gからとなっております。")
speak("ありがとうございました。")
end
end
と書いたら
syntax error, コードに文法的な間違いがあります。 line(行): 2
と出ました。
今、変数、フラグがとても苦手なので、だれか教えてください。
お願いします。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
エラーの原因は2行目の「=」だと。
条件式では「==」にしないと。
それと「x=」ってこれ必要ないような・・・
条件式では「==」にしないと。
それと「x=」ってこれ必要ないような・・・
あ、ほんとだ。
でも、今度は話しかけても何もならなくなりました。
何でですか?教えてください
お願いします。
でも、今度は話しかけても何もならなくなりました。
何でですか?教えてください
お願いします。
case文のendが
if文のelseの後にきてるので、
お金が999以下のときに
何もおこらないのかも。
要するに、途中にあるelseはcase文のelseのため、
このままでは、elseの内容は実行されません・・・
if文のelseの後にきてるので、
お金が999以下のときに
何もおこらないのかも。
要するに、途中にあるelseはcase文のelseのため、
このままでは、elseの内容は実行されません・・・
ところで3行目のsetVariable("銀行", 0)は
所持金が1000以上の時に実行されるけど仕様?
このままだと引き出せないような気がしたもので。
所持金が1000以上の時に実行されるけど仕様?
このままだと引き出せないような気がしたもので。
途中のelseはcaseのになっちゃうので
case文のendの後にもって来るべき。
そうすればif文のelseになりますよーっと。
case文のendの後にもって来るべき。
そうすればif文のelseになりますよーっと。
endの位置って重要ですね。
わかりやすく教えていただきありがとうございました。
わかりやすく教えていただきありがとうございました。
#■開始スクリプト setVariable("銀行", 0); addMoney(0)r=rand(2000) #臨時確認用。実装時に消しといてOK speak("臨時収入 +",r," G"); addMoney(r) s=createArray() #選択肢 s[0]="帰ります" #持ってるGがいくらか調べて、千G毎の選択肢を作る x=floor( getMoney() /1000 ) n=0; i=0 while n<x i=i+1000 pushArray(s, i+" G") n=n+1 end a=speakWithSelectArray(s, "こちらは銀行の預金窓口です。\nいくらお預かりしましょうか?\n【預金額 "+getVariable("銀行")+" G】\n\n現在 "+getMoney()+" G 所持しています") case a when 0 #帰る speak("またのお越しをお待ちしております") else subMoney( a*1000 ) setVariable("銀行", getVariable("銀行")+a*1000 ) speak(s[a]+" お預かり致しました。\n【預金額 "+getVariable("銀行")+" G】\n\nありがとうございました") end預金引き出し窓口は別に作るとして、何か疑問点などありましたらどーぞぉ
case speakWithSelect(3,"預ける","引き出す","帰る", "こちらは銀行です。\nどうしますか?") when 0 s=createArray() #選択肢 s[0]="帰ります"#持ってるGがいくらか調べて、千G毎の選択肢を作る x=floor( getMoney() /1000 ) n=0; i=0 while n<x i=i+1000 pushArray(s, i+" G") n=n+1 end a=speakWithSelectArray(s, "いくらお預かりしましょうか?\n【預金額"+getVariable("銀行")+" G】\n\n現在"+getMoney()+" G 所持しています") case a when 0 #帰る speak("またのお越しをお待ちしております") else subMoney( a*1000 ) setVariable("銀行", getVariable("銀行")+a*1000 ) speak(s[a]+" お預かり致しました。\n【預金額"+getVariable("銀行")+" G】\n\nありがとうございました") end when 1 s=createArray() #選択肢 s[0]="帰ります"#持ってるGがいくらか調べて、千G毎の選択肢を作る x=floor( getVariable("銀行") /1000 ) n=0; i=0 while n<x i=i+1000 pushArray(s, i+" G") n=n+1 end a=speakWithSelectArray(s, "いくら引き出しましょうか?\n【預金額"+getVariable("銀行")+" G】\n\n現在"+getMoney()+" G 所持しています") case a when 0 #帰る speak("またのお越しをお待ちしております") else addMoney( a*1000 ) setVariable("銀行", getVariable("銀行")-a*1000 ) speak(s[a]+" 引き出しました。\n【所持金"+getMoney() +" G】\n\nありがとうございました") end when 2 speak("ありがとうございました。") endありがとうございます。
選択肢を増やすというのが、俺には全然わからないです。orz
すごいですね、臨時収入という発想もすごいです。
引き出しも合わせて、作れたので、一応載せました。
最大x*1000までを預けられる事がワカル
ので選択肢配列sに要素を1000,2000,3000,…という形で追加していってるのです
もしx=0つまり999以下しか所持してないなら「選択肢に追加するwhile文」が0回繰り返されて終わる形になってます
s[0]つまり0個目の選択肢がキャンセルで固定してあって、その後は必ず1番目なら1000、2番目なら2000、という選択肢が作られるのがポイントw
引き出し窓口が作れるという事は、何故動くのかが理解できている証拠です。素晴らしい
RPGだとテストプレーに時間かかるので、こうしたイベントスクリプトは動作確認を簡単にする工夫も必要で面倒ですよねぇ
いえいえ、ただコピーしてspeakの中身などを変えただけですよ。
わかりやすく教えていただき、ありがとうございました。