最終更新日 2024-09-25

戦国名物事典型& カスタム::On_戦国名物事典要求時(int 家宝番号)

戦国名物事典型& カスタム::On_戦国名物事典要求時(int 家宝番号) {
  return NULL;
}

タイミング

一般的用途

例①

戦国名物事典型& カスタム::On_戦国名物事典要求時(int 家宝番号) {

  // 家宝名は家宝番号が全てのシナリオを通じて固定である。
  // よって何番が何の家宝か? は決まっており、家宝列伝(戦国名物事典)とも一致する。
  int iKahouID = 家宝番号 - 1;

  if (0 <= iKahouID && iKahouID < 最大数::家宝情報::配列数) {
    // 孫子という文字列を含んだ家宝
    if ( Is_文字列マッチ( Get_家宝名(iKahouID), "孫子") ) {
      戦国名物事典型 rt
        (
        "ソンシカイ\x0A孫子改",

        "123456789101112131415161718\x0A"
        "123456789101112131415161718\x0A"
        "123456789101112131415161718\x0A"
        "123456789101112131415161718\x0A"
        );
      return rt;
    }
  }

  // 変更しない場合NULL
  return NULL;
}

例②

戦国名物事典型& カスタム::On_戦国名物事典要求時(int 家宝番号) {

  int iKahouID = 家宝番号 - 1;

  if (0 <= iKahouID && iKahouID < 最大数::家宝情報::配列数) {
    if ( Is_文字列マッチ( Get_家宝名(iKahouID), "孫子") ) {
      戦国名物事典型 rt
        (
        "ソンシカイ\x0A孫子改",

        "" // 「""」にすると、該当部分は元の文字列のままとなる。
        );
      return rt;
    }
  }

  // 変更しない場合NULL
  return NULL;
}

例③

戦国名物事典型& カスタム::On_戦国名物事典要求時(int 家宝番号) {

  int iKahouID = 家宝番号 - 1;

    // 蜻蛉切を本多忠勝が所持している時だけ、戦国名物事典の内容を変更する。

  if (0 <= iKahouID && iKahouID < 最大数::家宝情報::配列数) {
    デバッグ出力 << "家宝番号" << iKahouID << endl;
    // 家宝の番号は、シナリオが変わっても固定的
    if ( iKahouID == 家宝配列番号::蜻蛉切 ) {
      int iBushouID = p家宝情報[iKahouID].所有武将【武将番号】 - 1;
      if (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) {
        デバッグ出力 << "武将番号" << iBushouID << endl;
        if (Get_名字(iBushouID) == "本多" && Get_名前(iBushouID) == "忠勝") { // 本多忠勝だ
          戦国名物事典型 rt
            (
            "タダカツノホンボキリ\x0A忠勝の蜻蛉切",

            "123456789101112131415161718\x0A"
            "123456789101112131415161718\x0A"
            "123456789101112131415161718\x0A"
            "123456789101112131415161718\x0A"
            );
          return rt;
        }
      }
    }
  }

  // 変更しない場合NULL
  return NULL;
}