void カスタム::On_攻撃方法決定時《戦争画面》(int 主体武将番号, int 客体武将番号, 攻撃方法決定時パラメタ型 パラメタ)

void カスタム::On_攻撃方法決定時《戦争画面》(int 主体武将番号, int 客体武将番号, 攻撃方法決定時パラメタ型 パラメタ) {
}
  • タイミング

    • 各ユニットが、自らの意思(プレイヤの意思も含む)で、「攻撃方法を決定した際」に、呼び出される。
      PC/NPC、無関係に実行される。
      ただし、自らの意思ではない攻撃(混乱による攻撃等)では呼び出されない。(将来呼び出されるようにするかもしれない)
  • 一般的用途

    • 特定の攻撃方法の際に、何か処理を行いたい場合に利用する。
  • 例①

    void カスタム::On_攻撃方法決定時《戦争画面》(int 主体武将番号, int 客体武将番号, 攻撃方法決定時パラメタ型 パラメタ) {
      int iBushouID = 主体武将番号-1;
      int iTargetID = 客体武将番号-1;
    
      int 攻撃方法番号 = パラメタ.攻撃方法番号;
      int 移動前 = パラメタ.移動前;
    
      // 武将番号範囲チェック
      if ( (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) &&
         (0 <= iTargetID && iTargetID < 最大数::武将情報::配列数) ) {
    
    
           デバッグ出力 << "誰が:" << Get_名前(iBushouID) << endl;
           デバッグ出力 << "誰に:" << Get_名前(iTargetID) << endl;
    
           if ( 移動前 ) {
            デバッグ出力("移動前");
           } else {
            デバッグ出力("移動後");
           }
    
           if ( 攻撃方法番号 == 攻撃方法::攻撃 ) {
             デバッグ出力("⇒攻撃" );
           }
           else if ( 攻撃方法番号 == 攻撃方法::突撃 ) {
             デバッグ出力("⇒突撃" );
           }
           else if ( 攻撃方法番号 == 攻撃方法::鉄砲 ) {
             デバッグ出力("⇒鉄砲" );
           }
           else if ( 攻撃方法番号 == 攻撃方法::弓 ) {
             デバッグ出力("⇒弓" );
           }
           else if ( 攻撃方法番号 == 攻撃方法::大砲 ) {
             デバッグ出力("⇒大砲" );
           }
           else if ( 攻撃方法番号 == 攻撃方法::一斉攻撃 ) {
             デバッグ出力("⇒一斉攻撃" );
           }
    
      }
    }