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); }
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); } })); }