最終更新日 2024-09-25
int カスタム::On_待機武将登場直前(int 武将番号, int 登場済人数, int 待機武将データ数)
int カスタム::On_待機武将登場直前(int 武将番号, int 登場済人数, int 待機武将データ数) { return -1; }
引数の補足
-
武将番号
「このメソッド後に」、この武将番号へと待機武将が登場する。
よって、 p武将情報[x] や p武将戸籍情報[x] では、該当の武将の情報を取得することはできない。
該当の武将はまだ登場しておらず、このメソッドの直後に「武将番号スロット」へと上書き登録されるのである。 -
登場人数:
現行進行中のシナリオにおいて、「何人の待機武将が、すでに登場済み」なのかの人数。
この情報があれば、「次に登場する待機武将」を割り出すことが出来る。
なお、この値は、「Get_待機武将登場済人数()」という関数の結果と同じ値である。 -
待機武将データ数:
現行進行中のシナリオにおいて、そもそも「何人の待機武将データ」がシナリオデータとして存在するのか、の情報。
ScenarioModには、Get_待機武将戸籍情報リスト() という「現行シナリオの待機武将情報全体」を扱うための関数が存在するが、
「各シナリオ」によって、「待機武将データ数」は異なるため、この引数が渡ってくる。
なお、この値は、「Get_待機武将データ数()」という関数の結果と同じ値である。
返り値
-
-1
通常通り、登場する。
-
FALSE や NULL
該当の待機武将は登場せず、スキップされる。
一度スキップしてしまうと、2度と登場することはない。
タイミング
-
このメソッドは「待機武将」が登場する直前に実行される。
一般的用途
- 待機武将の情報を利用して、今登場しようとしている武将が特定の武将であれば、「登場させない」などといった制御をおこなう
例①
int カスタム::On_待機武将登場直前(int 武将番号, int 登場済人数, int 待機武将データ数) { auto p待機武将戸籍情報 = Get_待機武将戸籍情報リスト(); if (p待機武将戸籍情報) { // p待機武将戸籍情報 は インデックスが 0 から始まる登場順にならんでいるので、 // 「登場済人数」をインデックスにあてはめると、「これまで登場した武将」の「次の人」、 // を指すインデックスとなる auto next武将 = p待機武将戸籍情報[登場済人数]; if (next武将.顔番号 == 顔番号::明智光秀) { // 登場しない return FALSE; } if (string(next武将._名字) == "ほげげ" && string(next武将._名前) == "うごご") { // p武将情報とは異なり、姓名の文字列で判定する必要性は、ほとんど無いはずなので、 // Get_名字()やGet_名前()といったものは用意されていない。 return FALSE; } } return -1; }