最終更新日 2024-09-25
AS条件::軍師武将番号
int カスタム::On_カスタム条件(string 条件名, カスタム条件パラメタ型 パラメタ) { if ( 条件名 == "AS条件::軍師武将番号" ) { } // 変更しない場合-1 return -1; }
引数の補足
-
パラメタ.整数1:
軍団番号。軍師は軍団に最大1人いることになるので、軍師決定のアルゴリズムが呼び出される際は、常に「軍団番号」が最重要パラメータとして渡ってくる。
-
パラメタ.整数2:
現軍師武将番号。このカスタムメソッド内で特に変更等しなければ、該当の武将番号の武将が軍師ということとなる。0xFFFFの場合は、該当の軍団には軍師が居ないということ。
-
返し値
軍師とする武将番号。-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; }