複雑なスクリプトの質問(質問掲示板)
投稿: naoki
投稿:2011/07/06 22:48:06(最新:2011/07/07 15:17:07)
setVariable("素材1「数」", 3) setVariable("素材2「数」", 1) setVariable("素材3「数」", 2) setVariable("武器名", "ライムソード") setVariable("素材1", "青い皮入手") setVariable("素材1「画面表示名前」", "「ライムソード」素材1「青い皮」") setVariable("素材2", "柔らかい骨入手") setVariable("素材2「画面表示名前」", "「ライムソード」素材2「柔らかい骨」") setVariable("素材3", "青色の成分入手") setVariable("素材3「画面表示名前」", "「ライムソード」素材3「青色の成分」") aa = getVariable("素材1") bb = getVariable("素材1「数」") if((aa >= bb)) setTextFontColor(250, 250, 250) else setTextFontColor(250, 250, 0) end setVariable("", getVariable("素材1「画面表示名前」"), "", createText(512 - 440, 10, 160, 22)) setText(getVariable(getVariable("", getVariable("素材1「画面表示名前」"), "", "", getVariable("素材1"), "","", getVariable("素材1「画面表示名前」"), ""), "", getVariable("素材1「数」"), "") cc = getVariable("素材2") dd = getVariable("素材2「数」") if((cc >= dd)) setTextFontColor(250, 250, 250) else setTextFontColor(250, 250, 0) end setVariable("", getVariable("素材2「画面表示名前」"), "", createText(512 - 440, 10, 160, 22)) setText(getVariable(", getVariable(""素材2「画面表示名前」"), "", "", getVariable("素材2"), "","", getVariable("素材2「画面表示名前」"), ""), "", getVariable("素材2「数」"), "") ee = getVariable("素材3") ff = getVariable("素材3「数」") if((ee >= ff)) setTextFontColor(250, 250, 250) else setTextFontColor(250, 250, 0) end setVariable("", getVariable("素材3「画面表示名前」"), "", createText(512 - 440, 10, 160, 22)) setText(getVariable(", getVariable(""素材3「画面表示名前」"), "", "", getVariable("素材3"), "","", getVariable("素材3「画面表示名前」"), ""), "", getVariable("素材3「数」"), "") case speakWithSelect(2,"はい","いいえ", "{店員}\nこの素材だけど、いい?") when 0 deleteText(getVariable("", getVariable("素材1「画面表示名前」"), "")) deleteText(getVariable("", getVariable("素材2「画面表示名前」"), "")) deleteText(getVariable("", getVariable("素材3「画面表示名前」"), "")) aa = getVariable("素材1") cc = getVariable("素材2") ee = getVariable("素材3") bb = getVariable("素材1「数」") dd = getVariable("素材2「数」") ff = getVariable("素材3「数」") if((aa >= bb) && (cc >= dd) && (ee >= ff)) hideImage() speak("{店長}\nはい。これが「", getVariable("武器名"), "」だ。\n大事にしろよ。") setVariable("", getVariable("素材1"), "",getVariable("", getVariable("素材1"), "")- getVariable("素材1「数」")) setVariable("", getVariable("素材2"), "",getVariable("", getVariable("素材2"), "")-getVariable("素材2「数」")) setVariable("", getVariable("素材3"), "",getVariable("", getVariable("素材3"), "")-getVariable("素材3「数」")) else hideImage() speak("{店長}\n素材が足りないぞ・・・。") end when 1 hideImage() deleteText(getVariable("", getVariable("素材1「画面表示名前」"), "")) deleteText(getVariable("", getVariable("素材2「画面表示名前」"), "")) deleteText(getVariable("", getVariable("素材3「画面表示名前」"), "")) end
と言う複雑なスクリプトですが、
25行目がエラーしました。何故でしょうか。
誰か教えてください!
コメントする
コメントするには、ログインする必要があります。
コメント一覧
hightoller(投稿日:2011/07/07 11:05,
履歴)
12行:関数名誤字
19行:createTextの使い方直ってないです。
22行:setTextの使い方直ってないです。
19行:createTextの使い方直ってないです。
22行:setTextの使い方直ってないです。
早速、少し改良して、
と、開始スクリプトに入れる事にしました。
とエラーしました。変数の名前もかえました。
25行目でどんなエラーが出たのでしょうか?
setVariable("buki", "ライムソード") #aは素材名。bは素材の数。cは表示の名前 setVariable("sozai1a", "青い皮") setVariable("sozai1b", 3) setVariable("sozai1c", "「ライムソード」素材1「青い皮」") setVariable("sozai2a", "柔らかい骨入手") setVariable("sozai2b", 1) setVariable("sozai2c", "「ライムソード」素材2「柔らかい骨」") setVariable("sozai3a", "青色の成分入手") setVariable("sozai3b", 2) setVariable("sozai3c", "「ライムソード」素材3「青色の成分」") def mise() aa = getVariable("sozaai1a") bb = getVariable("sozai1b") if((aa >= bb)) setTextFontColor(250, 250, 250) else setTextFontColor(250, 250, 0) end setVariable("", getVariable("sozai1c"), "", createText(512 - 440, 10, 160, 22)) setText(getVariable(getVariable("", getVariable("sozai1c"), "", "", getVariable("sozai1a"), " ","", getVariable("sozai1c"), ""), "", getVariable("sozai1b"), "") cc = getVariable("sozai2a") dd = getVariable("sozai2a") if((cc >= dd)) setTextFontColor(250, 250, 250) else setTextFontColor(250, 250, 0) end setVariable("", getVariable("sozai2c"), "", createText(512 - 440, 10, 160, 22)) setText(getVariable(", getVariable(""sozai2c"), "", "", getVariable("sozai2a"), "","", getVariable("sozai2c"), ""), "", getVariable("sozai2b"), "") ee = getVariable("sozai3a") ff = getVariable("sozai3b") if((ee >= ff)) setTextFontColor(250, 250, 250) else setTextFontColor(250, 250, 0) end setVariable("", getVariable("sozai3c"), "", createText(512 - 440, 10, 160, 22)) setText(getVariable(", getVariable(""sozai3c"), "", "", getVariable("sozai3a"), "","", getVariable("sozai3s"), ""), "", getVariable("sozai3b"), "") case speakWithSelect(2,"はい","いいえ", "{店員}\nこの素材だけど、いい?") when 0 deleteText(getVariable("", getVariable("sozai1c"), "")) deleteText(getVariable("", getVariable("sozai2c"), "")) deleteText(getVariable("", getVariable("sozai3c"), "")) aa = getVariable("sozai1a") cc = getVariable("sozai2a") ee = getVariable("sozai3a") bb = getVariable("sozai1b") dd = getVariable("sozai2b") ff = getVariable("sozai3b") if((aa >= bb) && (cc >= dd) && (ee >= ff)) hideImage() speak("{店長}\nはい。これが「", getVariable("buki"), "」だ。\n大事にしろよ。") setVariable("", getVariable("sozai1a"), "",getVariable("", getVariable("sozai1a"), "")- getVariable("sozaai1b")) setVariable("", getVariable("sozai2a"), "",getVariable("", getVariable("sozai2a"), "")-getVariable("sozai2b")) setVariable("", getVariable("sozai3a"), "",getVariable("", getVariable("sozai3a"), "")-getVariable("sozai3b")) else hideImage() speak("{店長}\n素材が足りないぞ・・・。") end when 1 hideImage() deleteText(getVariable("", getVariable("sozai1c"), "")) deleteText(getVariable("", getVariable("sozai2c"), "")) deleteText(getVariable("", getVariable("sozai3c"), "")) end end
と、開始スクリプトに入れる事にしました。
開始スクリプト : syntax error, コードに文法的な間違いがあります。 line(行): 25
とエラーしました。変数の名前もかえました。
25行目でどんなエラーが出たのでしょうか?
hightoller(投稿日:2011/07/07 00:05,
履歴)
何故大文字にしたし。
ざっくり該当部抜き出して改変。
createText,setTextの使い方が変。
(GV=)getVariableの使い方が変。
こんな感じに使うのではないかと思う。
SV("Mt1Cnt",3) SV("Mt1","青い皮入手") SV("Mt1Name","「ライムソード」素材1「青い皮」") SV("", GV("Mt1Name"), "", createText(512 - 440, 10, 160, 22)) setText(GV(GV("", GV("M1Name"), "", "", GV("Mt1"), "","", GV("Mt1Name"), ""), "", GV("Mt1Cnt"), "")
ざっくり該当部抜き出して改変。
createText,setTextの使い方が変。
(GV=)getVariableの使い方が変。
SV("テキスト枠1",createText(512 - 440, 10, 160, 22)) setText(GV"テキスト枠1", GV("Mt1")+" "+GV("Mt1Name")+" "+GV("Mt1Cnt"))
こんな感じに使うのではないかと思う。
hightoller(投稿日:2011/07/07 00:01,
履歴)
[CODE SV("Mt1Cnt",3)
SV("Mt1","青い皮入手")
SV("Mt1Name","「ライムソード」素材1「青い皮」")
SV("", GV("Mt1Name"), "",
createText(512 - 440, 10, 160, 22))
setText(GV(GV("", GV("M1Name"), "",
"", GV("Mt1"), "","", GV("Mt1Name"), ""), "", GV("Mt1Cnt"), "")
]
ざっくり該当部抜き出して改変。
createText,setTextの使い方が変。
(GV=)getVariableの使い方が変。
SV("テキスト枠1",createText(512 - 440, 10, 160, 22))
setText(GV"テキスト枠1",
GV("Mt1")+" "+GV("Mt1Name")+" "+GV("Mt1Cnt"))
こんな感じに使うのではないかと思う。
ざっくり該当部抜き出して改変。
createText,setTextの使い方が変。
(GV=)getVariableの使い方が変。
SV("テキスト枠1",createText(512 - 440, 10, 160, 22))
setText(GV"テキスト枠1",
GV("Mt1")+" "+GV("Mt1Name")+" "+GV("Mt1Cnt"))
こんな感じに使うのではないかと思う。
エラーが出た、ではなくエラーメッセージもコピペした方が良いのですが、
とりあえず「どんなものを作ろうとしているのか」を先に説明すべきかも。
数値の入っている変数と、文字列の入っている変数を、>=で比較してるのでおそらく書き直しかな。
素材を持っている数をカウントしておいて、必要数より多ければ合成して作れる、という形で良いのかな?
つまり扱う変数の準備の段階から考え直す事になるので、もはや文法エラーとかぶっちゃけどーでもイイ感じですな。
それからgetVariable(),setVariable()の書き方を正しく覚えましょー。
naoki様は配列変数は使えましたっけ?
とりあえず「どんなものを作ろうとしているのか」を先に説明すべきかも。
数値の入っている変数と、文字列の入っている変数を、>=で比較してるのでおそらく書き直しかな。
素材を持っている数をカウントしておいて、必要数より多ければ合成して作れる、という形で良いのかな?
つまり扱う変数の準備の段階から考え直す事になるので、もはや文法エラーとかぶっちゃけどーでもイイ感じですな。
それからgetVariable(),setVariable()の書き方を正しく覚えましょー。
#変数abc に文字列「あいう」を入れる #変数の名前と、それに入れる値の二つしかカッコの中には書かない setVariable("abc","あいう") #変数abcの中身をメッセージウインドウに表示してみる #ゲットの方はカッコの中に書くのは変数名ひとつのみ #speak()だけは、カンマで区切っていくつでも並べる事が可能 speak("変数abc = ", getVariable("abc") )
setText(getVariable(getVariable("", getVariable("素材1「画面表示名前」"), "",
"", getVariable("素材1"), "","", getVariable("素材1「画面表示名前」"), ""), "", getVariable("素材1「数」"), "")
22行目と23行目がこんな感じです。
どうしたいのかもよくわからないのですが(^^;)
変数の名前はできる限り簡潔に書かないとややこしくなりますよ。
setText(getVariable(getVariable("", getVariable("a"), "",
"", getVariable("b"), "","", getVariable("c"), ""), "", getVariable("d"), "")
と書いて、とりあえず「こうしたいのかなぁ?」という感じに直すと
setText(getVariable("a"),getVariable("b"),getVariable("c"),getVariable("d"))
で、最初の変数名に戻すと
setText(getVariable("素材1「画面表示名前」"),getVariable("素材1"),getVariable("素材1「画面表示名前」"),getVariable("素材1「数」"))
ひょっとして、setTextは初めて使いますか?
という書き方はダメです。
カッコの中に値はふたつ。
ひとつめは、変数名を文字列で与えましょー。名前の無い変数は在りえません。
createTextの返り値は「テキスト表示位置番号」です。
もしこのテキストが、
イベント内でのみ表示して、イベントが終われば消してしまうものであるならば、
ローカル変数に入れても大丈夫です。
それから、文字列と数値を大小で比べる意味があるか、考えてみましょー。