文法エラーが出た。(質問掲示板

投稿: User icon mini 退会したユーザー 投稿:2011/04/16 23:03:16(最新:2011/06/25 07:35:25)
speak("しずくの宿屋だよ!\nしってるかなあ?コロシアムで敵に勝つとc(コイン)がもらえるんだよ")
case speakWithSelect(2,"はい","いいえ",
"1回50cでどうかな?\n現在のc \", getVariable(\"お金\")")
when 0
def buyItem(price)
if getVariable("お金") < price
speak("coinが足りないよ")
else
fadeOut(255, 255, 255)
fadeIn()
addPlayerHP(9999)
setVariable("coin", getVariable("お金") - 100)
end
when 1
speak("またきてね♪")

end

このスクリプトを実行すると

** 1, 9 action : syntax error, コードに文法的な間違いがあります。 line(行): 14
↑このような文法エラーが出ます

何か足りない部分はあるのでしょうか?
ちゃんとif文のendもつけたし・・・。

使用ゲームデータの名前は伏字にしています

コメントする

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

コメント一覧

User icon mini 退会したユーザー(投稿日:2011/06/25 07:35, 履歴)
ありがとうございます^^
   mini ___(投稿日:2011/06/24 21:19, 履歴)
私の以前の書き込みの内容が理解できていればそれでいいと思います。
お金がなかったときの処理は、自分で書いていらっしゃいますよ。
User icon mini 退会したユーザー(投稿日:2011/06/23 20:33, 履歴)
これでいいんですか?
かなりほったらかしだったんで・・・。
   mini ___(投稿日:2011/04/17 15:14, 履歴)
こちらの方にあるように、
掲示板の書き込みは投稿前に確認が出来るはずなんですが…。

足りなかった場合の処理は、ご自身で書いているではありませんか?
■一回50cでどうかな?」
┣■いいえ」を選択
┃┗■「またきてね♪」
┃  イベント終了
┗■はい」を選択
 ┣■お金が足りている場合
 ┃┗■宿屋の処理
 ┃  イベント終了
 ┗■お金が足りない場合
  ┗■「coinが足りないよ」
    イベント終了 


とまぁ、こんな風に出来上がっているようですが。
User icon mini 退会したユーザー(投稿日:2011/04/17 15:04, 履歴)
↓なぜかローマ字になっちゃいました
本当はこういう意味です

今思ったんですが宿屋でお金が足りなかった場合はどうすればいいんですか?

ご回答お願いします

です。

お金が足りなかったときの処置を詳しく教えていただければと思います

buyitemをつけたのはそのためです。
User icon mini 退会したユーザー(投稿日:2011/04/17 15:02, 履歴)
imaomottanndesuga
yadoyadeokanegatarinakattabaaidousurebaiinndesuka?

soremoonegaisimasu
   mini ___(投稿日:2011/04/17 14:39, 履歴)
自分なりの見やすいインデント(字下げ)を心がけてくださいね。
エラー発見のための第一歩となります。
speak(<<EOS)
しずくの宿屋だよ!
しってるかなあ?コロシアムで敵に勝つとc(コイン)がもらえるんだよ
EOS
case speakWithSelect(2,"はい","いいえ", 
   "1回50cでどうかな?\n現在のc ", getVariable("お金")"c")
  when 0
    def buyItem(price)
      if getVariable("お金") < price
        speak("coinが足りないよ")
      else
        fadeOut(255, 255, 255)
        fadeIn()
        addPlayerHP(9999)
        setVariable("coin", getVariable("お金") - 100)
      end
    end
  when 1
    speak("またきてね♪")
end


まあ、3行目のエラーということで、
おそらくは「getVariable("お金")"c"」だと思われますが。


あと、def~endは関数を定義するだけですので、
実際にその内容が実行されるわけではありません。
定義して、実行することで初めて処理がなされます。

ですので、def~endの部分は開始スクリプトあるいは
このスクリプトの冒頭に記述し、case spealWithSelect内では
buyItem(任意の数字) とのみ書いてください。

あるいは、def及びそれに対応するendを消せばよろしいかと。
User icon mini 退会したユーザー(投稿日:2011/04/17 14:01, 履歴)
間違えました

speak("しずくの宿屋だよ!\nしってるかなあ?コロシアムで敵に勝つと
c(コイン)がもらえるんだよ")
 case speakWithSelect(2,"はい","いいえ", 
"1回50cでどうかな?\n現在のc ", getVariable("お金")"c")
 when 0 def buyItem(price)
 if getVariable("お金") < price
 speak("coinが足りないよ")
 else fadeOut(255, 255, 255)
 fadeIn()
 addPlayerHP(9999)
 setVariable("coin", getVariable("お金") - 100)
 end
 end
 when 1
 speak("またきてね♪") end

このスクリプトを入力すると
** 1, 9 action : syntax error, コードに文法的な間違いがあります。 line(行): 3

と出ます

次は何が原因なんでしょうか?

ご回答お願いします

User icon mini 退会したユーザー(投稿日:2011/04/17 13:58, 履歴)
このエラーは解決しましたが別のエラーが出てしまいました

[codespeak("しずくの宿屋だよ!\nしってるかなあ?コロシアムで敵に勝つとc(コイン)がもらえるんだよ") case speakWithSelect(2,"はい","いいえ", "1回50cでどうかな?\n現在のc ", getVariable("お金")"c") when 0 def buyItem(price) if getVariable("お金") < price speak("coinが足りないよ") else fadeOut(255, 255, 255) fadeIn() addPlayerHP(9999) setVariable("coin", getVariable("お金") - 100) end end when 1 speak("またきてね♪") end]
このスクリプトを入力すると
** 1, 9 action : syntax error, コードに文法的な間違いがあります。 line(行): 3

と出ます

次は何が原因なんでしょうか?
User icon mini 退会したユーザー(投稿日:2011/04/17 13:46, 履歴)
わかりました。endを付け足してみます
   mini ___(投稿日:2011/04/16 23:58, 履歴)
スクリプトを投稿する際には、Rmake記法に従って
{{{code~}}}を使用して頂けると、見やすくてよろしいかと。
Rmake記法

speak(<<EOS)
しずくの宿屋だよ!
しってるかなあ?コロシアムで敵に勝つとc(コイン)がもらえるんだよ
EOS
case speakWithSelect(2,"はい","いいえ", 
   "1回50cでどうかな?\n現在のc \", getVariable(\"お金\")") 
  when 0 
    def buyItem(price) 
    if getVariable("お金") < price 
      speak("coinが足りないよ") 
    else 
      fadeOut(255, 255, 255) 
      fadeIn() 
      addPlayerHP(9999) 
      setVariable("coin", getVariable("お金") - 100) 
    end 
  when 1 
    speak("またきてね♪") 
end 


この場合、defが問題ですかね。
def~endでひとつの文ですので、endが足りないかと。
しかし、この場合def自体がいらないんじゃないですかねー。

def 関数名( 引数 )
  処理内容1
  処理内容2
  .
  .
  .
end

こうすることで自作関数を定義することが出来ますが、
実際に自作関数を使用する際にはdefは必要ありません。
buyItemが既に定義した自作関数であるのなら、
defを消すことで問題は解決すると思います。

後はまあ、ちょっと気になったのが変数のことで。
このスクリプトの場合、
# 宿屋に入る前
  変数「お金」…56
# 宿屋に入った後
  変数「お金」…56
  変数「coin」…6

となりますよね…。仕様でしょうかねぇ。