void カスタム::On_軍団ターン変更《メイン画面》(int 軍団番号)
void カスタム::On_軍団ターン変更《メイン画面》(int 軍団番号) {
}
例①
void カスタム::On_軍団ターン変更《メイン画面》(int 軍団番号) {
/*
* 「プレイヤ勢力麾下の軍団」でないならば
* CPUが処理をする前に、金欠、米欠なら、恵む。
*/
int iGundanID = 軍団番号-1;
if ( ! Is_プレイヤ担当軍団( iGundanID ) ) {
if ( p軍団情報[iGundanID].米 < 500 ) {
p軍団情報[iGundanID].米 = 500;
}
if ( p軍団情報[iGundanID].金 < 500 ) {
p軍団情報[iGundanID].金 = 500;
}
}
}
例②
/*
* 織田信長のイベントを段階的に進捗させていく、というサンプル
*/
#define 織田信長イベント名 "SPL_EV01"
#define 織田信長イベント進捗・A フラグ枠::A
#define 織田信長イベント進捗・B フラグ枠::B
bool Check_イベント001(int 軍団番号【配列用】) {
// 「SPL_EV01というフラグのA枠」がFALSEなら
if ( Get_フラグ(織田信長イベント名, 織田信長イベント進捗・A) == FALSE ) {
// 1550年~60年の間なら発生
if ( 1550 <= Get_西暦() && Get_西暦() <= 1560 ) {
// 軍団長の武将番号【配】を求める
int iGundanLeaderBushouID = p軍団情報[軍団番号【配列用】].軍団長【武将番号】-1;
// 居れば
if ( 0 <= iGundanLeaderBushouID && iGundanLeaderBushouID < 最大数::武将情報::配列数 ) {
if ( p武将戸籍情報[iGundanLeaderBushouID].顔番号 == 顔番号::織田信長 ) { // 織田信長の顔番号
// この軍団長は、大名でもある
if ( p武将戸籍情報[iGundanLeaderBushouID].状態 == 状態::大名 ) {
実行/取消ダイアログ表示("織田信長にターンが回る直前、何かイベント発動\x0A★★★★★★★★★★★");
// このイベントが発生したというのをフラグ名SP_EV01に残す。
Set_フラグ(織田信長イベント名, TRUE, 織田信長イベント進捗・A);
return true; // イベントは起きた
}
}
}
}
}
return false; // イベントは起きてない。
}
bool Check_イベント002(int 軍団番号【配列用】) {
// 「SPL_EV01というフラグのA枠」がFALSEならまだこのイベントは早い。まずは、Aが進んでから。
if ( Get_フラグ(織田信長イベント名, 織田信長イベント進捗・A) == FALSE ) {
return false;
}
// 進捗Bがまだ発生していない。
if ( Get_フラグ(織田信長イベント名, 織田信長イベント進捗・B) == FALSE ) {
if ( 1563 <= Get_西暦() && Get_西暦() <= 1565 ) {
// イベント進捗Bのための処理
// このイベントが発生したというのをフラグ名SP_EV01に残す。
実行/取消ダイアログ表示("織田信長にターンが回る直前、何かイベント発動、その②\x0A★★★★★★★★★★★");
Set_フラグ(織田信長イベント名, TRUE, 織田信長イベント進捗・B);
return true;
}
}
return false; // イベントは起きてない。
}
void カスタム::On_軍団ターン変更《メイン画面》(int 軍団番号) {
Check_イベント001(軍団番号-1);
Check_イベント002(軍団番号-1);
}