Top / MOD / イベントの書き方
MOD/イベントの書き方当コンテンツは、特に記載がない場合、DHnoneを基準に書かれています。 イベントの基本 †ここではイベントを改造・追加したいという人向けに、その書き方を解説します。 まず、誰もが一度は目にした事がある「ラインラント進駐」イベント。 event = { id = 2000 random = no country = GER trigger = { ai = no NOT = { war = { country = GER country = FRA } alliance = { country = GER country = FRA } } garrison = { country = GER province = 75 size = 1 } } name = "EVT_2000_NAME" desc = "EVT_2000_DESC" style = 0 picture = "Rhineland" date = { day = 0 month = january year = 1936 } offset = 1 deathdate = { day = 30 month = december year = 1947 } action_a = { name = "OK" command = { type = relation which = FRA value = -15 } command = { type = relation which = ENG value = -5 } command = { type = relation which = BEL value = -10 } command = { type = relation which = HOL value = -5 } command = { type = belligerence which = GER value = 5 } command = { type = dissent value = -2 } command = { type = money value = 500 } command = { type = peacetime_ic_mod value = 10 } command = { type = manpowerpool value = 50 } command = { type = trigger which = 51 } # UK Gears up for war command = { type = trigger which = 52 } # France Gears up for war command = { type = sleepevent which = 2060 } command = { type = domestic which = defense_lobby value = 1 } } } イベントの宣言 †event = { } 当たり前ですが、最初の「event = { 」から最後の「 } 」までが、一つのイベントしてカウントされます。 イベントを作ったとき、正常に動作しない原因は、 イベントの基本設定 †では「event = { } 」の中には何を記述すればよいのでしょうか? 記述の順序はあまり関係ないですが、順序を揃えたほうが、自分にとっても他の人にとっても読みやすいです。 最初の行には、 id = xxxxxx と数字を記述しましょう。 これは、イベントIDと言って、イベント一つ一つに固有の数字を割り当てる必要があります。 次に、 random = no #ランダムイベントでは無い を書きます。 random = yesは「ランダムイベント」という位置付けとなり、後述のdateについての情報がスキップされます。 そして、 country = GER #イベントはドイツで発生する と、イベントを発生させたい国のコードを書きます。 イベントのトリガー †次に、イベント記述の最初の山場となる、triggerを読解してみましょう。 trigger = { ai = no # この国は、AIの操作ではない NOT = { # 以下の「NOT ={ } 」ではその条件を満たしていないことを確認する war = { country = GER country = FRA } # ドイツが、フランスと戦争状態である alliance = { country = GER country = FRA } # ドイツとフランスが、同盟を結んでいる } # ここで「NOT ={ } 」はおしまい garrison = { country = GER province = 75 size = 1 } # ドイツが、ID75のプロヴィンス(ケルン)に、陸軍を1以上置いている } まず、「trigger = { NOT = { } } 」という風な、{ }の階層が合致している事を確認してください。先に述べたように、{ }にズレがあると正しく動作しません。 NOT文 †次に「NOT = { } 」の中身を読解してみましょう。 NOT文は、内部に書かれた条件を、どれ一つとして満たしていない状態を示します。 つまり、上の例文の記述では
OR文 †では(上の例文には書かれていない)他の条件文を見ていきましょう。 OR文は、NOT文の逆で、内部に書かれた条件のいずれかを満たしている状態を示します。 もし、上の例文の「NOT ={ }」をORにすると、
AND文 †次にAND文です。 OR = { AND = { # 以下の条件が、同時に満たされる event = 3800 # ID3800のイベントが発生済み random = 33 # (判定日数ごと)33%の確率で発生する } # AND文はここまで war = { country = JAP country = USA } # 日本が、アメリカと戦争状態である } この条件は、
つまり、AとBが発生した、またはCとDが発生したの、どちらかを発生条件としたい、というとき、OR文の中にAND文を作るのです。 無記述文 †最後に、NOTもORもANDも無い文です。 trigger= { A B C } trigger= { AND ={ A B C } } 上の二つが同じ効果となります。わざわざ後者のように書く必要はありません。 ただし、NOTの括弧内の条件は、OR文の中にあるのと同様に扱われます。 trigger= { NOT = { A B C } } trigger= { NOT = { OR = { A B C } } } 上の二つが同じ効果となります。 trigger= { NOT = { A } NOT = { B } NOT = { C } } 注意すべきこと †例文の中にある「#」の記述は、#以後の、その行の文を無視する(コメントアウト)効果があります。 スペースは、全角を使ってはいけません。 Top / MOD / イベントの書き方 |