///////////////////////////////////////////////////////////////////////// // // www.ultima.smoce.net // Name: BarStatus // ///////////////////////////////////////////////////////////////////////// using Phoenix; using Phoenix.WorldData; using System; using System.Collections.Generic; using System.Text; using System.Diagnostics; using Phoenix.Configuration; using Phoenix.Communication; using Scripts.DarkParadise; namespace Scripts.barustatus { public class statuspack { public static List inList = new List(); [ServerMessageHandler(0x11)] public CallbackResult OnNextTarget(byte[] data, CallbackResult prevResult) { PacketReader reader = new PacketReader(data); if (reader.ReadByte() != 0x11) throw new Exception("Invalid packet passed to OnNextTarget method."); ushort blockSize = reader.ReadUInt16(); uint serial = reader.ReadUInt32(); if (serial == Aliases.Self || inList.Contains(serial)) { return CallbackResult.Normal; } Aliases.SetObject("laststatus", serial); UOCharacter cil = World.GetCharacter(serial); if (cil.MaxHits == -1) { cil.RequestStatus(); return CallbackResult.Normal; } else { ushort color = 0; String not = cil.Notoriety.ToString(); switch (not) { case "Criminal": color = 0x0026; break; case "Enemy": color = 0x0031; break; case "Guild": color = 0x0B50; break; case "Innocent": color = 0x0058; break; case "Murderer": color = 0x0026; break; case "Neutral": color = 0x03BC; break; case "Unknown": color = 0x03BC; break; default: color = Phoenix.Env.DefaultInfoColor; break; } UO.Print(color, "{0} : {1}/{2} ({3})", cil.Name, cil.Hits, cil.MaxHits, cil.Distance); return CallbackResult.Normal; } } } }