直したのに今度は・・・(質問掲示板)
投稿: 闇さん
投稿:2011/07/06 02:14:06(最新:2011/07/09 16:29:09)
case speakWithSelect(3,"イチゴジュース","パンケーキ","イチゴクッキー",
"何を作りますか?")
when0
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
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
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
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
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
このように直したのですが今度は
2, 3 action : syntax error, コードに文法的な間違いがあります。 line(行): 3
というエラーが・・・
ツイート
"何を作りますか?")
when0
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
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
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
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
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
このように直したのですが今度は
2, 3 action : syntax error, コードに文法的な間違いがあります。 line(行): 3
というエラーが・・・
コメントする
コメントするには、ログインする必要があります。
コメント一覧
え、そんな単純な事だったの…。
そりゃ一行に二つ書いたらエラッタするよね。
つまり「スクリプトはコピペはするな。見ながら自分で全部打ち込め」て教訓ですね。
wikiの物を売れる店のスクリプトが動かないて言ってた人達は全員、本当にコピペしただけで、改行とかの根本的な書き方のルールをチェックすらしていなかったワケなんだ!
これを防ぐ手立てとしては、
スクリプトエディタに「改行マーク」を目立つ色で表示してしまうか、画面右端自動折り返し表示を止めて左右スクロールバーをつけちゃうか、どっちかですかねぇ?
そりゃ一行に二つ書いたらエラッタするよね。
つまり「スクリプトはコピペはするな。見ながら自分で全部打ち込め」て教訓ですね。
#この枠の中ってコピーした時に #改行無しで全部くっついてるのが問題w
wikiの物を売れる店のスクリプトが動かないて言ってた人達は全員、本当にコピペしただけで、改行とかの根本的な書き方のルールをチェックすらしていなかったワケなんだ!
これを防ぐ手立てとしては、
スクリプトエディタに「改行マーク」を目立つ色で表示してしまうか、画面右端自動折り返し表示を止めて左右スクロールバーをつけちゃうか、どっちかですかねぇ?
レス主さん的には解決かもしれないので蛇足な話。
シカトしておk。
自分の出る幕はないかなーと思ってたけどつい(目が)カッとなって調べてみた。
スクリプトを入力するテキストフォーム?の性質か知らないが
・一行の文章の幅が枠の幅を超える(およそ半角40文字、ただしプロポーショナルフォントあり)
・一行の文章中に特定の文字(自分が見つけたのは半角スペースか全角文字)が含まれている
と、画面上は自動改行が行われる機能がある模様。
ただしスクリプトのコンパイラ?上では一行文章として扱われるので
※間に半角スペース
はエラー
x, y action : syntax error, コードに文法的な間違いがあります。 line(行): 1
x, y action : )の直後の識別子は改行後になければいけません。 line(行): 1
が出る。
エラーそのものは「カッコの後の代入は勘弁しておくれー」と怒られてるが
見た目は改行されていてエラー箇所が発見できない問題。
もしこの件について過去スレがあったらご指摘頂きたい。
シカトしておk。
自分の出る幕はないかなーと思ってたけどつい(目が)カッとなって調べてみた。
スクリプトを入力するテキストフォーム?の性質か知らないが
・一行の文章の幅が枠の幅を超える(およそ半角40文字、ただしプロポーショナルフォントあり)
・一行の文章中に特定の文字(自分が見つけたのは半角スペースか全角文字)が含まれている
と、画面上は自動改行が行われる機能がある模様。
ただしスクリプトのコンパイラ?上では一行文章として扱われるので
a=getItemIndexWithId(7261) b=getItemIndexWithId(7262)
※間に半角スペース
はエラー
x, y action : syntax error, コードに文法的な間違いがあります。 line(行): 1
x, y action : )の直後の識別子は改行後になければいけません。 line(行): 1
が出る。
エラーそのものは「カッコの後の代入は勘弁しておくれー」と怒られてるが
見た目は改行されていてエラー箇所が発見できない問題。
もしこの件について過去スレがあったらご指摘頂きたい。
どこで間違っているか確かめるために
としたところ1行目に
2, 3 action : syntax error, コードに文法的な間違いがあります。 line(行): 1
2, 3 action : )の直後の識別子は改行後になければいけません。 line(行): 1
このようなエラーがたぶんa=getItemIndexWithId(7261)
は間違えていないと思います
a=getItemIndexWithId(7261) b=getItemIndexWithId(7262) if a==-1 || b==-1 speak("材料が足りません") else removeItemWithIndex(a) removeItemWithIndex(b) speak("材料が足りています") end
としたところ1行目に
2, 3 action : syntax error, コードに文法的な間違いがあります。 line(行): 1
2, 3 action : )の直後の識別子は改行後になければいけません。 line(行): 1
このようなエラーがたぶんa=getItemIndexWithId(7261)
は間違えていないと思います
退会したユーザー(投稿日:2011/07/07 18:42,
履歴)
おそらく3行目だから
when0のスペースが抜けてるんだと思いますね
正しくはwhen 0です
when0のスペースが抜けてるんだと思いますね
正しくはwhen 0です
一度全部忘れましょー。
とりあえず何をどう組み立てるのかを考えるのが先。
となれば完成。
という形式で他も作れば良いと思います。
これだけスッキリしていれば、endが足りないとかも流石に気付くかと。
とりあえず何をどう組み立てるのかを考えるのが先。
今回は作る物が3択 ・イチゴジュース ・パンケーキ ・イチゴクッキー それぞれ材料となるアイテムが必要で、ひとつでも足り無ければ「材料が足りません」 更にレシピのフラグがtrueになっていないなら、材料だけあっても「失敗しました」
case speakWithSelect(3,"イチゴジュース","パンケーキ","イチゴクッキー","何を作りますか?") when 0 #イチゴジュースつくる a=getItemIndexWithId(7261) #材料a b=getItemIndexWithId(7262) #材料b if a==-1 || b==-1 speak("材料が足りません") else removeItemWithIndex(a) removeItemWithIndex(b) if getFlag("イチゴジュースレシピ") speak("料理は成功した") giveItem(7264) else speak("料理は失敗した") end end when 1 #パンケーキをつくる when 2 #イチゴクッキーをつくる end #case~when~終
これだけスッキリしていれば、endが足りないとかも流石に気付くかと。
@hightallerさんの意見でとりあえずまとめてみて
case speakWithSelect(3,"イチゴジュース","パンケーキ","イチゴクッキー",
"何を作りますか?")
when 0
E=getItemIndexWithId(7261)
m=getItemIndexWithId(7262)
if E==-1||m==-1
speak("材料が足りません")
else
removeItemWithIndex(m)
(上から10行)
にしたところこのようなエラーが(元の長い文でも出た)
2, 3 action : syntax error, コードに文法的な間違いがあります。 line(行): 4
2, 3 action : )の直後の識別子は改行後になければいけません。 line(行): 4
4行目は when 0 だけなのに
何が違うのかまったくわかりません
case speakWithSelect(3,"イチゴジュース","パンケーキ","イチゴクッキー",
"何を作りますか?")
when 0
E=getItemIndexWithId(7261)
m=getItemIndexWithId(7262)
if E==-1||m==-1
speak("材料が足りません")
else
removeItemWithIndex(m)
(上から10行)
にしたところこのようなエラーが(元の長い文でも出た)
2, 3 action : syntax error, コードに文法的な間違いがあります。 line(行): 4
2, 3 action : )の直後の識別子は改行後になければいけません。 line(行): 4
4行目は when 0 だけなのに
何が違うのかまったくわかりません
もうーみんなツンデレなんだからー。
理解が薄いままコピペするとちょっと痛い目に遭うぞっていう
よくあるパターンに見事にひっかかっちゃっただけだね。
わかんないからって投げ出したりせずに「誰かに聞いてみれば」という手段で
なんとか問題を解決させようとしてる君の姿勢は立派だ。
「質問したんだから答えてもらうのが当然」とさえ思わなければ
質問する事自体は悪い事じゃないから大丈夫。
レベルアップできる返答はたくさんあるよ。よく読んで実践してみよう。
見事完成して公開できたら少なくとも君にコメントした人達はきっと
「デバッグだから仕方なく」なんて言いながら一度は君のゲームを遊んでくれるはずだよ。
がんばれーめげんなー応援してっからなー。
理解が薄いままコピペするとちょっと痛い目に遭うぞっていう
よくあるパターンに見事にひっかかっちゃっただけだね。
わかんないからって投げ出したりせずに「誰かに聞いてみれば」という手段で
なんとか問題を解決させようとしてる君の姿勢は立派だ。
「質問したんだから答えてもらうのが当然」とさえ思わなければ
質問する事自体は悪い事じゃないから大丈夫。
レベルアップできる返答はたくさんあるよ。よく読んで実践してみよう。
見事完成して公開できたら少なくとも君にコメントした人達はきっと
「デバッグだから仕方なく」なんて言いながら一度は君のゲームを遊んでくれるはずだよ。
がんばれーめげんなー応援してっからなー。
再現できずに直っちゃって困ったことがあったけど、
そういうことだったのか。理解。
現況で陥りやすいエラーと認識。
wikiのエラー一覧に掲載したほうがいいのかな。