示例#1
0
        public int AddAnnounce(string message, Color?color = null)
        {
            var announce = new AutoAnnounceMessage {
                Color = color?.ToArgb(), Message = message
            };

            announce.AssignIdentifier();

            m_announces.Add(announce.Id, announce);

            WorldServer.Instance.IOTaskPool.ExecuteInContext(() => Database.Insert(announce));

            return(announce.Id);
        }
示例#2
0
        private static void SendAnnounce(AutoAnnounceMessage announce)
        {
            var color = announce.Color != null ? (Color?)Color.FromArgb(announce.Color.Value) : null;

            WorldServer.Instance.IOTaskPool.AddMessage(() =>
                                                       World.Instance.ForEachCharacter(character =>
            {
                var msg = character.IsGameMaster() ? $"(ANNOUNCE)[ID = {announce.Id}] {announce.Message}" : $"(ANNOUNCE) {announce.Message}";

                if (color != null)
                {
                    character.SendServerMessage(msg, color.Value);
                }
                else
                {
                    character.SendServerMessage(msg);
                }
            }));
        }