Ejemplo n.º 1
0
    /// <summary>
    /// 接收附近玩家列表消息
    /// </summary>
    CommandCallbackType RecvNearbyPlayerListHandle(byte[] dataBuffer, int socketID)
    {
        SMsgGetActorListHead sMsgGetActorListHead = SMsgGetActorListHead.ParsePackage(dataBuffer);

        RaiseEvent(EventTypeEnum.RevNearlyPlayer.ToString(), sMsgGetActorListHead);
        return(CommandCallbackType.Continue);
    }
Ejemplo n.º 2
0
    public static SMsgGetActorListHead ParsePackage(byte[] dataBuffer)
    {
        SMsgGetActorListHead sMsgGetActorListHead = new SMsgGetActorListHead();

        sMsgGetActorListHead.dwActorID                = BitConverter.ToUInt32(dataBuffer, 0);
        sMsgGetActorListHead.byFriendMaxNum           = dataBuffer[4];
        sMsgGetActorListHead.dwFriendNum              = dataBuffer[5];
        sMsgGetActorListHead.sMsgRecvAnswerFriends_SC = new SMsgRecvAnswerFriends_SC[sMsgGetActorListHead.dwFriendNum];

        int offset = Marshal.SizeOf(typeof(SMsgRecvAnswerFriends_SC));

        //int offset = 19 + 4 + 4 + 4 + 4 + 4 + 4 + 4;
        for (int i = 0; i < sMsgGetActorListHead.dwFriendNum; ++i)
        {
            sMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i] = SMsgRecvAnswerFriends_SC.ParsePackage(dataBuffer.Skip(4 + 1 + 1 + i * offset).Take(offset).ToArray());
        }

        return(sMsgGetActorListHead);
    }
Ejemplo n.º 3
0
 /// <summary>
 /// 打开
 /// </summary>
 /// <param name="notifyArgs"></param>
 private void ShowNearlyPlayerHandle(INotifyArgs notifyArgs)
 {
     StopAllCoroutines();
     if (LoadingUI.Instance != null)
     {
         LoadingUI.Instance.Close();
     }
     NearlySMsgGetActorListHead = (SMsgGetActorListHead)notifyArgs;
     m_panelElementList.Clear();
     for (int i = 0; i < NearlySMsgGetActorListHead.dwFriendNum; i++)
     {
         PanelElementDataModel playerElementData = new PanelElementDataModel();
         playerElementData.sMsgRecvAnswerFriends_SC.dwFriendID  = NearlySMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i].dwFriendID;
         playerElementData.sMsgRecvAnswerFriends_SC.szName      = NearlySMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i].szName;
         playerElementData.sMsgRecvAnswerFriends_SC.sActorLevel = NearlySMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i].sActorLevel;
         playerElementData.sMsgRecvAnswerFriends_SC.bOnLine     = NearlySMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i].bOnLine;
         playerElementData.sMsgRecvAnswerFriends_SC.dProfession = NearlySMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i].dProfession;
         playerElementData.BtnType = ButtonType.NearlyPlayer;
         //TraceUtil.Log("附近玩家列表=====>>>>>.dProfession" + sMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i].dProfession);
         if (!m_panelElementList.Exists(P => P.dwFriendID == playerElementData.sMsgRecvAnswerFriends_SC.dwFriendID))
         {
             NearlyItem nearlyItem = new NearlyItem();
             nearlyItem.Index      = i;
             nearlyItem.dwFriendID = playerElementData.sMsgRecvAnswerFriends_SC.dwFriendID;
             nearlyItem.element    = playerElementData;
             nearlyItem.m_isFriend = FriendDataManager.Instance.GetFriendListData.Exists(P => P.sMsgRecvAnswerFriends_SC.dwFriendID == playerElementData.sMsgRecvAnswerFriends_SC.dwFriendID);
             m_panelElementList.Add(nearlyItem);
         }
     }
     CurrentPage = 1;
     ResetPageInfo();
     if (commonUIBottomButtonTool == null)
     {
         commonUIBottomButtonTool = CreatObjectToNGUI.InstantiateObj(UIBottomBtnPrefab, CreatBottomBtnPoint).GetComponent <UI.MainUI.CommonUIBottomButtonTool>();
         ShowBottomBtn();
     }
     else
     {
         commonUIBottomButtonTool.ShowAnim();
     }
     transform.localPosition = Vector3.zero;
 }
Ejemplo n.º 4
0
    /// <summary>
    /// 接收好友列表消息
    /// </summary>
    CommandCallbackType RecvFriendListHandle(byte[] dataBuffer, int socketID)
    {
        SMsgGetActorListHead sMsgGetActorListHead = SMsgGetActorListHead.ParsePackage(dataBuffer);

        PanelElementDataModel panelElement;// = new PanelElementDataModel();

        FriendDataManager.Instance.GetFriendListData.Clear();
        FriendDataManager.Instance.SetFriendMaxNum((int)sMsgGetActorListHead.byFriendMaxNum);
        for (int i = 0; i < sMsgGetActorListHead.dwFriendNum; i++)
        {
            panelElement = new PanelElementDataModel();

            panelElement.sMsgRecvAnswerFriends_SC = sMsgGetActorListHead.sMsgRecvAnswerFriends_SC[i];
            panelElement.BtnType = ButtonType.FriendList;

            //FriendDataManager.Instance.IsCreateFriendUI = true;
            //FriendDataManager.Instance.FriendUIQueue.Enqueue(panelElement);
            FriendDataManager.Instance.RegFriendData(panelElement);
        }
        return(CommandCallbackType.Continue);
    }