コード例 #1
0
    public void SendPacket(CWritePacket packet, C2SMessageType type = C2SMessageType.PASVWait)
    {
        //if (packet.GetPacketID() != MessageID.player_walk && packet.GetPacketID() != MessageID.s_player_attack_req
        //          && packet.GetPacketID() != MessageID.pve_dungeon_list_req && packet.GetPacketID() != MessageID.s_player_revive_req
        //          && packet.GetPacketID() != MessageID.s_player_change_scene)
        //{
        //    Globe.lastNetTime = 0;
        //    Debug.Log(Globe.lastNetTime);
        //    lastmessageid = packet.GetPacketID();
        //}


        if (Singleton <SceneManage> .Instance.Current == EnumSceneID.UI_MajorCity01 || Globe.isFightGuide)
        {
            if (SceneManager.GetActiveScene().name == GameLibrary.UI_Major || Globe.isFightGuide)
            {
                switch (type)
                {
                case C2SMessageType.Active:
                    break;

                case C2SMessageType.ActiveWait:
                    GameLibrary.isSendPackage = true;
                    if (Control.GetUIObject(UIPanleID.UIWaitForSever) != null)
                    {
                        Control.ShowGUI(UIPanleID.UIWaitForSever, EnumOpenUIType.DefaultUIOrSecond);
                    }
                    break;

                case C2SMessageType.PASVWait:
                    // Debug.Log("True服务器正在接收其他消息     " + GameLibrary.isSendPackage);
                    if (GameLibrary.isSendPackage)
                    {
                        return;
                    }
                    GameLibrary.isSendPackage = true;
                    if (Control.GetUIObject(UIPanleID.UIWaitForSever) != null)
                    {
                        Control.ShowGUI(UIPanleID.UIWaitForSever, EnumOpenUIType.DefaultUIOrSecond);
                    }
                    break;
                }
            }
        }

        // Debug.Log("True代表服务器正在接收本次消息     " + GameLibrary.isSendPackage);
        if (ClientNetMgr.GetSingle().IsConnect())
        {
            if (m_Parent != null)
            {
                m_Parent.SendPacket(packet);
                if (DataDefine.isLogMsg && DataDefine.filterWalkMsg(packet.GetPacketID()))
                {
                    Debug.Log("Send msgid:" + packet.GetPacketID() + packet.GetLogPacketID() + " Sender: " + GetType() + " Time:" + Time.realtimeSinceStartup);
                }
            }
        }
        else
        {
            Debug.Log("和服务器已经断开了连接悄悄申请重连");
            //if (UIPromptBox.Instance != null)
            //{
            //    UIPromptBox.Instance.ShowLabel("与服务器链接丢失,将重新与服务器建立链接");
            //}
            Control.ShowGUI(UIPanleID.UIPromptBox, EnumOpenUIType.DefaultUIOrSecond, false, "与服务器链接丢失,将重新与服务器建立链接");
        }
    }