v1.11b向け傭兵種別追加 kingpin著 Yos訳 
v1.10メインの記事が多い本Wikiにはそぐわないかもしれませんが…
PKの英語の記事をどうにかこうにかして読みつつ理解してできたので、掲載させていただきます。
元記事はここ
※訳というより、記事を見て理解した点を書き起こしたものになります。
例として、Nightmareでのみ雇用できるマジックアローを射出するACT1ローグを作成してみたいと思います。
<Hireling.txt>
1.8~11行目をコピーして、適当なところに追加します。
2.コピーした4行に対して、以下の部分を書き換えます。
SubType | Gold | HireDesc | Skill2 |
Magic - Nightmare | 7000 | marw | Magic Arrow |
※SubTypeとGoldは書き換えなくてもかまいませんが、紛らわしい&雇い入れるための金額が同じタイプで違うのはアレかと思いますので、書き換えてみました。
<patchstring.tbl>
Afj TBL Editで以下を追加します。
日本語のMODの場合はENG配下とJPN配下の両方をお忘れなく。
Index | Value |
marw | Magic Arrow |
ここで、何行目に追加したか、を覚えておいてください。
<d2common.dll>
バイナリエディタでd2common.dllを開きます。
①読み取る行数を増やす
16進アドレス:163A0へジャンプし、以下の配列があることを確認します。
85 C9 7C 17 83 F9 09 73 12 66 8B 0C 4D 08 58 DE 6F 66 85 C9 74 05
以下のように書き換えます。
85 C9 7C 17 83 F9 13 73 12 66 8B 0C 4D 08 58 DE 6F 66 85 C9 74 05
②表示する文字列の行指定を追加
さらに16進アドレス:9580Aへジャンプし、以下の配列があることを確認します。
2B 0D 2C 0D 52 2B 50 2B 51 2B 31 0D 30 0D 2F 0D 00 00
ここで書き換える値については、さきほどpatchstring.tblに追加した行が何番目かによって変わります。
追加した行の番号に+10000して16進数変換し、リトルエンディアンにした値となります。
例)1165番目に追加
1165+1000=11165
16進数変換すると、2B9D
リトルエンディアンにすると9D2B
よって、以下のように書き換えることになります。
2B 0D 2C 0D 52 2B 50 2B 51 2B 31 0D 30 0D 2F 0D 9D 2B
これでカシャから雇い入れようとしたときに「Magic Arrow」と表示されれば成功です。
【補足事項】
もっと種類を増やしたい場合は、①で書き換える値を4ずつ増やせば1列ずつ読み取る行が増えるみたいです。
その場合は②で書き換えるバイナリ値も増えていきますが、どこまでいけるかは調査していません・・・。
また、v1.12でもできることがわかりました。
ただし、d2common.dllで書き換える場所が変わっています。
①は16進アドレス:39610、②は16進数アドレス:94AFAに同様のバイナリ列があります。
以上です。