最終更新日 2024-09-25

AS条件::軍師武将番号

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {
  if ( 条件名 == "AS条件::軍師武将番号" ) {
  }

  // 変更しない場合-1
  return -1;
}

引数の補足

タイミング

一般的用途

例①

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {

  if ( 条件名 == "AS条件::軍師武将番号" ) {
    return 100; // 武将番号100番 (武将番号【配列用】が99番の人が、いつも軍師。どこの国所属でも無関係
  }

  // 変更しない場合-1
  return -1;
}

例②

int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) {

    // 武田信玄が軍団長のところでは、その軍団に武田信繁が居るならば、その軍団の軍師は武田信繁となる。

  if ( 条件名 == "AS条件::軍師武将番号" ) {
    if ( パラメタ.整数2 == 0xFFFF ) {  // 現軍師武将番号 0xFFFFだと該当の軍団には軍師がいない。
    }

    int iGundanID = パラメタ.整数1 -1; // 指定の軍団番号【配】(指定の軍団場号)
    int iBushouID = パラメタ.整数2 -1; // 現軍師武将番号【配】(変化させなければ、その値となるということ)

    if ( 0 <= iGundanID && iGundanID < 最大数::軍団情報::配列数 ) {
      // 軍団のリーダーを求める
      int iLeaderBushouID = p軍団情報[iGundanID].軍団長【武将番号】-1;

      // ちゃんとリーダーがいる。
      if ( 0 <= iLeaderBushouID && iLeaderBushouID < 最大数::武将情報::配列数 ) {
        // 現在要求されている軍団のリーダーは武田信玄
        if ( p武将戸籍情報[iLeaderBushouID].顔番号 == 顔番号::武田晴信 ) { // 顔番号19=武田信玄

          int iTargetID = Get_武将番号【配列用】(顔番号::武田信繁); // 武田信繁は居るか。
          if ( 0 <= iTargetID && iTargetID < 最大数::武将情報::配列数 ) {

            // この時、武田信玄と武田信繁が同じ軍団に所属してるか。
            if ( p武将情報[iLeaderBushouID].所属軍団【軍団番号】 == p武将情報[iTargetID].所属軍団【軍団番号】) {
              // 武田信繁が軍師として助言する
              return iTargetID+1; // 武将番号【配】列用番号→武将番号にした上で返す。
            }
          }
        }

      }
    }
  }

  // 変更しない場合-1
  return -1;
}