複雑なスクリプトの質問(質問掲示板

投稿: 000 1  mini 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行目がエラーしました。何故でしょうか。
誰か教えてください!

コメントする

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

コメント一覧

Nyan mini rurun9(投稿日:2011/07/07 15:17, 履歴)
setVariable("", うんたら,かんたら,そんでもって)

という書き方はダメです。
カッコの中に値はふたつ。
ひとつめは、変数名を文字列で与えましょー。名前の無い変数は在りえません。

createTextの返り値は「テキスト表示位置番号」です。
もしこのテキストが、
イベント内でのみ表示して、イベントが終われば消してしまうものであるならば、
ローカル変数に入れても大丈夫です。
#例
setVariable("abc","かきく")

setTextFontColor(255,255,0)
test=createText(512 - 440, 10, 160, 22)
w="あいうえお\n"+getVariable("abc")+"けこ"

setText(test,w)
setTextFontColor(255,255,255)
speak("ok")

#イベント終了時に
deleteTextAll()

それから、文字列と数値を大小で比べる意味があるか、考えてみましょー。
Logo mini hightoller(投稿日:2011/07/07 11:05, 履歴)
12行:関数名誤字
19行:createTextの使い方直ってないです。
22行:setTextの使い方直ってないです。
000 1  mini naoki(投稿日:2011/07/07 08:00, 履歴)
早速、少し改良して、
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行目でどんなエラーが出たのでしょうか?
Logo mini hightoller(投稿日:2011/07/07 00:05, 履歴)
何故大文字にしたし。
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"))

こんな感じに使うのではないかと思う。
Logo mini 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"))
こんな感じに使うのではないかと思う。
Nyan mini rurun9(投稿日:2011/07/06 23:48, 履歴)
エラーが出た、ではなくエラーメッセージもコピペした方が良いのですが、
とりあえず「どんなものを作ろうとしているのか」を先に説明すべきかも。

数値の入っている変数と、文字列の入っている変数を、>=で比較してるのでおそらく書き直しかな。
素材を持っている数をカウントしておいて、必要数より多ければ合成して作れる、という形で良いのかな?
つまり扱う変数の準備の段階から考え直す事になるので、もはや文法エラーとかぶっちゃけどーでもイイ感じですな。

それからgetVariable(),setVariable()の書き方を正しく覚えましょー。
#変数abc に文字列「あいう」を入れる 
#変数の名前と、それに入れる値の二つしかカッコの中には書かない
setVariable("abc","あいう")

#変数abcの中身をメッセージウインドウに表示してみる
#ゲットの方はカッコの中に書くのは変数名ひとつのみ
#speak()だけは、カンマで区切っていくつでも並べる事が可能
speak("変数abc = ", getVariable("abc") )
naoki様は配列変数は使えましたっけ?
Material 7186 1 mini ikosami(投稿日:2011/07/06 23:47, 履歴)

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は初めて使いますか?
000 1  mini naoki(投稿日:2011/07/06 23:01, 履歴)
間違いました。23行目です。