提供: Minecraft Modding Wiki
移動先: 案内検索
(使う分には分かるのだけど、分かりやすさが難しい)
57行目: 57行目:
 
===ModLoaderMp.SendPacket===
 
===ModLoaderMp.SendPacket===
 
クライアント側で使用できるメソッドです。
 
クライアント側で使用できるメソッドです。
 +
例:
 +
1.packetTeigi.classに送付Packet内容を記述
 +
<pre>
 +
public Packet230ModLoader.getPacketData()
 +
{
 +
Packet230ModLoader packet = new Packet230ModLodaer();
 +
packet.dataInt = new int[1];
 +
packet.dataInt[0] = this.posX;
 +
</pre>
 +
2.mod_hogehogeに参照データを記述
 +
<pre>
 +
public class mod_hogehoge extends BaseModMp
 +
{
 +
public static mod_hogehoge instance;
 +
.....
 +
 +
public void load
 +
{
 +
instance = this;
 +
.....
 +
}
 +
</pre>
 +
3.Entityhogeでpacketデータを送信
 +
<pre>
 +
public class Entityhoge extends Entity
 +
{
 +
packetTeigi hogge
 +
</pre>
 +
・・・書いてたら頭が沸騰したので、ちょっと停止
 
解説と例を考え中
 
解説と例を考え中
 
===ModLoaderMp.SendPacketTo===
 
===ModLoaderMp.SendPacketTo===
67行目: 96行目:
 
===SendKey===
 
===SendKey===
 
===コマンドによるPacket送信処理===
 
===コマンドによるPacket送信処理===
 +
 +
執筆中...

2012年3月15日 (木) 00:45時点における版

ModLoaderMpで使用できるCustumPacketsの設定方法を記載します。

カスタムパケットの基本

送付できるPacketの種類

1.int型 2.float型 3.String型

Ex:以下のように設定します。

float[] dataFloat = new float[numberOfFloats];
dataFloat[0] = xxxx;
dataFloat[1] = yyyy;
....

int[] dataInt = new int[numberOfInts];
dataInt[0] = zzzz;
dataInt[1] = bbbb;
....

String[] dataString = new loat[numberOfStrings];
dataString[0] = aaaa;
dataString[1] = cccc;
....

インターフェイスを実装する

ISpawnableインターフェイスを実装します。 Ex:

public class ClassName extends Entity implements ISpawnable {

上記はClassNameクラスにEntityクラスを継承してISpawnableインターフェイスを実装しています。

ISpawnableインターフェイスを実装した後、 Server側でgetSpawnPacketメソッドを追加した場合の例

public Packet230ModLoader getSpawnPacket()
{
    Packet230ModLoader packet = new Packet230ModLoader();
  packet.packetType = 0;    
    packet.dataInt = new int[1];
    packet.dataInt[0] = entityColor;
    packet.dataFloat = new float[2];
    packet.dataFloat[0] = (float)posX;
    packet.dataFloat[1] = posY;
    packet.dataString = new String;
    packet.dataString[0] = dataString;
    return packet;
}

packetType = 0:アップデートフラグとして packetType = 1:送信フラグとして ※言葉が書きづらい・・・。もっとわかりやすく書ける方お願いします。

Packetの送信方法

ModLoaderMp.SendPacket

クライアント側で使用できるメソッドです。 例: 1.packetTeigi.classに送付Packet内容を記述

public Packet230ModLoader.getPacketData()
{
Packet230ModLoader packet = new Packet230ModLodaer();
packet.dataInt = new int[1];
packet.dataInt[0] = this.posX;

2.mod_hogehogeに参照データを記述

public class mod_hogehoge extends BaseModMp
{
public static mod_hogehoge instance;
.....

public void load
{
instance = this;
.....
}

3.Entityhogeでpacketデータを送信

public class Entityhoge extends Entity
{
packetTeigi hogge

・・・書いてたら頭が沸騰したので、ちょっと停止 解説と例を考え中

ModLoaderMp.SendPacketTo

サーバー側で使用できるメソッドです。 解説と例を考え中

ModLoaderMp.SendPacketToAll

サーバー側で使用できるメソッドです。 解説と例を考え中

HandlePacket

SendKey

コマンドによるPacket送信処理

執筆中...