private void HandleRelationListFeedback(byte[] data)
        {
            RelationListS2C feedback = ProtobufUtils.Deserialize <RelationListS2C>(data);

            if (feedback.result)
            {
                List <FriendListDataStruct> dataList = GetFriendList(feedback.friends);
                dataList.Sort(FriendInfoSort);
                switch (currentListType)
                {
                case PlayerListType.Friend:
                    friendListPlayerDataList = dataList;
                    view.RefreshFriendList();
                    break;

                case PlayerListType.Black:
                    blackListPlayerDataList = dataList;
                    view.RefreshBlackList();
                    break;

                case PlayerListType.Appliation:
                    applicationPlayerDataList = dataList;
                    view.RefresRedBubble();
                    view.RefreshRedrefuseAllApplicationToggle(feedback.isRefuseApply);
                    if (view.screenStatus == UI.FriendView.FriendScreenStatus.ShowApplicationInfomation)
                    {
                        view.RefreshApplicationInfomationPlayerList();
                    }
                    break;

                default:
                    break;
                }
            }
        }
        private void HandleSendChatFeedback(byte[] data)
        {
            SendChatS2C feedback = ProtobufUtils.Deserialize <SendChatS2C>(data);

            if (feedback.result)
            {
                if (currnetChatConsumptionType == ChatConsumptionType.ChatItem)
                {
                    view.HideHornPanel();
                }

                if (view.currentChatTag == ChatMainView.ChatTag.PrivateChat)
                {
                    ChatDataStruct chatData = new ChatDataStruct();

                    ChatPlayerInfo chatPlayerInfo = new ChatPlayerInfo();
                    chatPlayerInfo.name     = dataManager.GetPlayerNickName();
                    chatPlayerInfo.portrait = dataManager.GetPlayerHeadIcon();
                    chatPlayerInfo.level    = dataManager.GetPlayerLevel();
                    chatPlayerInfo.playerId = currentChatId;

                    chatData.chatPlayerInfo = chatPlayerInfo;
                    chatData.message        = currentChatContent;
                    chatData.playerId       = currentChatId;

                    AddPrivateChatData(currentChatId, chatData);
                    view.ResfresPrivateChatItemData(GetPrivateChatData(currentChatId));
                }
            }
        }
        public void SendRecommendPlayer()
        {
            RecommendPlayerC2S message = new RecommendPlayerC2S();

            byte[] stream = ProtobufUtils.Serialize(message);
            NetworkManager.SendRequest(ServerType.SocialServer, MsgCode.RelationRecommendMessage, stream);
        }
Beispiel #4
0
        private void HandleGainSoldierFeedback(byte[] data)
        {
            GainS2C feedback = ProtobufUtils.Deserialize <GainS2C>(data);

            if (feedback == null)
            {
                DebugUtils.LogError(DebugUtils.Type.UI, "GainSoldier~~~~Feedback is null");
                return;
            }

            if (feedback.result)
            {
                PlayerUnits army = DataManager.GetInstance().GetPlayerUnits();
                for (int i = 0; i < feedback.soldiers.Count; i++)
                {
                    int         id   = feedback.soldiers[i].metaId;
                    SoldierInfo info = army.soldiers.Find(p => p.metaId == id);

                    if (info == null)
                    {
                        army.soldiers.Add(feedback.soldiers[i]);
                    }
                    else
                    {
                        army.soldiers.Find(p => p.metaId == info.metaId).count += feedback.soldiers[i].count;
                    }
                }

                MessageDispatcher.PostMessage(Constants.MessageType.RefreshPlayerUnitsData);
            }
        }
        private void HandleRelationApplicationFeedback(byte[] data)
        {
            RelationApplicationS2C feedback = ProtobufUtils.Deserialize <RelationApplicationS2C>(data);

            if (feedback.result)
            {
                switch (feedback.applciationType)
                {
                case RelationApplicationType.ApplyingRelation:

                    MessageDispatcher.PostMessage(Constants.MessageType.OpenAlertWindow, null, UI.AlertType.ConfirmAlone, "好友申请已经发送,请耐心等待对方确认", "提示");

                    break;

                case RelationApplicationType.BlockList:

                    for (int i = 0; i < worldChatDataList.Count; i++)
                    {
                        ChatDataStruct chatData = worldChatDataList [i];
                        if (chatData.chatPlayerInfo.playerId == feedback.friendId)
                        {
                            worldChatDataList.Remove(chatData);
                            i--;
                        }
                    }

                    MessageDispatcher.PostMessage(Constants.MessageType.OpenAlertWindow, null, UI.AlertType.ConfirmAlone, "已将该玩家拉入黑名单", "提示");

                    break;
                }
            }
        }
        private void HandleMatchReadyDataFeedback(byte[] data)
        {
            MatchReadyDataS2C feedback = ProtobufUtils.Deserialize <MatchReadyDataS2C>(data);

            if (feedback.result)
            {
                if (matcherReadyDatas == null)
                {
                    matcherReadyDatas = feedback.matcherReadyDatas;
                    view.SetStartMatchBtState(true);
                }
                else
                {
                    long playerId = feedback.matcherReadyDatas[0].playerId;
                    if (matcherReadyDatas.Find(p => p.playerId == playerId) != null)
                    {
                        matcherReadyDatas.Remove(matcherReadyDatas.Find(p => p.playerId == playerId));
                    }
                    matcherReadyDatas.Add(feedback.matcherReadyDatas[0]);
                }

                if (matcherReadyDatas.Count <= 1)
                {
                    view.SetFriendUI(false);
                }
                view.OpenMatchUI();
            }
        }
        private void HandleMatchReadyDataRefreshFeedback(byte[] data)
        {
            MatchReadyDataRefreshS2C feedback = ProtobufUtils.Deserialize <MatchReadyDataRefreshS2C>(data);

            if (feedback != null)
            {
                if (matcherReadyDatas == null)
                {
                    matcherReadyDatas = feedback.matcherReadyDatas;
                }
                else
                {
                    long playerId = feedback.matcherReadyDatas[0].playerId;
                    if (matcherReadyDatas.Find(p => p.playerId == playerId) != null)
                    {
                        matcherReadyDatas.Remove(matcherReadyDatas.Find(p => p.playerId == playerId));
                    }
                    matcherReadyDatas.Add(feedback.matcherReadyDatas[0]);
                }

                view.SetFriendUI(matcherReadyDatas.Count > 1);
                view.InitMatchMyselfUnitItem();
                if (matcherReadyDatas.Count > 1)
                {
                    view.InitMatchFriendUnitItem();
                    view.SetChatFriends();
                }
            }
        }
        private void HandleBattleMessageFeedback(byte[] data)
        {
            UILockManager.ResetGroupState(UIEventGroup.Middle);

            BattleS2C feedback = ProtobufUtils.Deserialize <BattleS2C>(data);

            if (feedback.result)
            {
                DataManager dataManager = DataManager.GetInstance();
                if (feedback.battleId != 0)
                {
                    // receive this message second time
                    dataManager.SetBattleServerIp(feedback.serverIp);
                    dataManager.SetBattleServerPort(feedback.serverPort);
                    dataManager.SetBattleId(feedback.battleId);
                    dataManager.SetSeed(feedback.seed);

                    ConnectBattleServer();
                }
                else
                {
                    // receive this message first time
                    dataManager.SetBattlers(feedback.battlers);
                }
            }
            else
            {
                DebugUtils.LogError(DebugUtils.Type.Match, " HandleBattleMessage result = false, maybe some error occured! ");
            }
        }
        private void HandleChangeBattleConfigFeedback(byte[] data)
        {
            UILockManager.ResetGroupState(UIEventGroup.Middle);

            ChangeBattleConfigS2C feedback = ProtobufUtils.Deserialize <ChangeBattleConfigS2C>(data);

            if (feedback.result)
            {
                DataManager dataManager = DataManager.GetInstance();

                switch (feedback.configType)
                {
                case 1:    //1-army 2-rune 3-instituteSkill
                    dataManager.SetBattleConfigArmyIndex(feedback.config.battleType, feedback.config.labelPage);
                    break;

                case 2:    //1-army 2-rune 3-instituteSkill
                    dataManager.SetBattleConfigRuneIndex(feedback.config.battleType, feedback.config.labelPage);
                    break;

                case 3:    //1-army 2-rune 3-instituteSkill
                    dataManager.SetBattleConfigInstituteSkillIndex(feedback.config.battleType, feedback.config.labelPage);
                    break;
                }
            }
        }
        public void SendInvitationListC2S()
        {
            InvitationListC2S message = new InvitationListC2S();

            byte[] data = ProtobufUtils.Serialize(message);
            NetworkManager.SendRequest(ServerType.SocialServer, MsgCode.InvitationListMessage, data);
        }
        public void SendPlacardC2S()
        {
            PlacardC2S message = new PlacardC2S();

            byte[] data = ProtobufUtils.Serialize(message);
            NetworkManager.SendRequest(MsgCode.PlacardSendMessage, data);
        }
Beispiel #12
0
        private void HandleRefreshRunePageFeedback(byte[] data)
        {
            RefreshRunePageS2C feedback = ProtobufUtils.Deserialize <RefreshRunePageS2C> (data);

            if (feedback.result)
            {
                List <RunePageInfo.RuneSlotInfo> slotList = feedback.slotInfos;

                if (isUnlock)
                {
                    for (int i = 0; i < runePages.Count; i++)
                    {
                        List <RunePageInfo.RuneSlotInfo> mySlotList = runePages.Find(p => p.pageId == runePages[i].pageId).slots;
                        for (int j = 0; j < slotList.Count; j++)
                        {
                            mySlotList.Find(p => p.id == slotList[j].id).itemId = slotList[j].itemId;
                            mySlotList.Find(p => p.id == slotList[j].id).state  = slotList[j].state;
                        }
                    }
                }
                else
                {
                    List <RunePageInfo.RuneSlotInfo> mySlotList = runePages.Find(p => p.pageId == feedback.pageId).slots;
                    for (int i = 0; i < slotList.Count; i++)
                    {
                        mySlotList.Find(p => p.id == slotList[i].id).itemId = slotList[i].itemId;
                        mySlotList.Find(p => p.id == slotList[i].id).state  = slotList[i].state;
                    }
                }
                _view.RefreshRuneSlotItem();
            }
        }
        private void HandleRecommendPlayerFeedback(byte[] data)
        {
            RecommendPlayerS2C feedback = ProtobufUtils.Deserialize <RecommendPlayerS2C>(data);

            if (feedback.result)
            {
                systemRecommendedPlayerDataList.Clear();
                List <FriendInfo> list = feedback.friends;
                for (int i = 0; i < list.Count; i++)
                {
                    FriendListDataStruct friendData = new FriendListDataStruct();
                    friendData.playerUID          = list[i].friendId;
                    friendData.playerName         = list[i].name;
                    friendData.portrait           = list[i].portrait;
                    friendData.grade              = list[i].grade;
                    friendData.playerLevel        = list[i].level;
                    friendData.vipLevel           = list[i].vipLevel;
                    friendData.isOnline           = list[i].isOnline;
                    friendData.lastLoginTime      = list[i].lastLoginTime;
                    friendData.alreadyApplication = list[i].alreadyApplication;
                    systemRecommendedPlayerDataList.Add(friendData);
                }
                view.RefreshSystemRecommendedFriendList();
            }
        }
        public void SendCheckTutorialStage()
        {
            CheckNoviceGuidanceC2S message = new CheckNoviceGuidanceC2S();

            byte[] stream = ProtobufUtils.Serialize(message);
            NetworkManager.SendRequest(ServerType.GameServer, MsgCode.CheckNoviceGuidanceMessage, stream);
        }
        protected new PutRecordsResult InnerPutRecords(PutRecordsRequest putRecordsParam)
        {
            // Decorate PutRecordsRequest if needed
            putRecordsParam = DecorateRecords(putRecordsParam);

            ObsWebServiceRequest obsWebServiceRequest = new DISWebServiceRequest();

            OBS.Runtime.Internal.IRequest requestobs = new DISDefaultRequest(obsWebServiceRequest, Constants.SERVICENAME)
            {
                HttpMethod = HttpMethodName.POST.ToString()
            };

            string resourcePath = ResourcePathBuilder.Standard()
                                  .WithProjectId(_disConfig.GetProjectId())
                                  .WithResource(new RecordResource(null))
                                  .Build();

            requestobs.ResourcePath = resourcePath;

            if (_disConfig.GetBodySerializeType().ToLower().Equals(BodySerializeType.Protobuf.ToString().ToLower()))
            {
                requestobs.Headers.Add("Content-Type", "application/x-protobuf; charset=utf-8");
                requestobs.Headers.Add("accept", "*/*");
                HuaweiCloud.DIS.Api.Protobuf.PutRecordsRequest protoRequest = ProtobufUtils.ToProtobufPutRecordsRequest(putRecordsParam);
                HuaweiCloud.DIS.Api.Protobuf.PutRecordsResult  protoResult  = Request <HuaweiCloud.DIS.Api.Protobuf.PutRecordsResult>(protoRequest.ToByteArray(), requestobs, InterfaceType.DISInterfacePutRecords);
                PutRecordsResult result = ProtobufUtils.ToPutRecordsResult(protoResult);
                return(result);
            }
            else
            {
                var results = Request <PutRecordsResult>(putRecordsParam, requestobs);
                return(results);
            }
        }
        private void HandleInvationMatchFeedback( byte[] data )
        {
            UILockManager.ResetGroupState( UIEventGroup.Middle );

            InvitationMatchS2C feedback = ProtobufUtils.Deserialize<InvitationMatchS2C>( data );

            if ( feedback.result )
            {
                switch ( feedback.state )
                {
                    case InvitationState.AcceptInvitation:
                        view.OpenFightMatchView( matcherReadyDatas );
                        break;
                    case InvitationState.RefuseInvitation:
                    case InvitationState.DestroyInvitation:
                        view.CloseView();
                        break;
                    case InvitationState.FriendInBattle:
                        view.CloseView();
                        OpenPopUp( "提示", "您的好友已进入战斗" );
                        break;
                    case InvitationState.FriendInMatching:
                        view.CloseView();
                        OpenPopUp( "提示", "您的好友已在匹配中" );
                        break;
                }
            }
        }
        public void SendSearchPlayer(string playerName)
        {
            SearchPlayerC2S message = new SearchPlayerC2S();

            message.playerName = playerName;
            byte[] stream = ProtobufUtils.Serialize(message);
            NetworkManager.SendRequest(ServerType.SocialServer, MsgCode.RelationSearchMessage, stream);
        }
        /*
         * 不接受好友申请
         * TODO:??
         *       此处代码需要注意是否可删除
         *
         */
        private void HandleRelationScreenedFeedback(byte[] data)
        {
            RelationScreenedS2C feedback = ProtobufUtils.Deserialize <RelationScreenedS2C>(data);

            if (feedback.result)
            {
            }
        }