最終更新日 2024-09-25

プレイヤ担当

これらを特別視してプログラムすることは、ScenarioModでは非常に多いと言えます。
このため、これらを判定しやすい関数が用意されています。

プレイヤ担当大名、プレイヤ担当軍団、プレイヤ担当武将

bool Is_プレイヤ担当大名(WORD 大名番号【配列用】)
bool Is_プレイヤ担当軍団(WORD 軍団番号【配列用】)
bool Is_プレイヤ担当武将(WORD 武将番号【配列用】)
シナリオ3~5で、織田家の配下から独立できる武将や城を見繕う
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
void カスタム::On_プレイヤ担当ターン《メイン画面》() {
 
    for (int iDaimyoID = 0; iDaimyoID < 最大数::大名情報::配列数; iDaimyoID++) {
        // それはプレイヤが担当している大名家である
        if (Is_プレイヤ担当大名(iDaimyoID)) {
            int iBushouID = p大名情報[iDaimyoID].大名【武将番号】 - 1;
 
            if (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) {
                デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << endl;
            }
        }
    }
 
    for (int iGundanID = 0; iGundanID < 最大数::軍団情報::配列数; iGundanID++) {
        // それはプレイヤが担当している大名の麾下の軍団のである
        if (Is_プレイヤ担当軍団(iGundanID)) {
 
            int iBushouID = p軍団情報[iGundanID].軍団長【武将番号】 - 1;
 
            if (0 <= iBushouID && iBushouID < 最大数::武将情報::配列数) {
                if (p軍団情報[iGundanID].軍団割当番号 == 1) {
                    デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤが実際に操作している軍団" << endl;
                } else {
                    デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤ担当の軍団ではあるが、第二軍団以下なので、操作はしていません。" << endl;
                }
            }
        }
    }
 
    for (int iBushouID = 0; iBushouID < 最大数::武将情報::配列数; iBushouID++) {
        // それはプレイヤが担当している大名の麾下の武将である。どこの軍団の武将かは問わない。
        // 姫や妻は軍団には所属していないため、この「プレイヤ担当武将」の判定ではfalseとなる。
        if (Is_プレイヤ担当武将(iBushouID)) {
            int iGundanID = p武将情報[iBushouID].所属軍団【軍団番号】 - 1;
            if (0 <= iGundanID && iGundanID < 最大数::軍団情報::配列数) {
                int 軍団割当番号 = p軍団情報[iGundanID].軍団割当番号;
                デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤの麾下勢力の第" << 軍団割当番号 << "軍団に居る武将です。" << endl;
            }
        }
 
        else if (p武将戸籍情報[iBushouID].状態 == 状態::姫) {
            int iDaimyoID = p武将情報[iBushouID].所属大名【大名番号】 - 1;
            if (Is_プレイヤ担当大名(iDaimyoID)) {
                int i伴侶BushouID = Get_伴侶武将番号【配列用】(iBushouID);
 
                if (0 <= i伴侶BushouID && i伴侶BushouID < 最大数::武将情報::配列数) {
                    デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤ担当大名に所属する妻で、相手は" << Get_名字(i伴侶BushouID) + Get_名前(i伴侶BushouID) << "です。" << endl;
                }
                else {
                    デバッグ出力 << Get_名字(iBushouID) + Get_名前(iBushouID) << "はプレイヤ担当大名に所属する姫です。" << endl;
                }
            }
        }
    }
}

より詳細を知るには...

「プレイヤ担当」に関する主な所は以上となります。 詳しくは「軍団情報型.h」などを参照してください。