提供: Minecraft Modding Wiki
移動先: 案内検索
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 />
+
※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/