private void FromMessage(byte[] msg) { int i = 4; byte first = msg[i]; if (first == (byte)PacketType.A2S_PLAYER) // Skip first byte if you haven't already. { first = msg[++i]; } this.NumPlayers = first; this.players = new List <IPlayer> (this.NumPlayers); for (int p = 0; p < this.NumPlayers; ++p) { var player = new SourcePlayer(); player.Index = msg[++i]; player.Name = ByteExtensions.GetString(msg, ++i, ref i); player.Score = ByteExtensions.GetInt32(msg, i, ref i); player.TimeConnected = ByteExtensions.GetSingle(msg, i, ref i); this.players.Add(player); } }
private void FromMessage(byte[] msg) { int i = 4; byte first = msg[i]; if (first == (byte)PacketType.A2S_SERVERQUERY_GETCHALLENGE) // Skip first byte if you haven't already. { ++i; } this.Challenge = ByteExtensions.GetInt32(msg, i, ref i); }