public bool Read(byte[] data) { BinaryReader br = new BinaryReader(new MemoryStream(data)); int serverCount = (data.Length - 43) / 32; LoginID1 = br.ReadInt32(); AccountID = br.ReadInt32(); LoginID2 = br.ReadInt32(); br.ReadBytes(30); Sex = br.ReadByte(); Servers = new CharServerInfo[serverCount]; for (int i = 0; i < serverCount; i++) { CharServerInfo csi = new CharServerInfo(); csi.IP = new IPAddress(br.ReadBytes(4)); csi.Port = br.ReadInt16(); csi.Name = br.ReadCString(20); csi.Users = br.ReadInt32(); csi.Type = br.ReadByte(); csi.New = br.ReadByte(); Servers[i] = csi; } return(true); }
void window_ServerSelected(CharServerInfo obj) { ROClient.Singleton.NetworkState.SelectedCharServer = obj; if (ROClient.Singleton.CurrentConnection != null && ROClient.Singleton.CurrentConnection.Client.Connected) { ROClient.Singleton.CurrentConnection.Disconnect(); } ROClient.Singleton.CurrentConnection = new Network.Connection(); ROClient.Singleton.CurrentConnection.PacketSerializer.PacketHooks[0x6B] = new Action<ushort, int, HC_Accept_Enter>(packetLoginAccepted); ROClient.Singleton.CurrentConnection.PacketSerializer.PacketHooks[0x6C] = new Action<ushort, int, HC_Refuse_Enter>(packetLoginRejected); try { ROClient.Singleton.CurrentConnection.Connect(obj.IP.ToString(), obj.Port); } catch { CloseWait(); MessageBox.ShowOk("Could not connect to server.", ReenterScreen); } ROClient.Singleton.CurrentConnection.PacketSerializer.BytesToSkip = 4; // Skip AID ROClient.Singleton.CurrentConnection.Start(); new CH_Enter( ROClient.Singleton.NetworkState.LoginAccept.AccountID, ROClient.Singleton.NetworkState.LoginAccept.LoginID1, ROClient.Singleton.NetworkState.LoginAccept.LoginID2, ROClient.Singleton.NetworkState.LoginAccept.Sex).Write(ROClient.Singleton.CurrentConnection.BinaryWriter); }
public bool Read(byte[] data) { BinaryReader br = new BinaryReader(new MemoryStream(data)); int serverCount = (data.Length - 43) / 32; LoginID1 = br.ReadInt32(); AccountID = br.ReadInt32(); LoginID2 = br.ReadInt32(); br.ReadBytes(30); Sex = br.ReadByte(); Servers = new CharServerInfo[serverCount]; for (int i = 0; i < serverCount; i++) { CharServerInfo csi = new CharServerInfo(); csi.IP = new IPAddress(br.ReadBytes(4)); csi.Port = br.ReadInt16(); csi.Name = br.ReadCString(20); csi.Users = br.ReadInt32(); csi.Type = br.ReadByte(); csi.New = br.ReadByte(); Servers[i] = csi; } return true; }