/* public void OnPlayerPunkbusterInfo(CPunkbusterInfo pbInfo) { } */ private void m_prcClient_ListPlayers(FrostbiteClient sender, List<CPlayerInfo> lstPlayers, CPlayerSubset cpsSubset) { if (cpsSubset.Subset == CPlayerSubset.PlayerSubsetType.All) { foreach (CPlayerInfo cpiPlayer in lstPlayers) { if (this.m_dicPlayers.ContainsKey(cpiPlayer.SoldierName) == true) { ListViewItem playerListItem = this.m_dicPlayers[cpiPlayer.SoldierName]; if (this.m_prcClient != null && this.m_prcClient.Game != null && this.m_prcClient.Game.HasSquads == true) { if (cpiPlayer.SquadID != uscPlayerListPanel.INT_NEUTRAL_SQUAD) { if (String.Compare(playerListItem.SubItems["squad"].Text, cpiPlayer.ClanTag) == 0) { playerListItem.SubItems["squad"].Text = this.m_clocLanguage.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.m_prcClient.Game.GameType.Equals("BF3") == true) && (this.m_dicPings.ContainsKey(cpiPlayer.SoldierName) == true)) { if (String.Compare(playerListItem.SubItems["ping"].Text, this.m_dicPings[cpiPlayer.SoldierName].ToString()) != 0) { playerListItem.SubItems["ping"].Text = this.m_dicPings[cpiPlayer.SoldierName].ToString(); cpiPlayer.Ping = this.m_dicPings[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.Ping.ToString(); } AdditionalPlayerInfo sapiAdditional; if (playerListItem.Tag == null) { sapiAdditional = new AdditionalPlayerInfo(); sapiAdditional.m_strResolvedHostName = String.Empty; } else { sapiAdditional = (AdditionalPlayerInfo)playerListItem.Tag; } sapiAdditional.m_cpiPlayer = cpiPlayer; playerListItem.Tag = sapiAdditional; } else { this.m_dicPlayers.Add(cpiPlayer.SoldierName, this.CreatePlayer(cpiPlayer)); } } List<string> lstKeys = new List<string>(this.m_dicPlayers.Keys); for (int i = 0; i < lstKeys.Count; i++) { bool blFoundPlayer = false; foreach (CPlayerInfo cpiPlayer in lstPlayers) { if (String.Compare(cpiPlayer.SoldierName, this.m_dicPlayers[lstKeys[i]].Name) == 0) { blFoundPlayer = true; break; } } if (blFoundPlayer == false) { this.m_dicPlayers[lstKeys[i]].Remove(); this.m_dicPlayers.Remove(lstKeys[i]); } } this.m_dicPlayers.Add("procon.playerlist.totals1", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals1", 1, 0), 1)); this.m_dicPlayers.Add("procon.playerlist.totals2", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals2", 2, 0), 2)); this.m_dicPlayers.Add("procon.playerlist.totals3", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals3", 3, 0), 3)); this.m_dicPlayers.Add("procon.playerlist.totals4", this.CreateTotalsPlayer(new CPlayerInfo("Totals", "procon.playerlist.totals4", 4, 0), 4)); this.m_dicPlayers.Add("procon.playerlist.averages1", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages1", 1, 0), 1)); this.m_dicPlayers.Add("procon.playerlist.averages2", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages2", 2, 0), 2)); this.m_dicPlayers.Add("procon.playerlist.averages3", this.CreateTotalsPlayer(new CPlayerInfo("Averages", "procon.playerlist.averages3", 3, 0), 3)); this.m_dicPlayers.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.m_blPropogatingIndexChange = true; if (this.m_dicPlayers.ContainsKey(pbInfo.SoldierName) == true) { AdditionalPlayerInfo sapiAdditional; if (this.m_dicPlayers[pbInfo.SoldierName].Tag == null) { sapiAdditional = new AdditionalPlayerInfo(); sapiAdditional.m_strResolvedHostName = String.Empty; } else { sapiAdditional = (AdditionalPlayerInfo)this.m_dicPlayers[pbInfo.SoldierName].Tag; } sapiAdditional.m_pbInfo = pbInfo; this.m_dicPlayers[pbInfo.SoldierName].Tag = sapiAdditional; this.m_dicPlayers[pbInfo.SoldierName].Text = pbInfo.SlotID; //string strCountryCode = this.m_frmMain.GetCountryCode(pbInfo.Ip); if (this.m_frmMain.iglFlags.Images.ContainsKey(pbInfo.PlayerCountryCode + ".png") == true && this.m_dicPlayers[sapiAdditional.m_pbInfo.SoldierName].ImageIndex < 0) { this.m_dicPlayers[pbInfo.SoldierName].ImageIndex = this.m_frmMain.iglFlags.Images.IndexOfKey(pbInfo.PlayerCountryCode + ".png"); } this.RefreshSelectedPlayer(); } this.m_blPropogatingIndexChange = false; }
private void AddTotalsPlayerDetails(int iTeamID, AdditionalPlayerInfo player) { if (this.m_dicPlayers.ContainsKey(String.Format("procon.playerlist.totals{0}", iTeamID)) == true) { string proconPlayerListTotals = String.Format("procon.playerlist.totals{0}", iTeamID), proconPlayerListAverages = String.Format("procon.playerlist.averages{0}", iTeamID); AdditionalPlayerInfo proconPlayerListTotalsObject = ((AdditionalPlayerInfo)this.m_dicPlayers[proconPlayerListTotals].Tag); ListViewItem proconPlayerListTotalsListItem = this.m_dicPlayers[proconPlayerListTotals], proconPlayerListAveragesListItem = this.m_dicPlayers[proconPlayerListAverages]; proconPlayerListTotalsObject.m_cpiPlayer.Kills += player.m_cpiPlayer.Kills; proconPlayerListTotalsObject.m_cpiPlayer.Deaths += player.m_cpiPlayer.Deaths; proconPlayerListTotalsObject.m_cpiPlayer.Score += player.m_cpiPlayer.Score; ; proconPlayerListTotalsObject.m_cpiPlayer.Ping += player.m_cpiPlayer.Ping; proconPlayerListTotalsObject.m_cpiPlayer.Rank += player.m_cpiPlayer.Rank; proconPlayerListTotalsObject.m_cpiPlayer.Kdr += (player.m_cpiPlayer.Deaths > 0 ? (float)player.m_cpiPlayer.Kills / (float)player.m_cpiPlayer.Deaths : player.m_cpiPlayer.Kills); proconPlayerListTotalsObject.m_cpiPlayer.SquadID++; if (player.m_spawnedInventory != null) { proconPlayerListTotalsObject.AddKitCount(player.m_spawnedInventory.Kit); } } }
private ListViewItem CreatePlayer(CPlayerInfo cpiPlayer) { ListViewItem lviNewPlayer = new ListViewItem(""); lviNewPlayer.Name = cpiPlayer.SoldierName; lviNewPlayer.Tag = null; lviNewPlayer.UseItemStyleForSubItems = true; AdditionalPlayerInfo sapiAdditional = new AdditionalPlayerInfo(); sapiAdditional.m_cpiPlayer = cpiPlayer; sapiAdditional.m_strResolvedHostName = String.Empty; lviNewPlayer.Tag = sapiAdditional; ListViewItem.ListViewSubItem lviTags = new ListViewItem.ListViewSubItem(); lviTags.Name = "tags"; lviTags.Text = cpiPlayer.ClanTag; lviNewPlayer.SubItems.Add(lviTags); ListViewItem.ListViewSubItem lviTagsName = new ListViewItem.ListViewSubItem(); lviTagsName.Name = "soldiername"; lviTagsName.Text = cpiPlayer.SoldierName; lviNewPlayer.SubItems.Add(lviTagsName); if (this.m_prcClient != null && this.m_prcClient.Game != null && this.m_prcClient.Game.HasSquads == true) { ListViewItem.ListViewSubItem lviSquad = new ListViewItem.ListViewSubItem(); lviSquad.Name = "squad"; if (cpiPlayer.SquadID != uscPlayerListPanel.INT_NEUTRAL_SQUAD) { lviSquad.Text = this.m_clocLanguage.GetLocalized("global.Squad" + cpiPlayer.SquadID.ToString(), null); } lviNewPlayer.SubItems.Add(lviSquad); } ListViewItem.ListViewSubItem lviKit = new ListViewItem.ListViewSubItem(); lviKit.Name = "kit"; lviKit.Text = String.Empty; lviNewPlayer.SubItems.Add(lviKit); ListViewItem.ListViewSubItem lviScore = new ListViewItem.ListViewSubItem(); lviScore.Name = "score"; lviScore.Text = cpiPlayer.Score.ToString(); lviNewPlayer.SubItems.Add(lviScore); ListViewItem.ListViewSubItem lviKills = new ListViewItem.ListViewSubItem(); lviKills.Name = "kills"; lviKills.Tag = (Double)cpiPlayer.Kills; lviKills.Text = cpiPlayer.Kills.ToString(); lviNewPlayer.SubItems.Add(lviKills); ListViewItem.ListViewSubItem lviDeaths = new ListViewItem.ListViewSubItem(); lviDeaths.Name = "deaths"; lviDeaths.Tag = (Double)cpiPlayer.Deaths; lviDeaths.Text = cpiPlayer.Deaths.ToString(); lviNewPlayer.SubItems.Add(lviDeaths); ListViewItem.ListViewSubItem lviKDr = new ListViewItem.ListViewSubItem(); lviKDr.Name = "kdr"; lviKDr.Text = cpiPlayer.Deaths > 0 ? String.Format("{0:0.00}", (Double)cpiPlayer.Kills / (Double)cpiPlayer.Deaths) : String.Format("{0:0.00}", (Double)cpiPlayer.Kills); lviNewPlayer.SubItems.Add(lviKDr); ListViewItem.ListViewSubItem lviPing = new ListViewItem.ListViewSubItem(); lviPing.Name = "ping"; lviPing.Text = cpiPlayer.Ping.ToString(); lviNewPlayer.SubItems.Add(lviPing); ListViewItem.ListViewSubItem lviRank = new ListViewItem.ListViewSubItem(); lviRank.Name = "rank"; lviRank.Text = cpiPlayer.Rank.ToString(); lviNewPlayer.SubItems.Add(lviRank); return lviNewPlayer; }
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.m_strResolvedHostName = String.Empty; sapiInfo.m_pbInfo = null; sapiInfo.m_cpiPlayer = new CPlayerInfo("", String.Empty, iTeamID, 0); lviPlaceHolder.Tag = sapiInfo; lviPlaceHolder.Group = lsvList.Groups[iTeamID]; return lviPlaceHolder; }
private void AddTotalsPlayerDetails(int iTeamID, AdditionalPlayerInfo player) { if (this.m_dicPlayers.ContainsKey(String.Format("procon.playerlist.totals{0}", iTeamID)) == true) { ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Kills += player.m_cpiPlayer.Kills; ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Deaths += player.m_cpiPlayer.Deaths; ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Score += player.m_cpiPlayer.Score; ; ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Ping += player.m_cpiPlayer.Ping; ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Kdr += (player.m_cpiPlayer.Deaths > 0 ? (float)player.m_cpiPlayer.Kills / (float)player.m_cpiPlayer.Deaths : player.m_cpiPlayer.Kills); ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.SquadID++; if (player.m_spawnedInventory != null) { ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).AddKitCount(player.m_spawnedInventory.Kit); } this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["kills"].Text = ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Kills.ToString(); this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["deaths"].Text = ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Deaths.ToString(); this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["score"].Text = ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Score.ToString(); //this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["ping"].Text = ((SAdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Ping.ToString(); this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["kdr"].Text = String.Format("{0:0.00}", ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Kdr); this.m_dicPlayers[String.Format("procon.playerlist.averages{0}", iTeamID)].SubItems["kills"].Text = String.Format("{0:0.00}", (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Kills / (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.SquadID); this.m_dicPlayers[String.Format("procon.playerlist.averages{0}", iTeamID)].SubItems["deaths"].Text = String.Format("{0:0.00}", (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Deaths / (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.SquadID); this.m_dicPlayers[String.Format("procon.playerlist.averages{0}", iTeamID)].SubItems["score"].Text = String.Format("{0:0.00}", (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Score / (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.SquadID); this.m_dicPlayers[String.Format("procon.playerlist.averages{0}", iTeamID)].SubItems["ping"].Text = String.Format("{0:0}", (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Ping / (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.SquadID); this.m_dicPlayers[String.Format("procon.playerlist.averages{0}", iTeamID)].SubItems["kdr"].Text = String.Format("{0:0.00}", ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.Kdr / (float)((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).m_cpiPlayer.SquadID); int mostUsedKitCount = 0; Kits mostUsedKit = Kits.None; List<string> kitTotals = new List<string>(); foreach (KeyValuePair<Kits, int> kitCount in ((AdditionalPlayerInfo)this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].Tag).KitCounter) { if (kitCount.Value > mostUsedKitCount) { mostUsedKitCount = kitCount.Value; mostUsedKit = kitCount.Key; } kitTotals.Add(String.Format("{0}{1}", kitCount.Value, this.m_clocLanguage.GetLocalized(String.Format("global.Kits.{0}.Short", kitCount.Key.ToString())))); } this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["kit"].Text = String.Join(",", kitTotals.ToArray()); this.m_dicPlayers[String.Format("procon.playerlist.averages{0}", iTeamID)].SubItems["kit"].Text = this.m_clocLanguage.GetLocalized(String.Format("global.Kits.{0}", mostUsedKit.ToString())); //this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["kills"].Tag = (int)(this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["kills"].Tag) + cpiPlayer.Kills; //this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["deaths"].Tag = (int)(this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["deaths"].Tag) + cpiPlayer.Deaths; //this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["score"].Tag = (int)(this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["score"].Tag) + cpiPlayer.Score; //this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["ping"].Tag = (int)(this.m_dicPlayers[String.Format("procon.playerlist.totals{0}", iTeamID)].SubItems["ping"].Tag) + cpiPlayer.Ping; } }