void Awake()
    {
        _Instance = this;
        if (SceneManager.GetActiveScene().buildIndex == (int)GameLevel.Movie)
        {
            if (pcvr.IsTestHardWare)
            {
                //MaxPlayerCount = 2; //至少有1个客户端进入游戏.
                MaxPlayerCount = 0;                 //允许服务器自身直接进入游戏.
            }
            else
            {
                //MaxPlayerCount = 2;
                MaxPlayerCount = 0;
            }
        }

        NetworkViewCom  = GetComponent <NetworkView>();
        gameObject.name = "_NetCtrl";
        DontDestroyOnLoad(gameObject);

        NetworkServerNet.NetCtrlScript = _Instance;
        if (Network.peerType == NetworkPeerType.Client)
        {
            SendAddLinkCount();
        }
    }
    public void ActiveJiFenJieMian()
    {
        if (Network.peerType == NetworkPeerType.Server)
        {
            return;
        }

        if (JiFenJieMianObj.activeSelf)
        {
            return;
        }
        FinishTaskObj.SetActive(false);

        if (!JiFenZongJieMianObj.activeSelf)
        {
            DanYaoInfoCtrl.GetInstanceOne().HiddenPlayerDanYaoInfo();
            DanYaoInfoCtrl.GetInstanceTwo().HiddenPlayerDanYaoInfo();
            ZhunXingCtrl.GetInstanceOne().SetActiveZhunXingObj(false);
            ZhunXingCtrl.GetInstanceTwo().SetActiveZhunXingObj(false);
            CoinPlayerCtrl.GetInstanceOne().HiddenPlayerCoin();
            CoinPlayerCtrl.GetInstanceTwo().HiddenPlayerCoin();
            YouLiangAddCtrl.GetInstance().HiddenYouLiangAdd();
            YouLiangCtrl.GetInstance().HiddenYouLiang();
            JiFenZongJieMianObj.SetActive(true);
        }
        else
        {
            XkGameCtrl.HiddenMissionCleanup();

            if (Network.peerType == NetworkPeerType.Client)
            {
                if (NetCtrl.GetInstance() != null)
                {
                    NetCtrl.GetInstance().TryCloseServerPort();
                }
            }
        }

        System.GC.Collect();
        if (XkPlayerCtrl.GetInstanceFeiJi() != null)
        {
            XkPlayerCtrl.GetInstanceFeiJi().StopPlayerMoveAudio();
        }

        if (XkPlayerCtrl.GetInstanceTanKe() != null)
        {
            XkPlayerCtrl.GetInstanceTanKe().StopPlayerMoveAudio();
        }
        JiFenJieMianObj.SetActive(true);

        if (XkGameCtrl.IsPlayGamePOne)
        {
            XunZhangJBCtrl.GetInstanceOne().ShowPlayerXunZhangJB();
        }

        if (XkGameCtrl.IsPlayGamePTwo)
        {
            XunZhangJBCtrl.GetInstanceTwo().ShowPlayerXunZhangJB();
        }
    }
Exemple #3
0
 //给特定房间的人发送数据
 private static void SendToRoom(DataCenter dataCenter, int rNum, string str)
 {
     foreach (var item in dataCenter.RoomDataDic[rNum].PlayerDataList)
     {
         NetCtrl.Send(item.Socket, str);
     }
 }
Exemple #4
0
 //处理请求数据信息
 private static void DealGameInfo(DataCenter dataCenter, Socket socket, string[] strs)
 {
     switch (strs[2])
     {
     //收到的是请求初始数据的数据
     case "1":
         int    rNum = int.Parse(strs[3]);
         int    sNum = int.Parse(strs[4]);
         string s    = "3|1|1|";
         foreach (var item in dataCenter.RoomDataDic[rNum].PlayerDataList[sNum - 1].PocketB)
         {
             s += (item.ID + "|");
         }
         s += "2|";
         foreach (var item in dataCenter.RoomDataDic[rNum].PlayerDataList)
         {
             s += (item.Nick + "|");
         }
         NetCtrl.Send(socket, s);
         //检查是否每个人都返回信息了,当全部返回信息之后,进行选择角色牌
         if (dataCenter.RoomDataDic[rNum].FinishCount < dataCenter.RoomDataDic[rNum].PlayerDataList.Count - 1)
         {
             dataCenter.RoomDataDic[rNum].FinishCount++;
         }
         else
         {
             dataCenter.RoomDataDic[rNum].FinishCount = 0;
             SendPickHero(dataCenter, rNum);
         }
         break;
     }
 }
Exemple #5
0
 // Use this for initialization
 void Start()
 {
     _Instance = this;
     if (GlobalData.GetInstance().gameMode == GameMode.OnlineMode)
     {
         GameObject bikegamectrl = GameObject.Find(GlobalData.bikeGameCtrl);
         playerCreatScript   = bikegamectrl.GetComponent <PlayerCreatNet>();
         NetworkServerScript = NetworkServerNet.GetInstance();
         netCtrlScript       = NetCtrl.GetInstance();
         if (NetworkServerScript != null && NetworkServerScript.GetIsServer())
         {
             return;
         }
         else
         {
             SoureAudio = AudioManager.Instance.audio;
         }
     }
     else
     {
         SoureAudio = AudioManager.Instance.audio;
         ui         = GetComponent <UISprite>();
         scale      = GetComponent <TweenScale>();
         StartCoroutine("Gogo");
     }
 }
Exemple #6
0
        //选择拿牌操作
        private static void DealGameBuilding1(DataCenter dataCenter, int rNum, int sNum, string[] strs)
        {
            string s = "3|6|1|";

            //从两个里面选择
            if (strs[5] == "1")
            {
                s += (dataCenter.RoomDataDic[rNum].BackB[0].ID + "|");
                dataCenter.RoomDataDic[rNum].BackB.RemoveAt(0);
                s += (dataCenter.RoomDataDic[rNum].BackB[0].ID + "|");
                dataCenter.RoomDataDic[rNum].BackB.RemoveAt(0);
                NetCtrl.Send(dataCenter.RoomDataDic[rNum].PlayerDataList[sNum - 1].Socket, s);
                SendToRoom(dataCenter, rNum, "3|2|1|" + sNum + "|5|1|" + dataCenter.RoomDataDic[rNum].FinishCount + "|");
            }
            //从三个里面选择
            if (strs[5] == "2")
            {
                s += (dataCenter.RoomDataDic[rNum].BackB[0].ID + "|");
                dataCenter.RoomDataDic[rNum].BackB.RemoveAt(0);
                s += (dataCenter.RoomDataDic[rNum].BackB[0].ID + "|");
                dataCenter.RoomDataDic[rNum].BackB.RemoveAt(0);
                s += (dataCenter.RoomDataDic[rNum].BackB[0].ID + "|");
                dataCenter.RoomDataDic[rNum].BackB.RemoveAt(0);
                NetCtrl.Send(dataCenter.RoomDataDic[rNum].PlayerDataList[sNum - 1].Socket, s);
                SendToRoom(dataCenter, rNum, "3|2|1|" + sNum + "|5|1|" + dataCenter.RoomDataDic[rNum].FinishCount + "|");
            }
        }
    public void HanldeClientSelectLink()
    {
        if (NetCtrlScript == null)
        {
            NetCtrlScript = NetCtrl.GetInstance();
            if (NetCtrlScript == null)
            {
                return;
            }
        }

        NetworkServerNet NetworkServerScript = NetworkServerNet.GetInstance();

        if (NetworkServerScript != null && !NetworkServerScript.CheckIsLinkedServerPort())
        {
            //ScreenLog.LogWarning("the client have not linked server...");
            return;
        }

        if (!isHandleNetLink)
        {
            //ScreenLog.Log("link server mode");
            isHandleNetLink = true;
            NetCtrlScript.ClientCallHandleSelectLinkCount(true);
        }
    }
    IEnumerator CheckPlayerCountLoop()
    {
        bool isStopCheck = false;

        do
        {
            if (Network.peerType == NetworkPeerType.Server)
            {
                if (PlayerCount >= Network.connections.Length)
                {
                    isStopCheck = true;
                    gameObject.SetActive(false);
                    NetCtrl.GetInstance().HandleLoadingGameHiddenLoadingGame();
                    XkPlayerCtrl.GetInstanceCartoon().DelayMoveCartoonCamera();
                    XKGlobalData.GetInstance().PlayGuanKaBeiJingAudio();
                    yield break;
                }
            }
            else
            {
                if (IsHiddenLoadingGame)
                {
                    isStopCheck = true;
                    gameObject.SetActive(false);
                    XkPlayerCtrl.GetInstanceCartoon().DelayMoveCartoonCamera();
                    XKGlobalData.GetInstance().PlayGuanKaBeiJingAudio();
                    yield break;
                }
            }
            yield return(new WaitForSeconds(0.1f));
        } while (!isStopCheck);
    }
Exemple #9
0
    public void SetIsDisconnect()
    {
        ScreenLog.Log("SetIsDisconnect...");
        if (NetCtrlScript == null)
        {
            NetCtrlScript = NetCtrl.GetInstance();
        }
        bIsDisconnect = true;

        switch (Network.peerType)
        {
        case NetworkPeerType.Server:
            OnServer();
            break;

        case NetworkPeerType.Client:
            OnClient();
            break;
        }

        if (NetCtrl.GetInstance() != null)
        {
            NetCtrl.GetInstance().DestroyNetCtrl();
        }
        Destroy(gameObject);
    }
Exemple #10
0
 // Use this for initialization
 void Start()
 {
     _instance = this;
     NetCtrl.InitPlayerIpArray();
     NetworkServerNet.CountPlayerStatic = 0;
     PlayerCreatNet.ResetClientCount();
 }
Exemple #11
0
 //玩家数量为2时候的发送盖牌信息
 private static void SendReverseHeroCase1(DataCenter dataCenter, int rNum)
 {
     if (dataCenter.RoomDataDic[rNum].FinishCount == 4)
     {
         dataCenter.RoomDataDic[rNum].FinishCount = 0;
         SendRoundStart(dataCenter, rNum);
         return;
     }
     else
     {
         string s = "3|3|2|";
         foreach (var item in dataCenter.RoomDataDic[rNum].BackH)
         {
             s += (item.ID + "|");
         }
         int index   = dataCenter.RoomDataDic[rNum].PlayerDataList.FindIndex(player => player.IsKing == true);
         int seatNum = (dataCenter.RoomDataDic[rNum].PlayerDataList[index].SNum + ((dataCenter.RoomDataDic[rNum].FinishCount - 1) % 2)) % 2;
         if (seatNum == 0)
         {
             seatNum = 2;
         }
         NetCtrl.Send(dataCenter.RoomDataDic[rNum].PlayerDataList[seatNum - 1].Socket, s);
         SendToRoom(dataCenter, rNum, "3|2|1|" + seatNum + "|1|3|");
         return;
     }
 }
Exemple #12
0
    void OnFinishTaskAlphaToEnd()
    {
        VRCameraObj.SetActive(false);
        if (SceneManager.GetActiveScene().buildIndex < (int)GameLevel.Scene_2 &&
            SceneManager.GetActiveScene().buildIndex < (Application.levelCount - 1) &&
            !GameOverCtrl.IsShowGameOver)
        {
            int loadLevel = SceneManager.GetActiveScene().buildIndex + 1;
            Debug.Log("loadLevel *** " + loadLevel);
            XkGameCtrl.IsLoadingLevel = true;
            if (NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().ResetGameInfo();
            }
            LoadingGameCtrl.ResetLoadingInfo();

            if (!XkGameCtrl.IsGameOnQuit)
            {
                System.GC.Collect();
                SceneManager.LoadScene(loadLevel);
            }
        }
        else
        {
            //loading movie scene.
            XkGameCtrl.LoadingGameMovie();
        }
    }
 void SendPlayerIntoGame()
 {
     if (Network.peerType != NetworkPeerType.Client)
     {
         return;
     }
     NetCtrl.GetInstance().SendPlayerIntoGame();
 }
	void MakeOtherPortStopJiFenTime()
	{
		if (Network.peerType == NetworkPeerType.Disconnected) {
			return;
		}

		if (NetCtrl.GetInstance() != null) {
			NetCtrl.GetInstance().MakeOtherPortStopJiFenTime();
		}
	}
    void MakeServerShowGameOver()
    {
        if (Network.peerType == NetworkPeerType.Disconnected)
        {
            return;
        }

        if (NetCtrl.GetInstance() != null)
        {
            NetCtrl.GetInstance().MakeServerShowGameOver();
        }
    }
Exemple #16
0
    void MakeOtherClientShowFinishTask()
    {
        if (Network.peerType == NetworkPeerType.Disconnected)
        {
            return;
        }

        if (NetCtrl.GetInstance() != null)
        {
            NetCtrl.GetInstance().MakeOtherClientShowFinishTask();
        }
    }
    void HandleServerKaQiuShaFire()
    {
        if (Network.peerType != NetworkPeerType.Client)
        {
            return;
        }

        if (NetCtrl.GetInstance() != null)
        {
            NetCtrl.GetInstance().TryActiveKaQiuShaFire();
        }
    }
    void OnPlayerConnectedInfo()
    {
        int max = Network.connections.Length;

        ScreenLog.Log("OnPlayerConnected -> init, clientCount " + max);
        for (int i = 0; i < max; i++)
        {
            CreatLinkPlayer(Network.connections[i]);
        }
        NetworkServerNet.CountPlayerStatic = 0;
        ServerWaitUI.SetActive(false);
        NetCtrl.GetInstance().SendCheckIsPlayGame();
    }
Exemple #19
0
    public void AddStartMovePlayerCount()
    {
        StartMovePlayerCount++;
//		Debug.Log("AddStartMovePlayerCount -> StartMovePlayerCount "+StartMovePlayerCount
//		          +", netLen"+Network.connections.Length);
        if (Network.peerType == NetworkPeerType.Server)
        {
            if (StartMovePlayerCount > Network.connections.Length)
            {
                NetCtrl.GetInstance().MakeClientPlayerMove();                 //MakeClientPlayerMove
            }
        }
    }
Exemple #20
0
        //处理大厅的加入房间数据
        private static void DealLobbyData2(DataCenter dataCenter, Socket socket, string[] strs)
        {
            int rNum  = int.Parse(strs[2]);
            int index = dataCenter.LobbyPlayerList.FindIndex(i => i.Mail == strs[3]);

            dataCenter.LobbyPlayerList[index].RNum = rNum;
            dataCenter.LobbyPlayerList[index].SNum = dataCenter.RoomDataDic[rNum].PlayerDataList.Count + 1;
            dataCenter.RoomDataDic[rNum].PlayerDataList.Add(dataCenter.LobbyPlayerList[index]);
            NetCtrl.Send(socket, "2|2|1|" + rNum + "|" + dataCenter.RoomDataDic[rNum].PlayerDataList.Count + "|");
            NetCtrl.Send(dataCenter.RoomDataDic[rNum].PlayerDataList[0].Socket, "2|4|2");
            SendDetailLobbyData(dataCenter, rNum);
            SendRoughLobbyData(dataCenter);
        }
    void CheckGameBtEvent()
    {
//		if (!ModeObj.activeSelf) {
//			return;
//		}

        ModeVal = GameMode.LianJi;
//		if (ModeVal == GameMode.Null) {
//			return;
//		}

//		if (!StartBtObj.activeSelf) {
//			return;
//		}

        XKGlobalData.GetInstance().PlayModeQueRenAudio();
        if (ModeVal != GameMode.LianJi)
        {
            IsSelectDanJiMode = true;
            HiddenGameMode();
            if (NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().SendSubLinkCount();
            }
            GameTypeCtrl.SetAppTypeVal(AppGameType.LianJiFeiJi);
            NetworkServerNet.GetInstance().MakeServerDisconnect();             //Close ServerNet.
            NetworkServerNet.GetInstance().MakeClientDisconnect();             //Close ClientNet.
            SetActiveLoading(true);
        }
        else
        {
            IsSelectDanJiMode = false;
//			if (NetworkServerNet.GetInstance() != null) {
//				NetworkServerNet.GetInstance().TryToLinkServer();
//			}

            if (NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().SendAddLinkCount();                 //ServerPort.
            }
            else
            {
                //ClientPort.
                IsActiveClientPort = true;
                HiddenGameMode();
                GameTypeCtrl.SetAppTypeVal(AppGameType.LianJiFeiJi);
                SetActiveLoading(true);
            }
        }
        SetActiveStartBt(false);
    }
    public void MakeServerDisconnect()
    {
        if (Network.peerType != NetworkPeerType.Server)
        {
            return;
        }

        if (IsInvoking("DelayMakeServerDisconnect"))
        {
            return;
        }
        NetCtrl.GetInstance().CloseClientPortSendRPC();
        Invoke("DelayMakeServerDisconnect", 3f);
    }
Exemple #23
0
    void OnPlayerConnected(NetworkPlayer player)
    {
        clientCount++;
        if (Application.loadedLevel == (int)GameLeve.Movie)
        {
            int lenVal   = Network.connections.Length;
            int indexVal = lenVal - 1;
            NetCtrl.OnPlayerConnectedServer(player, indexVal);

            string ipInfo = Network.connections[indexVal].ipAddress;
            NetCtrl.GetInstance().SendPlayerIndexNameInfo(ipInfo, indexVal);
        }
        //ScreenLog.Log("NetworkServerNet::OnPlayerConnected -> init, clientCount " + clientCount);
    }
Exemple #24
0
 public VM()
 {
     NetCtrl    = new NetCtrl();
     SQLCtrl    = new SQLCtrl();
     DataCenter = new DataCenter();
     Ips        = new ObservableCollection <ServerIp>();
     foreach (var item in NetCtrl.GetLocalIP())
     {
         if (!item.ToString().Contains("%"))
         {
             Ips.Add(new ServerIp(item));
         }
     }
 }
Exemple #25
0
 void OnServerInitialized()
 {
     //ScreenLog.Log("OnServerInitialized -> init");
     IsServer = true;
     if (NetCtrlPrefab != null && GameObject.Find(NetCtrlPrefab.name) == null)
     {
         int playerID = int.Parse(Network.player.ToString());
         Network.Instantiate(NetCtrlPrefab, NetCtrlPrefab.position, NetCtrlPrefab.rotation, playerID);
         NetCtrlScript = NetCtrl.GetInstance();
         if (NetCtrlScript != null)
         {
             NetCtrlScript.IsServerPort = true;
         }
     }
 }
    public void StopJiFenTime()
    {
        if (IsInvoking("DelayStopJiFenPanel"))
        {
            CancelInvoke("DelayStopJiFenPanel");
        }

        if (Time.realtimeSinceStartup - TimeStartVal < 8f)
        {
            Debug.Log("StopJiFenTime -> TimeStartVal was wrong!");
            return;
        }

        if (IsMakeJiFenStop)
        {
            return;
        }
        IsMakeJiFenStop = true;

        //GameOverCtrl.IsShowGameOver = true; //test
        if (SceneManager.GetActiveScene().buildIndex < (int)GameLevel.Scene_4
            //if (SceneManager.GetActiveScene().buildIndex < XkGameCtrl.TestGameEndLv //test
            && SceneManager.GetActiveScene().buildIndex < (SceneManager.sceneCountInBuildSettings - 1) &&
            !GameOverCtrl.IsShowGameOver)
        {
            MakeOtherPortStopJiFenTime();
            int loadLevel = SceneManager.GetActiveScene().buildIndex + 1;
            Debug.Log("loadLevel *** " + loadLevel);
            XkGameCtrl.IsLoadingLevel = true;
            if (NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().ResetGameInfo();
            }
            LoadingGameCtrl.ResetLoadingInfo();

            if (!XkGameCtrl.IsGameOnQuit)
            {
                System.GC.Collect();
                SceneManager.LoadScene(loadLevel);
            }
        }
        else
        {
            XkGameCtrl.LoadingGameMovie();
        }
    }
    void OnServerInitialized()
    {
        Debug.Log("Unity:" + "OnServerInitialized...");
        if (!IsCheckServerPortPlayerNum)
        {
            Invoke("SetIsCheckServerPortPlayerNum", 10f);
        }

        if (NetCtrlScript == null)
        {
            int        playerID = int.Parse(Network.player.ToString());
            Transform  tran     = GameTypeCtrl.Instance.NetCtrlObj.transform;
            GameObject obj      = (GameObject)Network.Instantiate(GameTypeCtrl.Instance.NetCtrlObj, tran.position, tran.rotation, playerID);
            NetCtrlScript = obj.GetComponent <NetCtrl>();
            AddNpcObjList(obj);
        }
    }
Exemple #28
0
    public void StopJiFenTime()
    {
        if (IsInvoking("DelayStopJiFenPanel"))
        {
            CancelInvoke("DelayStopJiFenPanel");
        }

        if (Time.realtimeSinceStartup - TimeStartVal < 8f)
        {
            Debug.Log("StopJiFenTime -> TimeStartVal was wrong!");
            return;
        }

        if (IsMakeJiFenStop)
        {
            return;
        }
        IsMakeJiFenStop = true;

        //GameOverCtrl.IsShowGameOver = true; //test
        if (Application.loadedLevel < (int)GameLevel.Scene_4
            //if (Application.loadedLevel < XkGameCtrl.TestGameEndLv //test
            && Application.loadedLevel < (Application.levelCount - 1) &&
            !GameOverCtrl.IsShowGameOver)
        {
            MakeOtherPortStopJiFenTime();
            int loadLevel = Application.loadedLevel + 1;
            Debug.Log("loadLevel *** " + loadLevel);
            XkGameCtrl.IsLoadingLevel = true;
            if (NetCtrl.GetInstance() != null)
            {
                NetCtrl.GetInstance().ResetGameInfo();
            }
            LoadingGameCtrl.ResetLoadingInfo();

            if (!XkGameCtrl.IsGameOnQuit)
            {
                System.GC.Collect();
                Application.LoadLevel(loadLevel);
            }
        }
        else
        {
            XkGameCtrl.LoadingGameMovie();
        }
    }
Exemple #29
0
        //处理我要偷取的信息
        private static void DealGameHero4(DataCenter dataCenter, string[] strs)
        {
            int    rNum = int.Parse(strs[3]);
            int    sNum = int.Parse(strs[4]);
            string s    = "3|3|4|";

            for (int i = 2; i < 8; i++)
            {
                //if (dataCenter.RoomDataDic[rNum].PlayerDataList.FindIndex(p => p.KilledNum == (i+1)) < 0)
                //    s += ((i+1) + "|");
                if ((i + 1) != dataCenter.RoomDataDic[rNum].KilledNum)
                {
                    s += ((i + 1) + "|");
                }
            }
            NetCtrl.Send(dataCenter.RoomDataDic[rNum].PlayerDataList[sNum - 1].Socket, s);
        }
    public void MakeClientDisconnect()
    {
        if (Network.peerType != NetworkPeerType.Client)
        {
            return;
        }

        if (IsInvoking("DelayMakeClientDisconnect"))
        {
            return;
        }

        if (NetCtrl.GetInstance() != null)
        {
            NetCtrl.GetInstance().CloseServerPortSendRPC();
        }
        Invoke("DelayMakeClientDisconnect", 1f);
    }