Beispiel #1
0
        /************************************************************************************/
        protected static void AppendItemInfo(FlexStringBuilder ThisBuilder, int iBulletNumber, Item ThisItem)
        {
            ThisBuilder.AppendedLinePrefix = "   ";
            if (!ThisItem.IsValid)
            {
                ThisBuilder.AppendLine("{0}. Item not valid.", iBulletNumber);
                return;
            }

            ThisBuilder.AppendLine("{0}. \"{1}\"",
                                   iBulletNumber,
                                   ThisItem.Name);
            ThisBuilder.AppendedLinePrefix = "      ";

            ThisBuilder.AppendLine("Tier: {0}", ThisItem.Tier);
            ThisBuilder.AppendLine("Description: {0}", ThisItem.Description);
            ThisBuilder.AppendLine("Level: {0}", ThisItem.Level);
            //ThisBuilder.AppendLine("Link ID: {0}", ThisItem.LinkID);

            List <string> astrFlags = new List <string>();

            if (ThisItem.Lore)
            {
                astrFlags.Add("Lore");
            }
            if (ThisItem.LoreOnEquip)
            {
                astrFlags.Add("LoreOnEquip");
            }
            if (ThisItem.NoTrade)
            {
                astrFlags.Add("NoTrade");
            }
            if (ThisItem.Heirloom)
            {
                astrFlags.Add("Heirloom");
            }
            if (ThisItem.NoValue)
            {
                astrFlags.Add("NoValue");
            }
            if (ThisItem.NoZone)
            {
                astrFlags.Add("NoZone");
            }
            if (ThisItem.Attuneable)
            {
                astrFlags.Add("Attunable");
            }
            if (ThisItem.Attuned)
            {
                astrFlags.Add("Attuned");
            }

            string strFlags = string.Join(", ", astrFlags.ToArray());

            ThisBuilder.AppendLine("Flags: {0}", strFlags);

            return;
        }
        /************************************************************************************/
        protected void TrackNearestActors(int iActorCount, bool bDumpActorInfo, string strSearchSubstring)
        {
            TrackType eTrackType = TrackType.None;

            if (strSearchSubstring == "named")
            {
                eTrackType = TrackType.Named;
            }
            else if (strSearchSubstring == "resource")
            {
                eTrackType = TrackType.Resource;
            }
            else if (string.IsNullOrEmpty(strSearchSubstring.Trim()))
            {
                eTrackType = TrackType.EmptyName;
            }

            List <Actor> ActorList          = new List <Actor>();
            int          iValidActorCount   = 0;
            int          iInvalidActorCount = 0;

            foreach (Actor ThisActor in EnumActors())
            {
                bool bAddThisActor = false;

                switch (eTrackType)
                {
                case TrackType.Named:
                {
                    if (ThisActor.IsNamed && !ThisActor.IsAPet)
                    {
                        bAddThisActor = true;
                    }
                    break;
                }

                case TrackType.EmptyName:
                {
                    if (string.IsNullOrEmpty(ThisActor.Name.Trim()))
                    {
                        bAddThisActor = true;
                    }
                    break;
                }

                case TrackType.Resource:
                {
                    if (ThisActor.Type == "Resource")
                    {
                        bAddThisActor = true;
                    }
                    break;
                }

                default:
                {
                    string strActorName = ThisActor.Name.ToLower();
                    if (strActorName.Contains(strSearchSubstring))
                    {
                        bAddThisActor = true;
                    }
                    break;
                }
                }

                if (bAddThisActor)
                {
                    ActorList.Add(ThisActor);
                    iValidActorCount++;
                }
                else
                {
                    iInvalidActorCount++;
                }
            }

            if (ActorList.Count == 0)
            {
                Program.Log("Unable to find actor \"{0}\".", strSearchSubstring);
                RunCommand("/waypoint_cancel");
                return;
            }

            ActorList.Sort(new ActorDistanceComparer());

            /// Run the waypoint on the nearest actor.
            RunCommand("/waypoint {0}, {1}, {2}", ActorList[0].X, ActorList[0].Y, ActorList[0].Z);

            if (bDumpActorInfo)
            {
                FlexStringBuilder SummaryBuilder = new FlexStringBuilder();
                SummaryBuilder.AppendLine("{0} actor(s) found ({1} invalid) using \"{2}\".", iValidActorCount, iInvalidActorCount, strSearchSubstring);

                /// Now display the individual results.
                for (int iIndex = 0; iIndex < ActorList.Count && iIndex < 5; iIndex++)
                {
                    Actor ThisActor = ActorList[iIndex];
                    AppendActorInfo(SummaryBuilder, iIndex + 1, ThisActor);
                }

                Program.Log(SummaryBuilder.ToString());
            }
            return;
        }
Beispiel #3
0
        /************************************************************************************/
        protected static void AppendActorInfo(FlexStringBuilder ThisBuilder, int iBulletNumber, Actor ThisActor)
        {
            ThisBuilder.AppendedLinePrefix = "   ";
            if (!ThisActor.IsValid)
            {
                ThisBuilder.AppendLine("{0}. Actor not valid.", iBulletNumber);
                return;
            }

            ThisBuilder.AppendLine("{0}. \"{1}\" ({2}) found {3:0.00} meters away at ({4:0.00}, {5:0.00}, {6:0.00})",
                                   iBulletNumber,
                                   ThisActor.Name,
                                   ThisActor.ID,
                                   ThisActor.Distance,
                                   ThisActor.X,
                                   ThisActor.Y,
                                   ThisActor.Z);
            ThisBuilder.AppendedLinePrefix = "      ";

            string strFullName = ThisActor.Name;

            if (!string.IsNullOrEmpty(ThisActor.LastName))
            {
                strFullName += " " + ThisActor.LastName;
            }
            if (!string.IsNullOrEmpty(ThisActor.SuffixTitle))
            {
                strFullName += " " + ThisActor.SuffixTitle;
            }
            if (!string.IsNullOrEmpty(ThisActor.Guild))
            {
                strFullName += " <" + ThisActor.Guild + ">";
            }

            ThisBuilder.AppendLine("Full Name: {0}", strFullName);

            ThisBuilder.AppendLine("Type: {0}", ThisActor.Type);
            ThisBuilder.AppendLine("Class: {0}", ThisActor.Class);
            ThisBuilder.AppendLine("Race: {0}", ThisActor.Race);
            ThisBuilder.AppendLine("Level(Effective): {0}({1})", ThisActor.Level, ThisActor.EffectiveLevel);
            ThisBuilder.AppendLine("Encounter Size: {0}", ThisActor.EncounterSize);
            ThisBuilder.AppendLine("Collision Radius: {0}", ThisActor.CollisionRadius);
            ThisBuilder.AppendLine("Speed: {0}%", ThisActor.Speed);

            List <string> astrFlags = new List <string>();

            if (ThisActor.IsLinkdead)
            {
                astrFlags.Add("IsLinkdead");
            }

            if (ThisActor.IsSolo)
            {
                astrFlags.Add("IsSolo");
            }
            else if (ThisActor.IsHeroic)
            {
                astrFlags.Add("IsHeroic");
            }
            else if (ThisActor.IsEpic)
            {
                astrFlags.Add("IsEpic");
            }

            if (ThisActor.IsMerchant)
            {
                astrFlags.Add("IsMerchant");
            }
            if (ThisActor.IsBanker)
            {
                astrFlags.Add("IsBanker");
            }
            if (ThisActor.IsInvis)
            {
                astrFlags.Add("IsInvis");
            }
            if (ThisActor.IsStealthed)
            {
                astrFlags.Add("IsStealthed");
            }
            if (ThisActor.IsDead)
            {
                astrFlags.Add("IsDead");
            }
            if (ThisActor.IsFD)
            {
                astrFlags.Add("IsFD");
            }
            if (ThisActor.IsAggro)
            {
                astrFlags.Add("IsAggro");
            }
            if (ThisActor.IsLocked)
            {
                astrFlags.Add("IsLocked");
            }
            if (ThisActor.IsEncounterBroken)
            {
                astrFlags.Add("IsEncounterBroken");
            }
            if (ThisActor.IsNamed)
            {
                astrFlags.Add("IsNamed");
            }
            if (ThisActor.IsAPet)
            {
                astrFlags.Add("IsAPet");
            }
            if (ThisActor.IsMyPet)
            {
                astrFlags.Add("IsMyPet");
            }
            if (ThisActor.IsChest)
            {
                astrFlags.Add("IsChest");
            }

            if (ThisActor.IsIdle)
            {
                astrFlags.Add("IsIdle");
            }
            else if (ThisActor.IsBackingUp)
            {
                astrFlags.Add("IsBackingUp");
            }
            else if (ThisActor.IsStrafingLeft)
            {
                astrFlags.Add("IsStrafingLeft");
            }
            else if (ThisActor.IsStrafingRight)
            {
                astrFlags.Add("IsStrafingRight");
            }

            if (ThisActor.InCombatMode)
            {
                astrFlags.Add("InCombatMode");
            }
            else if (ThisActor.IsCrouching)
            {
                astrFlags.Add("IsCrouching");
            }
            else if (ThisActor.IsSitting)
            {
                astrFlags.Add("IsSitting");
            }

            if (ThisActor.IsSprinting)
            {
                astrFlags.Add("IsSprinting");
            }
            else if (ThisActor.IsWalking)
            {
                astrFlags.Add("IsWalking");
            }
            else if (ThisActor.IsRunning)
            {
                astrFlags.Add("IsRunning");
            }

            if (ThisActor.OnCarpet)
            {
                astrFlags.Add("OnCarpet");
            }
            else if (ThisActor.OnHorse)
            {
                astrFlags.Add("OnHorse");
            }
            else if (ThisActor.OnGriffin)
            {
                astrFlags.Add("OnGriffin");
            }
            else if (ThisActor.OnGriffon)
            {
                astrFlags.Add("OnGriffon");
            }

            string strFlags = string.Join(", ", astrFlags.ToArray());

            ThisBuilder.AppendLine("Flags: {0}", strFlags);
            return;
        }