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()); }
private void Client_Receive(object sender, ReceiveEventArgs e) { if (Receive != null) { Receive(this, e); } if (e.IsContainer) { return; } DataStream ds = (DataStream)e.Stream; if (ds is ContainerS00 && !EnteredTheWorld) { EnteredTheWorld = true; Client.Send(new GetInventoryC27()); if (OnPlayerEnterTheWorld != null) { OnPlayerEnterTheWorld(this, new EventArgs()); } } if (ds is ServerInfoS01) { Client.Send(new LogginAnnounce((ServerInfoS01)ds, Login, Password)); } if (ds is SMKeyS02) { Client.Send(new CMKeyC02((SMKeyS02)ds, Force)); } if (ds is OnlineAnnounceS04) { Client.Send(new RoleListC52((OnlineAnnounceS04)ds)); new KeepAliveSender(Client).Start(); } if (ds is SelectRole_ReS47) { Client.Send(new EnterWorldC48(SelectedPlayer.UID)); } if (ds is RoleList_ReS53) { RoleList_ReS53 role = (RoleList_ReS53)ds; if (role.IsChar) { Client.Send(new RoleListC52(role)); args.Add(role); } else { PlayersLoaded = true; if (OnPlayersLoaded != null) { OnPlayersLoaded(this, args); } } } }
private void Receive_RoleList_Re(object sender, GamePacket packet) { RoleList_ReS53 roleListRe = packet as RoleList_ReS53; if (roleListRe.IsChar) { Host.Send(new RoleListC52(roleListRe.NextSlot)); } else { AccountInformation.RolesLoaded = true; if (RolesListLoaded != null) { RolesListLoaded(this, new EventArgs()); } } }
internal void Add(RoleList_ReS53 role) { players.Add(role); }