/* public void OnPlayerPunkbusterInfo(CPunkbusterInfo pbInfo) { } */ private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) { this.InvokeIfRequired(() => { if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) { foreach (CPlayerInfo cpiPlayer in lstPlayers) { if (this.Players.ContainsKey(cpiPlayer.SoldierName) == true) { ListViewItem playerListItem = this.Players[cpiPlayer.SoldierName]; if (this.Client != null && this.Client.Game != null && this.Client.Game.HasSquads == true) { if (cpiPlayer.SquadID != uscPlayerListPanel.NeutralSquad) { if (String.Compare(playerListItem.SubItems["squad"].Text, cpiPlayer.ClanTag) == 0) { playerListItem.SubItems["squad"].Text = this.Language.GetLocalized("global.Squad" + cpiPlayer.SquadID.ToString(), null); } } else { if (String.IsNullOrEmpty(playerListItem.SubItems["squad"].Text) != false) { playerListItem.SubItems["squad"].Text = String.Empty; } } } if (String.Compare(playerListItem.SubItems["tags"].Text, cpiPlayer.ClanTag) != 0) { playerListItem.SubItems["tags"].Text = cpiPlayer.ClanTag; } if (String.Compare(playerListItem.SubItems["score"].Text, cpiPlayer.Score.ToString()) != 0) { playerListItem.SubItems["score"].Text = cpiPlayer.Score.ToString(); } playerListItem.SubItems["kills"].Tag = (Double)cpiPlayer.Kills; if (String.Compare(playerListItem.SubItems["kills"].Text, cpiPlayer.Kills.ToString()) != 0) { playerListItem.SubItems["kills"].Text = cpiPlayer.Kills.ToString(); } playerListItem.SubItems["deaths"].Tag = (Double)cpiPlayer.Deaths; if (String.Compare(playerListItem.SubItems["deaths"].Text, cpiPlayer.Kills.ToString()) != 0) { playerListItem.SubItems["deaths"].Text = cpiPlayer.Deaths.ToString(); } string kdr = cpiPlayer.Deaths > 0 ? String.Format("{0:0.00}", (Double)cpiPlayer.Kills / (Double)cpiPlayer.Deaths) : String.Format("{0:0.00}", (Double)cpiPlayer.Kills); if (String.Compare(playerListItem.SubItems["kdr"].Text, kdr) == 0) { playerListItem.SubItems["kdr"].Text = kdr; } //if (String.Compare(playerListItem.SubItems["ping"].Text, cpiPlayer.Ping.ToString()) != 0) { playerListItem.SubItems["ping"].Text = cpiPlayer.Ping.ToString(); } if ((this.Client.Game.GameType.Equals("BF3") == true) && (this.Pings.ContainsKey(cpiPlayer.SoldierName) == true)) { if (String.Compare(playerListItem.SubItems["ping"].Text, this.Pings[cpiPlayer.SoldierName].ToString()) != 0) { playerListItem.SubItems["ping"].Text = this.Pings[cpiPlayer.SoldierName].ToString(); cpiPlayer.Ping = this.Pings[cpiPlayer.SoldierName]; } } else { if (String.Compare(playerListItem.SubItems["ping"].Text, cpiPlayer.Ping.ToString()) != 0) { playerListItem.SubItems["ping"].Text = cpiPlayer.Ping.ToString(); } } if (String.Compare(playerListItem.SubItems["rank"].Text, cpiPlayer.Rank.ToString()) != 0) { playerListItem.SubItems["rank"].Text = cpiPlayer.Rank.ToString(); } string strTime = cpiPlayer.SessionTime > 60 ? String.Format("{0:0}", cpiPlayer.SessionTime / 60) : "0"; playerListItem.SubItems["time"].Text = strTime; if (String.Compare(playerListItem.SubItems["type"].Text, cpiPlayer.Type.ToString()) != 0) { if (cpiPlayer.Type == 0) { //playerListItem.SubItems["type"].Text = this.m_clocLanguage.GetDefaultLocalized("Player", "uscPlayerListPanel.lsvPlayers.Type.Player", null); playerListItem.SubItems["type"].Text = String.Empty; } else if (cpiPlayer.Type == 1) { playerListItem.SubItems["type"].Text = this.Language.GetDefaultLocalized("Spectator", "uscPlayerListPanel.lsvPlayers.Type.Spectator", null); } else if (cpiPlayer.Type == 2) { playerListItem.SubItems["type"].Text = this.Language.GetDefaultLocalized("Commander (PC)", "uscPlayerListPanel.lsvPlayers.Type.CommanderPC", null); } else if (cpiPlayer.Type == 3) { playerListItem.SubItems["type"].Text = this.Language.GetDefaultLocalized("Commander (Tablet)", "uscPlayerListPanel.lsvPlayers.Type.CommanderTablet", null); } } AdditionalPlayerInfo sapiAdditional; if (playerListItem.Tag == null) { sapiAdditional = new AdditionalPlayerInfo(); sapiAdditional.ResolvedHostName = String.Empty; } else { sapiAdditional = (AdditionalPlayerInfo)playerListItem.Tag; } sapiAdditional.Player = cpiPlayer; playerListItem.Tag = sapiAdditional; } else { this.Players.Add(cpiPlayer.SoldierName, this.CreatePlayer(cpiPlayer)); } } List<string> lstKeys = new List<string>(this.Players.Keys); for (int i = 0; i < lstKeys.Count; i++) { bool blFoundPlayer = false; foreach (CPlayerInfo cpiPlayer in lstPlayers) { if (String.Compare(cpiPlayer.SoldierName, this.Players[lstKeys[i]].Name) == 0) { blFoundPlayer = true; break; } } if (blFoundPlayer == false) { this.Players[lstKeys[i]].Remove(); this.Players.Remove(lstKeys[i]); } } this.Players.Add("procon.playerlist.totals1", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals1", 1, 0), 1)); this.Players.Add("procon.playerlist.totals2", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals2", 2, 0), 2)); this.Players.Add("procon.playerlist.totals3", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals3", 3, 0), 3)); this.Players.Add("procon.playerlist.totals4", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals4", 4, 0), 4)); this.Players.Add("procon.playerlist.averages1", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages1", 1, 0), 1)); this.Players.Add("procon.playerlist.averages2", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages2", 2, 0), 2)); this.Players.Add("procon.playerlist.averages3", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages3", 3, 0), 3)); this.Players.Add("procon.playerlist.averages4", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages4", 4, 0), 4)); this.ArrangePlayers(); } }); }
private void m_prcClient_PunkbusterPlayerInfo(PRoConClient sender, CPunkbusterInfo pbInfo) { this.InvokeIfRequired(() => { this.PropogatingIndexChange = true; if (this.Players.ContainsKey(pbInfo.SoldierName) == true) { AdditionalPlayerInfo sapiAdditional; if (this.Players[pbInfo.SoldierName].Tag == null) { sapiAdditional = new AdditionalPlayerInfo(); sapiAdditional.ResolvedHostName = String.Empty; } else { sapiAdditional = (AdditionalPlayerInfo)this.Players[pbInfo.SoldierName].Tag; } sapiAdditional.Punkbuster = pbInfo; this.Players[pbInfo.SoldierName].Tag = sapiAdditional; this.Players[pbInfo.SoldierName].Text = pbInfo.SlotID; //string strCountryCode = this.m_frmMain.GetCountryCode(pbInfo.Ip); if (this.Main.iglFlags.Images.ContainsKey(pbInfo.PlayerCountryCode + ".png") == true && this.Players[sapiAdditional.Punkbuster.SoldierName].ImageIndex < 0) { this.Players[pbInfo.SoldierName].ImageIndex = this.Main.iglFlags.Images.IndexOfKey(pbInfo.PlayerCountryCode + ".png"); } this.RefreshSelectedPlayer(); } this.PropogatingIndexChange = false; }); }
private ListViewItem CreatePlayer(CPlayerInfo player) { ListViewItem newListPlayer = new ListViewItem("") { Name = player.SoldierName, Tag = null, UseItemStyleForSubItems = true }; AdditionalPlayerInfo additional = new AdditionalPlayerInfo { Player = player, ResolvedHostName = String.Empty }; newListPlayer.Tag = additional; ListViewItem.ListViewSubItem tags = new ListViewItem.ListViewSubItem { Name = @"tags", Text = player.ClanTag }; newListPlayer.SubItems.Add(tags); ListViewItem.ListViewSubItem tagsName = new ListViewItem.ListViewSubItem { Name = @"soldiername", Text = player.SoldierName }; newListPlayer.SubItems.Add(tagsName); if (this.Client != null && this.Client.Game != null && this.Client.Game.HasSquads == true) { ListViewItem.ListViewSubItem squad = new ListViewItem.ListViewSubItem { Name = @"squad" }; if (player.SquadID != uscPlayerListPanel.NeutralSquad) { squad.Text = this.Language.GetLocalized("global.Squad" + player.SquadID.ToString(CultureInfo.InvariantCulture), null); } newListPlayer.SubItems.Add(squad); } ListViewItem.ListViewSubItem kit = new ListViewItem.ListViewSubItem { Name = @"kit", Text = String.Empty }; newListPlayer.SubItems.Add(kit); ListViewItem.ListViewSubItem score = new ListViewItem.ListViewSubItem { Name = @"score", Text = player.Score.ToString(CultureInfo.InvariantCulture) }; newListPlayer.SubItems.Add(score); ListViewItem.ListViewSubItem kills = new ListViewItem.ListViewSubItem { Name = @"kills", Tag = (Double)player.Kills, Text = player.Kills.ToString(CultureInfo.InvariantCulture) }; newListPlayer.SubItems.Add(kills); ListViewItem.ListViewSubItem deaths = new ListViewItem.ListViewSubItem { Name = @"deaths", Tag = (Double)player.Deaths, Text = player.Deaths.ToString(CultureInfo.InvariantCulture) }; newListPlayer.SubItems.Add(deaths); ListViewItem.ListViewSubItem kdr = new ListViewItem.ListViewSubItem { Name = @"kdr", Text = player.Deaths > 0 ? String.Format("{0:0.00}", (Double)player.Kills / player.Deaths) : String.Format("{0:0.00}", (Double)player.Kills) }; newListPlayer.SubItems.Add(kdr); ListViewItem.ListViewSubItem ping = new ListViewItem.ListViewSubItem { Name = @"ping", Text = player.Ping.ToString(CultureInfo.InvariantCulture) }; newListPlayer.SubItems.Add(ping); ListViewItem.ListViewSubItem rank = new ListViewItem.ListViewSubItem { Name = @"rank", Text = player.Rank.ToString(CultureInfo.InvariantCulture) }; newListPlayer.SubItems.Add(rank); ListViewItem.ListViewSubItem time = new ListViewItem.ListViewSubItem { Name = @"time", Text = player.SessionTime > 60 ? String.Format("{0:0}", player.SessionTime / 60) : "0" }; newListPlayer.SubItems.Add(time); ListViewItem.ListViewSubItem type = new ListViewItem.ListViewSubItem { Name = @"type" }; if (player.Type == 0) { type.Text = String.Empty; } else if (player.Type == 1) { type.Text = this.Language.GetDefaultLocalized("Spectator", "uscPlayerListPanel.lsvPlayers.Type.Spectator", null); } else if (player.Type == 2) { type.Text = this.Language.GetDefaultLocalized("Commander (PC)", "uscPlayerListPanel.lsvPlayers.Type.CommanderPC", null); } else if (player.Type == 3) { type.Text = this.Language.GetDefaultLocalized("Commander (Tablet)", "uscPlayerListPanel.lsvPlayers.Type.CommanderTablet", null); } newListPlayer.SubItems.Add(type); return newListPlayer; }
private void AddTotalsPlayerDetails(int iTeamID, AdditionalPlayerInfo player) { if (this.Players.ContainsKey(String.Format("procon.playerlist.totals{0}", iTeamID)) == true) { var tag = this.Players[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag as AdditionalPlayerInfo; if (tag != null) { tag.Player.Kills += player.Player.Kills; tag.Player.Deaths += player.Player.Deaths; tag.Player.Score += player.Player.Score; tag.Player.Ping += player.Player.Ping; tag.Player.Rank += player.Player.Rank; tag.Player.Type += player.Player.Type; tag.Player.Kdr += (player.Player.Deaths > 0 ? (float)player.Player.Kills / player.Player.Deaths : player.Player.Kills); tag.Player.SquadID++; if (player.SpawnedInventory != null) { tag.AddKitCount(player.SpawnedInventory.Kit); } } } }
private ListViewItem CreatePlaceHolder(PRoCon.Controls.ControlsEx.ListViewNF lsvList, int iTeamID) { ListViewItem lviPlaceHolder = new ListViewItem("."); lviPlaceHolder.ForeColor = SystemColors.WindowText; lviPlaceHolder.UseItemStyleForSubItems = true; AdditionalPlayerInfo sapiInfo = new AdditionalPlayerInfo(); sapiInfo.ResolvedHostName = String.Empty; sapiInfo.Punkbuster = null; sapiInfo.Player = new CPlayerInfo("", String.Empty, iTeamID, 0); lviPlaceHolder.Tag = sapiInfo; lviPlaceHolder.Group = lsvList.Groups[iTeamID]; return lviPlaceHolder; }