public static CGPLobbyMission CreateInstance(byte[] url, int port)
        {
            if (_instance == null)
            {
                _instance = new CGPLobbyMission(url, port);
            }

            return(_instance);
        }
示例#2
0
        //WQ add. for HideSeek
        //大厅列表
        bool onSocketListLobby(byte[] data, int size)
        {
            ////更新数据
            tagGameLobby tempStruct = new tagGameLobby();
            int          itemSize   = Marshal.SizeOf(tempStruct);

            if (size % itemSize != 0)
            {
                return(false);
            }
            byte[] pNetInfo   = new byte[itemSize];
            int    iItemCount = size / itemSize;

            for (int i = 0; i < iItemCount; i++)
            {
                Buffer.BlockCopy(data, i * itemSize, pNetInfo, 0, itemSize);
                tagGameLobby sGameLobby = (tagGameLobby)StructConverterByteArray.BytesToStruct(pNetInfo, typeof(tagGameLobby));
                CServerListData.shared().InsertGameLobby(sGameLobby);
            }

            //Create CGPLobbyMission
            Loom.QueueOnMainThread(() =>
            {
                if (CServerListData.shared().GetGameLobbyCount() > 0)
                {
                    tagGameLobby gameLobby = CServerListData.shared().getARandGameLobby();
                    if (gameLobby.wLobbyPort != 0)
                    {
                        CGPLobbyMission kGPLobbyMission = CGPLobbyMission.CreateInstance(gameLobby.szServerAddr, gameLobby.wLobbyPort);
                        if (kGPLobbyMission != null && !kGPLobbyMission.isAlive())
                        {
                            kGPLobbyMission.SendChatData("StartChatConnect!");//只是为了连接上
                        }
                    }
                    else
                    {
                        Debug.LogError("onSocketListLobby: incorrect wLobbyPort=0");
                    }
                }
            });

            return(true);
        }