示例#1
0
    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);
    }
示例#2
0
    //系统频道
    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);
    }