예제 #1
0
        private void Show_Info(GamePlayer player, GameClient client)
        {
            var text = new List<string>();
            text.Add(" ");
            text.Add("PLAYER INFORMATION (Client # " + player.Client.SessionID + ", " + player.GetType().FullName + ")");
            text.Add("  - Name Lastname : " + player.Name + " " + player.LastName);
            text.Add("  - Realm Level Class : " + GlobalConstants.RealmToName(player.Realm) + " " + player.Level + " " + player.CharacterClass.Name + " (" + player.CharacterClass.ID + ")");
            text.Add("  - Guild : " + player.GuildName + " " + (player.GuildRank != null ? "Rank: " + player.GuildRank.RankLevel.ToString() : ""));
            text.Add("  - XPs/RPs/BPs : " + player.Experience + " xp, " + player.RealmPoints + " rp, " + player.BountyPoints + " bp");

            if (player.DamageRvRMemory > 0)
                text.Add("  - Damage RvR Memory: " + player.DamageRvRMemory);

            if (player.Champion)
            {
                text.Add("  - Champion :  CL " + player.ChampionLevel + ", " + player.ChampionExperience + " clxp");

                string activeBags = "None";
                if (player.ActiveSaddleBags != 0)
                {
                    if (player.ActiveSaddleBags == (byte)GamePlayer.eHorseSaddleBag.All)
                    {
                        activeBags = "All";
                    }
                    else
                    {
                        activeBags = "";

                        if ((player.ActiveSaddleBags & (byte)GamePlayer.eHorseSaddleBag.LeftFront) > 0)
                        {
                            if (activeBags != "")
                                activeBags += ", ";

                            activeBags += "LeftFront";
                        }
                        if ((player.ActiveSaddleBags & (byte)GamePlayer.eHorseSaddleBag.RightFront) > 0)
                        {
                            if (activeBags != "")
                                activeBags += ", ";

                            activeBags += "RightFront";
                        }
                        if ((player.ActiveSaddleBags & (byte)GamePlayer.eHorseSaddleBag.LeftRear) > 0)
                        {
                            if (activeBags != "")
                                activeBags += ", ";

                            activeBags += "LeftRear";
                        }
                        if ((player.ActiveSaddleBags & (byte)GamePlayer.eHorseSaddleBag.RightRear) > 0)
                        {
                            if (activeBags != "")
                                activeBags += ", ";

                            activeBags += "RightRear";
                        }
                    }
                }

                text.Add(string.Format("  - ActiveSaddleBags : {0} (0x{1:X2})", activeBags, player.ActiveSaddleBags));
            }
            else
            {
                text.Add("  - Champion :  Not Started");
            }
            if (player.MLGranted)
            {
                text.Add("  - Master Levels :  ML " + player.MLLevel + ", " + player.MLExperience + " mlxp , MLLine " + player.MLLine);
            }
            else
            {
                text.Add("  - Master Levels :  Not Started");
            }
            text.Add("  - Craftingskill : " + player.CraftingPrimarySkill + "");
            text.Add("  - Money : " + Money.GetString(player.GetCurrentMoney()) + "");
            text.Add("  - Model ID : " + player.Model);
            text.Add("  - AFK Message: " + player.TempProperties.getProperty<string>(GamePlayer.AFK_MESSAGE) + "");
            text.Add(" ");
            text.Add("HOUSE INFORMATION ");
            text.Add("  - Personal House : " + HouseMgr.GetHouseNumberByPlayer(player));
            if (player.CurrentHouse != null && player.CurrentHouse.HouseNumber > 0)
                text.Add("  - Current House : " + player.CurrentHouse.HouseNumber);
            text.Add("  - In House : " + player.InHouse);
            text.Add(" ");
            text.Add("ACCOUNT INFORMATION ");
            text.Add("  - Account Name & IP : " + player.Client.Account.Name + " from " + player.Client.Account.LastLoginIP);
            text.Add("  - Priv. Level : " + player.Client.Account.PrivLevel);
            text.Add("  - Client Version: " + player.Client.Account.LastClientVersion);
            text.Add(" ");
            text.Add("CHARACTER STATS ");

            String sCurrent = "";
            String sTitle = "";
            int cnt = 0;

            for (eProperty stat = eProperty.Stat_First; stat <= eProperty.Stat_Last; stat++, cnt++)
            {
                sTitle += GlobalConstants.PropertyToName(stat) + "/";
                sCurrent += player.GetModified(stat) + "/";
                if (cnt == 3)
                {
                    text.Add("  - Current stats " + sTitle + " : " + sCurrent);
                    sTitle = "";
                    sCurrent = "";
                }
            }
            text.Add("  - Current stats " + sTitle + " : " + sCurrent);

            sCurrent = "";
            sTitle = "";
            cnt = 0;
            for (eProperty res = eProperty.Resist_First; res <= eProperty.Resist_Last; res++, cnt++)
            {
                sTitle += GlobalConstants.PropertyToName(res) + "/";
                sCurrent += player.GetModified(res) + "/";
                if (cnt == 2)
                {
                    text.Add("  - Current " + sTitle + " : " + sCurrent);
                    sCurrent = "";
                    sTitle = "";
                }
                if (cnt == 5)
                {
                    text.Add("  - Current " + sTitle + " : " + sCurrent);
                    sCurrent = "";
                    sTitle = "";
                }
            }
            text.Add("  - Current " + sTitle + " : " + sCurrent);

            text.Add("  - Maximum Health : " + player.MaxHealth);
            text.Add("  - Current AF and ABS : " + player.GetModified(eProperty.ArmorFactor) + " AF, " +
                     player.GetModified(eProperty.ArmorAbsorption) + " ABS");
            text.Add(" ");
            text.Add("SPECCING INFORMATIONS ");
            text.Add("  - Respecs availables : " + player.RespecAmountDOL + " dol, " + player.RespecAmountSingleSkill +
                     " single, " + player.RespecAmountAllSkill + " full");
            text.Add("  - Remaining spec. points : " + player.SkillSpecialtyPoints);
            sTitle = "  - Player specialisations : ";
            sCurrent = "";
            foreach (Specialization spec in player.GetSpecList())
            {
                sCurrent += spec.Name + " = " + spec.Level + " ; ";
            }
            text.Add(sTitle + sCurrent);

            client.Out.SendCustomTextWindow("PLAYER & ACCOUNT INFORMATION", text);
        }