コメント

このコメントは、【トピック】何が間違っているのかわかりませんへのコメントです。

コメントの内容

User icon mini 退会したユーザー(投稿日:2011/07/04 00:07/04/11)
えっと、とりあえず整理しますね。
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を書くようにするのがいいと思います。

コメントの内容(一番最初の投稿)

User icon mini 退会したユーザー(投稿日:2011/07/04 00:07/04/11)
えっと、とりあえず整理しますね。
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を書くようにするのがいいと思います。