Exemple #1
0
        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();
        }