Exemplo n.º 1
0
        public static void Init(this IChat9xServiceInterface agent)
        {
            agent.AddPublishDataFunc(ServiceType.Chat, (p, list) =>
            {
                switch (p)
                {
                case 5043:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_ChatNotify_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__>(ms));
                    }
                    break;

                case 5046:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_SyncChatMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__>(ms));
                    }
                    break;

                case 5047:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_BroadcastWorldMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__>(ms));
                    }
                    break;

                case 5056:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_SyncToListCityChatMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_Content_string_ChannelName__>(ms));
                    }
                    break;

                case 5510:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_BroadcastAnchorOnline_ARG_string_charName_int32_online__>(ms));
                    }
                    break;

                case 5511:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_NotifyChatRoseEffectChange_ARG_int32_chatType__>(ms));
                    }
                    break;

                case 5513:
                    using (var ms = new MemoryStream(list, false))
                    {
                        return(Serializer.Deserialize <__RPC_Chat_BroadcastAnchorEnterRoom_ARG_string_charName__>(ms));
                    }
                    break;

                default:
                    break;
                }

                return(null);
            });


            agent.AddPublishMessageFunc(ServiceType.Chat, (evt) =>
            {
                switch (evt.Message.FuncId)
                {
                case 5043:
                    {
                        var data = evt.Data as __RPC_Chat_ChatNotify_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__;
                        agent.ChatNotify(data.ChatType, data.CharacterId, data.CharacterName, data.Content);
                    }
                    break;

                case 5046:
                    {
                        var data = evt.Data as __RPC_Chat_SyncChatMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__;
                        agent.SyncChatMessage(data.ChatType, data.CharacterId, data.CharacterName, data.Content);
                    }
                    break;

                case 5047:
                    {
                        var data = evt.Data as __RPC_Chat_BroadcastWorldMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_content__;
                        agent.BroadcastWorldMessage(data.ChatType, data.CharacterId, data.CharacterName, data.Content);
                    }
                    break;

                case 5056:
                    {
                        var data = evt.Data as __RPC_Chat_SyncToListCityChatMessage_ARG_int32_chatType_uint64_characterId_string_characterName_ChatMessageContent_Content_string_ChannelName__;
                        agent.SyncToListCityChatMessage(data.ChatType, data.CharacterId, data.CharacterName, data.Content, data.ChannelName);
                    }
                    break;

                case 5510:
                    {
                        var data = evt.Data as __RPC_Chat_BroadcastAnchorOnline_ARG_string_charName_int32_online__;
                        agent.BroadcastAnchorOnline(data.CharName, data.Online);
                    }
                    break;

                case 5511:
                    {
                        var data = evt.Data as __RPC_Chat_NotifyChatRoseEffectChange_ARG_int32_chatType__;
                        agent.NotifyChatRoseEffectChange(data.ChatType);
                    }
                    break;

                case 5513:
                    {
                        var data = evt.Data as __RPC_Chat_BroadcastAnchorEnterRoom_ARG_string_charName__;
                        agent.BroadcastAnchorEnterRoom(data.CharName);
                    }
                    break;

                default:
                    break;
                }
            });
        }