internal PlayerData(NativePlayerData other) : this() { this.Id = other.id; this.Name = other.name; this.Team = other.team; this.Health = other.health; this.IpAddress = other.ip_address; this.SteamID = other.steam_id; this.IsBot = other.is_bot; this.IsDead = other.is_dead; }
public override async Task <PlayerData[]> GetPlayers() { try { IntPtr ptrData = IntPtr.Zero; int nbr = 0; await this.m_fact.StartNew(() => { this.m_cb_GetPlayers(out ptrData, out nbr); }); NativePlayerData[] data = new NativePlayerData[nbr]; MarshalArray(ptrData, data); Marshal.FreeCoTaskMem(ptrData); return(data.Select(p => new PlayerData(p)).ToArray());; } catch (Exception ex) { return(null); } }