AS条件::戦争::捕虜処遇登用可否

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
  if ( 条件名 == "AS条件::戦争::捕虜処遇登用可否" ) {
  }

  // 変更しない場合-1
  return -1;
}
  • 引数の補足

    • パラメタ.整数1:

      整数1は処断される側の武将番号
    • パラメタ.整数2:

      整数2は処断する側の武将番号(通常ならば大名の武将番号となる)
    • パラメタ.整数3:

      現在予定されている登用成否の結果
  • タイミング

    • このカスタム条件は、戦後において、各武将ごとに、捕虜処遇が実行される「直前」の登用成否結果判定を出す際呼び出される。
    • プレイヤ操作の場合「捕虜処遇」の各人において、その吹き出しダイアログが出る「直前」に結果が決まるので注意すること。勘違いしやすいので注意。 天翔記の仕様では、「登用する」といったボタンを押したタイミングではなく、「ダイアログ」が出る段階ですでに登用の成否の結果は決まっている。
    • プレイヤ勢力、NPC勢力にかかわらず、GUIが見えている見えていないに関わらず、全ての「捕虜処遇」にて、このカスタム条件は実行される。


  • 一般的用途

    • 特定の武将や特定条件を満たす武将について、捕虜処遇で登用の成否を制御する目的として使用する。
    • 捕虜処遇時の登用成否アルゴリズム全体の変更を目的として使用する。
    (例① 登用が必ず失敗するの例)
    int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
    
      if ( 条件名 == "AS条件::戦争::捕虜処遇登用可否" ) {
    
        int i処断される側BushouID = パラメタ.整数1 -1;
        int i処断する側BushouID   = パラメタ.整数2 -1;
        int i予定成否結果   = パラメタ.整数3;
    
        if ( 0 <= i処断される側BushouID && i処断される側BushouID < 最大数::武将情報::配列数 &&
             0 <= i処断する側BushouID && i処断する側BushouID < 最大数::武将情報::配列数 ) {
    
            デバッグ出力 << "処断される側:" << Get_名字(i処断される側BushouID) << Get_名前(i処断される側BushouID) << endl;
            デバッグ出力 << "処断する側:"   << Get_名字(i処断する側BushouID)   << Get_名前(i処断する側BushouID)   << endl;
            デバッグ出力 << "予定されてる結果:" <<  i予定成否結果  << endl;
    
            // (何も条件で絞っていないため)登用は必ず失敗する。
            return false;
        }
      }
    
      // 変更しない場合-1
      return -1;
    }
    
  • 例② 特定の条件を満たす時、登用結果をコントロールする例

    int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
    
      if ( 条件名 == "AS条件::戦争::捕虜処遇登用可否" ) {
        int i処断される側BushouID = パラメタ.整数1 -1;
        int i処断する側BushouID   = パラメタ.整数2 -1;
        int i予定成否結果   = パラメタ.整数3;
    
        if ( 0 <= i処断される側BushouID && i処断される側BushouID < 最大数::武将情報::配列数 &&
             0 <= i処断する側BushouID && i処断する側BushouID < 最大数::武将情報::配列数 ) {
    
          // 相性がかなり悪ければ、必ず失敗する。
          if ( Get_武将相性差( i処断される側BushouID, i処断する側BushouID ) >= 7 ) {
            return false;
          }
    
          // 処断される側が僧侶だと必ず失敗する。
          if ( p武将情報[i処断される側BushouID].職業 == 職業::僧侶 ) {
            return false;
          }
          // 処断される側が茶人だと必ず成功する。
          else if  ( p武将情報[i処断される側BushouID].職業 == 職業::茶人 ) {
            return true;
          }
        }
      }
    
      // 変更しない場合-1
      return -1;
    }