提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
44行目: | 44行目: | ||
;Java Decompiler等で class ファイルをソースファイルに変換する。 | ;Java Decompiler等で class ファイルをソースファイルに変換する。 | ||
:eclipse で強制的に class ファイルを読ませても逆コンパイルできたような…。 | :eclipse で強制的に class ファイルを読ませても逆コンパイルできたような…。 | ||
− | ;mcp/conf の中にある client.srg | + | ;mcp/conf の中にある client.srg を開きます。今回は mcp62(本体ver1.2.5用)を使います。 |
− | |||
:mcp は mod の対応バージョンをよく確認して選んでください。 | :mcp は mod の対応バージョンをよく確認して選んでください。 | ||
:本体ver1.2.5用の mod なのに、mcp72(ver1.3.2用)を使ったりすると悲惨なことになります。 | :本体ver1.2.5用の mod なのに、mcp72(ver1.3.2用)を使ったりすると悲惨なことになります。 | ||
51行目: | 50行目: | ||
:この中にクラス、フィールド、メソッドが記述されています。 | :この中にクラス、フィールド、メソッドが記述されています。 | ||
:行の先頭が CL ならクラス、FD がフィールド、MD がメソッドになります。 | :行の先頭が CL ならクラス、FD がフィールド、MD がメソッドになります。 | ||
− | ; | + | ;ソースを開き、クラスと思われる部分を置換していきます。 |
:例)aan itemstack = ~~; | :例)aan itemstack = ~~; | ||
:aan がクラス名になりますので client.srg から検索します("CL: aan" とかね)。 | :aan がクラス名になりますので client.srg から検索します("CL: aan" とかね)。 | ||
57行目: | 56行目: | ||
:例)if (entity instanceof fq) | :例)if (entity instanceof fq) | ||
:正規表現「^CL: fq 」で検索します。EntityItem ですね。 | :正規表現「^CL: fq 」で検索します。EntityItem ですね。 | ||
− | ; | + | ;クラス名を解除できたら、次はフィールドです。 |
:例)if(!entity.G) | :例)if(!entity.G) | ||
:entity は Entity クラスのインスタンスです。 | :entity は Entity クラスのインスタンスです。 | ||
66行目: | 65行目: | ||
:「field_646_aA」を検索すれば、フィールド名が見つかります。「isDead」です。 | :「field_646_aA」を検索すれば、フィールド名が見つかります。「isDead」です。 | ||
:結果)if(!entity.isDead) | :結果)if(!entity.isDead) | ||
− | ; | + | ;同じようにして、メソッド名も methods.csv から探します。 |
− | |||
:メソッド名は場合によって、同一メソッド名が複数存在します。引数が異なることでオーバーロードできるためです。 | :メソッド名は場合によって、同一メソッド名が複数存在します。引数が異なることでオーバーロードできるためです。 | ||
:その場合は引数や戻り値の型からどのメソッドかを調べてください。 | :その場合は引数や戻り値の型からどのメソッドかを調べてください。 |