protected override void DiabloToBattleNet(byte[] data, ref PacketFlag flag) { byte[] packetData; if (firstPacket) { packetData = new byte[data.Length - 3]; Buffer.BlockCopy(data, 3, packetData, 0, data.Length - 3); firstPacket = false; } else { packetData = new byte[data.Length - 2]; Buffer.BlockCopy(data, 2, packetData, 0, data.Length - 2); } RealmClientPacket PacketID = (RealmClientPacket)packetData[0]; try { switch (PacketID) { //TODO: Add the rest of these... case RealmClientPacket.RealmStartupRequest: OnRealmStartupRequest(new RealmClient.RealmStartupRequest(packetData), ref flag); break; case RealmClientPacket.CharacterLogonRequest: OnCharacterLogonRequest(new RealmClient.CharacterLogonRequest(packetData), ref flag); break; case RealmClientPacket.JoinGameRequest: OnJoinGameRequest(new RealmClient.JoinGameRequest(packetData), ref flag); break; } } catch (Exception ex) { Console.WriteLine(PacketID.ToString() + ": " + ex.Message); } }
public RCPacket(byte[] data) : base(data, Origin.RealmClient) { this.PacketID = (RealmClientPacket)data[0]; }