最終更新日 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;
}