53行目: | 53行目: | ||
また、ModLoaderを継承参照している定義ModLoaderMpに修正します。<br /> | また、ModLoaderを継承参照している定義ModLoaderMpに修正します。<br /> | ||
+ | |||
<pre> | <pre> | ||
public class mod_*** extends BaseMod | public class mod_*** extends BaseMod | ||
</pre> | </pre> | ||
− | + | <br /> | |
これを<br /> | これを<br /> | ||
62行目: | 63行目: | ||
public class mod_*** extends BaseModMp | public class mod_*** extends BaseModMp | ||
</pre> | </pre> | ||
− | + | <br /> | |
に修正する。<br /> | に修正する。<br /> | ||
②アイテムを追加する場合<br /> | ②アイテムを追加する場合<br /> | ||
基本はmod_***に定義されているはずですが、loadメソッド内に以下も付け加えます。<br /> | 基本はmod_***に定義されているはずですが、loadメソッド内に以下も付け加えます。<br /> | ||
Client側:<br /> | Client側:<br /> | ||
+ | |||
<pre> | <pre> | ||
ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID); | ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID); | ||
72行目: | 74行目: | ||
Server側:<br /> | Server側:<br /> | ||
+ | |||
<pre> | <pre> | ||
ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID); | ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID); | ||
77行目: | 80行目: | ||
</pre> | </pre> | ||
− | + | ※netIDは0~256の中で指定すること。<br /> | |
<br /> | <br /> | ||
②Guiを追加してる場合<br /> | ②Guiを追加してる場合<br /> |
2012年3月14日 (水) 10:13時点における版
ModLoaderMPとは、マインクラフトのSMP(マルチのこと)に対応させるためのMOD作成・導入補助用のMODです。
基本は、ModLoaderに付随して+α機能が付いていると認識されたほうがいいかもしれません。
※前提としてModLodaerとMCPの利用が可能なこととします。
Step1
MCPフォルダの「Jar」フォルダにminecraft_sever.jarをコピー
minecraft_server.jarにModLoaderMP(Server版)を導入します。
また、同「Jar」フォルダにクライアント側の「bin」「resources」フォルダをコピーしておきます。
このクライアント側のminecraft.jarには必ずクライアント用ModLoader、ModLoaderMPを導入しておきます。
Step2
ここまで出来たらMCPの「decompile.bat」を動かしましょう。
エラーがでますが気にしない。
このままではリコンパイルする際にエラーを吐き出すので、以下/minecraft_server/net/minecraft/serverの
MinecraftServer.javaソースを編集します。
Ver1.2.3
515行目から551行目までをコメントアウトの後
}
を追加
Ver1.1の場合 400~431行目をコメントアウト
Ver1.01の場合 406~437行目をコメントアウト
Ver1.8.1の場合 344~375行目をコメントアウト
他バージョンでも
}
を入れるのを忘れないように。
Step3
①共通
Entity系コンテンツで、worldObjを呼び出している場合
MCPのバージョンとか、CSVファイルによりますがエラーが出ている可能性があります。
対象項目としては
world.isRemote ←この部分(1.2.3時点では共通項目です)
古いデータの場合以下のように直します。
world.multiplayerWorld //ClientSide world.singleplayerWorld //ServerSide
また、ModLoaderを継承参照している定義ModLoaderMpに修正します。
public class mod_*** extends BaseMod
これを
public class mod_*** extends BaseModMp
に修正する。
②アイテムを追加する場合
基本はmod_***に定義されているはずですが、loadメソッド内に以下も付け加えます。
Client側:
ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID);
Server側:
ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID); ModLoaderMp.registerEntityTracker(Entity***.class, 160, 5);
※netIDは0~256の中で指定すること。
②Guiを追加してる場合
③Modを追加する場合
Step4
まず、Server側にModel,Render系のclassは必要ありません。
描画するわけじゃないので
また、ModLoader.addNameやAddRenderも必要ありません。表示させるわけじゃないですので。
ここまで出来て文法エラーがない場合、リコンパイルして実行してみましょう。
あとは調整するのみです。
参考資料:http://www.minecraftforum.net/topic/352121-smp-mods-modloadermp-modding-310511/