会話(質問掲示板)
投稿:
sakatagin
投稿:2009/10/05 14:01:05(最新:2009/10/05 21:07:05)

例えば配置したキャラクターと、初めに会話をすると、
(ドラゴンをたおしてください。)としていて、
二回目以降に会話をすると、
(任せましたぞ。)と、二回目以降に会話の内容を変えるには、どうしたらいいのですか?
ツイート
(ドラゴンをたおしてください。)としていて、
二回目以降に会話をすると、
(任せましたぞ。)と、二回目以降に会話の内容を変えるには、どうしたらいいのですか?
コメントする
コメントするには、ログインする必要があります。
コメント一覧

ありがとうございます
すみません、はみ出してしまいましたのでもう一度書きます。
setVariable, getVariableなどを使うのがよいかと思います。
たとえば3回目で話す内容が変わる場合です。
getVariableを使うためには、それより前にsetVariableを呼んで値が
設定されている必要があるため、"初期化したかどうか"フラグが
設定されていない場合は"話しかけた回数"を0で初期化しています。
その後
で話しかけた回数を増やしています。
最後に話しかけた回数が3になったかどうかで
話す内容を変えています。
よろしくお願いします。
setVariable, getVariableなどを使うのがよいかと思います。
たとえば3回目で話す内容が変わる場合です。
if !getFlag("初期化したかどうか") setFlag("初期化したかどうか", true) setVariable("話しかけた回数", 0) end setVariable("話しかけた回数", getVariable("話しかけた回数") + 1) if getVariable("話しかけた回数") == 3 speak("おお、ようやく聞こえた。") else speak("すまんがもう一度頼む。") end
getVariableを使うためには、それより前にsetVariableを呼んで値が
設定されている必要があるため、"初期化したかどうか"フラグが
設定されていない場合は"話しかけた回数"を0で初期化しています。
その後
setVariable("話しかけた回数", getVariable("話しかけた回数") + 1)
で話しかけた回数を増やしています。
最後に話しかけた回数が3になったかどうかで
話す内容を変えています。
よろしくお願いします。
setVariable, getVariableなどを使うのがよいかと思います。
たとえば3回目で話す内容が変わる場合です。
getVariableを使うためには、それより前にsetVariableを呼んで値が
設定されている必要があるため、"初期化したかどうか"フラグが
設定されていない場合は"話しかけた回数"を0で初期化しています。
その後
で話しかけた回数を増やしています。
最後に話しかけた回数が3になったかどうかで
話す内容を変えています。
よろしくお願いします。
たとえば3回目で話す内容が変わる場合です。
if !getFlag("初期化したかどうか") setFlag("初期化したかどうか", true) setVariable("話しかけた回数", 0) end setVariable("話しかけた回数", getVariable("話しかけた回数") + 1) if getVariable("話しかけた回数") == 3 speak("おお、ようやく聞こえた。") else speak("すまんがもう一度頼む。") end
getVariableを使うためには、それより前にsetVariableを呼んで値が
設定されている必要があるため、"初期化したかどうか"フラグが
設定されていない場合は"話しかけた回数"を0で初期化しています。
その後
setVariable("話しかけた回数", getVariable("話しかけた回数") + 1)
で話しかけた回数を増やしています。
最後に話しかけた回数が3になったかどうかで
話す内容を変えています。
よろしくお願いします。

横からすみません
10回目に話しかけると会話が変わるという感じのイベントは作れますか?
10回目に話しかけると会話が変わるという感じのイベントは作れますか?
Rmakeの使用ありがとうございます。
たとえばこんな感じに書くことで実現できるかと思います。
getFlagはキー(ここでは"依頼をした")に対応したフラグの値を取得します。setFlagではキーに対応したフラグの値を設定します。
setFlagが呼ばれる前l、getFlagはfalseを返すため、
else以降が実行されます。
else以降ではsetFlagでtrueを指定しているため
if getFlag("依頼をした") から else までの間を
実行します。
よろしくお願いします。
たとえばこんな感じに書くことで実現できるかと思います。
if getFlag("依頼をした") speak("任せました。") else speak("ドラゴン退治をお願いします。\n") setFlag("依頼をした", true) end
getFlagはキー(ここでは"依頼をした")に対応したフラグの値を取得します。setFlagではキーに対応したフラグの値を設定します。
setFlagが呼ばれる前l、getFlagはfalseを返すため、
else以降が実行されます。
else以降ではsetFlagでtrueを指定しているため
if getFlag("依頼をした") から else までの間を
実行します。
よろしくお願いします。