public static void Broadcast(int hue, bool ascii, AccessLevel access, string text) { WorldBroadcastEventArgs e = new WorldBroadcastEventArgs(hue, ascii, access, text); EventSink.InvokeWorldBroadcast(e); hue = e.Hue; ascii = e.Ascii; text = e.Text; access = e.Access; if (string.IsNullOrWhiteSpace(text)) { return; } Packet p; if (ascii) { p = new AsciiMessage(Serial.MinusOne, -1, MessageType.Regular, hue, 3, "System", text); } else { p = new UnicodeMessage(Serial.MinusOne, -1, MessageType.Regular, hue, 3, "ENU", "System", text); } List <NetState> list = NetState.Instances; p.Acquire(); for (var index = 0; index < list.Count; index++) { NetState s = list[index]; if (s.Mobile != null && s.Mobile.AccessLevel >= access) { s.Send(p); } } p.Release(); NetState.FlushAll(); }