//存储私聊信息 public IEnumerator SaveMessage(Coroutine coroutine, ChatManager _this, int chatType, ulong fromCharacterId, string characterName, ChatMessageContent content, ulong ToCharacterId) { var msg = new DBChatMsg { FromId = fromCharacterId, Type = chatType, Content = content.Content, ToId = ToCharacterId, Name = characterName, SoundData = content.SoundData, Vip = content.Vip }; //缓存私聊 CharacterManager.Instance.ModifyVolatileData(ToCharacterId, DataCategory.ChatCharacter, oldData => { oldData.Chats.Add(msg); if (oldData.Chats.Count > 50) { oldData.Chats.RemoveAt(0); } return(oldData); }); yield break; }
//缓存世界频道内容 public void CacheWorldMessage(uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) { var Horn = new HornMessage { ServerId = serverId, ChatType = chatType, CharacterId = characterId, CharacterName = characterName, Content = content }; List <HornMessage> tempList; if (ChatManager.mCacheWorlds.TryGetValue(serverId, out tempList)) { if (tempList.Count > 20) { tempList.RemoveAt(0); } tempList.Add(Horn); } else { tempList = new List <HornMessage>(); ChatManager.mCacheWorlds[serverId] = tempList; tempList.Add(Horn); } }
public void SyncAllianceChatMessage(int chatType, ulong characterId, string characterName, ChatMessageContent content) { GameUtils.OnReceiveChatMsg(chatType, characterId, characterName, content); }
public static bool ToClinetMessage(ulong toCharacterId, int chatType, ulong fromCharacterId, string characterName, ChatMessageContent content) { return(mImpl.ToClinetMessage(toCharacterId, chatType, fromCharacterId, characterName, content)); }
//缓存世界频道内容 public static void CacheWorldMessage(uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) { mImpl.CacheWorldMessage(serverId, chatType, characterId, characterName, content); }
//世界聊天广播 public static void BroadcastServerIdMessage(uint ServerId, int chatType, ulong CharacterId, string characterName, ChatMessageContent content) { mImpl.BroadcastServerIdMessage(ServerId, chatType, CharacterId, characterName, content); }
public static void PushHornMessage(uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) { mImpl.PushHornMessage(serverId, chatType, characterId, characterName, content); }
public void SyncToListCityChatMessage(int chatType, ulong characterId, string characterName, ChatMessageContent content, string channelName) { GameUtils.OnReceiveChatMsg(chatType, characterId, characterName, content, channelName); }
public ChatChatMessageOutMessage(IAgentBase sender, int chatType, ChatMessageContent Content, ulong characterId) : base(sender, ServiceType.Chat, 5042) { Request = new __RPC_Chat_ChatChatMessage_ARG_int32_chatType_ChatMessageContent_Content_uint64_characterId__(); Request.ChatType = chatType; Request.Content = Content; Request.CharacterId = characterId; }
//存储私聊信息 public IEnumerator SaveMessage(Coroutine coroutine, int chatType, ulong fromCharacterId, string characterName, ChatMessageContent content, ulong ToCharacterId) { return(mImpl.SaveMessage(coroutine, this, chatType, fromCharacterId, characterName, content, ToCharacterId)); }
public ErrorCodes BroadcastAllServerMessage(int chatType, ulong characterId, string characterName, ChatMessageContent content) { foreach (var serverId in ChatManager.OpenedServerIdList) { ChatManager.BroadcastServerIdMessage((uint)serverId, chatType, characterId, characterName, content); } return(ErrorCodes.OK); }
public void BroadcastSceneChat(string content, int dictId) { string str = content; if (-1 != dictId) { str = GameUtils.GetDictionaryText(dictId); if (!string.IsNullOrEmpty(content)) { str = string.Format(str, content.Split('|')); } } var c = new ChatMessageContent(); c.Content = str; GameUtils.OnReceiveChatMsg((int)eChatChannel.Scene, 0uL, "", c); }
//世界聊天广播 public void BroadcastServerIdMessage(uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) { var id = (int)serverId; var tb = Table.GetServerName(id); if (tb != null) { id = tb.LogicID; } ChatServer.Instance.ServerControl.BroadcastWorldMessage((uint)id, chatType, characterId, characterName, content); }
//发消息给玩家 public bool ToClinetMessage(ulong toCharacterId, int chatType, ulong fromCharacterId, string characterName, ChatMessageContent content) { ChatCharacterProxy toCharacterProxy; if (ChatServer.Instance.ServerControl.Proxys.TryGetValue(toCharacterId, out toCharacterProxy)) { var chattoCharacterProxy = toCharacterProxy as ChatProxy; if (chattoCharacterProxy != null) { chattoCharacterProxy.SyncChatMessage(chatType, fromCharacterId, characterName, content); } return(true); } return(false); }
public void PushHornMessage(uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) { if (ChatManager.HornTrigger == null) { BroadcastServerIdMessage(serverId, chatType, characterId, characterName, content); CreateHornTrigger(); } else { var Horn = new HornMessage { ServerId = serverId, ChatType = chatType, CharacterId = characterId, CharacterName = characterName, Content = content }; ChatManager.Horns.Add(Horn); } }
private IEnumerator ConnectCoroutine(AsyncResult <int> result) { if (Instance.Connected) { IsReconnecting = false; Logger.Debug("Connect to [" + ServerAddress + "] succeed!"); } else { yield return(Instance.StartAndWaitConnect(TimeSpan.FromSeconds(3))); if (Instance.Connected) { Logger.Debug("Connect to [" + ServerAddress + "] succeed!"); IsReconnecting = false; } else { yield return(Instance.StartAndWaitConnect(TimeSpan.FromSeconds(3))); if (Instance.Connected) { Logger.Debug("Connect to [" + ServerAddress + "] succeed!"); IsReconnecting = false; } else { yield return(Instance.StartAndWaitConnect(TimeSpan.FromSeconds(3))); if (Instance.Connected) { Logger.Debug("Connect to [" + ServerAddress + "] succeed!"); IsReconnecting = false; } else { Logger.Debug("Connect to [" + ServerAddress + "] failed!"); result.Result = 0; yield return(0); yield break; } } } } //SendReconnectMessageToGate(); var game = Game.Instance; var msg1 = Instance.QueryServerTimezone(0); yield return(msg1.SendAndWaitUntilDone()); if (msg1.State == MessageState.Reply && msg1.ErrorCode == 0) { var now = DateTime.Now; var diff = (int)Math.Round((now - DateTime.Now).TotalMinutes); game.ServerZoneDiff = TimeSpan.FromMinutes(msg1.Response - diff); if (TimeZone.CurrentTimeZone.IsDaylightSavingTime(now)) { game.ServerZoneDiff = game.ServerZoneDiff.Add(TimeSpan.FromHours(1)); } } var msg = Instance.SyncTime(0); var watch = new Stopwatch(); watch.Start(); yield return(msg.SendAndWaitUntilDone()); watch.Stop(); if (msg.State == MessageState.Reply) { if (msg.ErrorCode == (int)ErrorCodes.OK) { game.ServerTimeDiff = (DateTime.Now - Extension.FromServerBinary((long)msg.Response)) - TimeSpan.FromMilliseconds(watch.ElapsedMilliseconds / 2); var now = game.ServerTime; var targetTime = new DateTime(now.Year, now.Month, now.Day, 0, 0, 10).AddDays(1); //半夜十二点重置某些状态 if (ZeroReplyTrigger != null) { TimeManager.Instance.DeleteTrigger(ZeroReplyTrigger); ZeroReplyTrigger = null; } ZeroReplyTrigger = TimeManager.Instance.CreateTrigger(targetTime, () => { game.LoginTime = game.ServerTime; PlayerDataManager.Instance.ApplyAcitvityCompensate(); var cl = UIManager.Instance.GetController(UIConfig.PlayFrame); if (cl != null) { cl.CallFromOtherClass("RefreshCells", null); } }, TimeSpan.FromDays(1).Milliseconds); //战场双倍提示 var time = Table.GetClientConfig(282).ToInt(); var hour = time / 100; var min = time % 100; targetTime = new DateTime(now.Year, now.Month, now.Day, hour, min, 0); if (targetTime < now) { targetTime = targetTime.AddDays(1); } if (ZeroBattleReplyTrigger != null) { TimeManager.Instance.DeleteTrigger(ZeroBattleReplyTrigger); ZeroBattleReplyTrigger = null; } ZeroBattleReplyTrigger = TimeManager.Instance.CreateTrigger(targetTime, () => { TimeManager.Instance.DeleteTrigger(ZeroBattleReplyTrigger); ZeroBattleReplyTrigger = null; var content = new ChatMessageContent(); content.Content = GameUtils.GetDictionaryText(220455); GameUtils.OnReceiveChatMsg((int)eChatChannel.SystemScroll, 0, string.Empty, content); }, TimeSpan.FromDays(1).Milliseconds); result.Result = 1; yield break; } UIManager.Instance.ShowNetError(msg.ErrorCode); } result.Result = 0; yield return(0); }
public BroadcastWorldMessageOutMessage(IAgentBase sender, int chatType, ulong characterId, string characterName, ChatMessageContent content) : base(sender, ServiceType.Chat, 5047) { Request = new __RPC_Chat_BroadcastWorldMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__(); Request.ChatType = chatType; Request.CharacterId = characterId; Request.CharacterName = characterName; Request.Content = content; }
public void BroadcastWorldMessage(int chatType, ulong characterId, string characterName, ChatMessageContent content) { GameUtils.OnReceiveChatMsg(chatType, characterId, characterName, content); }
public static ChatChatMessageOutMessage ChatChatMessage(this IChat9xServiceInterface agent, int chatType, ChatMessageContent Content, ulong characterId) { return(new ChatChatMessageOutMessage(agent, chatType, Content, characterId)); }
public static ErrorCodes BroadcastAllServerMessage(int chatType, ulong characterId, string characterName, ChatMessageContent content) { return(mImpl.BroadcastAllServerMessage(chatType, characterId, characterName, content)); }
public static SendHornMessageOutMessage SendHornMessage(this IChat9xServiceInterface agent, uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) { return(new SendHornMessageOutMessage(agent, serverId, chatType, characterId, characterName, content)); }
public SyncToListCityChatMessageOutMessage(IAgentBase sender, int chatType, ulong characterId, string characterName, ChatMessageContent Content, string ChannelName) : base(sender, ServiceType.Chat, 5056) { Request = new __RPC_Chat_SyncToListCityChatMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_Content_string_ChannelName__(); Request.ChatType = chatType; Request.CharacterId = characterId; Request.CharacterName = characterName; Request.Content = Content; Request.ChannelName = ChannelName; }
public void ChatNotify(int chatType, ulong characterId, string characterName, ChatMessageContent content) { GameUtils.OnReceiveChatMsg(chatType, characterId, characterName, content); }
public SendHornMessageOutMessage(IAgentBase sender, uint serverId, int chatType, ulong characterId, string characterName, ChatMessageContent content) : base(sender, ServiceType.Chat, 5044) { Request = new __RPC_Chat_SendHornMessage_ARG_uint32_serverId_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__(); Request.ServerId = serverId; Request.ChatType = chatType; Request.CharacterId = characterId; Request.CharacterName = characterName; Request.Content = content; }