(編集中) |
|||
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 /> | ||
− | + | ①共通<br /> | |
− | + | Entity系コンテンツで、worldObjを呼び出している場合<br /> | |
− | + | MCPのバージョンとか、CSVファイルによりますがエラーが出ている可能性があります。<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 /> | ||
− | + | ②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/