Now here is the universal packet i use, modify and complete it if you want to use it for everything, atm it wont be able to make anything except Skills, Items etc...now big Packets only 24 Bytes packets atm.
Code:
public static byte[] Command(int Cmd_Sub, int Cmd_Type, int Cmd_UID, int Cmd_ID, int Cmd_Dura,int Cmd_MaxDura, int Cmd_Simple, int Cmd_Loc, int Cmd_Gem, int Cmd_Unknown, int Cmd_Compose)
{
byte[] PacketData = new byte[(byte)(Cmd_Sub & 0xff)];
PacketData[0] = (byte)(Cmd_Sub & 0xff);//18
PacketData[1] = (byte)((Cmd_Sub >> 8) & 0xff);//00
if (Cmd_Sub > 2) { PacketData[2] = (byte)(Cmd_Type & 0xff); }//f0
if (Cmd_Sub > 3) { PacketData[3] = (byte)((Cmd_Type >> 8) & 0xff); }//03
if (Cmd_Sub > 4) { PacketData[4] = (byte)(Cmd_UID & 0xff); }//UID
if (Cmd_Sub > 5) { PacketData[5] = (byte)((Cmd_UID >> 8) & 0xff); }// '
if (Cmd_Sub > 6) { PacketData[6] = (byte)((Cmd_UID >> 16) & 0xff); }// '
if (Cmd_Sub > 7) { PacketData[7] = (byte)((Cmd_UID >> 24) & 0xff); }// '
if (Cmd_Sub > 8) { PacketData[8] = (byte)(Cmd_ID & 0xff); }//Item ID
if (Cmd_Sub > 9) { PacketData[9] = (byte)((Cmd_ID >> 8) & 0xff); }// '
if (Cmd_Sub > 10) { PacketData[0x0a] = (byte)((Cmd_ID >> 16) & 0xff); }// '
if (Cmd_Sub > 12) { PacketData[0x0b] = (byte)((Cmd_ID >> 24) & 0xff); }// '
if (Cmd_Sub > 12) { PacketData[0x0c] = (byte)(Cmd_Dura & 0xff); }// Current Durability
if (Cmd_Sub > 13) { PacketData[0x0d] = (byte)((Cmd_Dura >> 8) & 0xff); }// '
if (Cmd_Sub > 14) { PacketData[0x0e] = (byte)((Cmd_MaxDura >> 16) & 0xff); }// Max Durability
if (Cmd_Sub > 15) { PacketData[0x0f] = (byte)((Cmd_MaxDura >> 24) & 0xff); }// '
if (Cmd_Sub > 16) { PacketData[0x10] = (byte)(Cmd_Simple & 0xff); }//01 ADD - 03 MODIFIES
if (Cmd_Sub > 17) { PacketData[0x11] = (byte)((Cmd_Simple >> 8) & 0xff); }//00
if (Cmd_Sub > 18) { PacketData[0x12] = (byte)(Cmd_Loc & 0xff); }//Equipped location
if (Cmd_Sub > 19) { PacketData[0x13] = (byte)(Cmd_Gem & 0xff); }//Gem 1
if (Cmd_Sub > 20) { PacketData[0x14] = (byte)((Cmd_Gem >> 8) & 0xff); }//Gem 2
if (Cmd_Sub > 21) { PacketData[0x15] = (byte)(Cmd_Unknown & 0xff); }//00
if (Cmd_Sub > 22) { PacketData[0x16] = (byte)((Cmd_Unknown >> 8) & 0xff); }//00
if (Cmd_Sub > 23) { PacketData[0x17] = (byte)(Cmd_Compose & 0xff); }//Composition
if (Cmd_Sub > 24) { PacketData[0x18] = 0x00; } // THIS IS ADAPTABLE you can make ANY packet with that just use the solution above
if (Cmd_Sub > 25) { PacketData[0x19] = 0x00; }
if (Cmd_Sub > 26) { PacketData[0x1a] = 0x00; }
if (Cmd_Sub > 27) { PacketData[0x1b] = 0x00; }
if (Cmd_Sub > 28) { PacketData[0x1c] = 0x00; }
if (Cmd_Sub > 29) { PacketData[0x1d] = 0x00; }
if (Cmd_Sub > 30) { PacketData[0x1e] = 0x00; }
if (Cmd_Sub > 31) { PacketData[0x1f] = 0x00; }
if (Cmd_Sub > 32) { PacketData[0x20] = 0x00; }
if (Cmd_Sub > 33) { PacketData[0x21] = 0x00; }
if (Cmd_Sub > 34) { PacketData[0x22] = 0x00; }
if (Cmd_Sub > 35) { PacketData[0x23] = 0x00; }
if (Cmd_Sub > 36) { PacketData[0x24] = 0x00; }
if (Cmd_Sub > 37) { PacketData[0x25] = 0x00; }
if (Cmd_Sub > 38) { PacketData[0x26] = 0x00; }
if (Cmd_Sub > 39) { PacketData[0x27] = 0x00; }
if (Cmd_Sub > 40) { PacketData[0x28] = 0x00; }
if (Cmd_Sub > 41) { PacketData[0x29] = 0x00; }
if (Cmd_Sub > 42) { PacketData[0x2a] = 0x00; }
if (Cmd_Sub > 43) { PacketData[0x2b] = 0x00; }
if (Cmd_Sub > 44) { PacketData[0x2c] = 0x00; }
if (Cmd_Sub > 45) { PacketData[0x2d] = 0x00; }
if (Cmd_Sub > 46) { PacketData[0x2e] = 0x00; }
if (Cmd_Sub > 47) { PacketData[0x2f] = 0x00; }
if (Cmd_Sub > 48) { PacketData[0x30] = 0x00; }
if (Cmd_Sub > 49) { PacketData[0x31] = 0x00; }
if (Cmd_Sub > 50) { PacketData[0x32] = 0x00; }
if (Cmd_Sub > 51) { PacketData[0x33] = 0x00; }
if (Cmd_Sub > 52) { PacketData[0x34] = 0x00; }
if (Cmd_Sub > 53) { PacketData[0x35] = 0x00; }
if (Cmd_Sub > 54) { PacketData[0x36] = 0x00; }
if (Cmd_Sub > 55) { PacketData[0x37] = 0x00; }
if (Cmd_Sub > 56) { PacketData[0x38] = 0x00; }
if (Cmd_Sub > 57) { PacketData[0x39] = 0x00; }
if (Cmd_Sub > 58) { PacketData[0x3a] = 0x00; }
if (Cmd_Sub > 59) { PacketData[0x3b] = 0x00; }
if (Cmd_Sub > 60) { PacketData[0x3c] = 0x00; }
if (Cmd_Sub > 61) { PacketData[0x3d] = 0x00; }
return PacketData;
}
Code:
else if (Splitter[0] == "/command" || Splitter[0] == "/Command")
{
int Item_Sub = Convert.ToInt32(Splitter[1]);
int Item_Type = Convert.ToInt32(Splitter[2]);
int Item_UID = Convert.ToInt32(Splitter[3]);
int Item_ID = Convert.ToInt32(Splitter[4]);
int Item_Dura = Convert.ToInt32(Splitter[5]);
int Item_MaxDura = Convert.ToInt32(Splitter[6]);
int Item_Simple = Convert.ToInt32(Splitter[7]);
int Item_Loc = Convert.ToInt32(Splitter[8]);
int Item_Gem = Convert.ToInt32(Splitter[9]);
int Item_Unknown=Convert.ToInt32(Splitter[0x0a]);
int Item_Compose = Convert.ToInt32(Splitter[0x0b]);
Client.SendData(PacketBuilder.Command(Item_Sub, Item_Type, Item_UID, Item_ID, Item_Dura, Item_MaxDura, Item_Simple, Item_Loc, Item_Gem, Item_Unknown, Item_Compose));
Client.SendData(PacketBuilder.Message(Client.MessageID, "SYSTEM", "ALL", "/add SUB TYPE UID ID DURA MAXDURA SIMPLE LOC GEM UNKNOWN COMPOSE", ChatType.Talk));
}