void Update() { if (Time.frameCount % 30 == 0) { if (selectGameLevel != GameLeve.None && (Application.loadedLevel == (int)GameLeve.Leve3 || Application.loadedLevel == (int)GameLeve.Leve4)) { selectGameLevel = GameLeve.None; } if (selectLinkCount != 0 && (Application.loadedLevel == (int)GameLeve.Leve3 || Application.loadedLevel == (int)GameLeve.Leve4)) { selectLinkCount = 0; } } }
void SendSelectLevelInfo(int levelGame) { selectGameLevel = (GameLeve)levelGame; GlobalData.GetInstance().gameLeve = selectGameLevel; }
void OnGUI() { GameLeve levelVal = GlobalData.GetInstance().gameLeve; HostData[] data = MasterServer.PollHostList(); // Go through all the hosts in the host list foreach (var element in data) { /*var name = element.gameName + " " + element.connectedPlayers + " / " + element.playerLimit; * GUILayout.BeginHorizontal(); * GUILayout.Label(name); * GUILayout.Space(5);*/ var hostInfo = "["; foreach (var host in element.ip) { hostInfo = hostInfo + host + ":" + element.port + " "; } hostInfo = hostInfo + "]"; /*GUILayout.Label(hostInfo); * GUILayout.Space(5); * GUILayout.Label(element.comment); * GUILayout.Space(5); * GUILayout.FlexibleSpace();*/ if (element.comment == MasterServerGameNetComment && ServerIp == element.ip[0] && Toubi.GetInstance() != null && !Toubi.GetInstance().IsIntoPlayGame) { Toubi.GetInstance().IsIntoPlayGame = true; } if (Network.peerType == NetworkPeerType.Disconnected) { if (!IsClickConnect) { bool isConnectServer = false; if (levelVal == GameLeve.WaterwheelNet && element.comment == MasterServerGameNetComment && element.ip[0] != Network.player.ipAddress && ServerIp == element.ip[0]) { if (Time.realtimeSinceStartup - TimeConnectServer > RandConnectTime) { isConnectServer = true; TimeConnectServer = Time.realtimeSinceStartup; RandConnectTime = Random.Range(3f, 10f); } } else if (levelVal == GameLeve.Movie && element.comment == MasterServerMovieComment && element.ip[0] != Network.player.ipAddress && element.connectedPlayers < element.playerLimit && Toubi.GetInstance() != null && Toubi.GetInstance().CheckIsLoopWait()) { if (Time.realtimeSinceStartup - TimeConnectServer > RandConnectTime) { isConnectServer = true; TimeConnectServer = Time.realtimeSinceStartup; RandConnectTime = Random.Range(3f, 10f); } } if (isConnectServer) { // Connect to HostData struct, internally the correct method is used (GUID when using NAT). Network.RemoveRPCs(Network.player); Network.DestroyPlayerObjects(Network.player); MasterServer.dedicatedServer = false; Network.Connect(element); IsClickConnect = true; if (levelVal == GameLeve.Movie) { ServerIp = element.ip[0]; TimeConnect = 0f; } Debug.Log("Connect element.ip -> " + element.ip[0] + ", element.comment " + element.comment + ", gameLeve " + levelVal + ", time " + Time.realtimeSinceStartup); } } else { if (levelVal == GameLeve.WaterwheelNet) { if (element.comment == MasterServerGameNetComment && ServerIp == element.ip[0]) { TimeConnect += Time.deltaTime; if (TimeConnect >= 2f) { TimeConnect = 0f; IsClickConnect = false; } } } else if (levelVal == GameLeve.Movie) { TimeConnect += Time.deltaTime; if (TimeConnect >= 2f) { TimeConnect = 0f; IsClickConnect = false; Debug.Log("reconnect masterServer..."); } } } } //GUILayout.EndHorizontal(); } //GUI.Label(new Rect(0f, 400f, 1000f, 30f), "TestDVal " + TestDVal.ToString()); }
void sendResetLinkCount() { selectLinkCount = 0; selectGameLevel = GameLeve.None; }
//float TestDVal; void CheckMasterServerList() { int masterServerNum = 0; //int masterServerGameNetNum = 0; bool isCreatMasterServer = true; HostData[] data = MasterServer.PollHostList(); // Go through all the hosts in the host list foreach (var element in data) { if (element.comment == MasterServerMovieComment) { masterServerNum++; if (Network.peerType == NetworkPeerType.Disconnected) { if (masterServerNum > 0) { isCreatMasterServer = false; } } else if (Network.peerType == NetworkPeerType.Server) { if (masterServerNum > 1 && Random.Range(0, 100) % 2 == 1) { isCreatMasterServer = false; Debug.Log("random remove masterServer..."); } } } else if (element.comment == MasterServerGameNetComment && element.ip[0] == ServerIp) { //masterServerGameNetNum++; } } GameLeve levelVal = GlobalData.GetInstance().gameLeve; if (levelVal == GameLeve.None || levelVal == GameLeve.Waterwheel || levelVal == GameLeve.SetPanel) { isCreatMasterServer = false; } switch (Network.peerType) { case NetworkPeerType.Disconnected: if (isCreatMasterServer) { if (levelVal == GameLeve.Movie) { if ((Toubi.GetInstance() != null && !Toubi.GetInstance().CheckIsLoopWait()) || Toubi.GetInstance() == null) { return; } ServerIp = ""; } NetworkServerNet.GetInstance().InitCreateServer(); //MasterServerTime = Time.realtimeSinceStartup; } break; case NetworkPeerType.Server: if (!isCreatMasterServer) { NetworkServerNet.GetInstance().RemoveMasterServerHost(); } else { if (levelVal == GameLeve.Movie) { //MasterServerTime = Time.realtimeSinceStartup; if (Toubi.GetInstance() != null && !Toubi.GetInstance().CheckIsLoopWait()) { NetworkServerNet.GetInstance().ResetMasterServerHost(); } } /*else if (levelVal == GameLeve.WaterwheelNet) { * * if (masterServerGameNetNum == 0) { * TestDVal = Time.realtimeSinceStartup - MasterServerTime; * if (Time.realtimeSinceStartup - MasterServerTime > 10f) { * Debug.Log("no masterServer..."); * NetworkServerNet.GetInstance().RemoveMasterServerHost(); * MasterServerTime = Time.realtimeSinceStartup; * } * } * }*/ } break; } }