[解決済] 無いはずの1行(質問掲示板

投稿: Material 320333 2 mini hukuhan2 投稿:2017/04/04 20:22:04(最新:2017/04/05 13:59:05)
テストプレー中、バグで、キャラクタに話しかけられなくなっていたので、右の欄を確認したら、26行目に文法的な間違いがあるとありました。
ですが、そのキャラクタのイベント実行内容の欄は、24行しかありませんでした。
同様に、別のキャラクタも、15行目と書いてあっても、実際には14行しかありませんでした。
()の中は抜きましたが、文法はこんな感じです。
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
if getFlag ("")
speak("")
speak("")
else
speak("")
speak("")
speak("")
speak("")
case speakWithSelect(")
when 0
speak("")
speak("")
speak("")
speak("")
speak("")
speak("")
addPartyMember()
speak("")
setFlag("")
when 1
speak("")
speak("")
end
ーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーーー
どこが間違っているのでしょうか?わかる方、教えてください…

コメントする

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

コメント一覧

Material 320333 2 mini hukuhan2(投稿日:2017/04/05 13:59, 履歴)
ありがとうございます!解決しました。
            mini mosmoss(投稿日:2017/04/04 23:08, 履歴)
エラーを教えてくれるシステムは、
見た目上の(コピペした後打ち直していない)改行を数えないほか、
一行が長くて二段になっている場合も一行とカウントするようです。
ピンポイントの行にない場合は、その前後にあるようです。

また、イベントスクリプトの最後の行にエラー箇所が出る場合、
endの数が足りてない、という可能性が高いみたいです。
システムでは、ここのendが抜けてます!と指摘できないためです。
すぐにどこのendが足りないか思いつかない時や、
ざっと見て見つけられない時は、
そのendが何を閉じているのか、 一個一個、地道に探していくといいでしょう。
Material 154390 1 mini  創 (投稿日:2017/04/04 22:43, 履歴)
endが一つ足りません。
if getFlag("") 
  speak("") 
  speak("") 
 else 
  speak("") 
  speak("") 
  speak("") 
  speak("") 
   case speakWithSelect("") 
    when 0 
     speak("") 
     speak("") 
     speak("") 
     speak("") 
     speak("") 
     speak("") 
     addPartyMember() 
     speak("") 
     setFlag("") 
    when 1 
     speak("") 
     speak("") 
   end
#ここに本来来るはずのif文のendが抜けています。 

あと、スクリプトを書く際はこのように段落をつけて見やすくすればこのようなミスも見つかりやすくなりますよ。