信長の野望 天翔記 改造綜合スレ6 [無断転載禁止]©2ch.net
>>119
新武将の生成は「Set_武将誕生」関数を使えばOK
※手元の環境が古いので現在と違う部分がある可能性あり
https://u7.getuploader.com/nobu6/download/488
相場変更直前に、所属血筋1の勢力に生成される(テストなので能力)
https://u7.getuploader.com/nobu6/download/481
1回だけ生成したい場合はこっちを参考に。あまり多くするとゲームの読込が
遅くなるので注意(3000人追加したら数分かかった事が)
組み合わせによっては、チンギスハン4みたいに自分で追加コマンドを作って
在野から登用も可能
手元の環境が復帰次第以下の動作も確認の予定
・大名死亡直後に、該当コマンドを実施して生成された場合に彼を後継者とする「大名の遠縁」が出来るか
・「戦闘中」に「篭城中の勢力」が「攻城中の場所を居城」とした武将生成が出来るか
・過去に死んだ人物を記録して、そのデータを参照して、復活が出来ないか
(1561年に死んだ人物が1690年に復活。滅亡させた勢力の名前や人物の名前を記録して
特殊メッセージとして流させる。それ自体は出来るのはわかるが実際のテストは今だなし)
あとはヒッソリとやっていたのは
革新よろしく、戦法を色々練っていたりという感じです(自暴自棄になって革新PKで遊び続けた産物)
ターン経過時/残りターン変更時に発動(下に行くほど上位職業向けの戦法)
http://xn--rssu31gj1g.jp/?page=nobu_mod_the_snmod_methodref_on_turn_change_in_field_battle
http://xn--rssu31gj1g.jp/?page=nobu_mod_the_snmod_methodref_on_battle_damaged
◆今、与えたダメージの0.5〜2倍をさらに与える兵科戦法
◆一定の確率で士気を大きく下げる戦法
◆攻撃ではなく、政治や技能の有無でダメージを決める特殊攻撃
◆ダメージを大名の官位や国力から決める特殊攻撃
◆敵に与えたダメージから一定の兵数を回復するドレイン攻撃
◆敵勢力の兵数・士気・訓練をシャッフルする特殊攻撃etc... >>122
まさに追加したいと考えていた信尹がモデルとは…
これで武将追加して、武将列伝でいじれば出来るですかね
ちょっと家に変えるのが楽しみになってきました ID:GLQP3PmM です
int iCastleID = 0;
int NodoubleCheck = 0;//◆東西武田氏など、ないと思うが
for (int 軍団番号 = 0; 軍団番号 < 最大数::軍団情報::配列数; 軍団番号++) {//●武田氏の本拠地データを吸い取る
int iGundanLeaderBushouID = p軍団情報[軍団番号].軍団長【武将番号】 - 1;
if (0 <= iGundanLeaderBushouID && iGundanLeaderBushouID < 最大数::武将情報::配列数) {
if (p武将戸籍情報[iGundanLeaderBushouID].状態 == 状態::大名) {//◆軍団長はリーダー
if (NodoubleCheck == 0) {
if (p武将情報[iGundanLeaderBushouID].所属血筋 == 1) {//◆◆所属血筋が1の勢力である場合…(武田氏)
iCastleID = p軍団情報[軍団番号].所属居城【城番号】;//◆◆◆所属血筋1の所属居城
NodoubleCheck++;//1回居城を決めたらもうしない
}
}
}
}
}
メモリエディッタから真田家の血筋を調べたところ、42でした
なので、
p武将情報[iGundanLeaderBushouID].所属血筋 == 1 の1を42に変えたところ、武田になりました
1は北條、2は上杉、21は里見 とこれの法則性が見つけられません
どう設定されているのでしょうか もう分からないから単純に戸石城を直接居城に設定して無理やり解決しました… >>124-125
上記のコードは昔書いた物で、甲斐武田家に仕官することを想定しています
(汎用性がないので、一門の筆頭者のいる城に仕官する方式に変更する方が良いかも?
これにより架空武将の場合でも史実武将同様の歴史を作れる)
for (int 軍団番号 = 0; 軍団番号 < 最大数::軍団情報::配列数; 軍団番号++) {//●武田/真田氏の本拠地データを吸い取る
int iGundanLeaderBushouID = p軍団情報[軍団番号].軍団長【武将番号】 - 1;
if (0 <= iGundanLeaderBushouID && iGundanLeaderBushouID < 最大数::武将情報::配列数) {
if (p武将戸籍情報[iGundanLeaderBushouID].状態 == 状態::大名) {//◆軍団長はリーダー
if (NodoubleCheck == 0) {
if (p武将情報[iGundanLeaderBushouID].所属血筋 == 1) {//◆◆所属血筋が1
iCastleID = p軍団情報[軍団番号].所属居城【城番号】-1;//◆◆◆所属血筋1の居城
NodoubleCheck++;//1回居城を決めたらもうしない
} else if (p武将情報[iGundanLeaderBushouID].所属血筋 == 42) {//◆◆所属血筋42の勢力も存在する場合
iCastleID = p軍団情報[軍団番号].所属居城【城番号】-1;//所属血筋42の居城
NodoubleCheck++;//1回(ry
}
}
}
}
//真田氏も武田氏も存在しない場合は、血筋42の居城に身を寄せる
//ただし相性などによっては寄せない場合もあり、簡単な処理なので複数に血筋42武将が拡散された場合はどこかに飛ぶことになる
if (NodoubleCheck == 0) { //◆武田も真田も存在しない場合
for (int 武将 = 0; 武将 < 最大数::武将情報::配列数; 武将番号++) {
if (p武将情報[武将].所属血筋 == 42) {//◆◆所属血筋が42
iCastleID = p武将情報[武将].所属居城【城番号】-1;//◆◆◆所属血筋42の居城
}
}
} ちなみにシナリオエディタで血族関係を見ていると
1が武田、2が長尾となっています
天翔記の血筋は255までしか無いので出てこない人物の血筋実装は
拡張セーブデータで「血筋256」を独自に作っていく必要があります
http://xn--rssu31gj1g.jp/?page=nobu_mod_the_snmod_update
v2.6.5.0 ⇒ v2.6.5.1のところが参考になります
struct 武将情報EX型のところに色々追加していけばほぼ無限に広がると思います
例として、血筋256〜1000までは未登場の人物、1001〜9999は架空武将の血筋となり
自動生成時に埋めていく方式です(名前も親から一文字貰う機能も付けた方がいいかな) ありがとうございます、やっとできました!
感謝します。
質問ばかりで申し訳ないですが、例えば1560年の真田幸隆をシナリオ選択時に独立した状態にして
大名として選択することは可能でしょうか >>128
現在のScenarioModではそこまでは不可能なので
シナリオエディタで色々改変する必要があります
http://1st.geocities.jp/emn_projects/index.html
登場武将の居城や所属軍団の設定をうまくやらないといきなり死ぬ可能性があるので注意
(未登場武将の仕官先も変えないといけない)
ちなみに、後継者の決め方も工夫できます
http://xn--rssu31gj1g.jp/?page=nobu_mod_the_snmod_methodref_on_custom_koukeisya_bushou
上の例は、固有の人物を設定していますが
大名と相性の良い人物や能力が極めて高い人物、「忍者衆の場合、忍者が後継者」ということも可能です
https://www19.atwiki.jp/nobu6/pages/39.html
参考:大名の後継者の決め方について >>128
これについては、明日のTSMod/ScenarioModで可能とします。
シナリオ開始時、もしくは、メインの戦略画面のほぼいかなるタイミングにおいても、
@大名内における軍団の新設
A軍団まるごとの大名としての独立
が出来るようなAPIを提供します。
この@とAを組み合わせることで、「とある大名の普通の武将」→「軍団長へ」
「軍団長」→「大名へ」というのが可能となります。
(ローカルでは出来てるので、記事とか説明文を明日アップする形) >>130
ありがとうございます
勢力裏切りイベントなどで使えそうです
軍団新設時の城の分配や、「軍団まるごとの大名としての独立 」とは反対の
「大名勢力をどこかの軍団に編入させる」ことは出来そうでしょうか?
(軍資金で勢力を合併。というアイディアも暖めていたり) 忠誠度と配属年数が何度やっても設定されない…
それと生年がよくわからない 西暦の値-1454 で設定するのはわかったけど
なんか思った数値にならない >>132
設定した直後の行とかで、
「デバッグ出力 << p武将情報[〜].忠誠 << endl;」
をあちこちに書いて、
値が変わってるか確認した方がいいです。
何カ所に張って、設定したはずの数値が、何かの関数の呼び出し後戻ってるかもしれない。
例えば、「忠誠度」や「士官年数」を設定した後で、
「Set_武将転居」とかで武将を違う大名家に飛ばしてしまってるなら、
当然「忠誠度」や「士官年数」は別の値に上書きされてしまうことがある。
年齢はGet_年齢() の関数の逆をすればよいのだから
int check = p年情報.年 + 1 - 年齢;
p武将情報[iBushouID].生年 = check;
ただし、このcheckが0〜255である必要があって、これは
つまるところ、(天翔記基準年の値自体を変更してない限り)
計算の結果として、
・「1455年生まれより、前に生まれた人」に設定することはできないし
(例えば、1540年の段階で150歳とかには出来ない)
・「1708年生まれより、後にうまれた人」に設定することもできない
という制限が付くということです。
一応、Set_年齢( iBushouID, 年齢) という関数もたしときます。 >>131
解体は出来るかどうか、調べてみないとわかりません。
軍団新設や大名への独立は、必要な部分のデータの辻褄を合わせればできますが、
解体は、「大名、あるいは、軍団がからむ、天翔記の全てのデータのリセットと掃除」の部分をやらねばならないので、
難易度が跳ね上がります。
・大名の解体は、ゲーム的に存在しないので、難しいかも
・軍団の合流は、ゲーム的に存在するのでその天翔記の関数が流用できればいけるかも。
ゲームが始まってないようなシナリオデータ段階であれば、
「今回提供する関数の逆のことをやればいいだけなんだけど、
ゲームが始まってしまっていると、話の次元が全く変わる感じ
特に「軍団の思考のデータ」「大名の思考のデータ」が把握できてないし、
他にも必ず数点あるはず。 ScenarioMod が更新
・http://天翔記.jp/?page=nobu_mod_the_snmod_update
今回久々にイベントハンドラが追加されています
・http://天翔記.jp/?page=nobu_mod_the_snmod_methodref_on_selectscenarioafter
このイベントハンドラは要するに
「既存のシナリオデータを壊すことなく、ScenarioModで一部修正をする」
しかも、その修正した状態に基づいて、「大名選択」等が行える
みたいな 目的に非常に最適なものとなっています。
ちなみに、例Cに
・1560年、シナリオ3の(ユーザーが大名選択する段階からすでに)、
真田幸隆が大名として独立した状態となっている。
という例も含まれています。 >>134
確かにリセットの部分を入れ込むと処理もかなり多くなると思います
大名の解体は、脅迫で勢力を取り込む所から思いつきました
軍団の思考データというのもあるのは始めて知りました
武将個人の思考とはまた違う感じの様な気もします
解体は現役全員を浪人にして、浪人に出来ないのは一時的に死亡処理・・・して
勢力滅亡という形で色々してみます
>>135
ありがとうございます
軍団配下の城移転も出来そうです
直接確認はまだ出来そうにありませんが、色々なことが出来そうです
「HARAKIRI」にありましたペリー襲撃イベントのように
【(予め予備枠が10コ近くあるか確認)→危なそうな在野を生成する→現役勢力にして登用させる→軍団と城を分配させる
→独立させる→危なそうな家臣を生成させる】といった中だるみ防止策がより鮮明になりました
あとは、致命的な敗北後による勢力の分裂や一門衆による叛乱といったものも可能だと感じました
駆虎コマンドのような物も選択ダイヤログで出来そうです あと、>>100にあります内容を工夫して25ターン目になると
強制的に25ターン消費させて戦争を終える・・・というのは可能でしょうか?
(現物は見れないので、多分下記のような感じの内容。25ターン目ではなくても、総大将が死亡した次のターンや、
自作したイベントで停戦した時など)バグがおきそうな気もしますが…
void カスタム::On_残りターン変更《戦争画面》(int 残りターン数) {
if ( 残りターン数 == 25 ) {
BYTE *pUsedTurn = (BYTE *)0x4BB4D2;
*pUsedTurn = 25;
}
} >>137
*pUserdTurnは絶対的な消費量なので、
「今これだけ消費」という意味ではないです。
*pUserdTurn = 25; というのは、
「戦争全体が31ターンで、25ターン経過済み」
といった「絶対数」の意味です。
逆に言えば、
*pUserdTurn = 15; が維持されていれば、
ずっと残り16ターンでずっと戦争やってることになります。
脅迫が確かにかなり近いので、もしかすると、
脅迫が関数化できれば、なんとかなるかもしれないですねぇ。 >>138
ありがとうございます
どのような感じになれば、戦争ターンを全部消費した扱いになるのでしょうか・・・
上位職業の武将によっては強引に戦争ターンを引き伸ばすといったことも
出来そうだと思いました ターン操作で、全部消費という扱いにはなりません。
安全につくるなら、戦争のOR終了条件みたいなのを作るしかないかと。 なんか書き方へんかな。
全部消費という扱いにはできても、
ターンは1ターンに1回だけチェックされるなので、
ターン操作では即、終了にはもっていけない。
というのが正しい。 >>141-142
ターン操作だけではターンの増減はできるものの、終了処理はまた別の処理が
(戦争終了条件)必要と言う感じですね
ターン増減も含めて関数があると使いやすそうですが、どうでしょうか? >>135
さっそく使ってみたのですが、「カスタム::On_シナリオデータ反映直後」の関数が全く呼びされないのは何かアップデート漏れとかあるからですかね…
デバッグを頭にいれても何も出力されないので、そもそもこの関数が呼び出されていないと思うんです tsmodを更新しましたか?
駆動系メソッドを呼び出すのはtsmodなので
更新する必要があります。 >>144
自宅に帰ってきたので、確認してみましたが、
TSMod/ScenarioModともに問題ないと思います。
最初の「デバッグ出力」が、
別ソフトからの受信結果の「続き」に表示されるので、
デバッグモニターの「右端」に表示されることが多くて、
ちょっとわかりにくいかもしれないなぁ。 144です、すみません tsmod更新漏れでした… >>117の状況ですが、ようやく武将の基本データをExcelに入れる事に成功しました。
スレ内で未だにミス表記あったまま放置してしまいましたが、魅力の方は2倍ではないです。
またデータリスト作ってる間に、こうした方が面白いんじゃないかと、仕様変更の手を加えたりしました。
需要はないかもしれませんが、個人的に(作ってる時間が)楽しめているので、ついでに遊んでもいいなって思える人が出てくると嬉しいなって思っています。
それでは。 以下、自分で書いてて間違ってるのをあげ忘れてたので報告
>>101
の「武将の退避」はちょっと不足してますね。
武将を退避した後、「仮」とはいえ、誕生させているので、
少なくとも、
・p武将情報
・p武将戸籍情報
・p城情報
のバックアップしておく必要があります。
p城情報は絶対必須 (浪人が誕生すると、城情報が変化可能性があるので)
あまり「イケてるかイケてないか」ギリギリは狙わず、
https://u7.getuploader.com/nobu6/download/500
みたいに、「ガサガサ」っと武将・城・軍団・大名を退避しておいて、
「ンゴゴゴ」っと一気に戻す、みたいにした方が漏れがなくて安全。 北海度と東北の海をもっと広くしようと思ったけど
野戦マップ編集しんどくて断念したあああ
もっと海戦がしたいぉ 戦法決定アルゴリズム(仮)を作っているのですが、
更に良さそうな案はありそうでしょうか・・・
・既に30種類は決めていて、攻撃・回復・補助攻撃に分類。ID設定を行っている
・武将個人の追加セーブデータ枠に
「戦法01」「戦法02」「戦法03」・・・と組み込んでいて、
戦法01 = 7;(攻撃前に敵を混乱させる)
戦法02 = 4;(攻撃前に敵の士気を半減する)
戦法03 = 1;(敵へのダメージ2倍攻撃)
のように決めていく
・戦法は、void カスタム::On_被ダメージ時で実行することを想定
・補助や回復によってはターン変更時になることも 現在は
int 戦法ID = -1;
if(闘志が蓄積){//◆闘士もどこかで用意
if(ランダム ==1 ){
戦法ID = 戦法01
}else if(ランダム ==2 ){
戦法ID = 戦法02
}else{
戦法ID = 戦法03
}
}
//実際に戦法IDを元に決めていく
if(戦法ID == 1 ){
ダメージ兵数 *= 2;
}
else if(戦法ID == 2 ){
//敵の士気を減らす処理
}
見たいな感じでランダム決定していますが
戦法の数が今後50,100と増えることを考えるとこの形式には限界がありそうです
本人の性格(熟練度・義理・思考・職業他)で優先度を変えたり的確な判断ができるようする
(昔のドラクエではアルゴリズムがあったと思います?)可能性を考えると何かありそうな感じもしますが・・・ >>153-154
http://xn--rssu31gj1g.jp/?page=nobu_mod_the_tsmod_detail_job
既存の職業なしの人物の上に、色々表示しているみたい
おそらく、現時点ではスキルみたいなのは存在しない模様
(ScenarioModで職業データみたいなものを別途設定するのは可能。
隠密なら勢力下で内応中の人物を見つけ出す、などが作れる) >>155
ありがとうございます!
質問ばかりで申し訳ないですけど 明智光秀を1560年のシナリオで最初から登場させるにはどうすればいいでしょうか >>156
それは、簡単なようで簡単ではないです。
■ムズイりゆう@
もしも、1300人のデータが読み込まれている上で、
「この子は登場」「この子は待機」みたいな、データ管理になっているのであれば簡単なのですが、
天翔記の場合、
・このシナリオでは全員で何人待機しています(taikiというファイルにある)
・今、「先頭から」何人まで登場しました。(天翔記プレイ時のメモリとセーブデータにある)
という管理になっています。
・待機武将からCさんとFさん登場、とかではなくて、
先頭から何人登場という管理に過ぎないところが古いゲームらしいところです。
■やるとすれば
・明智光秀と同じデータ構成の武将でScenarioModで誕生。
ゲーム的にも、それは明智光秀と認識しますし、各種イベントも発生します。
しかし、ゲーム側本来の挙動となる待機武将から登場の明智光秀もまた登場してしまいます。
これを防ぐ手立てがScenarioMod層では難しいかと思います。 ScenarioMod ver3を策定中とtwitterにありましたが
それにより新たに出来そうな内容は何かありそうでしょうか? >>156
これは、なんとかなりそう。
基本的には、「Set_武将誕生(顔番号::明智光秀)」で産んでもらい、
能力値などを明智にした後、どこぞの大名家に帰属させてください。
その後、本来の「待機武将」からの流れをある程度制御できるように、
ScenarioModでしました。
(現在、実装概要は終えて、実際にScenarioModで記述した際に弊害が無いか確認する段階) >>158
ゲーム機能的には「追加は一切無い」です。
Modとしては「マルチスロット型」になります。
1つのScenarioMod2が複数のScenarioMod3を実行出来る形となります。
常にScenarioMod2が強化され、
そのままScenarioMod3として参照可能になる、
といった感じです。
現代のプログラミング技法(C#)に沿った
記述で書けるようにするための仕組みです。
(これまで通りの場所に、これまで通りC++/CLIで記述することも出来ます。) TSMod/ScnearioMod 更新
主に >> 156 のようなことを実現するため。
・(特定の)待機武将が登場するのを拒否などの実現
・待機武将や仮想武将が登場したタイミングで何か処理を実行できる場所として
http://天翔記.jp/?page=nobu_mod_the_snmod_update いつも楽しく利用させていただいております。少々気になる点を見つけましたので報告します
環境はTSMod ScenarioModともに最新バージョンです。
ScenarioMod v2.7.8.3 で追加された「Set_軍団独立」の関数を利用したところ、
1.独立はできるが家紋が本来と違う
2.家紋が設定されない事がある
3.1.2.には再現性がある
という症状が現れました。
具体的な状況は
1.シナリオ6関ヶ原前夜でニューゲーム
2.「Set_軍団独立」関数をゲーム内から呼び出す
※当方は「メニューアイテム追加」関数で追加したメニューから呼び出しました
int iGundanID = 選択軍団ダイアログ表示(Get_軍団番号リスト【配列用】(), カラム::軍団::軍団長);
Set_軍団独立(iGundanID);
実際はエラー処理やダイアログ表示などありますが、上のような処理をしています
3.1)徳川家第2軍団伊達正宗 独立 →家紋:南部家
2)徳川家第3軍団結城秀康 独立 →家紋:南部家
3)徳川家第4軍団福島正則 独立 →家紋:なし
4)徳川家第5軍団前田利長 独立 →家紋:津軽家
・・・
4.データロードして3.で独立させる軍団を変更しても1番目に独立する家紋は南部 2番目も南部…という状況はかわらず 当方で解決を図ったところ、該当箇所ではないかと思われる部分を発見しましたので一応報告しておきます。
ScenarioMod 軍団情報型.cppの770行目
p大名情報[iSelfDaimyoID].家紋 = p武将情報[iSelfDaimyoID].所属血筋;
770行目の真下に
if (p武将情報[iSelfDaimyoID].所属血筋 == 0xFF) {
p大名情報[iSelfDaimyoID].家紋 = 使用されていないランダムな家紋番号;//家紋最大数:159
}
というような処理を挟んだところ、少なくとも家紋が設定されないという事態は解消したと思います。
家紋が本来と違うという部分は未解決です。 もう1箇所不具合?を発見しましたので報告します。
症状:商人武将で交渉が100%成功しない
状況:1.ScenarioModから「Set_武将誕生」関数で新規武将を作成
2.作成した武将の 職業:商人 技能:弁舌を習得済み とそれぞれ設定
3.2.の武将で購入・売却どちらでも値切り・ふっかけが成功した会話が展開される
4.実際の数値の増減を見ると成功したり失敗したりしている
TSMod設定キットの機能 〜職業編〜には、
商人武将が、購入・売却をすると、「値切り」「ふっかけ」が100%成功する。
その際には、該当武将が「弁舌」の能力を持っている必要がない。
とあります。新規武将限定でそうなるのか弁舌がない場合はどうなるのかはまだ試していませんが、先に上記のみ報告します。 >>162-164
バグ報告ありがとうございます。
■家紋
「これ血縁そのまま代入するとヤバイなー」と思いながら「一旦デバッグとしてこれで」と
したままリリースしていましたw
武将→家紋への計算方法(もしくはデータのありか)
今のところ把握していないので、
適当な簡易版を用意して代用します。
本来天翔記で武将が独立した際の家紋の選びかたとは、
異なる選び方とはなってしまういます
ScenarioModの別更新とタイミングが被ったので、それと併せてリリースします。
■TSModの「商人属性が付いた武将」と「商人」との交渉の不具合
・交渉後、取引成功の会話内容なのに、突然怒り出すことがある
・交渉後、取引成功の会話内容なのに、商人有効度の上昇値としていない
の不具合を修正しました。 信長の野望天翔記 シャッフル
でおもしろ記事がヒットしたけど
DL出来ないのかなぁ >>168
TSMod/ScenarioMod 両方更新しました。
http://天翔記.jp/?page=nobu_mod_the_snmod_update ありがとうございます。環境が復活したのでScenarioMod確認しました
GitHubの方のTsmodソースコードがOn_シナリオデータ反映直後のものとなっていて
最新のもののではないみたいです >>171
GithubにTSModの最新のソースあげときました。
oniguruma部分がコンパイルしにくいような感じになっていたので
プロジェクトの位置関係とかを修正。
(配布ファイルからでは見えないプロジェクトを指し示していたっぽい)
oniguruma→TSModの順番でプロジェクトをReleaseコンパイルすれば
2013/2015/2017でコンパイル出来ると思われまする。 >>.jp様
>>169で修正されたはずの不具合を再度確認しましたので報告します
TSMod・ScenarioModともに最新Ver
ScenarioMod.dllは抜いて検証しました。試行回数が少ないのはご了承ください
シナリオ:桶狭間の合戦
使用武将:蛎崎季広
蛎崎家でニューゲームし、そのままセーブ
セーブデータエディッタを用いて職業を商人に変更
弁舌:無し
取引が終わるたびにセーブデータを読み込み、再度取引するという方法をとりました
-------------------------------------------------------------------------------------------------
取引内容:購入・米 値切る
米相場:1.5
購入数1028・普通に買った場合の金額1542
1回目:値切り成功 セリフ:「金1080しか持っておらんのだが何とかならんか」 商人好感度+1
2回目:値切り成功 商人好感度+1
3回目:値切り失敗 値切らず購入した場合と同じだけ金減少。会話は成功時と変わらず 商人好感度+1
4回目:値切り成功 商人好感度+1
5回目:値切り失敗 会話など3回目とまったく同じ 商人好感度+1
-------------------------------------------------------------------------------------------------
取引内容:売却・米 ふっかける
売却数1000・普通に売った場合の金額1125
1回目:ふっかけ成功 セリフ:「金1350で頼みたいのだがいかがであろう」 商人好感度+1
2回目:ふっかけ成功 商人好感度+1
3回目:ふっかけ成功 商人好感度+1
4回目:ふっかけ成功 商人好感度+1
5回目:ふっかけ失敗 普通に売却した場合と同じだけ金増加。会話は成功時と変わらず 商人好感度+1 セーブデータエディッタを用いて弁舌習得。その他条件は同じです
弁舌:有り
取引内容:購入・米 値切る
1回目:値切り失敗 値切らず購入した場合と同じだけ金減少。会話は成功時と変わらず 商人好感度+1
2回目:値切り成功 商人好感度+1
3回目:値切り成功 商人好感度+1
4回目:値切り成功 商人好感度+1
5回目:値切り失敗 商人好感度+1
取引内容:売却・米 ふっかける
1回目:ふっかけ成功 商人好感度+1
2回目:ふっかけ失敗 普通に売却した場合と同じだけ金増加。会話は成功時と変わらず 商人好感度+1
3回目:ふっかけ失敗 商人好感度+1
4回目:ふっかけ成功 商人好感度+1
5回目:ふっかけ成功 商人好感度+1
・交渉後、取引成功の会話内容なのに、突然怒り出すことがある の不具合は一度も発生しませんでした
ここには書きませんが、馬購入・鉄砲購入でも同様の症状を確認しました。
-------------------------------------------------------------------------------------------------
また、ScenarioModの「Set_武将誕生」関数で作成した「職業商人・弁舌あり・女武将」の場合において、
上記の症状とは別に「値切る・ふっかける」をした際に
・数値の増減が一切なく
・交渉にあたった武将が行動済みになる
・商人は怒っていない
という症状も確認しました。
検証が不十分かと思いますが、今までに遭遇した症状の報告になります。
.jp様の方でも確認していただければ幸甚です >> 178
バグ報告ありがとうございます。
たびたび商人武将の所バグっててすみません。
TSMod更新しました、ver 2 7.9.6
既存の実装ポイントではこねくり回してもバグが治らないので、
一番いいポイントとなる
・そもそも、この商取引は、「大成功、横ばい、失敗」のどれになるのか、
っていうサイコロの部分だけ上書きするようにしました。
綺麗に値が反映されると思います。 >>.jp様
いつも素早い対応をありがとうございます。
ささ、この乙をお受け取り下され 鈴木家で一家プレイ
親父が鉄砲Sになれば一勝引きこもれる
引きこもりに適した場所はどこだろう
そこを抑えておけば後ろの領土は荒らされないってのが理想 >>182
このスレ流に話題を変えるなら
・兵科C以上の鉄砲が戦闘中に使えなくても?(鉄砲使用不能)
・敵に鉄砲を叩き割られても?(兵科足軽化)
・本丸に固まりすぎると城下町を荒らされても?
天下創生だと籠城する敵をおびき出す為に、CPUが
領内の建物を焼いていたっけ 何とか鉄砲隊とかあるけどこれは名前だけ変えてるだけ?
あと槍持ち武将も攻撃力補正とかかかるの? >>188
「弓」と記載のある人以外は、名前変えてるだけ。
勢力(や血筋)・身分・能力・職業・兵態(兵科)・兵科適性
などのうち、特定の条件を満たす武将は、兵科名が変わる感じ。
弓ぐらいの追加仕様のインパクトないと、
少々能力補正かけても、
実践上の感触として得られなかったという… >>189
能力補正というよりは、自分の場合は
TsModをすこし調整して煽動の結果を忍者ごとに
特定のものが出やすいよう設定してみたりしました
能力補正の場合は攻撃判定の中に
・士気低下を起こさせる判定を数回ほど用意するとか
(15〜30%の確率で士気が2低下の判定が3回発生。最大9まで低下)
・弓攻撃の攻撃によっては技能や間接攻撃が数ターン使用不可能になる
(昔の任天堂とスクウェアの合作RPGであった様な…)
攻撃力補正とか、追加仕様とかは考えているだけでも飽きません
姫武者とかいう特性の在り方に疑念を抱いた故、
逆に「敵部隊が女性の場合、大ダメージを与える戦法」を考えたほどです
あまり過度に能力補正を勢力ごとに考えていくとゲーム性に偏り
歴史ゲームであることから逸脱しかねない可能性もありますが
「技術」コマンドを自作してやりくりすればまだ問題はないかと スレに直接は関係ないけど来月12日にサムライ・忍者フェスティバルあるのな
ところが、大変な事になっててさ
チラシの裏側を見てたら各地のおもてなし武将隊が集まるみたいで、その中に
徳川隠密隊
って書いて写真付きw
隠密なのに・・ スレには関係ないんだけど、と前置きするとスレチでもかまわないのか >>192
ごめん、書き込み少ないからなにかしら書こうかと。以後、控えます NHKにて
あけおめ!声優大集合「あなたの好きなアニメキャラ」投票開始!
けものフレンズ12.1話にも投票可能!
投票期間:10月20日(金)〜11月19日(日)午後11時59分
http://www.nhk.or.jp/anime/anime100/
サイト中段ベストアニメ100の「アニメ検索」をクリック
キーワードに「けものフレンズ」と入力して検索
TVアニメ けものフレンズ
その他 けものフレンズ12.1話
が表示される
5回投票できるので、
ばすてきに 博士 助手 アライさん フェネック
本編に好きなキャラで投票がおすすめだ
止まるんじゃねぇぞ
https://i.imgur.com/usa9I1W.png 本スレで上がっていた話題について
>cpuの戦仕掛をもう少し程々に
自己流の解決策なので何とも言えないが以下の方法があったり
@戦争に使う行動力を勢力ごとに変化させる
例)戦争行動力は30となっているとする。勢力Aのターンになると戦争行動力は50になる
(勢力Aのターン終了後に30に戻る)一方、勢力Bのターンになると戦争行動力は40になる(ターン終了後に30に戻る)
A大名家ごとに、ゲーム開始時に元の勇猛値をセーブデータ領域に保存させておき
現在の勇猛値は元の数値を1マイナスしたものとする。条件によって、勇猛値はプラマイしていく
>・武将の寝返り過ぎを修正
http://天翔記.jp/?page=nobu_mod_the_snmod_methodref_on_custom_syodan_result
捕虜の登用可否で変える事が可能
敵大名がアイテムを持っていると必ず登用できる・・・といったことも可能だったりする
>・騎馬隊をもう少し強く(烈風伝並の騎馬隊とまでは言わないが)
>・元服した武将がなかなか太刀打ち出来ないのをもう少し修正
http://天翔記.jp/?page=nobu_mod_the_snmod_methodref_on_battle_damaged
受けるダメージ量を替えてみたり、混乱発生率を高めてみたり
http://天翔記.jp/?page=nobu_mod_the_snmod_methodref_on_custom_totsugeki
適正が高い場合、兵が0だと死にやすくなるとか シンフォニック、ゲーマーズ2
いい感じに、少しだけアレンジ入った天翔記の曲が、オーケストラ演奏で流れてるねぇ。 ☆ 私たち日本人の、日本国憲法を改正しましょう。現在、
衆議員と参議院の両院で、改憲議員が3分の2を超えております。
総務省の、『憲法改正国民投票法』、でググってみてください。
国会の発議は可能です。お願い致します。☆☆ 側室制度ってどうなんだろう
天翔記にうまく流し込めるのかなあ
大志のデモ版を見て感じたり 今更ながら城MAP打ち直しスゲーな・・・
作者さんありがとう http://天翔記.jp/?page=nobu_mod_the_snmod_dotnet_04
天翔記の画面の上にレイヤー層を設け、画像を描く
というのがありますがここまで複雑ではない、
一枚絵を連続させるスプライト方式の感じのものも、同様の作り方で作れるのでしょうか?
それとももっと簡単に作れるのでしょうか?
(メッセージ表示時に顔グラフィック上に表示させることを想定させています)
(天下創世の捕縛・戦死時に出てきた効果グラフィックもスプライト方式でした) ゲーム描画面に直接描画するのは、
デバイスコンテキストがクリアされる・されないの問題を含むので、
ScenarioModの層でゲーム描画面に直接ってのは、
描画しても一瞬でクリアされて、
ちょっとムズイと思いますねぇ。
(TSModみたいにある程度デバイスコンテキストの描画が止まるタイミングの
コールバック関数を本体に対して多数打ち付けてたら別なんだけれども…)
ref class hGlobalMng {
public:
static System::Drawing::Graphics^ g;
static System::Drawing::Image^ img;
};
string カスタム::On_噴出メッセージ直前(string 武将名, string 元メッセージ, メッセージ関連情報型 メッセージ関連情報) {
HWND hWnd = FindWindow("Tenshouki95", NULL);
hGlobalMng::g = System::Drawing::Graphics::FromHwnd((IntPtr)hWnd);
IO::FileStream ^fs = gcnew IO::FileStream(L"a.png", IO::FileMode::Open, IO::FileAccess::Read);
hGlobalMng::img = System::Drawing::Image::FromStream(fs);
fs->Close();
// Draw rectangle to screen.
hGlobalMng::g->DrawImage(hGlobalMng::img, 30, 50, 64, 80);
if (武将名 == "真田幸隆") {
return "マジかよ…最悪だぉ!!";
}
// 変更しない場合""
return "";
}
とかすれば一瞬は描けるだろうけれども、すぐクリアされるはず。
となると、結局 http://天翔記.jp/?page=nobu_mod_the_snmod_dotnet_04 の方がコントロール効くだろうなぁとは思いますねぇ。
というか DrawMyImage() メソッド以外は
「天翔記のレイヤーの上にアクティブにならないウィンドウを作る、背景が(一見)透明なのでマウスが突き抜ける」
という部分なので仕方がないかと。
(むしろ、こんな短い行数でそんなこと出来るんでっかぐらいの勢いだと思います) 城のは、コツコツ城めぐりしてる方なんだろうなぁ、
という感じがあるねぇ。 >>204
ありがとうございます。見た限りでは
天下創世などの後作で発生した捕縛や戦死時の
エフェクトの発生は難しそうなのでしょうか(簡単な感じです)
https://youtu.be/oHf-6RO-FYU
天下創世のプレイ動画で9:11秒のエフェクトはスプライトだったと思います >>206
そうですねぇ。そんなには簡単に書けないですねぇ。
・様々な2D/3Dのコンポーネントオブジェクト的なものを、汎用的にGameObjectとして
みなせるところまでいっていたら簡単に出来るでしょうが、
それはゲーム制作特化型のエンジン級なので。
いくつか多分考え方はあります
・今のScenarioModの「画像ダイアログ(タイマー付きオプション指定)」で、
単純な表現なら出来ると思いますが、
pngのアニメーションに対応していないので、画像がいきなりペロッと出るだけになります。
pngではなく、gifファイルも多分表示できます、
それをうまくこしらえて代用するとか…
(透明色も出来るが、αチャンネルは1ビットしかないはず)
・ガチでやるなら、TSModのFuncImagePngDialog.cppの
StartPngDialog
EndPngDialog
_WaitPngDialog
の構成をまねて、「pngアニメーションファイル」に対応するのが一番簡単かな、と思います。
これはデバイスコンテキストに描画して、その間ゲーム進行&描画進行を止めるので、
比較的変なことにはなりにくい。
・Form系ではなく、WPFを上からレイヤーとして被せれば、グラフィカルなことやアニメーションは
結構やりやすくはなるでしょうが、天翔記本体との連動が(同じスレッドではなくなるので)
一層大変になるかと。 あー gifアニメは画像ダイアログ表示では、
アニメーションしない模様… >>207
メッセージ表示中以外にも、On_攻撃方法決定時《戦争画面》や
戦闘中のターン変更時にも使い可能性を考えると
pngアニメーションファイルに対応していくほうが自分でも良さそうと思います >>209の内容と関連するのですが
pngアニメーションファイルに対応した時も、画像ダイアログのようになるのでしょうか
連投すみません 私が対応実装するわけではないですが、
ちゃんと動作させようとすると
画像ダイアログ表示のような
モーダルな性質を持たさざるを得ないと思います。
(天翔記とtsmodがデバイスコンテキストへの描画を極めて頻繁に全部クリアする傾向があるので)
そしてそれは一般的には上に重ねて
マクロでは同期的だがミクロでは非同期のような表現とは
相性が良くないです。
普通に一からアプリ作るなら、
上みたいな表現は簡単な部類だけれども、
天翔記に乗せる上では
描画面縛り、消されてしまう対処
別の描画物がうわがいてくる対処
非アクティブ縛り、とかいろいろあるので
難度が跳ね上がってる感じですねぇ 思っていた以上に難しそうな感じですね…
描画を頻繁にクリアする必要性があるとなると負荷もかなりかかりそうですので…
一枚絵をフリーで見つけて、これで代用するのが無難という感じなのでしょうか
(昔の作品は全部こんなかんじだったかと)
他にも良さそうな方法はありませんでしょうか…(>>202のリンク先の内容を工夫して、戦闘アニメーション専用のレイヤーを作るとか) 何かをしたらクリアする必要がある、なので重くなる、といよりも、
現状ですでにクリアしています。
難しそうでいて、やったら一番早いだろうな、と思うのが、
やはり
TSModのFuncImagePngDialog.cppの
StartPngDialog
EndPngDialog
_WaitPngDialog
をコピッて、1枚のpngではなく、連番のpng(描画と消去をどんどん違うpngに対して行う)への対応から実験してみる、
(描画→消す→描画→消すを繰り返す)
というのが一番手堅いのではないかと。
結局、アニメーションpng再生関数などという汎用的なものは
この世には存在しておらず、
アニメーションpngを分析→各pngと分母時間と分子時間(ようするに表示時間)に
分けるという作業が入るだけなので、
まずは、連番pngで成立するのか、とか
あるいは、画像ダイアログ表示の関数に短い時間(100フレームとか)を指定して
切り替えていくとどうなってしまうのか、とか。
その辺から実験してみてください。 >>213
画像ダイヤログの関数を短くした所、
画像ダイヤログの関数のみでもアニメの表示自体はうまくいきましたが
(複数の絵を連続して短期間で表示することに成功)
https://img.atwikiimg.com/www19.atwiki.jp/nobu6/attach/37/3/kouryaku.gif
上のようなメッセージ画面での表示は難しいです(多分他のダイヤログが表示されているからです)
メッセージ画面での表示自体はレイヤーを使った方法によって出来ましたが、ゲーム自体が重くなる他
複数のレイヤーを必要とするのが欠点となってしまいました…
やはり難しいのでしょうかorz(最悪、レイヤー表示を工夫する方式でも良いので…) それは結局は、
顔の表示開始と終了のコールバック関数も必要といった話になります。
(そうしないと、顔が表示されてる間隔はマウスの押し具合や設定のメッセージスピードでも変わるので。)
天翔記のそこにちゃんと描画するのは易い話しではなく難度たかいかと。
(多分自分でないとちゃんとしたものは出来ない) あり得ないほどてきとうなつくりになるけれど、
同じプロセスではなく、全く違うプロセスプログラムとして作り、
topmostだがアクティブにならず、
(このへんはレイヤー版の考え方とおなじ)
とかでつくれば
難度はかなりさがる。
天翔記で会話が来たら、その外部プログラムを
引数でもつけて実行する とりあえず、c#でフォームを作成、
this.opacityは0.5とか
this.topmostはtrueとか
Timerを作り、3秒後に自動でフォームを閉じるようにする。
書いたことなくても、今までscenariomod書いてきてるなら
グクれば余裕でc#のフォームの基本程度は
見よう見真似で書けるので。
フォームがアクティブにならないとか、
天翔記のウィンドウに追従とかは後でいいので
で、それをscenariomodから呼び出す。
c++外部プログラムの実行とかでグクれば
いっぱいででくるので。
shellexecuteとか、もしくはProcessStartInfoてばらめた決めてProcess.Startか
自分は出先な上、明日49にちのモシユなので
もう寝ます。 >>214
とりあえず、の概要がわかるものだけ。
https://u7.getuploader.com/nobu6/download/503
これだとpng自身が持つ半透明要素が無視されてしまうので、
よくないのだけれども、217って何いってるの?ってのはわかるかと。 あとは、http://天翔記.jp/?page=nobu_mod_the_snmod_dotnet_05
219のをWPFで作った版なので、αチャンネルを含んだpngが重なっても
上手くいくかと。 >>219-220
出先の所、申し訳ありませんでした。
ありがとうございます。
一日かけて、formの作り方や、半透明化について
色々やってみて出来そうなところまで進めた上で、>>220の内容を
確認した所連続表示が可能になりました
利用法でとして下記のような方法もアリなのでしょうか。haru.pngを表示して閉じてから、
GlobalSpriteProcess1という全く同じものを作りharu1.pngという画像を連続して表示させる感じです
両方ともSpriteWPFTS95.exeから実行させています
(もしかしたらSpriteWPFTS95.exeの別名プログラムを準備して、
そこからGlobalSpriteProcess1を作りharu2.png実行した方がいいのかもしれませんが)
void カスタム::On_プレイヤ担当ターン《メイン画面》() {
if (p年情報.季節 == 季節::春) {
GlobalSpriteProcess::StartProcess("kisetu_haru", "haru.png", 200, 2000, 200);
GlobalSpriteProcess1::StartProcess("kisetu_haru", "haru2.png", 200, 2000, 200);
}
}