Пример #1
0
        /*
        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();
            }
        }
Пример #2
0
        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;
        }
Пример #3
0
        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);
                }
            }
        }
Пример #4
0
        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;
        }
Пример #5
0
        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;
        }
Пример #6
0
        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;
            }
        }