スクリプト/2回目以降のイベント内容変更(履歴ID:248)
最終投稿者: 退会したユーザー
更新:2012/05/06 09:05:50
何回か話しかけるとイベント内容が変わるようにするスクリプトには
様々なやり方がありますが、
最も簡単な形で行くならif文でやるのがお勧めです。
え?そんなの基本中の基本だって?「初心忘れるべからず」ですよ。
特にend忘れとかよくする人は基礎から復習してもいいと思います。
setFlag関数でフラグを設定し、
getFlag関数でフラグの状態を取得します。
フラグの中身は
trueかfalseの2択(正確に言うと何もないnullもあるので3択)なので、
そのままif文に使うことができます。
ただし、変数にもtrueやfalseを入れることはできるので、
実は必ずしも使う必要はありません。
setVariable関数が変数の設定、getVariable関数で変数を取得します。
set~は何かしら設定、get~は何かしら取得すると覚えておくといいでしょう。
スクリプトに分かれ道を作る文はif文の他にも、case文やwhile文があります。
(というか、この3つしかないので、ぜひおさえておきましょう。)
いずれも、文の最後にendを入れるのを忘れないようにしてください。
if、case、whileの数だけendも必要です。
if、case、whileを書いた直後に改行してendを書いてしまいましょう。
さて、どうせなのでちょっと応用しますか。
case文を使って、回数に応じて動きを変えてみます。
あ、言い忘れましたが、基本的には変数には最初に何か入れておくことをお勧めします。
あまり知られていませんが、case文でもelseを使うことはできます。
話した回数はどんなときでも数えておく必要があるので、
case文の外に出してます。
スクリプト言語のマニュアル
関数リファレンス
スクリプト/Rmakeで自由なゲームをつくろう / 第01回 スクリプトって何?
様々なやり方がありますが、
最も簡単な形で行くならif文でやるのがお勧めです。
え?そんなの基本中の基本だって?「初心忘れるべからず」ですよ。
特にend忘れとかよくする人は基礎から復習してもいいと思います。
#2回目以降のイベント内容変更 if getFlag("2回目以降のスクリプトフラグ") #ここに2回目以降に表示したいスクリプトを書く else #ここに1回目にやりたいスクリプトを書く setFlag("2回目以降のスクリプトフラグ", true) end
setFlag関数でフラグを設定し、
getFlag関数でフラグの状態を取得します。
フラグの中身は
trueかfalseの2択(正確に言うと何もないnullもあるので3択)なので、
そのままif文に使うことができます。
ただし、変数にもtrueやfalseを入れることはできるので、
実は必ずしも使う必要はありません。
#これは上のスクリプトと同じ動きをします if getVariable("2回目以降のスクリプトフラグ") #ここに2回目以降に表示したいスクリプトを書く else #ここに1回目にやりたいスクリプトを書く setVariable("2回目以降のスクリプトフラグ", true) end
setVariable関数が変数の設定、getVariable関数で変数を取得します。
set~は何かしら設定、get~は何かしら取得すると覚えておくといいでしょう。
スクリプトに分かれ道を作る文はif文の他にも、case文やwhile文があります。
(というか、この3つしかないので、ぜひおさえておきましょう。)
いずれも、文の最後にendを入れるのを忘れないようにしてください。
#ダメな例 if getFlag("おい待て") if getFlag("endどこいった") speak("これが出たら文法ミスとかない証拠") end #良い例 if getFlag("おい待て") if getFlag("endどこいった") speak(" ↑ちゃんとあるからw") end end
if、case、whileの数だけendも必要です。
if、case、whileを書いた直後に改行してendを書いてしまいましょう。
さて、どうせなのでちょっと応用しますか。
case文を使って、回数に応じて動きを変えてみます。
あ、言い忘れましたが、基本的には変数には最初に何か入れておくことをお勧めします。
#こんな感じに setVariable("話した回数", 0) #フラグとして使うならこっちかな setVariable("2回目以降のスクリプトフラグ", false)
#話した回数に応じて内容を変える case getVariable("話した回数") when 4 speak("4回目。こんな感じでいくらでも増やせます") when 3 speak("3度目の正直!\nといっても何もないよ") when 2 speak("これ2回目") when 1 speak("これ1回目") else speak("5回以上話すと全部こっち") end setVariable("話した回数", getVariable("話した回数") + 1)
あまり知られていませんが、case文でもelseを使うことはできます。
話した回数はどんなときでも数えておく必要があるので、
case文の外に出してます。
- 参考資料
スクリプト言語のマニュアル
関数リファレンス
スクリプト/Rmakeで自由なゲームをつくろう / 第01回 スクリプトって何?