提供: Minecraft Modding Wiki
この編集を取り消せます。
下記の差分を確認して、本当に取り消していいか検証してください。よろしければ変更を保存して取り消しを完了してください。
最新版 | 編集中の文章 | ||
2行目: | 2行目: | ||
基本は、ModLoaderに付随して+α機能が付いていると認識されたほうがいいかもしれません。<br /> | 基本は、ModLoaderに付随して+α機能が付いていると認識されたほうがいいかもしれません。<br /> | ||
前提Modの導入方法は割愛します。<br/> | 前提Modの導入方法は割愛します。<br/> | ||
− | |||
− | |||
− | |||
※前提としてModLodaerとMCPの利用が可能なこととします。<br /> | ※前提としてModLodaerとMCPの利用が可能なこととします。<br /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
<br /> | <br /> | ||
− | =環境構築 | + | ==環境構築== |
− | |||
1.MCPフォルダの「Jar」フォルダにminecraft_sever.jarをコピーする。<br /> | 1.MCPフォルダの「Jar」フォルダにminecraft_sever.jarをコピーする。<br /> | ||
2.minecraft_server.jarにModLoaderMP(Server版)を導入する。<br /> | 2.minecraft_server.jarにModLoaderMP(Server版)を導入する。<br /> | ||
21行目: | 12行目: | ||
<br /> | <br /> | ||
− | == | + | ==MCPでの操作== |
− | MCPの「decompile. | + | 1.MCPの「decompile.bat」を動かす。<br /> |
− | + | 2.エラーがでますが気にしない。<br /> | |
− | + | 3.エラーがでている部分を修正します。 | |
− | + | ソースフォルダの/minecraft_server/net/minecraft/serverのMinecraftServer.javaを編集します。<br /> | |
− | + | Ver1.2.3の場合:515行目から551行目をコメントアウト<br /> | |
− | + | Ver1.1の場合:400~431行目をコメントアウト<br /> | |
− | + | Ver1.01の場合:406~437行目をコメントアウト<br /> | |
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | Ver1.2. | ||
− | Ver1. | ||
− | Ver1. | ||
Ver1.8.1の場合:344~375行目をコメントアウト<br /> | Ver1.8.1の場合:344~375行目をコメントアウト<br /> | ||
− | |||
末尾に | 末尾に | ||
<pre> | <pre> | ||
93行目: | 27行目: | ||
を入れる。 | を入れる。 | ||
− | =実際のソースの変更部分= | + | ==実際のソースの変更部分== |
− | ==共通== | + | ===共通=== |
1.worldObj使用時にMCPのMappingデータによります。<br /> | 1.worldObj使用時にMCPのMappingデータによります。<br /> | ||
対象項目としては | 対象項目としては | ||
110行目: | 44行目: | ||
2.ModLoaderを継承参照している定義ModLoaderMpに修正します。<br /> | 2.ModLoaderを継承参照している定義ModLoaderMpに修正します。<br /> | ||
− | < | + | <pre> |
public class mod_*** extends BaseMod | public class mod_*** extends BaseMod | ||
− | </ | + | </pre> |
これを<br/> | これを<br/> | ||
− | < | + | <pre> |
public class mod_*** extends BaseModMp | public class mod_*** extends BaseModMp | ||
− | </ | + | </pre> |
に修正する。<br /> | に修正する。<br /> | ||
− | ==Block,Itemを追加する場合== | + | ===Block,Itemを追加する場合=== |
− | + | Block,Itemを追加している記述部分に以下を付け加えます。<br /> | |
− | |||
− | |||
Client側:<br /> | Client側:<br /> | ||
− | < | + | <pre> |
ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID); | ModLoaderMp.registerNetClientHandlerEntity(Entity***.clas, netID); | ||
− | </ | + | </pre> |
Server側:<br /> | Server側:<br /> | ||
− | < | + | <pre> |
ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID); | ModLoaderMp.registerEntityTrackerEntry(Entity***.class, netID); | ||
ModLoaderMp.registerEntityTracker(Entity***.class, 160, 5); | ModLoaderMp.registerEntityTracker(Entity***.class, 160, 5); | ||
− | </ | + | </pre> |
※netIDは0~256の中で指定することとし、Client・Serverで共通であること。<br /> | ※netIDは0~256の中で指定することとし、Client・Serverで共通であること。<br /> | ||
141行目: | 73行目: | ||
160は任意(だったはず。)5はticksを表しています。<br/> | 160は任意(だったはず。)5はticksを表しています。<br/> | ||
− | ==Guiを追加する場合== | + | ===Guiを追加する場合=== |
※そこまで詳しくないので詳しい人お願いします。<br /> | ※そこまで詳しくないので詳しい人お願いします。<br /> | ||
SMPのGUIを作るためにはGUIを呼び出すコードをServerに設定し<br /> | SMPのGUIを作るためにはGUIを呼び出すコードをServerに設定し<br /> | ||
149行目: | 81行目: | ||
大体の場合、Entity,TileEntity,BlockGUI設定場所に設定しているはず。 | 大体の場合、Entity,TileEntity,BlockGUI設定場所に設定しているはず。 | ||
− | < | + | <pre> |
ModLoader.OpenGUI(player, guiID, inventory, container); | ModLoader.OpenGUI(player, guiID, inventory, container); | ||
− | </ | + | </pre> |
player:GUIを開こうとしているPlayer<br /> | player:GUIを開こうとしているPlayer<br /> | ||
160行目: | 92行目: | ||
2.Client側に設定処理を追加します。<br /> | 2.Client側に設定処理を追加します。<br /> | ||
大体の場合mod_*** | 大体の場合mod_*** | ||
− | < | + | <pre> |
ModLoaderMp.registerGUI(this, guiID); | ModLoaderMp.registerGUI(this, guiID); | ||
− | </ | + | </pre> |
また、メソッドを追加します。 | また、メソッドを追加します。 | ||
− | < | + | <pre> |
public GuiScreen HandleGUI(int inventoryType) | public GuiScreen HandleGUI(int inventoryType) | ||
{ | { | ||
171行目: | 103行目: | ||
else return null; | else return null; | ||
} | } | ||
− | </ | + | </pre> |
Gui***には追加GuiのClass名を指定してください。<br /> | Gui***には追加GuiのClass名を指定してください。<br /> | ||
argsはGUIの引数の場所<br /> | argsはGUIの引数の場所<br /> | ||
ModLoader.getMinecraftinstance().thePlayer ←これ使うと楽かもしれない。<br /> | ModLoader.getMinecraftinstance().thePlayer ←これ使うと楽かもしれない。<br /> | ||
− | ==Mobを追加する場合== | + | ===Mobを追加する場合=== |
※そこまで詳しくないので詳しい人お願いします。<br /> | ※そこまで詳しくないので詳しい人お願いします。<br /> | ||
以下1または2をClientとServer両方に追加します。(EntityIDは一緒にすること)<br /> | 以下1または2をClientとServer両方に追加します。(EntityIDは一緒にすること)<br /> | ||
1.以下行を追加します。 | 1.以下行を追加します。 | ||
− | < | + | <pre> |
ModLoader.registerEntityID(Entity***.class, "EntityName", ModLoader.getUniqueEntiityID()); | ModLoader.registerEntityID(Entity***.class, "EntityName", ModLoader.getUniqueEntiityID()); | ||
− | </ | + | </pre> |
Entity***:対象MobのEntityのclassファイルを指定<br /> | Entity***:対象MobのEntityのclassファイルを指定<br /> | ||
"EntityName":対象Mobの名前<br /> | "EntityName":対象Mobの名前<br /> | ||
189行目: | 121行目: | ||
2.上記よりこっちのがオススメかもしれません。 | 2.上記よりこっちのがオススメかもしれません。 | ||
− | < | + | <pre> |
ModLoader.registerEntityID(Entity***.class, "EntityName", ID); | ModLoader.registerEntityID(Entity***.class, "EntityName", ID); | ||
− | </ | + | </pre> |
ID部分はClient,Server共に同じEntityIDを指定して下さい。<br /> | ID部分はClient,Server共に同じEntityIDを指定して下さい。<br /> | ||
※EntityIDは0~128までです。<br /> | ※EntityIDは0~128までです。<br /> | ||
203行目: | 135行目: | ||
参考資料:http://www.minecraftforum.net/topic/352121-smp-mods-modloadermp-modding-310511/ <br /> | 参考資料:http://www.minecraftforum.net/topic/352121-smp-mods-modloadermp-modding-310511/ <br /> | ||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− | |||
− |