TargetNext

Datum: 23/11/2014 23:13:49

Staženo: 383x

Popis:


Hodnocení: 3.6/10 (80 hlasy)

Download file:cs

Příkazy:

  • ,targetnextenemy "params graphic[] models"
  • ,targetnexthumanenemy
  • ,targetnexthuman "params notoriety[] notoriety"
  • ,targetnext
  • ,targetnext "notoriety[] notoriety" " graphic[] models"
  • ,settarget
  • ,settarget "string name" " ushort color"
  • ,settarget "uocharacter character"
  • ,settarget "uocharacter character" " string name" " ushort color"
  • ,canceltarget
  • ,deletetarget

Kód:

using System;
using System.Collections.Generic;
using Phoenix.WorldData;

namespace Phoenix.Plugins
{
    public static partial class Commands
    {
        private const int m_TargetNext_MaxDistance = 18;
        private const string m_TargetObject = "currentTarget";
        public static readonly Dictionary<Graphic, UOColor> IgnoreList = new Dictionary<Graphic, UOColor>();
        public static bool IgnoreSummons;
        private static UOCharacter m_TargetNext_LastCharacter;

        [Command]
        public static void TargetNextEnemy(params Graphic[] models) { TargetNext(new[] { Notoriety.Enemy, Notoriety.Murderer, Notoriety.Criminal }, models); }

        [Command]
        public static void TargetNextHumanEnemy() { TargetNextHuman(Notoriety.Enemy, Notoriety.Murderer, Notoriety.Criminal); }

        [Command]
        public static void TargetNextHuman(params Notoriety[] notoriety) { TargetNext(notoriety, new Graphic[] { 0x0191, 0x0190 }); }

        [Command]
        public static void TargetNext()
        {
            TargetNext(
                new[]
                {
                    Notoriety.Criminal, Notoriety.Enemy, Notoriety.Guild, Notoriety.Innocent, Notoriety.Invulnerable,
                    Notoriety.Murderer, Notoriety.Neutral, Notoriety.Unknown
                }, new Graphic[] { 0xFFFF });
        }

        [Command]
        public static void TargetNext(Notoriety[] notoriety, Graphic[] models)
        {
            bool lastTargetFound = false;
            UOCharacter outputCharacter = null;
            foreach (UOCharacter character in World.Characters)
            {
                if (character == World.Player)
                    continue;
                if (IgnoreSummons && IgnoreList.ContainsKey(character.Model))
                    if (IgnoreList.ContainsValue(character.Color))
                        continue;
                if (outputCharacter == null && character.Distance <= m_TargetNext_MaxDistance &&
                    Array.IndexOf(models, character.Model) != -1 && Array.IndexOf(notoriety, character.Notoriety) != -1)
                    outputCharacter = character;
                if (character == m_TargetNext_LastCharacter)
                {
                    lastTargetFound = true;
                    continue;
                }
                if (lastTargetFound && character.Distance <= m_TargetNext_MaxDistance &&
                    Array.IndexOf(models, character.Model) != -1 && Array.IndexOf(notoriety, character.Notoriety) != -1)
                {
                    outputCharacter = character;
                    break;
                }
            }
            m_TargetNext_LastCharacter = outputCharacter;
            SetTarget(outputCharacter);
        }

        [Command]
        public static void SetTarget() { SetTarget(World.GetCharacter(UIManager.TargetObject())); }

        [Command]
        public static void SetTarget(string name, ushort color) { SetTarget(World.GetCharacter(UIManager.TargetObject()), name, color); }

        [Command]
        public static void SetTarget(UOCharacter character) { SetTarget(character, m_TargetObject, 0x41); }

        [Command]
        public static void SetTarget(UOCharacter character, string name, ushort color)
        {
            if (character != null && character.Exist)
            {
                Aliases.SetObject(name, character.Serial);
                character.Print(color, "!" + name + "!");
                if (character.MaxHits < 0)
                    character.RequestStatus();
                else
                    character.Print(Env.ConsoleColor, "{0} [{1}/{2}]", character.Name, character.Hits, character.MaxHits);
                UO.PrintInformation("Target set to '{0}'", character.Name);
            }
            else
                UO.PrintError("Target is not valid");
        }

        [Command]
        public static void CancelTarget() { UIManager.Reset(); }

        [Command]
        public static void DeleteTarget()
        {
            Aliases.SetObject(m_TargetObject, Serial.Invalid);
            UO.PrintInformation("CurrenTarget removed.");
        }
    }
}
Korbaciky
12 May 2026

Explore thrilling ฝากถอนไม่มีขั้นต่ำ entertainment and immersive gameplay features, while learning practical advice that supports ออโต้พีจี smarter and more confident play.

Nový komentář