2ちゃんねる ★スマホ版★ ■掲示板に戻る■ 全部 1- 最新50  

98: 信長の野望・天翔記改造アニメ・ネタ系スレ

1 :名無し曰く、:2012/07/10(火) 19:45:20.02 ID:o3fCecYp
信長の野望・天翔記のアニメ・ネタ系改造シナリオについてのスレ

関連スレ
信長の野望 天翔記 改造総合スレ
http://kohada.2ch.net/test/read.cgi/gamehis/1338641149

759 :名無し曰く、:2014/02/17(月) 12:42:48.43 ID:r+VYUOK3
>>757
戦闘中会話吹き出しメッセージの追加で、念願だった覇王伝の軍議再現もできそうだな

760 : ◆dF/TZIT8Xw :2014/02/18(火) 18:29:30.99 ID:w3eW28Q3
>>758
おおっ!こんなものが…この時代からあったみたいですね…

>>759
軍議の再現は確実に出来るみたいです。
あとは、侵攻先に姫が嫁いでいたら彼女が怒り出すのも出せるかと。

アニメ・ネタ的意味合いではエースコンバットとかによくある、
敵の無線みたいな物もできそうだ。
それこそ戦闘200の武将が現れたら狼狽するとか、戦場の状況をやりとりするとか。

761 :名無し曰く、:2014/02/19(水) 21:42:48.72 ID:vPVJyKQL
ScenarioModのコードが1500行ぐらいあるので、暇つぶしにこのスレに垂れ流そうか。。。

1)戦場で江田島平八が叫ぶと、敵兵がビビって各敵部隊で兵が10づつ減るコード
残りターン変更のセクションに

WORD 江田島平八 = Get_武将番号【配列用】(43);//江田島平八の顔番号が43のばあい
if (江田島平八 != 0xFFFF) {
if ((Get_武将の野戦ヘックス位置(江田島平八).X != 0xFFFF || Get_武将の攻城戦ヘックス位置(江田島平八).X != 0xFFFF) && 残りターン数 > 26) {
関数::効果音再生(効果音音源::一喝);
噴出ダイアログ《通常・左上》開始(江田島平八, "ワシが\x0A男塾塾長\x0A江田島平八であーる!" );
噴出ダイアログ《通常・左上》終了();
vector<int> bushos = Get_出陣中の武将番号リスト【配列用】《表示中マップ》();
for each (int i in bushos) {
// 戦闘130未満の武将は兵がビビって逃げ出す
if ((p武将情報[i].最大戦才 * p武将情報[i].戦闘熟練値 / 1000) < 130 && p武将情報[i].所属大名【大名番号】!= p武将情報[江田島平八].所属大名【大名番号】) {
if (p武将情報[i].兵数 > 10) {
関数::効果音再生(効果音音源::挑発・混乱);
噴出ダイアログ《通常・右下》開始(i, "なんという迫力・・・\x0A我軍の兵が\x0A逃げ出しておる" );
噴出ダイアログ《通常・右下》終了();
p武将情報[i].兵数 -= 10;
} else {
p武将情報[i].兵数 = 0;
}
}
}
}
}

762 :名無し曰く、:2014/02/19(水) 21:47:41.62 ID:vPVJyKQL
戦争が起こったときにケンシロウが参戦しているかもしれないことを確認する方法


WORD ケンシロウ = Get_武将番号【配列用】(1);//ケンシロウの顔番号が1のばあい
if (ケンシロウ != 0xFFFF) {
ケンシロウ城 = p武将情報[ケンシロウ].所属居城【城番号】;
if (Is_隣接城(Get_城グリッド位置(戦争城 - 1), Get_城グリッド位置(ケンシロウ城 - 1)) || 戦争城 == ケンシロウ城) {
if (p武将情報[ケンシロウ].所属大名【大名番号】== 41) {//プレーヤーの大名番号が41と仮定
関数::確認ダイアログ表示("自軍でケンシロウ出陣か");
} else {
関数::確認ダイアログ表示("ケンシロウ出陣か");
}
}
}

763 :名無し曰く、:2014/02/19(水) 21:48:51.06 ID:vPVJyKQL
あ、最初に
int 戦争城 = パラメタ.城番号;
必要

764 :名無し曰く、:2014/02/19(水) 21:54:46.38 ID:vPVJyKQL
プレデターに常に特定の家宝を持たせる(譲渡した場合も戻ってくる)
プレデターの戦才は当然MAXの110(家宝値込)
家宝番号119をキャノン砲とした場合(シナリオエディタなどで編集、上昇値を10に設定した)

WORD wolfcannon = p家宝情報[118].所有武将【武将番号】-1;
if (predator != 0xFFFF && wolfcannon != predator) {
p家宝情報[118].所有武将【武将番号】= predator + 1;
if (p武将情報[predator].最大戦才 < 110) p武将情報[predator].最大戦才 = 110;
if (0 <= wolfcannon && wolfcannon < 最大数::武将情報::配列数) {
int enhanced = 0;
for (int i = 0; i < 最大数::家宝情報::配列数; i++) {
byte kahoubunrui = p家宝情報[i].家宝分類;
//この部分は家宝ごとにコードが異なるので自分で考える(家宝あり、なしで戦才がかわるのでそこを調整する)
if (p家宝情報[i].所有武将【武将番号】== wolfcannon + 1 && (kahoubunrui == 0x5 || kahoubunrui == 0x6 || kahoubunrui == 0x7 || kahoubunrui == 0x8 || kahoubunrui == 0x9 || kahoubunrui == 0xA)) {
if (enhanced < p家宝情報[i].上昇値) enhanced = p家宝情報[i].上昇値;
}
}
if (enhanced <= 10) {
p武将情報[wolfcannon].最大戦才 += enhanced - 10;
}
}
}

765 :名無し曰く、:2014/02/19(水) 21:58:21.60 ID:vPVJyKQL
配下の城で浪人一斉登用(大名番号1の場合)

int ronin = 0;
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
int gundan = p城情報[p武将情報[i].所属居城【城番号】- 1].所属軍団【軍団番号】- 1;
if (0 <= gundan && gundan < 最大数::軍団情報::配列数) {
if (p軍団情報[gundan].所属大名【大名番号】== 1) {
if (Set_武将状態《浪人→現役》(i)) {
ronin++;
}
}
}
}

766 :名無し曰く、:2014/02/19(水) 21:59:46.18 ID:vPVJyKQL
配下の城で浪人一斉登用(大名番号1の場合)

int ronin = 0;
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
int gundan = p城情報[p武将情報[i].所属居城【城番号】- 1].所属軍団【軍団番号】- 1;
if (0 <= gundan && gundan < 最大数::軍団情報::配列数) {
if (p軍団情報[gundan].所属大名【大名番号】== 1) {
if (Set_武将状態《浪人→現役》(i)) {
ronin++;
}
}
}
}

767 :名無し曰く、:2014/02/19(水) 22:00:31.06 ID:vPVJyKQL
軍師に内応者を言わす
大名番号1
軍師顔番号100の場合
string naioulist = "";
int ncnt = 0;
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
if (p武将情報[i].所属大名【大名番号】== 1) {
if (p武将情報[i].内応状態 == 1) {
naioulist += Get_名字(i);
naioulist += Get_名前(i);
naioulist += "\x0A";
ncnt++;
}
}
}
WORD heihachi = Get_武将番号【配列用】(100);
if (heihachi != 0xFFFF) {
if (naioulist != "内応者:") {
if (ncnt < 3) {
噴出ダイアログ《通常・左上》開始(heihachi, naioulist + "は内応しております" );
噴出ダイアログ《通常・左上》終了();
} else {
噴出ダイアログ《通常・左上》開始(heihachi, "複数の内応者がいます" );
噴出ダイアログ《通常・左上》終了();
}
}
}

768 :名無し曰く、:2014/02/19(水) 22:50:52.70 ID:z5GQ/oEM
軍師に内応者を言わせんの凄いな
旧作の軍師みたいに自ターンが来た際に必ず一言言う仕様ならもっと輝きそうだ

769 : ◆dF/TZIT8Xw :2014/02/19(水) 23:02:39.26 ID:vyTOyvuD
>>761-767
ありがとうございます!
他にもどんな感じのコードがありますでしょうか?

770 :名無し曰く、:2014/02/19(水) 23:48:53.65 ID:vPVJyKQL
>>768
あ、ちょっとまちがっていた

if (heihachi != 0xFFFF) {
if (naioulist != "内応者:") {
if (ncnt > 2) {
噴出ダイアログ《通常・左上》開始(heihachi, "複数の内応者がいます" );
噴出ダイアログ《通常・左上》終了();
} else if (ncnt > 0) {
噴出ダイアログ《通常・左上》開始(heihachi, naioulist + "は内応しております" );
噴出ダイアログ《通常・左上》終了();
}
}
}
かならずなんか言わすには else { } 句を付け足してなんか書くといいかな

771 :名無し曰く、:2014/02/19(水) 23:52:08.16 ID:vPVJyKQL
あと、ベイダーとヨーダの戦場での掛け合い(ベイダーの顔番号1352とする)
WORD vader = Get_武将番号【配列用】(1352);
if (vader != 0xFFFF) {
if ((Get_武将の野戦ヘックス位置(vader).X != 0xFFFF || Get_武将の攻城戦ヘックス位置(vader).X != 0xFFFF) && 残りターン数 == 29) {
vector<int> bushos = Get_出陣中の武将番号リスト【配列用】《表示中マップ》();
for each (int i in bushos) {
if (Get_名前(i) == "ヨーダ") {
噴出ダイアログ《通常・左上》開始(vader, "フフフ\x0Aジェダイのフォース\x0Aを感じるわい" );
噴出ダイアログ《通常・左上》終了();
噴出ダイアログ《通常・右下》開始(i, "アナキンよ\x0A覚悟するがよい" );
噴出ダイアログ《通常・右下》終了();
}
}
}
}
}

772 :名無し曰く、:2014/02/19(水) 23:56:20.86 ID:vPVJyKQL
会見で特定のメッセージ出たら遺恨フラグたてて独立を煽る例

if (元メッセージ.find("何も話す事は") != string::npos && メッセージ関連情報.第2人称【武将番号】== 192) { // プレーヤーの武将番号が192の場合
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
if ((Get_名字(i) + Get_名前(i)) == 武将名) {
if (p武将情報[i].遺恨状態 == 0) {
p武将情報[i].遺恨状態 = 1;
} else {
p武将情報[i].遺恨状態 = 0;
}
return "この世は\x0A諸行無常なり";
}
}
}

あとはろくなコードないようだ

773 :名無し曰く、:2014/02/20(木) 01:04:31.29 ID:jIwG0aut
改造スレで改造やめるしスレにも来ないって言ってた人?

774 :名無し曰く、:2014/02/20(木) 01:29:15.08 ID:lWN9dEfy
あの人なら他人に技術を与える事はしないだろう
>>1の事が好きならともかくw

775 :.jp:2014/02/20(木) 02:49:37.32 ID:6WZccn7x
>>762
Is_隣接城(Get_城グリッド位置(戦争城 - 1), Get_城グリッド位置(ケンシロウ城 - 1))

は、「Is_隣接城」が「これは酷いw使いにくいw」と思ったので、以前

Is_隣接城(戦争城-1, ケンシロウ城-1)

でOKなようにこっそ多重定義してあるw

>>764
kahoubunrui == 0x5 || kahoubunrui == 0x6 || kahoubunrui == 0x7 || kahoubunrui == 0x8 || kahoubunrui == 0x9 || kahoubunrui == 0xA

当人は、わかった上でやってるのでいいのだけど
(比較的元々の型や数値を重視したソース傾向)
普通は、せっかくenumが切られてるので、

kahoubunrui == 家宝分類::刀剣 || kahoubunrui == 家宝分類::槍 || kahoubunrui == 家宝分類::具足 || kahoubunrui == 家宝分類::馬 || kahoubunrui == 家宝分類::鞍 || kahoubunrui == 家宝分類::陣羽織)

とかが良いかな。
(家宝分類文字列自体変形しまくってると、結局数値の方が誤解がないかもしれないけどもw)

趣旨からして「Is_政治系家宝(int ix) 〜 Is_野望系家宝(int ix)」みたいなのが、ScenarioModにあれば良いのかも。

776 :名無し曰く、:2014/02/20(木) 12:16:21.68 ID:2F2i3Hzh
>>764
キャノン砲はシナリオエディタで分類を5に設定するべし

777 :名無し曰く、:2014/02/20(木) 12:17:06.45 ID:2F2i3Hzh
>>764
(補足)
predator はプレデターの武将番号の変数

778 :名無し曰く、:2014/02/20(木) 12:18:22.27 ID:2F2i3Hzh
>>770
if (naioulist != "内応者:") { ... }
↑このif句は不要

以上、念のためです

779 :名無し曰く、:2014/02/20(木) 12:27:19.22 ID:2F2i3Hzh
>>776

5か戦闘系の分類に設定すべしだろう

780 :名無し曰く、:2014/02/23(日) 23:56:36.53 ID:S+U1DwHh
>>767
これだと軍師に内応者を言わすというより
顔番号100の平八を配下にすると内応者を言う
じゃないの?

781 :名無し曰く、:2014/02/24(月) 11:26:11.19 ID:3daDLROZ
>>780
そう。逆に軍師じゃないやつでもいいわけ。
大名番号と武将番号を固定するのではなく、動的にプログラムするともっと自由になるけど、
実際の軍師と一致さすのは、軍師が決まるアルゴリズムと同じ理屈でプログラム組むと行けるだろうけど。
そういうのは本スレでJP氏に聞いた方がいいね。

782 : ◆dF/TZIT8Xw :2014/02/28(金) 22:31:10.49 ID:bpYSRvE4
フラグ管理や語尾変格活用なども実装された模様。
最近実装されたフキダシダイアログや画像表示とあわせて
完全にイベントを作れる態勢になったと感じます。

これで念願だった軍議が実装できると感じました。
逆に、敵側が軍議を行っていることを傍受できるというイベントも面白いかな。
(ほぼ意味はないが、智謀が高いと段階的に聞こえれば面白い?)

あとは、昔も書いたけどセリフを言い出したら爆撃機?が飛んでくるのも面白いかも。

783 :名無し曰く、:2014/03/01(土) 12:00:28.65 ID:DBsxHuzl
戦場で秀吉が勝手に敵軍武将にあって内奥フラグ付けるとかできそうだな。
他にもチッチイベントコード公開してよ。
バグありでもいいから

784 :名無し曰く、:2014/03/02(日) 01:43:25.41 ID:HcC3iBZX
>>783のコードできた。自軍以外の武将で知謀130未満で相性が秀吉とピッタリの場合に戦場で内応させる

WORD hideyoshi = Get_武将番号【配列用】(5);
if (hideyoshi != 0xFFFF) {
if ((Get_武将の野戦ヘックス位置(hideyoshi).X != 0xFFFF || Get_武将の攻城戦ヘックス位置(hideyoshi).X != 0xFFFF) && 残りターン数 == 29) {
vector<int> bushos = Get_出陣中の武将番号リスト【配列用】();
for each (int i in bushos) {
if ((p武将情報[i].最大智才 * p武将情報[i].智謀熟練値 / 1000) < 130
&& p武将情報[i].所属大名【大名番号】!= p武将情報[hideyoshi].所属大名【大名番号】
&& p武将情報[i].相性 == p武将情報[hideyoshi].相性
&& (p武将戸籍情報[i].状態 == 状態::軍団長 || p武将戸籍情報[i].状態 == 状態::現役)
&& p武将情報[i].内応状態 == 0) {
噴出ダイアログ《通常・左上》開始(hideyoshi, Get_名字(p大名情報[p武将情報[i].所属大名【大名番号】-1].大名【武将番号】-1) + "家に仕えて\x0Aいては貴殿の\x0Aためになりません" );
噴出ダイアログ《通常・左上》終了();

噴出ダイアログ《通常・右下》開始(i, "秀吉殿の\x0A言うとおりやもしれぬ" );
噴出ダイアログ《通常・右下》終了();
p武将情報[i].内応先大名【大名番号】= p武将情報[hideyoshi].所属大名【大名番号】;
p武将情報[i].内応状態 = 1;
}
}
}
}

785 :名無し曰く、:2014/03/03(月) 01:08:38.24 ID:SzmoBYXv
>>782
もちろん軍議が実装できたら配布してくれるんだよな?w
具体的には職業名表示直前メソッドを利用して
戦争中に武将詳細画面を表示するとフキダシダイアログで一言いうとかでいいんじゃないか

786 :名無し曰く、:2014/03/03(月) 21:06:06.98 ID:AGNL8Uie
とりあえずせっかく書いたから
本願寺以外でプレーして本願寺血筋の武将を配下にもつと本願寺本家に逆一気をしかけられるコード (同盟関係にない場合)

カスタム::On_プレイヤ担当ターン《メイン画面》で

boolean honexist = false;
int honganjiC = 0; // 本家本願寺居城
int honhonganjiID = 0; // 本家本願寺大名番号配列用
int honhonganjiNID = 0; // 本家本願寺武将番号配列用
for (int i = 0; i < 最大数::大名情報::配列数; i++) {
if (p大名情報[i].家紋 == 41) { // 本家本願寺が存続
honexist = true;
honganjiC = p大名情報[i].所属居城【城番号】- 1;
honhonganjiID = i;
honhonganjiNID = p大名情報[i].大名【武将番号】- 1;
break;
}
}
if (honexist && pターン情報.現在のターン【大名番号】- 1 != honhonganjiID && !Is_同盟関係(pターン情報.現在のターン【大名番号】- 1, honhonganjiID)) {
string honganji = ""; // 配下の本願寺武将名
int honganjiID = 0; // 配下の本願寺武将番号配列用
int chibou = 0; // 配下の本願寺武将知謀
int ikkipower = 0; // 一揆の破壊力係数
for (int i = 0; i < 最大数::武将情報::配列数; i++) {
if (p武将情報[i].所属大名【大名番号】== pターン情報.現在のターン【大名番号】 && p武将情報[i].所属血筋 == 41) {
if (chibou < p武将情報[i].最大智才 * p武将情報[i].智謀熟練値 / 1000) {
honganji = Get_名字(i) + Get_名前(i); // 知謀の高い本願寺を指定
chibou = p武将情報[i].最大智才 * p武将情報[i].智謀熟練値 / 1000;
ikkipower = chibou / 10;
honganjiID = i;
}
}
}
(つづく)

787 :名無し曰く、:2014/03/03(月) 21:06:48.98 ID:AGNL8Uie
(つづき)
if (honganjiID != 0 ) { // 配下に本願寺がいる
噴出ダイアログ《通常・左上》開始(honganjiID, Get_名前(p大名情報[pターン情報.現在のターン【大名番号】- 1].大名【武将番号】- 1) + "様\x0A掟破りの逆一向一揆を\x0A起こしましょうか" );
噴出ダイアログ《通常・左上》終了();
int result = 関数::実行/取消ダイアログ表示("掟破りの逆一向一揆を実行しますか?");
if (result == TRUE) {
関数::情報ダイアログ表示(Get_名字(honhonganjiNID) + Get_名前(honhonganjiNID) + "は" + Get_城名(honganjiC) + Get_城称(honganjiC) + "に居ます\x0A" + honganji + "の扇動で逆一向一揆を起こします");
動画再生("IKKOIKKI", 動画::BGM継続);
関数::効果音再生(効果音音源::失敗);
関数::情報ダイアログ表示(Get_城名(honganjiC) + Get_城称(honganjiC) + "で逆一向一揆が起こりました");
// 実処理
if (p城情報[honganjiC].城郭 > ikkipower) {
p城情報[honganjiC].城郭 -= ikkipower;
} else {
p城情報[honganjiC].城郭 = 0;
}
if (p城情報[honganjiC].商業 > ikkipower) {
p城情報[honganjiC].商業 -= ikkipower;
} else {
p城情報[honganjiC].商業 = 0;
}
for (int i = 0; i < 最大数::城情報::配列数; i++) {
if (Is_隣接城(honganjiC, i)) {
int gundan = p城情報[i].所属軍団【軍団番号】-1;
if (0 <= gundan && gundan < 最大数::軍団情報::配列数) {
if (p軍団情報[gundan].所属大名【大名番号】- 1 == honhonganjiID) {
関数::効果音再生(効果音音源::失敗);
関数::情報ダイアログ表示(Get_城名(i) + Get_城称(i) + "にも逆一向一揆が広がっています");
// 実処理
if (p城情報[i].城郭 > ikkipower) {
p城情報[i].城郭 -= ikkipower;
} else {
p城情報[i].城郭 = 0;
}
if (p城情報[i].商業 > ikkipower) {
p城情報[i].商業 -= ikkipower;
} else {
p城情報[i].商業 = 0;
}
}
}
}
}
}
}
}

788 : ◆dF/TZIT8Xw :2014/03/03(月) 21:11:07.79 ID:iRSNJlae
>>784 >>786-787
ありがとうございます。
海賊衆による襲撃や、時代背景さえ変えれば、
レジスタンスの蜂起とかも出来そうです。

789 :名無し曰く、:2014/03/03(月) 21:17:28.45 ID:AGNL8Uie
あ、
int honganjiID = 0

if (honganjiID != 0)
のところは
0じゃなくて3000とかにした方がいいか。

790 :名無し曰く、:2014/03/06(木) 00:04:14.96 ID:WonlfjEA
チッチが選択した大名の支配城すべてで一揆を起こすコード
とりあえずチッチの顔番号を1354の場合で
カスタム::On_プレイヤ担当ターン《メイン画面》() {あたりで

WORD チッチ = Get_武将番号【配列用】(1354);
if (チッチ != 0xFFFF && p武将情報[チッチ].所属大名【大名番号】== pターン情報.現在のターン【大名番号】&& (p武将情報[チッチ].最大智才 * p武将情報[チッチ].智謀熟練値 / 1000) == 200) {
if (p武将戸籍情報[チッチ].身分 == 身分::大名) {
噴出ダイアログ《通常・左上》開始(チッチ, "門徒の力を使い一揆\x0Aを起こすか" );
噴出ダイアログ《通常・左上》終了();
} else {
噴出ダイアログ《通常・左上》開始(チッチ, Get_名前(p大名情報[pターン情報.現在のターン【大名番号】- 1].大名【武将番号】- 1) + "様\x0A門徒の力を使い一揆\x0Aを起こしましょうか" );
噴出ダイアログ《通常・左上》終了();
}
int result = 関数::実行/取消ダイアログ表示("特殊一揆作戦を実行しますか?");
if (result == TRUE) {
番号リスト型 大名達;
大名達 = Get_大名番号リスト【配列用】(FALSE);
int iSelectedDaimyoID = 選択大名ダイアログ表示(大名達);
if (0 <= iSelectedDaimyoID && iSelectedDaimyoID < 最大数::大名情報::配列数) {
for (int i = 0; i < 最大数::城情報::配列数; i++) {
int 軍団達 = p城情報[i].所属軍団【軍団番号】-1;
if (0 <= 軍団達 && 軍団達 < 最大数::軍団情報::配列数) {
if (p軍団情報[軍団達].所属大名【大名番号】- 1 == iSelectedDaimyoID) {
関数::効果音再生(効果音音源::失敗);
関数::情報ダイアログ表示(Get_城名(i) + Get_城称(i) + "で一揆が起こりました");
// 実処理
if (p城情報[i].城郭 > 10) {
p城情報[i].城郭 -= 10;
} else {
p城情報[i].城郭 = 0;
}
if (p城情報[i].商業 > 10) {
p城情報[i].商業 -= 10;
} else {
p城情報[i].商業 = 0;
}
}
}
}
}
}
}

791 : ◆dF/TZIT8Xw :2014/03/06(木) 00:56:54.59 ID:Pbl99d4w
>>790
ありがとうございます。汎用的に使えそうです。(一揆のみならず、様々な用途に)
入力してみましたが、

大名達 = Get_大名番号リスト【配列用】(FALSE);
int iSelectedDaimyoID = 選択大名ダイアログ表示(大名達);

この二箇所でエラーが出るみたいです…

792 : ◆dF/TZIT8Xw :2014/03/06(木) 01:03:00.66 ID:Pbl99d4w
すみません。自分のシナリオmodが最新ではないみたいでした。
もう一度確認してみます…

793 :名無し曰く、:2014/03/06(木) 09:12:15.84 ID:R1BINcnG
ScenarioMod と TSMod 両方を更新したほうがいいよ

794 :名無し曰く、:2014/03/07(金) 12:12:05.63 ID:kMoAQvu4
>>790
ちなみにちっちの知謀が200じゃないと動かいないから、適当に調整しないとだめね

795 : ◆dF/TZIT8Xw :2014/03/07(金) 20:30:41.65 ID:6t8mu/2C
>>794
ありがとうございます。
条件として「特定フラグZ」を付加した状態の城のみというのも可能でしょうか…?
(特定フラグZは事前に各城に金を使いフラグを与える。忍者みたいなもの?)

796 :名無し曰く、:2014/03/07(金) 21:53:24.22 ID:qtu68dhc
>>795
フラグは使ったことないけど、フラグをsetしてあるならループの中でgetすればいいだけ。

797 : ◆dF/TZIT8Xw :2014/03/07(金) 22:00:11.35 ID:hW1h0GwQ
>>796
ありがとうございます。

798 :名無し曰く、:2014/03/08(土) 21:37:35.09 ID:0/9vuu9n
>>790
すまん、
(p武将情報[チッチ].最大智才 * p武将情報[チッチ].智謀熟練値 / 1000)

Get_知謀値(チッチ)
に書き換えた方がいい

799 :名無し曰く、:2014/03/08(土) 21:39:50.97 ID:0/9vuu9n
知謀→智謀

800 :名無し曰く、:2014/03/08(土) 21:50:36.24 ID:0/9vuu9n
あ、Get_智謀値だと半分の数値になるから注意

801 :名無し曰く、:2014/03/09(日) 00:29:38.89 ID:llKj7FOn
ついでに
秀吉(智謀政治170以上なら)が選択した大名との友好度を50上げるコード
カスタム::On_プレイヤ担当ターン《メイン画面》() {あたりで

WORD hideyoshi = Get_武将番号【配列用】(5);
if (hideyoshi != 0xFFFF && p武将戸籍情報[hideyoshi].状態 != 状態::死亡
&& p武将情報[hideyoshi].所属大名【大名番号】== pターン情報.現在のターン【大名番号】
&& Get_智謀値(hideyoshi) >= 85 && Get_政治値(hideyoshi) >= 85) {
if (p軍団情報[p武将情報[hideyoshi].所属軍団【軍団番号】- 1].金 > 200) {
if (p武将戸籍情報[hideyoshi].身分 == 身分::大名) {
噴出ダイアログ《通常・左上》開始(hideyoshi, "諸大名を懐柔して\x0A友好度を上げるか");
噴出ダイアログ《通常・左上》終了();
} else {
噴出ダイアログ《通常・左上》開始(hideyoshi, Get_名前(p大名情報[pターン情報.現在のターン【大名番号】- 1].大名【武将番号】- 1)
+ "様\x0A諸大名を懐柔して\x0A友好度を上げますか" );
噴出ダイアログ《通常・左上》終了();
}
int result = 関数::実行/取消ダイアログ表示("懐柔作戦を行いますか?");
if (result == TRUE) {
番号リスト型 daimyos = Get_大名番号リスト【配列用】(FALSE);
int iSelectedDaimyoID = 選択大名ダイアログ表示(daimyos);
if (0 <= iSelectedDaimyoID && iSelectedDaimyoID < 最大数::大名情報::配列数) {
Set_友好関係(pターン情報.現在のターン【大名番号】- 1, iSelectedDaimyoID, Get_友好関係(pターン情報.現在のターン【大名番号】- 1, iSelectedDaimyoID) + 50);
}
関数::効果音再生(効果音音源::成功);
(つづく)
(つづき)
if (p武将戸籍情報[hideyoshi].身分 == 身分::大名) {
stringstream sstream;
sstream << Get_名字(p大名情報[iSelectedDaimyoID].大名【武将番号】- 1)
+ "家との友好度が\x0A" << (int)Get_友好関係(pターン情報.現在のターン【大名番号】- 1, iSelectedDaimyoID) << "になったな";
噴出ダイアログ《通常・左上》開始(hideyoshi, sstream.str());
噴出ダイアログ《通常・左上》終了();
} else {
stringstream sstream;
sstream << Get_名字(p大名情報[iSelectedDaimyoID].大名【武将番号】- 1)
+ "家との友好度が\x0A" << (int)Get_友好関係(pターン情報.現在のターン【大名番号】- 1, iSelectedDaimyoID) << "になりました";
噴出ダイアログ《通常・左上》開始(hideyoshi, sstream.str());
噴出ダイアログ《通常・左上》終了();
}
p軍団情報[p武将情報[hideyoshi].所属軍団【軍団番号】- 1].金 -= 200;
}
}

802 :名無し曰く、:2014/03/09(日) 00:30:58.34 ID:llKj7FOn
あ、
上の
(つづく)
(つづき)
は不要

803 : ◆dF/TZIT8Xw :2014/03/10(月) 21:26:01.62 ID:PxQxgKQS
>>801-802
ありがとうございます。
逆に、宣戦布告にも使えそうなコードだと思いました。

804 :名無し曰く、:2014/03/13(木) 00:34:28.34 ID:SG2qixs2
今更だが
本スレの>>10の常に年齢を固定させる
ttp://www.logsoku.com/r/gamehis/1345523201/35

for (int i = 0; i < 最大数::武将情報::配列数; i++) {
if (p武将戸籍情報[i].状態 != 状態::死亡) {
if (p武将戸籍情報[i].性別 == 性別::男) {
p武将情報[i].生年 = Get_西暦() - 1454 - 26;
} else {
p武将情報[i].生年 = Get_西暦() - 1454 - 14;
}
}
}
のように死亡判定を入れないと落ちる時があった

805 :.jp:2014/03/13(木) 05:05:46.50 ID:7HwHOlmf
1454と書いてしまうと、基準年が動くと
崩壊するので、Get_天翔記基準年()を使ったほうがいい。
ユーザーが改造で基準年を動かしていても問題なくなるし
Set_天翔記基準年()とかが提供されたとしても問題となるのを防げる。

806 :名無し曰く、:2014/03/13(木) 12:26:01.42 ID:aYEA1DUc
Thanks!

807 :名無し曰く、:2014/03/13(木) 12:35:03.74 ID:aYEA1DUc
>>806
>>801書いたもんですが
p武将情報[hideyoshi].所属大名【大名番号】
で秀吉が浪人だったりするとエラーにならないかな?
そうなら、
p武将戸籍情報[hideyoshi].状態 != 状態::死亡
よりも、
(p武将戸籍情報[hideyoshi].状態 == 状態::大名 || p武将戸籍情報[hideyoshi].状態 == 状態::軍団長 || p武将戸籍情報[hideyoshi].状態 == 状態::現役)
かな?
(こーどがグチャグチャなのはさておき)

808 : ◆dF/TZIT8Xw :2014/03/21(金) 22:55:08.12 ID:QsjKS0P1
城エディタと野戦エディタに関するアイディアとかありませんか?

自分は五稜郭とか作ってみたいです。

264 KB
新着レスの表示

★スマホ版★ 掲示板に戻る 全部 前100 次100 最新50
名前: E-mail (省略可) :


read.cgi ver 05.02.02 2014/06/23 Mango Mangüé ★
FOX ★ DSO(Dynamic Shared Object)