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(); } }
//给特定房间的人发送数据 private static void SendToRoom(DataCenter dataCenter, int rNum, string str) { foreach (var item in dataCenter.RoomDataDic[rNum].PlayerDataList) { NetCtrl.Send(item.Socket, str); } }
//处理请求数据信息 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; } }
// 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"); } }
//选择拿牌操作 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); }
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); }
// Use this for initialization void Start() { _instance = this; NetCtrl.InitPlayerIpArray(); NetworkServerNet.CountPlayerStatic = 0; PlayerCreatNet.ResetClientCount(); }
//玩家数量为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; } }
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(); } }
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(); }
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 } } }
//处理大厅的加入房间数据 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); }
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); }
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)); } } }
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); } }
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(); } }
//处理我要偷取的信息 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); }