コメント
このコメントは、宇宙文字解読2へのコメントです。コメントの内容
コメントの内容(一番最初の投稿)
井戸乃博士(投稿日:2014/01/19 03:01/19/14)
詳しく調べてみるといろいろと複雑な処理が必要なことに気が付きました(^^;
二次元配列を使う方法を考えてみたので、参考にどうぞ。
以下を開始スクリプトに書きます。
仲間になるイベント時
仲間選択時
一部、自信のないところもありますので、不具合が出たらまたおっしゃってください。
このように二次元配列を使ってリスト化したデータを参照するスクリプトは、
RPGで図鑑を作る際によく使われます。
こちらのページもあわせて参照されるといいと思います。
http://rmake.jp/boards/2/topics/398
二次元配列を使う方法を考えてみたので、参考にどうぞ。
以下を開始スクリプトに書きます。
#二次元配列を作って変数にします(getVariable("member")[n][m])
#n: 仲間の数
#m(0): "true"か"false"かの判定
#m(1): 仲間の名称
#m(2): 仲間のID
setVariable("member", createArray())
n = 0
while n < 4
getVariable("member")[n] = createArray()
n = n + 1
end
i = 0
while i < 4
#m(0)をすべて"false"に設定
getVariable("member")[i][0] = "false"
i = i + 1
getVariable("member")[0][1] ="王子"
getVariable("member")[0][2] ="8196"
getVariable("member")[1][1] ="弓士"
getVariable("member")[1][2] ="8204"
getVariable("member")[2][1] ="勇者"
getVariable("member")[2][2] ="593"
getVariable("member")[3][1] ="騎士"
getVariable("member")[3][2] ="703"
仲間になるイベント時
if getFlag("パンを食べた")
addPartyMember(8196)
speak("喜んで仲間になろう")
speak("王子が仲間に加わりました。")
#最初に書かれていたgetFlagの代わりにこちらを使います。
getVariable("member")[0][0] = "true"
else
speak("仲間になれとは十年早い!。")
speak("王子を仲間を加えられませんでした。")
end
仲間選択時
a = createArray()
i =0
#仲間になったキャラのリストを選択肢に
while i < 4
if getVariable("member")[i] = "true"
pushArray(a, getVariable("member")[i])
end
i = i + 1
end
#「やめる」の項目を追加
pushArray(a, "やめる")
#ループ処理(closeが0以外になると終了)
close = 0
while close == 0
k = speakWithSelectArray(a, "誰を変更しますか?")
i = 0
while i < 4
if a[k] == getVariable("member")[i][1]
#パーティーにいない場合に仲間に加える。
if getPartyMember(getVariable("member")[i][2])= -1
addPartyMember(getVariable("member")[i][2])
speak(getVariable("member")[i][1]"がパーテイに加わりました。")
#パーティーにいる場合はパーティーから外す。
elsif getPartyMember(getVariable("member")[i][2])=!-1
removePartyMember(getVariable("member")[i][2])
speakgetVariable("member")[i][1]"をパーティからはずしました。")
#パーティーがいっぱいの場合
else
speak("メンバーはいっぱいです。誰かを外して下さい")
end
elsif a[k] == "やめる"
close = 1
end
i = i +1
end
end
一部、自信のないところもありますので、不具合が出たらまたおっしゃってください。
このように二次元配列を使ってリスト化したデータを参照するスクリプトは、
RPGで図鑑を作る際によく使われます。
こちらのページもあわせて参照されるといいと思います。
http://rmake.jp/boards/2/topics/398
二次元配列を使う方法を考えてみたので、参考にどうぞ。
以下を開始スクリプトに書きます。
#二次元配列を作って変数にします(getVariable("member")[n][m]) #n: 仲間の数 #m(0): "true"か"false"かの判定 #m(1): 仲間の名称 #m(2): 仲間のID setVariable("member", createArray()) n = 0 while n < 4 getVariable("member")[n] = createArray() n = n + 1 end i = 0 while i < 4 #m(0)をすべて"false"に設定 getVariable("member")[i][0] = "false" i = i + 1 getVariable("member")[0][1] ="王子" getVariable("member")[0][2] ="8196" getVariable("member")[1][1] ="弓士" getVariable("member")[1][2] ="8204" getVariable("member")[2][1] ="勇者" getVariable("member")[2][2] ="593" getVariable("member")[3][1] ="騎士" getVariable("member")[3][2] ="703"仲間になるイベント時
if getFlag("パンを食べた") addPartyMember(8196) speak("喜んで仲間になろう") speak("王子が仲間に加わりました。") #最初に書かれていたgetFlagの代わりにこちらを使います。 getVariable("member")[0][0] = "true" else speak("仲間になれとは十年早い!。") speak("王子を仲間を加えられませんでした。") end仲間選択時
a = createArray() i =0 #仲間になったキャラのリストを選択肢に while i < 4 if getVariable("member")[i] = "true" pushArray(a, getVariable("member")[i]) end i = i + 1 end #「やめる」の項目を追加 pushArray(a, "やめる") #ループ処理(closeが0以外になると終了) close = 0 while close == 0 k = speakWithSelectArray(a, "誰を変更しますか?") i = 0 while i < 4 if a[k] == getVariable("member")[i][1] #パーティーにいない場合に仲間に加える。 if getPartyMember(getVariable("member")[i][2])= -1 addPartyMember(getVariable("member")[i][2]) speak(getVariable("member")[i][1]"がパーテイに加わりました。") #パーティーにいる場合はパーティーから外す。 elsif getPartyMember(getVariable("member")[i][2])=!-1 removePartyMember(getVariable("member")[i][2]) speakgetVariable("member")[i][1]"をパーティからはずしました。") #パーティーがいっぱいの場合 else speak("メンバーはいっぱいです。誰かを外して下さい") end elsif a[k] == "やめる" close = 1 end i = i +1 end end一部、自信のないところもありますので、不具合が出たらまたおっしゃってください。
このように二次元配列を使ってリスト化したデータを参照するスクリプトは、
RPGで図鑑を作る際によく使われます。
こちらのページもあわせて参照されるといいと思います。
http://rmake.jp/boards/2/topics/398