public static SMsgBroadCastSysTips_SC ParsePackage(byte[] dataBuffer) { SMsgBroadCastSysTips_SC sMsgBroadCastSysTips_SC = new SMsgBroadCastSysTips_SC(); int of = 0; of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.SysMessageType); of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.StartTime); of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.EndTime); of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.RollTimes); of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.ContextLen); of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.dwSysTipsID); of += PackageHelper.ReadData(dataBuffer.Skip(of).ToArray(), out sMsgBroadCastSysTips_SC.szActorName, 19); sMsgBroadCastSysTips_SC.SZActorName = System.Text.Encoding.UTF8.GetString(sMsgBroadCastSysTips_SC.szActorName); return(sMsgBroadCastSysTips_SC); }
//系统频道 CommandCallbackType ReceiveSystemMsgHandle(byte[] dataBuffer, int socketID) { switch ((Chat.CHAT_MSG_SYSTYPE)dataBuffer[0]) { case Chat.CHAT_MSG_SYSTYPE.NONE_SYS_CHAT_TYPE: case Chat.CHAT_MSG_SYSTYPE.WARING_SYS_CHAT_TYPE: SMsgSysChat_SC sMsgSysChat_SC = SMsgSysChat_SC.ParsePackage(dataBuffer); SMsgChat_SC sMsgChat_SC = new SMsgChat_SC(); sMsgChat_SC.Chat = sMsgSysChat_SC.Chat; sMsgChat_SC.L_LabelChat = ChatRecordManager.Instance.ParseColorChat(Chat.WindowType.System, sMsgChat_SC); sMsgChat_SC.L_Channel = (int)Chat.WindowType.System; if (GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_TOWN) { SMsgChat_SC bChat = sMsgChat_SC; bChat.L_LabelChat = bChat.L_LabelChat.Remove(8, 1); UI.GoodsMessageManager.Instance.AddNoticeMessage(bChat); } ChatRecordManager.Instance.AddPublicRecord(Chat.WindowType.System, sMsgChat_SC); UIEventManager.Instance.TriggerUIEvent(UIEventType.WorldChatMsg, sMsgChat_SC); break; case Chat.CHAT_MSG_SYSTYPE.BROADCAST_SYS_CHAT_TYPE: SMsgBroadCastSysTips_SC sMsgBroadCastSysTips_SC = SMsgBroadCastSysTips_SC.ParsePackage(dataBuffer); SMsgChat_SC broadcastChat = new SMsgChat_SC(); if (TownRobotManager.Instance == null) { return(CommandCallbackType.Continue); } BroadcastConfigData configData = TownRobotManager.Instance.GetBroadcastConfig(sMsgBroadCastSysTips_SC.dwSysTipsID); string parmStr = ""; switch (configData.BroadcastType) { case 1: var sirenData = SirenDataManager.Instance.GetPlayerSirenList().SingleOrDefault(p => p._sirenID == configData.BroadcastConditions); parmStr = LanguageTextManager.GetString(sirenData._name); break; case 2: var itemData = ItemDataManager.Instance.GetItemData(configData.BroadcastConditions); parmStr = UI.NGUIColor.SetTxtColor(LanguageTextManager.GetString(itemData._szGoodsName), (UI.TextColor)itemData._ColorLevel); break; case 3: var ectypeData = EctypeConfigManager.Instance.EctypeContainerConfigList[configData.BroadcastConditions]; parmStr = LanguageTextManager.GetString(ectypeData.lEctypeName); break; case 4: var titleData = PlayerDataManager.Instance.GetPlayerTitleConfigData(configData.BroadcastConditions); //parmStr = LanguageTextManager.GetString(titleData._TitleName); break; case 5: var taskData = GuideConfigManager.Instance.TaskNewConfigFile.Datas.SingleOrDefault(p => p.TaskID == configData.BroadcastConditions); parmStr = LanguageTextManager.GetString(taskData.TaskTitle); break; } broadcastChat.Chat = string.Format(LanguageTextManager.GetString(configData.BroadcastContent), sMsgBroadCastSysTips_SC.SZActorName, parmStr); broadcastChat.L_LabelChat = ChatRecordManager.Instance.ParseColorChat(Chat.WindowType.System, broadcastChat); broadcastChat.L_Channel = (int)Chat.WindowType.System; if (GameManager.Instance.CurrentState == GameManager.GameState.GAME_STATE_TOWN) { SMsgChat_SC bChat = broadcastChat; bChat.L_LabelChat = bChat.L_LabelChat.Remove(8, 1); UI.GoodsMessageManager.Instance.AddNoticeMessage(bChat); } ChatRecordManager.Instance.AddPublicRecord(Chat.WindowType.System, broadcastChat); UIEventManager.Instance.TriggerUIEvent(UIEventType.WorldChatMsg, broadcastChat); break; } return(CommandCallbackType.Continue); }