Ejemplo n.º 1
0
        public DataStream Deserialize(DataStream ds)
        {
            DataStream dsret;

            switch (ds.Type)
            {
            case 0x00: dsret = new ContainerS00(); break;

            case 0x01: dsret = new ServerInfoS01(); break;

            case 0x02: dsret = new SMKeyS02(); break;

            case 0x04: dsret = new OnlineAnnounceS04(); break;

            case 0x05: dsret = new ErrorInfo(); break;

            case 0x47: dsret = new SelectRole_ReS47(); break;

            case 0x53: dsret = new RoleList_ReS53(); break;

            case 0x60: dsret = new PrivateMessageS60(); break;

            case 0x8F: dsret = new LastOnlineS8F(); break;

            default: return(ds);
            }
            dsret.Type   = ds.Type;
            dsret.Buffer = ds.Buffer;
            dsret.Swaped = true;
            return(((PacketBase.IServerPacket)dsret).Deserialize());
        }
Ejemplo n.º 2
0
 protected void Read(DataStream ds)// Десериализация пакета и разбиение его на контейнеры
 {
     ds = Serializer.Deserialize(ds);
     if (Receive != null)
     {
         Receive(this, new ReceiveEventArgs(ds, false));
     }
     if (ds is ContainerS00)
     {
         ContainerS00 container = (ContainerS00)ds;
         for (int i = 0; i < container.Count; i++)
         {
             if (Receive != null)
             {
                 ReceiveEventArgs args = new ReceiveEventArgs(Serializer.DeserializeContainer(container[i]), true);
                 Receive(this, args);
             }
         }
     }
 }