ワールドアドバンスド大戦略 その10 [無断転載禁止]©2ch.net (533レス)
1-

297: 2018/08/10(金)22:50 ID:YT+8u1Ph(2/2) AAS
作戦ファイル用のコードについて

これまで扱ってきたコードの範疇であれば、実は簡単な話です。
鋼鉄と比べてアドレスが一定量ずれているだけです。
具体的には鋼鉄のアドレスから-1EC0h差し引いたアドレスが、
作戦ファイルのコードアドレスになります。

(例)
第1軍陸第1部隊経験値 350D8(鋼鉄36F98)
第5軍海第1部隊経験値 386D8(鋼鉄3A598)
第1軍資金 36DF0〜3(鋼鉄3BCB0〜3)
第2軍操作切替 39E7D(鋼鉄3BD3D)
省9
298: 2018/08/11(土)20:49 ID:sC+M7rW3(1/4) AAS
兵器定義コード

兵器の定義と登録に関するセクションです。
部隊コードと異なる点として、ユニットごとではなく兵器ごとに作用する点があります。
例えば近衛兵を弄ると手持ちの近衛兵全員が影響を受けます。

これまでに言われてきたように、同じ兵器でもマップ毎に登録アドレスが異なるため、
解析のプロセスを経ずして特定の兵器をピンポイントに弄ることはできません。
でなければ繰り返しコードの暴力に頼るかどうかです。

超兵器などを自由自在に作ろうとすれば避けて通れない部分であり、
特にアドレスや正規値の解析手法が重要です。
コード弄りに関しては、セーブデータに反映されないため不要な物も多いですが、
省1
299: 2018/08/11(土)20:50 ID:sC+M7rW3(2/4) AAS
兵器定義のアドレスは鋼鉄・作戦ともに8000hから始まり、
1兵器ごとに88(58h)バイトのアドレス領域で管理・登録されています。
メモリを眺める限り、1マップあたり最大320個の兵器が登録されているように見えます。
おそらくは1陣営あたり64個の兵器が割り当てられていると思われます。

しかしこのゲームに登場する兵器の総数は320では到底足りないはずです。
つまりマップによって出せる兵器が選別されていることになります。
実際は同じ兵器であっても自軍と友軍で違うアドレスを使っていたり、
出す意味のないダミーデータも含まれていたりするので、
登録兵器の範囲はなおさら狭くなっています。

これが、序盤のマップで例えば秋水を出せない最大の原因と思われます。
省5
300: 2018/08/11(土)20:52 ID:sC+M7rW3(3/4) AAS
1つ目の登録兵器コード
※純粋にアドレスのみ記載です。CEPでコードを打ち込む際は、
これまで通りアドレス先頭に3000や8000を足して使います。

8000〜1 兵器コード
8002〜B 名前(ステータス)※1バイト/1文字、全9+1文字
800C〜1D 名前(マップ)※2バイト/1文字、全9文字
801E〜F 名前(マップ)10文字目?下手に弄るとバグる。通常FFFF。
8020〜23 ?
8024〜B 進化1〜4(各2バイト)
802C〜D 価格(10円単位、2バイト)
省24
301: 2018/08/11(土)20:58 ID:sC+M7rW3(4/4) AAS
兵器コード(8000〜1)は、部隊ステータス中の兵器コード(36F90〜1等)と共通のデータが使われます。
なお朗報なことに、兵器コード自体はどのマップでも 共通 です。
マップによって変わるのはアドレスの方です。

進化コード(8024〜B)は、目的の兵器コードを直接打ち込んで使用します。
制約としては、そのマップに登録されているかどうかはもちろん、
自陣営に登録されていない兵器は不可(例え友軍が所有していても)だったり、
「ここでは、進化・改良不可能」となるユニットは不可だったりなど、
何でもかんでも縦横無尽に進化可能とはならないようです。
ただし陸空海を跨いだ進化は可能。
このコードは例えばオストウィンドなど、初期配置されたマップもなく
省11
302: 2018/08/12(日)22:23 ID:Ei1IqrOS(1/2) AAS
これまで挙げた通り、部隊数が計400、登録兵器数が計320と、
これだけの数の兵器や部隊がゲーム中で一気に運用されていて、
コードアドレスの数はさらにその数十倍。正直膨大過ぎます。
その中から特定の部隊・兵器の特定の状態・性能を、
といちいちアドレスを手動で計算していては日が暮れます。

なので自分の場合は、Excelなどでコードを自動生成するシステムを組んでいます。
dec2hex、hex2decなどの10進16進変換関数や、文字列結合などを駆使すれば可能です。
今書いているものも基本それに頼っています。
303
(1): 2018/08/12(日)22:24 ID:Ei1IqrOS(2/2) AAS
解析・兵器書き換え
材料が揃ったので、超兵器を無尽蔵に生成するセクションに入ります。
実現のために最低限入手しなければならないのは、以下のコードデータです。

・目的の兵器コード(2バイト)
・そのコードが登録されているアドレス(2バイト)
・その兵器が本来使う武器コード(2バイト×4=計8バイト)

以下、生産不可を前提として、取得難易度が低い順から解説します。

A.マップ上にその兵器がある(例:日インドのハウニブ)

(1)目的の兵器が第何陣営の何番目の部隊かを調べる
 →第3陣営(ドイツ)空第20部隊
省32
304: 2018/08/13(月)20:48 ID:qjDxZ0La(1/4) AAS
B そのマップ上には無いが他のマップにはある

進化で得られるのであれば素直に進化させれば良いので、
主にスタンダードマップ改造の話にはなりますが、
キャンペーンでも相手兵器を弄ったり、他国に鹵獲させたりといった場合に使えます。

当然出したいマップに登録されている事が条件ですが、
一部兵器に関しては、マップ上に置かれていなくても出せる場合があります。
特に恒常的に同じ進化をする兵器(日歩兵類や駆逐艦〜重巡など)は可能性が高いです。
スタンダードマップであっても、その多くはキャンペーンの流用なので、
登録兵器もどうやらそのままにされているみたいです。
上手く嵌れば自国兵器も相手国兵器も超強化できます。
305: 2018/08/13(月)20:57 ID:qjDxZ0La(2/4) AAS
例 スタンダードのコロネットで88mm対空砲(日)を作る

(1)まずはデータを取ってくる
 鋼鉄のスタンダードには日88mmが置いてあるマップはないため、ひとまずキャンペーンから取得。
 日CPで地道に進化させても良いですが、米CPの1マップ目にありますのでこれを取ってきます。
 取得すべきデータは基本>>303と同じです。

 第2陣営(日本)陸第12部隊→アドレス37C5C〜
 →先頭8バイト:00 36 00 00 06 00 A7 88
 →武器8バイト:00 3E 00 34 00 00 00 00

 ただし先頭データのうち今回必要なのは0036(兵器コード)だけです。
 A788(登録アドレス)はマップ毎に変動するので、別マップでは使えません。
省35
306: 2018/08/13(月)21:09 ID:qjDxZ0La(3/4) AAS
C 進化でも手に入らない場合(進化表には載っている)

A、Bに当てはまらないケースとしては、独のPSW234/3〜4、オストウィンドぐらいしか知りませんが、
特にオストウィンドは欲しい方が一定数いると思いますので、その出し方です。

(作戦ファイルではPSW234/3〜4もオストウィンドも普通にマップ上に置いてあるのですが、
 鋼鉄と作戦で兵器・武器のコードが違っている可能性も0とは言い切れないので、
 できれば鋼鉄は鋼鉄、作戦は作戦で取得したい、と考えています。)

例:独CPアルデンヌでメーベルワーゲン→オストウィンドへの進化を実現

(1)「移動力コード」を使って総当たり調査を実施
 兵器定義コードのうち、登録第1兵器(8000h〜)の移動力コードのアドレスは8031hでした。
 第2兵器以降はこれに+58hずつ、つまり8089、80E1、8139・・・となります。
省34
307
(1): 2018/08/13(月)23:04 ID:qjDxZ0La(4/4) AAS
マップエディットに関して補足

兵器の配置が終了し燃料を初期値に戻しても、そのままでは航空機が燃料を消費してしまいます。
フェーズ終了の際に、以下で全部隊行動終了(E)にしておくと、航空機が燃料を消費しません。
なお搭載・変形は一切していない状態が前提で、適応したらすぐコードをオフにします。

50005024 0000
30036FB0 0061 ※第1陣営の場合

ただし上記コードは自陣営のみ有効にするのがお勧めです。
このフラグがリセットされるのはその陣営のフェイズ終了時のみなので、
全陣営に一括で掛けてしまうと、次陣営フェイズ開始時に何もできなくなります。
もしそうしてしまった場合は、一旦行動フラグの値を全軍「00」にして、
省6
308
(1): 2018/08/15(水)11:03 ID:I/Dg2nYu(1) AAS
お疲れ様
凄いけど面倒だな
309: 2018/08/15(水)11:47 ID:PlQKJDPi(1) AAS
エディターみたいのあればいいのにね
310: 2018/08/16(木)14:49 ID:kKqyDDjR(1) AAS
Nスペのノモンハン再放送は土曜深夜
311: 2018/08/18(土)17:32 ID:xryBQ3AH(1/2) AAS
残り物資1の補給車を温存しておいたら
勝手に友軍の補給車を補給して消滅してた
全快したその友軍の補給車は我が軍を通り過ぎ全滅
本当にありがとうございました
312: 2018/08/18(土)17:34 ID:xryBQ3AH(2/2) AAS
ナイカテイ カミがやられる度に「カミ」
ジドウシャカヘイがやられる度に「シャカ」と呟いてたら親に心配された
313: 2018/08/18(土)19:25 ID:HeJsVTuR(1) AAS
ナイカテイカミなんて使わねえだろ
314: 2018/08/20(月)12:25 ID:eqZE5A7r(1/2) AAS
スタンダードのインパール97ターンでクリア記念パピコ
・西進する部隊の歩兵は近衛兵で統一しておくと西の中司令部奇襲に有利
・初期配置の105mm&150mm野砲を地道に育てた方が中央の大司令部を早く落とせる
315: 2018/08/20(月)12:26 ID:eqZE5A7r(2/2) AAS
インパールで通常の流れと違うパターンになったのでやり方書いとく
自軍司令部西側に敵戦車がどんどん溜まって激戦区になる方法
・最初の2,3ターン、西進する自軍は敵索敵範囲内に、北上する自軍は見つからないように移動
これだけ。天候や友軍の動きにもよるけど別マップみたいに遊べる
316: 2018/08/29(水)08:53 ID:DymUxisc(1/4) AAS
「改竄」の「竄」には「鼠」という漢字が含まれていますが
ネズミと何か関係があるのですか?

この「竄」、よく考えてみると意味のはっきりしない漢字です。
例の構造計算書の件ですっかり有名になった「改竄」ということばは
「勝手に書き変えること」という意味ですが
では他に「竄」を使う場面があるかというと
あんまりなさそうだからです。
漢和辞典を調べてみると、「竄」には「かくれる」「のがれる」などとともに
「文字を書き変える」という意味が載っています。
そこで、こういった意味がいったいネズミとどんな関係にあるのか、というのが問題となります。
省17
1-
あと 217 レスあります
スレ情報 赤レス抽出 画像レス抽出 歴の未読スレ AAサムネイル

ぬこの手 ぬこTOP 0.009s