特定の条件を満たすと選択肢が増えるor減る(質問掲示板)
投稿:
ゆりかもめ
投稿:2011/10/31 10:14:31(最新:2011/10/31 21:55:31)
ゆりかもめ
投稿:2011/10/31 10:14:31(最新:2011/10/31 21:55:31)
具体例を言いますと
ドラクエのルーラの様な感じです。
行った事のある町にはワープできて
そうでない町にはワープできない
っといったようなイベントを組むにはどうしたらいいでしょうか
case文の選択肢をif getFlag()等で囲うとエラーが出てしまう為
何かいい方法を探してます。
ツイート
ドラクエのルーラの様な感じです。
行った事のある町にはワープできて
そうでない町にはワープできない
っといったようなイベントを組むにはどうしたらいいでしょうか
case文の選択肢をif getFlag()等で囲うとエラーが出てしまう為
何かいい方法を探してます。
コメントする
コメントするには、ログインする必要があります。
コメント一覧
あ、本当ですね。
でOKのはず。
配列の数を選択肢の数にしているようで、2を抜かしたりするとundefinedが出るようです。
配列の数を変数管理することで直りました。
a = createArray()
b = 0
if getFlag("A町")
a[b] = "A町"
b = b + 1
end
if getFlag("B街")
a[b] = "B街"
b = b + 1
end
if getFlag("C村")
a[b] = "C村"
b = b + 1
end
case speakWithSelectArray(a, "どこへ行きますか?")
when 0
#A町へ移動するスクリプト
when 1
#B街へ移動するスクリプト
when 2
#C村へ移動するスクリプト
end
でOKのはず。
配列の数を選択肢の数にしているようで、2を抜かしたりするとundefinedが出るようです。
配列の数を変数管理することで直りました。
a = createArray()
if getFlag("A町")
a[0] = "A町"
end
if getFlag("B街")
a[1] = "B街"
end
if getFlag("C村")
a[2] = "C村"
end
case speakWithSelectArray(a, "どこへ行きますか?")
when 0
#A町へ移動するスクリプト
when 1
#B街へ移動するスクリプト
when 2
#C村へ移動するスクリプト
end
でもOK。
選択肢を配列で設定。設定するかどうかで選択肢の数が動きます。
#A町に着いた時
setFlag("A町", true)
#B街に着いた時
setFlag("B街", true)
#C村に着いた時
setFlag("C村", true)
rurun9さま>
そちらはカスタムメニュー関連の話題なので
ちょっと違うような。。。?
[ 変動選択肢関数]
[ 使い方]
(予め上記関数を開始スクリプトなどで定義後)
そちらはカスタムメニュー関連の話題なので
ちょっと違うような。。。?
[ 変動選択肢関数]
#変動選択肢関数
#SetMsg 選択肢前表示文字列
#MsgList 選択肢配列
#ExclusionMsg 除外文字列
def speakWithSelectAny(SetMsg, MsgList, ExclusionMsg)
MsgLen = getArrayLength(MsgList)
setMsgList = createArray()
setMsgNo = createArray()
i = 0
while i < MsgLen
if MsgList[i] != ExclusionMsg
pushArray(setMsgList, MsgList[i])
pushArray(setMsgNo, i)
end
i = i + 1
end
return setMsgNo[speakWithSelectArray(setMsgList, SetMsg)]
end
[ 使い方]
(予め上記関数を開始スクリプトなどで定義後)
setVariable("messagelist", createArray())
getVariable("messagelist")[0] = "はじまりの村"
getVariable("messagelist")[1] = "???"
getVariable("messagelist")[2] = "???"
#大きな港町についた時
getVariable("messagelist")[2] = "大きな港町"
#ルーラ実行
case speakWithSelectAny("ルーラを唱えた",
getVariable("messagelist"), "???")
when 0
#はじまりの村へ移動するスクリプト
when 1
#城下町へ移動するスクリプト
when 2
#大きな港町へ移動するスクリプト
end
satsukilさんのスクリプトとまんまで吹きましたw
aoihikawaさんみたくユーザー定義関数でなんとかまとめようと
頑張ってたんですが、うまくいかず・・・・・
選択肢を???等で隠しておくというのも中々いいアイデアだなーって
思いました。
簡易的なワープ装置を作りたかっただけなので
satsukilさんの方のスクリプトを使わせていただこうと思います。
いやー・・・・・スクリプトは難しいです(汗)
みなさん
アドバイスありがとうございました。