TargetNext
Datum: 23/11/2014 23:13:49
Staženo: 383x
Popis:
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.");
}
}
}


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