More detailed information about it, should anyone figure out they want to implement support for it:
Zippy wrote:[Flags]
public enum RazorFeatures : ulong
{
None = 0,
FilterWeather = 1 << 0, // Weather Filter
FilterLight = 1 << 1, // Light Filter
SmartTarget = 1 << 2, // Smart Last Target
RangedTarget = 1 << 3, // Range Check Last Target
AutoOpenDoors = 1 << 4, // Automatically Open Doors
DequipOnCast = 1 << 5, // Unequip Weapon on spell cast
AutoPotionEquip = 1 << 6, // Un/Re-equip weapon on potion use
PoisonedChecks = 1 << 7, // Block heal If poisoned/Macro IIf Poisoned condition/Heal or Cure self
LoopedMacros = 1 << 8, // Disallow Looping macros, For loops, and macros that call other macros
UseOnceAgent = 1 << 9, // The use once agent
RestockAgent = 1 << 10,// The restock agent
SellAgent = 1 << 11,// The sell agent
BuyAgent = 1 << 12,// The buy agent
PotionHotkeys = 1 << 13,// All potion hotkeys
RandomTargets = 1 << 14,// All random target hotkeys (Not target next, last target, target self)
ClosestTargets = 1 << 15,// All closest target hotkeys
OverheadHealth = 1 << 16,// Health and Mana/Stam messages shown over player's heads
All = 0xFFFFFFFFFFFFFFFF // Every feature possible
}
Razor listens for packet: 0xF0 [length 0x0008] 0xFE [8 bytes for razor feature bits from the enum]
when it gets this, if "negotiate" is checked, it responds with
0xF0 0x00 0x04 0xFF
thats all. pretty simple
The recommended RunUO approach is to disconnect all client who don't respond.
That would, of course, require that everyone connecting to the server is running Razor.