スクリプト/フラグ(履歴ID:63)
最終投稿者: rurun9
更新:2012/03/04 17:22:35
フラグ変数は、true または false のどちらかの値を記録する、完全二択の変数です。
ON-OFFのスイッチみたいなものだと考えて下さい。
フラグをセットするときは次のように書きます。
フラグ名は、変数名同様に自由に決めて構いません。
このとき、名前は文字列で与えないとダメなのでダブルクォーテーション" "で括って下さい。
・参考 wiki スクリプト/変数
フラグがどちらの値なのかを調べるには
と書きます。
(コレを書いただけでは、何も起こりませんが)スクリプトに getFlag を書くと中身のtrueまたはfalseが返ってくるので、変数に入れたり if文に使う事ができます。
書き方の例は以下のページをご覧下さい
・スクリプト言語のマニュアル
・wiki スクリプト/つくってみよう0
このフラグ変数を用意する事で、状況によって異なるイベント処理を行う事ができます。
例えばRPGで
「Bさんに話しかけると、Aさんの話す内容が変わる」
というのをつくってみましょう。
フラグ変数「プリン」をつくっています。コレの中身によってAさんの話が分岐します。
最初にAさんに話しかけた場合には
フラグ変数「プリン」は存在しない、すなわち中身はありませんが(null という状態)、とにかくフラグ変数「プリン」の中身が true ではないので、else の方の処理が実行されます。
次にBさんに話しかけると、フラグ「プリン」を true に変更しつつ、プレイヤーに真実が明かされます。
再びAさんに話しかけたら、Bさんが食べた事に気付くのです。
フラグを戻しているのはオマケの演出ですね。
こうしたフラグ変数を利用する事で、色々なイベント処理ができます。
例えばイベントスクリプト左下の「有効条件」欄に
と書く事で、フラグがtrueのときだけ実行されて、falseのときは実行されない(見えない)イベントを設置できたりします。
逆に有効条件を !getFlag("フラグ名") と書けば、フラグがtrueになると消えるイベントになります。
尚、イベントの有効条件の欄には「条件式」だけを書けば動きます。if文を全部書くとエラッタするので間違えないように。
有効条件にフラグを使った場合の設置するキャラクターを、扉などの絵で通行不可にする事で、いわゆる関所みたいなものを作る事もできるのです。
ON-OFFのスイッチみたいなものだと考えて下さい。
フラグをセットするときは次のように書きます。
setFlag( "たわし", true ) setFlag( "Love", false )
このとき、名前は文字列で与えないとダメなのでダブルクォーテーション" "で括って下さい。
・参考 wiki スクリプト/変数
フラグがどちらの値なのかを調べるには
getFlag( "たわし" )
(コレを書いただけでは、何も起こりませんが)スクリプトに getFlag を書くと中身のtrueまたはfalseが返ってくるので、変数に入れたり if文に使う事ができます。
書き方の例は以下のページをご覧下さい
・スクリプト言語のマニュアル
・wiki スクリプト/つくってみよう0
このフラグ変数を用意する事で、状況によって異なるイベント処理を行う事ができます。
例えばRPGで
「Bさんに話しかけると、Aさんの話す内容が変わる」
というのをつくってみましょう。
- Aさんのスクリプト
speak("「聞いてくれよ!\n 今日食べようと思ってとっておいたプリンが無くなってるんだ。」") if getFlag("プリン") speak("「え?\n Bが食べちゃったの!?\n Bの奴、覚えてろよ…」") fadeOut(0,0,0) setFlag("プリン", false) fadeIn() speak("…そして一週間が経った。") else speak("「おかしいなぁ。昨日は確かにあったのに。」") end
- Bさんのイベントスクリプト
setFlag("プリン", true) speak("「実は冷蔵庫にあったプリン食べたの、俺なんだよね。」")
フラグ変数「プリン」をつくっています。コレの中身によってAさんの話が分岐します。
最初にAさんに話しかけた場合には
フラグ変数「プリン」は存在しない、すなわち中身はありませんが(null という状態)、とにかくフラグ変数「プリン」の中身が true ではないので、else の方の処理が実行されます。
次にBさんに話しかけると、フラグ「プリン」を true に変更しつつ、プレイヤーに真実が明かされます。
再びAさんに話しかけたら、Bさんが食べた事に気付くのです。
フラグを戻しているのはオマケの演出ですね。
こうしたフラグ変数を利用する事で、色々なイベント処理ができます。
例えばイベントスクリプト左下の「有効条件」欄に
getFlag("フラグ名")
と書く事で、フラグがtrueのときだけ実行されて、falseのときは実行されない(見えない)イベントを設置できたりします。
逆に有効条件を !getFlag("フラグ名") と書けば、フラグがtrueになると消えるイベントになります。
尚、イベントの有効条件の欄には「条件式」だけを書けば動きます。if文を全部書くとエラッタするので間違えないように。
有効条件にフラグを使った場合の設置するキャラクターを、扉などの絵で通行不可にする事で、いわゆる関所みたいなものを作る事もできるのです。