コメント
このコメントは、【トピック】何が間違っているのかわかりませんへのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
えっと、とりあえず整理しますね。
このようなコードだとend不足(多すぎ)がほとんどです。
endをまとめて書いていると、if文の実行中にendにぶつかる前に
下のifにぶつかっている所があるかもです。
(スクリプトは基本上から下に実行される)
if文などの文は終わらせるタイミングで
endを書くようにするのがいいと思います。
case speakWithSelect(3,"イチゴジュース","パンケーキ","イチゴクッキー",
"何を作りますか?\n\n?\n")
when 0
if getFlag("eレシピ")
E=getItemIndexWithId(7261)
if E==-1
speak("材料が足りません")
else
m=getItemIndexWithId(7262)
if m==-1
speak("材料が足りません")
else
removeItemWithIndex(m)
removeItemWithIndex(E)
speak("料理は成功した")
giveItem(7264)
end
end
else
E=getItemIndexWithId(7261)
if E==-1
speak("材料が足りません")
else
m=getItemIndexWithId(7262)
if m==-1
speak("材料が足りません")
else
removeItemWithIndex(m)
removeItemWithIndex(E)
speak("料理は失敗した")
giveItem(7265)
end
end
end
when 1
if getFlag("pレシピ")
s=getItemIndexWithId(7263)
if s==-1
speak("材料が足りません")
else
k=getItemIndexWithId(7276)
if k==-1
speak("材料が足りません")
else
m=getItemIndexWithId(7262)
if m==-1
speak("材料が足りません")
else
removeItemWithIndex(m)
removeItemWithIndex(s)
removeItemWithIndex(k)
speak("料理は成功した")
giveItem(7278)
end
end
else
s=getItemIndexWithId(7263)
if s==-1
speak("材料が足りません")
else
k=getItemIndexWithId(7276)
if k==-1
speak("材料が足りません")
else
m=getItemIndexWithId(7262)
if m==-1
speak("材料が足りません")
else
removeItemWithIndex(m)
removeItemWithIndex(s)
removeItemWithIndex(k)
speak("料理は失敗した")
giveItem(7277)
end
end
end
when 2
if getFlag("kレシピ")
s=getItemIndexWithId(7263)
if s==-1
speak("材料が足りません")
else
k=getItemIndexWithId(7276)
if k==-1
speak("材料が足りません")
else
E=getItemIndexWithId(7261)
if E==-1
speak("材料が足りません")
else
removeItemWithIndex(E)
removeItemWithIndex(s)
removeItemWithIndex(k)
speak("料理は成功した")
giveItem(7277)
end
end
else
s=getItemIndexWithId(7263)
if s==-1
speak("材料が足りません")
else
k=getItemIndexWithId(7276)
if k==-1
speak("材料が足りません")
else
E=getItemIndexWithId(7261)
if E==-1
speak("材料が足りません")
else
removeItemWithIndex(E)
removeItemWithIndex(s)
removeItemWithIndex(k)
speak("料理は失敗した")
giveItem(7279)
end
end
end
end
このようなコードだとend不足(多すぎ)がほとんどです。
endをまとめて書いていると、if文の実行中にendにぶつかる前に
下のifにぶつかっている所があるかもです。
- 簡単な例
if getFlag("A")
speak("A")
if getFlag("B")#この時点でアウト
speak("B")
else
speak("C")
end#endが1つ足りていないが、上のミスを直さないと表示されない
(スクリプトは基本上から下に実行される)
if文などの文は終わらせるタイミングで
endを書くようにするのがいいと思います。
case speakWithSelect(3,"イチゴジュース","パンケーキ","イチゴクッキー", "何を作りますか?\n\n?\n") when 0 if getFlag("eレシピ") E=getItemIndexWithId(7261) if E==-1 speak("材料が足りません") else m=getItemIndexWithId(7262) if m==-1 speak("材料が足りません") else removeItemWithIndex(m) removeItemWithIndex(E) speak("料理は成功した") giveItem(7264) end end else E=getItemIndexWithId(7261) if E==-1 speak("材料が足りません") else m=getItemIndexWithId(7262) if m==-1 speak("材料が足りません") else removeItemWithIndex(m) removeItemWithIndex(E) speak("料理は失敗した") giveItem(7265) end end end when 1 if getFlag("pレシピ") s=getItemIndexWithId(7263) if s==-1 speak("材料が足りません") else k=getItemIndexWithId(7276) if k==-1 speak("材料が足りません") else m=getItemIndexWithId(7262) if m==-1 speak("材料が足りません") else removeItemWithIndex(m) removeItemWithIndex(s) removeItemWithIndex(k) speak("料理は成功した") giveItem(7278) end end else s=getItemIndexWithId(7263) if s==-1 speak("材料が足りません") else k=getItemIndexWithId(7276) if k==-1 speak("材料が足りません") else m=getItemIndexWithId(7262) if m==-1 speak("材料が足りません") else removeItemWithIndex(m) removeItemWithIndex(s) removeItemWithIndex(k) speak("料理は失敗した") giveItem(7277) end end end when 2 if getFlag("kレシピ") s=getItemIndexWithId(7263) if s==-1 speak("材料が足りません") else k=getItemIndexWithId(7276) if k==-1 speak("材料が足りません") else E=getItemIndexWithId(7261) if E==-1 speak("材料が足りません") else removeItemWithIndex(E) removeItemWithIndex(s) removeItemWithIndex(k) speak("料理は成功した") giveItem(7277) end end else s=getItemIndexWithId(7263) if s==-1 speak("材料が足りません") else k=getItemIndexWithId(7276) if k==-1 speak("材料が足りません") else E=getItemIndexWithId(7261) if E==-1 speak("材料が足りません") else removeItemWithIndex(E) removeItemWithIndex(s) removeItemWithIndex(k) speak("料理は失敗した") giveItem(7279) end end end endこのようなコードだとend不足(多すぎ)がほとんどです。
endをまとめて書いていると、if文の実行中にendにぶつかる前に
下のifにぶつかっている所があるかもです。
if getFlag("A") speak("A") if getFlag("B")#この時点でアウト speak("B") else speak("C") end#endが1つ足りていないが、上のミスを直さないと表示されない(スクリプトは基本上から下に実行される)
if文などの文は終わらせるタイミングで
endを書くようにするのがいいと思います。