d2dファイルを解析するにあたって行き当たりばったりじゃちっとも進まないので目標をたてることにした。
とりあえず第一目標として既存の武器説明文を書き換えるようにする。最終的にはd2dの構造を理解し、
サーバーサイドで設定できない項目を設定できるようにする。
それでですね、まず最初にやったことはワンドの武器名15の説明文である「1」を適当な数値に置き換えてみた。
あ、ちなみにテキストエディターだと編集は多分できないんでstirlingなどのバイナリエディタを使って書き換えましょう。
エミュ鯖建てられてアイテムの処理とかプログラムできる人でもかなり敷居が高いと思うので覚悟してやりましょう。
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
「31」 00 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D
3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D
3D 3D 3D 3D 3D 20 BF C0 BA EA 20
最初バイナリエディタで開いた時、数字の羅列ばかりでめちゃくちゃ萎えましたがこれらの数値
にもちゃんと意味があるはずだと思って自分なりに調べてみました。それでどうやらASCIIコードが
関係しているみたいで「31」が文字列の「1」に相当するようです。そこでこの「31」を適当に
書き換えてみました。今回は「31」→「50」に書き換えてみました。ASCIIコードだと「50」は「P」に
相当するようなので上記の画像の赤丸の部分がPって変わってるはずです。もし書き換える場所が間違って
た場合、超高確率でクライアントが落ちます。
どうやら予想は当たっていたようです。今回はたまたま1バイトの文字を書き換えただけなのでなんとかうまく
いきましたが・・・・2文字目の文字を追加するにはどうすればいいのやら・・・。そこで他の武器の説明文の
データを見てみました。
下記のデータは62ワンド、75ワンド、90ワンドの説明分と思われるデータを持ってきたもの。
62ワンド
8D 63 92 E9 82 CC 83 8F 83 93 83 68 81 42 89 A9
8B E0 90 46 82 CC 82 AB 82 E7 82 DF 82 AD 95 F3
90 CE 82 AA 8F FC 82 E7 82 EA 82 BD 83 8F 83 93
83 68 81 42 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
75ワンド
91 9E 88 AB 82 F0 91 9D 95 9D 82 B7 82 E9 83 8F
83 93 83 68 81 42 8D 95 82 A2 95 BF 82 C9 90 5E
82 C1 90 D4 82 C8 96 CD 97 6C 82 AA 8D 8F 82 DC
82 EA 82 C4 82 A2 82 E9 81 42 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
90ワンド
83 49 81 5B 83 66 83 42 83 93 82 CC 91 A7 8E 71
83 6F 83 8B 83 68 83 8B 8E 45 82 DF 82 BD 96 BC
8C 95 82 CC 96 BC 82 F0 8E 9D 82 C2 83 8F 83 93
83 68 81 42 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
今回編集したワンド名15(105ワンド)
50 00 ?
おや?領域というのかな?ともかくバイト数が統一されてるっぽい?16x8+1バイト=129バイト・・・ん?128バイトじゃない?
というか105ワンドの説明文1だけだったら
31 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00
00
こうなってなきゃいけないよね?129バイト?っぽくとってみると下記のようになります。
31 00 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D
3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D
3D 3D 3D 3D 3D 20 BF C0 BA EA 20 3D 3D 3D 3D 3D
3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D
3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D 3D
3D 3D 00 CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD CD
00
でも・・・1だけしか表示されてないよ?も、もしかして31の次の00を適当に変えたら変わる?というわけで
31 00→50 6Aに変えてみました。すると・・・・
キタァァァァ!!!!!!!!!
というわけで本日はここまで。