フラグScenarioModで読み書きするフラグとしては主として2系統がある Set_フラグ(...)、Get_フラグ()、Delete_フラグ()下記にて説明するもので、セーブデータに保存されます 拡張セーブデータを使う方法拡張セーブデータ にて解説されています。 セーブデータにも反映されるScenarioMod独自で使えるフラグ管理主にご自身で独自イベントの進行具合を管理する目的で使用することが多いと思われます。 int Set_フラグ( string フラグ名, int フラグ値, int フラグ枠) // フラグ値の設定 int Get_フラグ( string フラグ名, int フラグ枠) // フラグ値の取得 int Delete_フラグ( string フラグ名 ) // フラグ解放(フラグ消滅。ゴミ掃除) Get_フラグとDelete_フラグは、存在しないフラグ名を問い合わせると、「0」という値が返ってきます。 フラグはセーブデータへと保存されるため、無限数ではありません。
一般のフラグで連想するものとは異なり、ScenarioModでは、より高度なフラグ機能を有しており、 概念図は以下。 1つのフラグに対して9つの値を持てる
1つのフラグ名に、普通の数値を入れられる「メイン枠」、TRUE/FALSEのみを入れられる「A枠~H枠」の合計9つの値が管理できる。
これにより、非常に大きな、隔年に渡るようなイベントであっても、複数のフラグ名を使うようなことは無く、
フラグ名が迂闊に他者と被らないように、フラグのラベルの最初の3文字程度はご自身のハンドル的な名前を付けておきましょう フラグの設定int Set_フラグ( string フラグ名, int フラグ値, int フラグ枠) // フラグ値の設定 Set_フラグ("TJP_EV01", 23 ); // フラグ名"TJP_EV01"のメイン枠に23という値を入れる。 Set_フラグ("TJP_EV01", TRUE, フラグ枠::C ); // フラグ名"TJP_EV01"のC枠にTRUEを入れる。 フラグの取得int Get_フラグ( string フラグ名, int フラグ枠) // フラグ値の取得 /* 存在しないフラグ(Set_フラグしたことが無いフラグ)名を問い合わせた(Get_フラグした)際はFALSE(=0)が返ってくる。 */ //フラグ名"TJP_EV01"のフラグ枠::メインに23という値が入ってるか? 比較演算子を省略しないこと。 if ( Get_フラグ("TJP_EV01") == 23 ) { // ~ } // フラグ枠::A~Hについては、TRUE/FALSEと比較する。 if ( Get_フラグ("TJP_EV01", フラグ枠::C ) == <font color="red">TRUE</font> ) { // ~ } フラグの解放(消滅・ゴミ掃除)int Delete_フラグ( string フラグ名 ) // フラグ解放(フラグ消滅。ゴミ掃除) // フラグ名はScenarioMod、一般Modでみんなで共通で使って3000個まで。いわば共通資源。<br> // セーブデータにフラグ状態を保存する必要がなくなったら、不要になったら消滅・解放すること。 Delete_フラグ("TJP_EV01"); より詳細を知るには...「フラグ」に関する主な所は以上となります。 詳しくは「フラグ情報型.h」などを参照してください。 |