commonplacebook9019 @ ウィキ
N6のMod用自作関数 数値取得
最終更新:
commonplacebook9019
-
view
大名家の国力合計値取得
int Get_生産力合計_人口(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_人口 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_人口 += p城情報[城3].人口;
}
}
return 合計_人口;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_生産力合計_石高(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_石高 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_石高 += p城情報[城3].石高;
}
}
return 合計_石高;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_生産力合計_商業(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_商業 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_商業 += p城情報[城3].商業;
}
}
return 合計_商業;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_民忠平均(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_民忠 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_民忠 += p城情報[城3].民忠;
}
}
合計_民忠 /= Get_大名所持城数(大名番号【配列用】);
return 合計_民忠;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_生産力合計_鍛冶(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_鍛冶 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_鍛冶 += p城情報[城3].鍛冶;
}
}
return 合計_鍛冶;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_生産力合計_港湾(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_港湾 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_港湾 += p城情報[城3].港;
}
}
return 合計_港湾;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_生産力合計_鉱山(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_金山 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_金山 += p城情報[城3].金山;
}
}
return 合計_金山;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
int Get_生産力合計_馬産(int 大名番号【配列用】) {
if (0 <= 大名番号【配列用】 && 大名番号【配列用】 < 最大数::大名情報::配列数) {
int 合計_馬産 = 0;
番号リスト型 所持城List = Get_大名所持城番号リスト【配列用】(大名番号【配列用】);
for each (int 城3 in 所持城List) {
if (0 <= 城3 && 城3 < 最大数::城情報::配列数) {
合計_馬産 += p城情報[城3].馬産地;
}
}
return 合計_馬産;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 0;
}
}
城からの収入値取得
int 拠点物資収入計算(int 城) {
int 数値 = 0;
if (0 <= 城 && 城 < 最大数::城情報::配列数) {
int 石高 = int(p城情報[城].石高 * 0.5);
int 民忠 = ((p城情報[城].石高 * p城情報[城].民忠) / 200);
数値 += 石高; 数値 += 民忠;
return 数値;
}
else {
return 0;
}
}
int 拠点資金収入計算(int 城) {
int 数値 = 0;
if (0 <= 城 && 城 < 最大数::城情報::配列数) {
int 石高 = int(p城情報[城].商業 * 5);
int 民忠 = ((p城情報[城].商業 * p城情報[城].民忠) / 20);
数値 += 石高; 数値 += 民忠;
return 数値;
}
else {
return 0;
}
}
3
int 拠点物資収入計算(int 城) {
int 数値 = 0;
if (0 <= 城 && 城 < 最大数::城情報::配列数) {
int 石高 = int(p城情報[城].石高 * 0.5);
int 民忠 = ((p城情報[城].石高 * p城情報[城].民忠) / 200);
数値 += 石高; 数値 += 民忠;
return 数値;
}
else {
return 0;
}
}
int 拠点資金収入計算(int 城) {
int 数値 = 0;
if (0 <= 城 && 城 < 最大数::城情報::配列数) {
int 石高 = int(p城情報[城].商業 * 5);
int 民忠 = ((p城情報[城].商業 * p城情報[城].民忠) / 20);
数値 += 石高; 数値 += 民忠;
return 数値;
}
else {
return 0;
}
}
武将に残り入れることが出来る兵数
int Get_必要兵数(int 武将番号【配列用】) {
int 必要兵数 = 0;
if (0 <= 武将番号【配列用】 && 武将番号【配列用】 < 最大数::武将情報::配列数) {
int 兵数 = p武将情報[武将番号【配列用】].兵数;
int 最大 = Get_武将最大兵数(武将番号【配列用】);
最大 -= 兵数;
必要兵数 = 最大;
return 必要兵数;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 必要兵数;
}
}
大名家の戦力数(兵数のみ)
int 追加関数◆Get_所属勢力兵数(int 大名番号【配列用】) {
int i兵数 = 0;
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
if (p武将情報[i].所属大名【大名番号】 - 1 == 大名番号【配列用】) {
if (p武将戸籍情報[i].状態 <= 状態::現役) { // 大名, 軍団長, 現役 でカウント
i兵数 += p武将情報[i].兵数;
}
}
}
return i兵数;
}
武将の能力査定値(一例)
int Get_武将能力合計(int 武将番号【配列用】) {
int 武将能力合計 = 0;
if (0 <= 武将番号【配列用】 && 武将番号【配列用】 < 最大数::武将情報::配列数) {
武将能力合計 += int(Get_政治値(武将番号【配列用】));
武将能力合計 += int(Get_戦闘値(武将番号【配列用】));
武将能力合計 += int(Get_智謀値(武将番号【配列用】));
武将能力合計 += int(p武将情報[武将番号【配列用】].足軽適性 * 5);
武将能力合計 += int(p武将情報[武将番号【配列用】].騎馬適性 * 5);
武将能力合計 += int(p武将情報[武将番号【配列用】].水軍適性 * 5);
武将能力合計 += int(Get_鉄砲適性(武将番号【配列用】) * 5);
武将能力合計 += int(Get_弓適性(武将番号【配列用】) * 5);
//---------------------------------------------------
/*
武将能力合計 += int(p武将情報[武将番号【配列用】].技能暗殺 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能一喝 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能焼討 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能煽動 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能挑発 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能弁舌 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能流言 * 10);
武将能力合計 += int(p武将情報[武将番号【配列用】].技能流出 * 10);
*/
//---------------------------------------------------
return 武将能力合計;
}
else {
デバッグ出力("武将番号【配列用】は範囲外");
return 武将能力合計;
}
}
物資を購入する量から費用を求める(商人友好度考慮なし)
int 購入費用_物資(int 物資量) {
int 費用 = 0;
int 現在の米相場 = p相場情報.米相場;
費用 = int(現在の米相場 * 物資量);
return 費用;
}
int 購入費用_騎兵(int 騎兵量) {
int 費用 = 0;
int 現在の馬相場 = p相場情報.馬相場;
費用 = int(現在の馬相場 * 騎兵量);
return 費用;
}
int 購入費用_鉄砲(int 鉄砲量) {
int 費用 = 0;
int 現在の鉄砲相場 = p相場情報.鉄砲相場;
費用 = int(現在の鉄砲相場 * 鉄砲量);
return 費用;
}
int 購入費用_兵士(int 兵士量) {
int 費用 = 0;
int 現在の米相場 = p相場情報.兵相場;
費用 = int(現在の米相場 * 兵士量);
return 費用;
}
大名家の家臣数(応用可能)
int Get_大名家臣数(int 大名番号【配列用】) {
int i兵数 = 0;
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
if (p武将情報[i].所属大名【大名番号】 - 1 == 大名番号【配列用】) {
if (p武将戸籍情報[i].状態 <= 状態::現役) { // 大名, 軍団長, 現役 でカウント
i兵数++;
}
}
}
return i兵数;
}