提供: Minecraft Modding Wiki
移動先: 案内検索
(編集中)
 
23行目: 23行目:
 
 Ver1.2.3<br />
 
 Ver1.2.3<br />
 
 515行目から551行目までをコメントアウトの後<br />
 
 515行目から551行目までをコメントアウトの後<br />
 +
<pre>
 
 }<br />
 
 }<br />
 +
</pre>
 
 を追加<br />
 
 を追加<br />
 
<br />
 
<br />
29行目: 31行目:
 
 Ver1.01の場合 406~437行目をコメントアウト<br />
 
 Ver1.01の場合 406~437行目をコメントアウト<br />
 
 Ver1.8.1の場合 344~375行目をコメントアウト<br />
 
 Ver1.8.1の場合 344~375行目をコメントアウト<br />
 +
 他バージョンでも<br />
 +
 <pre>
 +
 }
 +
 </pre>
 +
 を入れるのを忘れないように。<br />
 
<br />
 
<br />
 
Step3<br />
 
Step3<br />
 ①MOBを追加する場合<br />
+
 ①共通<br />
  Client側に以下ソースをmod_***に追加します。<br />
+
  Entity系コンテンツで、worldObjを呼び出している場合<br />
   ModLoader.registerEntityID(Entity***.class, "EntityName", ModLoader.getUniqueEntityID());<br />
+
  MCPのバージョンとか、CSVファイルによりますがエラーが出ている可能性があります。<br />
     ModLoader.registerEntityID(Entity***.class, ID);<br />
+
  対象項目としては<br />
 +
  <pre>
 +
   world.isRemote ←この部分(1.2.3時点では共通項目です)
 +
  </pre>
 +
   古いデータの場合以下のように直します。 
 +
  <pre>
 +
   world.multiplayerWorld //ClientSide
 +
   world.singleplayerWorld  //ServerSide
 +
  </pre>
 +
<br />
 +
 
 +
 また、ModLoaderを継承参照している定義ModLoaderMpに修正します。<br />
 +
  <pre>
 +
   public class mod_*** extends BaseMod
 +
  </pre>
 +
 
 +
  これを<br />
 +
 
 +
  <pre>
 +
   public class mod_*** extends BaseModMp
 +
    </pre>
 +
 
 +
  に修正する。<br />
 +
 ②アイテムを追加する場合<br />
 +
  基本はmod_***に定義されているはずですが、loadメソッド内に以下も付け加えます。<br />
 +
  Client側:<br />
 +
  <pre>
 +
   ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID);
 +
  </pre>
 +
 
 +
  Server側:<br />
 +
  <pre>
 +
   ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID);
 +
      ModLoaderMp.registerEntityTracker(Entity***.class, 160, 5);
 +
    </pre>
 +
 
 +
    ※netIDは0~256の中で指定すること。<br />
 
  <br />
 
  <br />
 眠気には勝てなかった。中途でごめんなさいぃ<br />
+
 ②Guiを追加してる場合<br />
 +
 ③Modを追加する場合<br />
 +
<br />
 +
Step4<br />
 +
 まず、Server側にModel,Render系のclassは必要ありません。<br />
 +
 描画するわけじゃないので<br />
 +
 また、ModLoader.addNameやAddRenderも必要ありません。表示させるわけじゃないですので。<br />
 +
 ここまで出来て文法エラーがない場合、リコンパイルして実行してみましょう。<br />
 +
 あとは調整するのみです。<br />
  
 
 参考資料:http://www.minecraftforum.net/topic/352121-smp-mods-modloadermp-modding-310511/ <br />
 
 参考資料:http://www.minecraftforum.net/topic/352121-smp-mods-modloadermp-modding-310511/ <br />

2012年3月14日 (水) 10:08時点における版

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行目までをコメントアウトの後

 }<br />

 を追加

 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/