Esempio n. 1
0
        /*
        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();
                }
            });
        }
Esempio n. 2
0
        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;
            });
        }
Esempio n. 3
0
        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;
        }
Esempio n. 4
0
        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);
                    }
                }
            }
        }
Esempio n. 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.ResolvedHostName = String.Empty;
            sapiInfo.Punkbuster = null;
            sapiInfo.Player = new CPlayerInfo("", String.Empty, iTeamID, 0);
            lviPlaceHolder.Tag = sapiInfo;

            lviPlaceHolder.Group = lsvList.Groups[iTeamID];

            return lviPlaceHolder;
        }