1.
イベントスクリプトにおいて、イベントの処理方法は、EventScript内にある if(条件式) に記載されている発生条件をもとに、イベントを発生させるか否か決定する。 if(条件式)内の発生条件を満たしている場合に、その直下にある { } 内のイベントを発生させる。 if(条件式)内の発生条件を満たさない場合は、その直下にある { } 内のイベントは発生しない。 if(条件式) ……下図では、便宜的に「条件式その1」と表記する で実行させるイベント中にさらに if(条件式) ……下図では、便宜的に「条件式その2」と表記する を書き加えることで、複雑な条件下で発生するイベントを作成することができる。 2.
イベントの中身は、 ・会話文 ・YesかNoの選択 ・キャラクターの消失、加入 ・Leyや町、道、城の数の増減 ・同盟の締結、破棄 ・Flagの管理 ・変数の管理 ・絵の表示 ・撃破数やLey等の数の表示 等である。 これらは別項で解説する。 3.
デフォルトのイベントを例示し、解説を行う。 * * * * * * * * * * * * * * * * * * * * * * * * * * このデフォルトの「ヨネアとニースルー」というイベントでは、まず最初の条件式は if (Scenario==1 && Flag[40]==false && AreaButaiKz[30]<19 && AreaKuni[30]>0 && AreaKuni[30]!=4) とあるが、 Scenario==1 で 現在プレイしているシナリオが1であること Flag[40]==false で Flagの40番がfalseであること AreaButaiKz[30]<19 で エリア番号30(デフォルトはルートガルト港)にいる部隊(キャラ)の数が19未満であること AreaKuni[30]>0 で エリア番号30を占領している勢力番号が0より上であること AreaKuni[30]!=4 で エリア番号30を占領している勢力番号が4ではないこと (つまり勢力番号4のルーゼルは、このイベントは発生しない) を条件としている。 Set a,AreaKuni[30] で 変数aに、エリア番号30を占領している勢力番号の数を代入し Set b,true で 変数bにtrueを代入しているが 変数については、別項で詳しく解説する。 if (KuniPlayer[a])では、 勢力番号aをプレイヤーが操作中であることを 条件としている。aには、先にエリア番号30を占領している勢力番号を代入しているので エリア番号30を占領している勢力をプレイヤーが操作しているか否かを判別している。 また、if (KuniPlayer[a]) は 本来 if (KuniPlayer[a]==1) という形であるが if (KuniPlayer[a]=1) に限り if (KuniPlayer[a]) と省略が可能である。 if (b) は if (b) がtrueであることを条件とする。 (これも、本来if (b==true)だが、if(b)と省略が可能である) これは、上にある Set b,YesNo(この者達を仲間にしますか?) という条件式に係るものであり、この条件式では 「はい」という選択をすればbにtrueが代入され 「いいえ」を選択すれば、bにfalseが代入される。 4行目であらかじめ、bにtrueを代入したのは、 エリア番号30を占領した勢力がCPU操作時だった場合に、 (b==true) 内のイベントを発生させるためのものである。 よって、今回の場合はif(b)という条件は、 CPU陣営では最初のif(条件式)を満たした場合か、 プレイヤー操作の陣営が一つ目のif(条件式)を満たし なおかつ二つ目のif(条件式)内で「はい」を選んだ時に発生する。 CharSet x,%識別ID は、エリア番号「x」に 「識別IDのキャラ」を配置させるスクリプトである。 CharSet 30,%ヨネア で エリア番号30にヨネアを CharSet 30,%ニースルー で エリア番号30にニースルーを 配置させる。 そして、最後に Flag40番にtrueを代入し、 このイベントが以降、二度を発生しないように設定する。 4.
蛇足ではあるが、下に手書きで解説したものを載せておく。 |