Цитата:
Сообщение от Awiion
|
When I get x, y, z, camX, camZ, Area
Opcode 3
case 3:
{
log.info("Packet Replication Opcode 3 Slot :" + slotID);
if (room != null)
{
onlyDecrypt(originalbuffer, this.length);
sub_opcode = originalbuffer.readByte();
slot = originalbuffer.readShort();
sub_length = originalbuffer.readShort();
EventType = 0;
if (sub_opcode != 2)
{
EventType = originalbuffer.readInt();
}
System.out.println("============================================================================================");
System.out.println("| Sub-Opcode: " + sub_opcode + " | Slot: " + slot + "| Length: " + sub_length + " | EventType: " + EventType + " |");
System.out.println("============================================================================================");
if ((EventType & 0x01) > 0)
{
System.out.println("====================================================");
System.out.println("Action State");
System.out.println(" Condition 1 " + originalbuffer.readShort());
System.out.println(" Condition 2 " + originalbuffer.readShort());
System.out.println("====================================================");
remainvalue += 0x01;
}
if ((EventType & 0x02) > 0)
{
System.out.println("====================================================");
System.out.println("Animation : " + originalbuffer.readShort());
System.out.println("====================================================");
remainvalue += 0x02;
}
if ((EventType & 0x04) > 0)
{
this.x = originalbuffer.readShort();
this.y = originalbuffer.readShort();
this.z = originalbuffer.readShort();
this.camX = originalbuffer.readShort();
this.camZ = originalbuffer.readShort();
this.Area = originalbuffer.readShort();
System.out.println("====================================================");
System.out.println("X : " + x);
System.out.println("Y : " + y);
System.out.println("Z : " + z);
System.out.println("camX : " + camX);
System.out.println("camZ : " + camZ);
System.out.println("Area : " + Area);
System.out.println("====================================================");
remainvalue += 0x04;
}
for (Player p : room.getPlayers().values())
{
log.info("====================================================");
log.info("| Sub-Opcode: " + sub_opcode + " | Slot: " + slot + "| length: " + sub_length + " | EventType: " + EventType + " |");
log.info("====================================================");
ByteBuf _buf = Unpooled.buffer(0, this.length).order(ByteOrder.LITTLE_ENDIAN);
_buf.writeByte(4); // OPCODE 4
_buf.writeByte(-1); // SLOT -1
_buf.writeFloat(this.time); // TIME
_buf.writeByte(1); // SESSION
_buf.writeShort(this.length); // LENGTH this.length
_buf.writeShort(0); // EVENT 1
_buf.writeShort(0); // EVENT 2
_buf.writeBytes(this.InternalPacket.copy());
ctx.writeAndFlush(new DatagramPacket(_buf.copy(), p.net));
}
}
break;
}Code: Java
What do I do next?
I need an example of how to send values to a client.
Opcode 4
case 4:
{
if (room != null)
{
if ((EventType & 0x04) > 0)
{
this.x = originalbuffer.readShort();
this.y = originalbuffer.readShort();
this.z = originalbuffer.readShort();
this.camX = originalbuffer.readShort();
this.camZ = originalbuffer.readShort();
this.Area = originalbuffer.readShort();
System.out.println("====================================================");
System.out.println("X : " + x);
System.out.println("Y : " + y);
System.out.println("Z : " + z);
System.out.println("camX : " + camX);
System.out.println("camZ : " + camZ);
System.out.println("Area : " + Area);
System.out.println("====================================================");
remainvalue += 0x04;
}
for (Player p : room.getPlayers().values())
{
ByteBuf _buf = Unpooled.buffer(0, this.length).order(ByteOrder.LITTLE_ENDIAN);
_buf.writeByte(4); // OPCODE
_buf.writeByte(-1); // SLOT
_buf.writeFloat(this.time); // TIME
_buf.writeByte(1); // SESSION
_buf.writeShort(this.length); // LENGTH
_buf.writeShort(0); // EVENT 1
_buf.writeShort(0); // EVENT 2
_buf.writeBytes(this.InternalPacket.copy());
ctx.writeAndFlush(new DatagramPacket(_buf, p.net));
}
}
break;
}Code: Java