Ejemplo n.º 1
0
    public void SelectRegion(int index)
    {
        PhotonNetwork.PhotonServerSettings.ServerAddress = cloudServers[index].address;

        CloudRegionCode region = new CloudRegionCode();

        switch (index)
        {
            case 0:
                region = CloudRegionCode.asia;
                break;

            case 1:
                region = CloudRegionCode.us;
                break;

            case 2:
                region = CloudRegionCode.eu;
                break;

            case 3:
                region = CloudRegionCode.jp;
                break;

            case 4:
                region = CloudRegionCode.au;
                break;
        }

        PhotonNetwork.OverrideBestCloudServer(region);

        GameManager.instance.network.Connect();

        Application.LoadLevel("2_Lobby");
    }
Ejemplo n.º 2
0
    public static CloudRegionCode Parse(string codeAsString)
    {
        codeAsString = codeAsString.ToLower();
        CloudRegionCode cloudRegionCode = CloudRegionCode.none;

        if (Enum.IsDefined(typeof(CloudRegionCode), (object)codeAsString))
        {
            cloudRegionCode = (CloudRegionCode)Enum.Parse(typeof(CloudRegionCode), codeAsString);
        }
        return(cloudRegionCode);
    }
Ejemplo n.º 3
0
    public static CloudRegionCode Parse(string codeAsString)
    {
        codeAsString = codeAsString.ToLower();
        CloudRegionCode result = CloudRegionCode.none;

        if (Enum.IsDefined(typeof(CloudRegionCode), codeAsString))
        {
            result = (CloudRegionCode)((int)Enum.Parse(typeof(CloudRegionCode), codeAsString));
        }
        return(result);
    }
 // Token: 0x0600B239 RID: 45625 RVA: 0x004164D5 File Offset: 0x004146D5
 internal static void NFCANDIBPLB(CloudRegionCode DPNHODJHGJL)
 {
     if (DPNHODJHGJL == CloudRegionCode.asia)
     {
         PlayerPrefs.DeleteKey("player.goldcrystal");
     }
     else
     {
         PlayerPrefs.SetString("_Distortion", DPNHODJHGJL.ToString());
     }
 }
 // Token: 0x0600B25B RID: 45659 RVA: 0x00416B6C File Offset: 0x00414D6C
 internal static void GGLNANJIJLG(CloudRegionCode DPNHODJHGJL)
 {
     if (DPNHODJHGJL == CloudRegionCode.usw)
     {
         PlayerPrefs.DeleteKey("health");
     }
     else
     {
         PlayerPrefs.SetString("Reading preview file failed! Make sure JSON file is filled properly and/or file exists: \"{0}\"", DPNHODJHGJL.ToString());
     }
 }
 // Token: 0x0600B258 RID: 45656 RVA: 0x00416AEE File Offset: 0x00414CEE
 internal static void LEFACILBIGM(CloudRegionCode DPNHODJHGJL)
 {
     if (DPNHODJHGJL == CloudRegionCode.asia)
     {
         PlayerPrefs.DeleteKey("EventSystem");
     }
     else
     {
         PlayerPrefs.SetString("IDInputField", DPNHODJHGJL.ToString());
     }
 }
 // Token: 0x0600B274 RID: 45684 RVA: 0x004171CD File Offset: 0x004153CD
 internal static void MEBNOLCEOFA(CloudRegionCode DPNHODJHGJL)
 {
     if (DPNHODJHGJL == CloudRegionCode.asia)
     {
         PlayerPrefs.DeleteKey("OnPressRight");
     }
     else
     {
         PlayerPrefs.SetString("settings.shaders.bloomintencity", DPNHODJHGJL.ToString());
     }
 }
Ejemplo n.º 8
0
    // Token: 0x06003D00 RID: 15616 RVA: 0x001343E4 File Offset: 0x001327E4
    internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest)
    {
        while (PhotonNetwork.networkingPeer.AvailableRegions == null)
        {
            if (PhotonNetwork.connectionStateDetailed != ClientState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != ClientState.ConnectedToNameServer)
            {
                UnityEngine.Debug.LogError("Call ConnectToNameServer to ping available regions.");
                yield break;
            }
            UnityEngine.Debug.Log(string.Concat(new object[]
            {
                "Waiting for AvailableRegions. State: ",
                PhotonNetwork.connectionStateDetailed,
                " Server: ",
                PhotonNetwork.Server,
                " PhotonNetwork.networkingPeer.AvailableRegions ",
                PhotonNetwork.networkingPeer.AvailableRegions != null
            }));
            yield return(new WaitForSeconds(0.25f));
        }
        if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0)
        {
            UnityEngine.Debug.LogError("No regions available. Are you sure your appid is valid and setup?");
            yield break;
        }
        PhotonPingManager pingManager = new PhotonPingManager();

        foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions)
        {
            PhotonHandler.SP.StartCoroutine(pingManager.PingSocket(region));
        }
        while (!pingManager.Done)
        {
            yield return(new WaitForSeconds(0.1f));
        }
        Region best = pingManager.BestRegion;

        PhotonHandler.BestRegionCodeInPreferences = best.Code;
        UnityEngine.Debug.Log(string.Concat(new object[]
        {
            "Found best region: '",
            best.Code,
            "' ping: ",
            best.Ping,
            ". Calling ConnectToRegionMaster() is: ",
            connectToBest
        }));
        if (connectToBest)
        {
            PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code);
        }
        yield break;
    }
Ejemplo n.º 9
0
    public void ConnectToRegion(CloudRegionCode code)
    {
        if (PhotonNetwork.connected)
        {
            PhotonNetwork.Disconnect();
        }

        PhotonNetwork.offlineMode = false;
        connecting = true;
        PhotonNetwork.ConnectToRegion(code, version);
        PhotonNetwork.sendRate            = 30;
        PhotonNetwork.sendRateOnSerialize = 30;
    }
Ejemplo n.º 10
0
 private void OnUpdate()
 {
     if (this.lastUsedRegion != ServerSettings.BestRegionCodeInPreferences)
     {
         this.lastUsedRegion = ServerSettings.BestRegionCodeInPreferences;
         Repaint();
     }
     // this won't repaint when we disconnect but it's "good enough" to update when we connect and switch servers.
     if (Application.isPlaying && this.lastServer != PhotonNetwork.Server)
     {
         this.lastServer = PhotonNetwork.Server;
         Repaint();
     }
 }
Ejemplo n.º 11
0
    public virtual void OnClickConnectToRegion()
    {
        var             networkManager = SimplePhotonNetworkManager.Singleton;
        CloudRegionCode regionCode     = CloudRegionCode.none;

        if (dropdownRegion != null && regions.TryGetValue(dropdownRegion.value, out regionCode))
        {
            networkManager.region = regionCode;
            networkManager.ConnectToRegion();
        }
        else
        {
            networkManager.ConnectToBestCloudServer();
        }
    }
    public static string RegionToString(CloudRegionCode code)
    {
        switch (code)
        {
        /// <summary>European servers in Amsterdam.</summary>
        case CloudRegionCode.eu:
            return("Europe");

        /// <summary>US servers (East Coast).</summary>
        case CloudRegionCode.us:
            return("US East");

        /// <summary>Asian servers in Singapore.</summary>
        case CloudRegionCode.asia:
            return("Asia");

        /// <summary>Japanese servers in Tokyo.</summary>
        case CloudRegionCode.jp:
            return("Japan");

        /// <summary>Australian servers in Melbourne.</summary>
        case CloudRegionCode.au:
            return("Australia");

        ///<summary>USA West, San José, usw</summary>
        case CloudRegionCode.usw:
            return("US West");

        ///<summary>South America	, Sao Paulo, sa</summary>
        case CloudRegionCode.sa:
            return("South America");

        ///<summary>Canada East, Montreal, cae</summary>
        case CloudRegionCode.cae:
            return("Canada East");

        ///<summary>South Korea, Seoul, kr</summary>
        case CloudRegionCode.kr:
            return("South Korea");

        ///<summary>India, Chennai, in</summary>
        case CloudRegionCode.@in:
            return("India");

        default:
            goto case CloudRegionCode.eu;
        }
    }
Ejemplo n.º 13
0
 public void ChangeServer(int region)
 {
     if (PhotonNetwork.connected)
     {
         PhotonNetwork.Disconnect();
         WaitForConnectToNew = true;
         ServerHost          = bl_CoopUtils.IntToRegionCode(region);
         Debug.LogWarning("Wait for the current server disconnect and reconnect to new.");
         return;
     }
     //If disconect, connect again to the select region
     PhotonNetwork.ConnectToRegion(bl_CoopUtils.IntToRegionCode(region), GameVersion);
     ServerHost          = bl_CoopUtils.IntToRegionCode(region);
     WaitForConnectToNew = false;
     this.GetComponent <bl_LobbyUI>().ChangeWindow(6);
 }
    internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest)
    {
        BestRegionCodeCurrently = CloudRegionCode.none;
        while (PhotonNetwork.networkingPeer.AvailableRegions == null)
        {
            if (PhotonNetwork.connectionStateDetailed != PeerState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != PeerState.ConnectedToNameServer)
            {
                Debug.LogError("Call ConnectToNameServer to ping available regions.");
                yield break; // break if we don't connect to the nameserver at all
            }

            Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null));
            yield return(new WaitForSeconds(0.25f)); // wait until pinging finished (offline mode won't ping)
        }

        if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0)
        {
            Debug.LogError("No regions available. Are you sure your appid is valid and setup?");
            yield break; // break if we don't get regions at all
        }

        PhotonPingManager pingManager = new PhotonPingManager();

        foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions)
        {
            SP.StartCoroutine(pingManager.PingSocket(region));
        }

        while (!pingManager.Done)
        {
            yield return(new WaitForSeconds(0.1f)); // wait until pinging finished (offline mode won't ping)
        }


        Region best = pingManager.BestRegion;

        PhotonHandler.BestRegionCodeCurrently     = best.Code;
        PhotonHandler.BestRegionCodeInPreferences = best.Code;

        Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest);


        if (connectToBest)
        {
            PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code);
        }
    }
Ejemplo n.º 15
0
 internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest)
 {
     PhotonHandler.BestRegionCodeCurrently = CloudRegionCode.none;
     while (PhotonNetwork.networkingPeer.AvailableRegions == null)
     {
         if (PhotonNetwork.connectionStateDetailed != PeerStates.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != PeerStates.ConnectedToNameServer)
         {
             UnityEngine.Debug.LogError("Call ConnectToNameServer to ping available regions.");
             yield break;
         }
         UnityEngine.Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null));
         yield return((object)new WaitForSeconds(0.25f));
     }
     if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0)
     {
         UnityEngine.Debug.LogError("No regions available. Are you sure your appid is valid and setup?");
     }
     else
     {
         PhotonPingManager         pingManager = new PhotonPingManager();
         List <Region> .Enumerator enumerator  = PhotonNetwork.networkingPeer.AvailableRegions.GetEnumerator();
         try
         {
             while (enumerator.MoveNext())
             {
                 Region region = enumerator.Current;
                 PhotonHandler.SP.StartCoroutine(pingManager.PingSocket(region));
             }
         }
         finally
         {
             ((IDisposable)enumerator).Dispose();
         }
         while (!pingManager.Done)
         {
             yield return((object)new WaitForSeconds(0.1f));
         }
         Region best = pingManager.BestRegion;
         PhotonHandler.BestRegionCodeCurrently     = best.Code;
         PhotonHandler.BestRegionCodeInPreferences = best.Code;
         UnityEngine.Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest);
         if (connectToBest)
         {
             PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code);
         }
     }
 }
Ejemplo n.º 16
0
        public static string GetMasterAddress(CloudRegionCode code)
        {
            switch (code)
            {
            case CloudRegionCode.us:
                return("app-us.exitgamescloud.com");

            case CloudRegionCode.eu:
                return("app-eu.exitgamescloud.com");

            case CloudRegionCode.jp:
                return("app-jp.exitgamescloud.com");

            case CloudRegionCode.asia:
                return("app-asia.exitgamescloud.com");
            }

            return(string.Empty);
        }
Ejemplo n.º 17
0
    public void PrevRegion()
    {
        int targetIndex = AvailableRegions.IndexOf(selectedRegion) - 1;

        if (targetIndex < 0)
        {
            targetIndex = AvailableRegions.Count - 1;
        }

        selectedRegion = AvailableRegions[targetIndex];
        CampaignSelectionManager.Instanse.RoomSelector.RegionLabel.text = "Region: " + RegionToString(selectedRegion);

        if (PhotonNetwork.connected)
        {
            PhotonNetwork.Disconnect();
        }

        CampaignSelectionManager.Instanse.RoomSelector.CleanRoomList();
        launcherPanel.ProgressLabel.text = "Disconnected!";
    }
    public void NextRegion()
    {
        int targetIndex = AvailableRegions.IndexOf(SelectedRegion) + 1;

        if (targetIndex > AvailableRegions.Count - 1)
        {
            targetIndex = 0;
        }

        SelectedRegion = AvailableRegions[targetIndex];
        CampaignSelectionManager.Instanse.roomSelector.regionLabel.text = "Region: " + RegionToString(SelectedRegion);

        if (PhotonNetwork.connected)
        {
            PhotonNetwork.Disconnect();
        }

        CampaignSelectionManager.Instanse.roomSelector.CleanRoomList();
        launcherPanel.progressLabel.text = "Disconnected!";
    }
Ejemplo n.º 19
0
    public static bool ConnectToBestCloudServer(string gameVersion)
    {
        if (PhotonServerSettings == null)
        {
            Debug.LogError("Can't connect: Loading settings failed. ServerSettings asset must be in any 'Resources' folder as: PhotonServerSettings");
            return(false);
        }
        if (PhotonServerSettings.HostType == ServerSettings.HostingOption.OfflineMode)
        {
            return(ConnectUsingSettings(gameVersion));
        }
        networkingPeer.IsInitialConnect = true;
        networkingPeer.SetApp(PhotonServerSettings.AppID, gameVersion);
        CloudRegionCode bestRegionCodeInPreferences = PhotonHandler.BestRegionCodeInPreferences;

        if (bestRegionCodeInPreferences != CloudRegionCode.none)
        {
            Debug.Log("Best region found in PlayerPrefs. Connecting to: " + bestRegionCodeInPreferences);
            return(networkingPeer.ConnectToRegionMaster(bestRegionCodeInPreferences));
        }
        return(networkingPeer.ConnectToNameServer());
    }
Ejemplo n.º 20
0
    private static string RegionToString(CloudRegionCode code)
    {
        switch (code)
        {
        case CloudRegionCode.eu:
            return("Europe");

        case CloudRegionCode.us:
            return("US East");

        case CloudRegionCode.asia:
            return("Asia");

        case CloudRegionCode.jp:
            return("Japan");

        case CloudRegionCode.au:
            return("Australia");

        case CloudRegionCode.usw:
            return("US West");

        case CloudRegionCode.sa:
            return("South America");

        case CloudRegionCode.cae:
            return("Canada East");

        case CloudRegionCode.kr:
            return("South Korea");

        case CloudRegionCode.@in:
            return("India");

        default:
            goto case CloudRegionCode.eu;
        }
    }
Ejemplo n.º 21
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="code"></param>
    /// <returns></returns>
    public static int RegionCodeToInt(CloudRegionCode code)
    {
        switch (code)
        {
        case CloudRegionCode.asia:
            return(0);

        case CloudRegionCode.au:
            return(1);

        case CloudRegionCode.eu:
            return(2);

        case CloudRegionCode.jp:
            return(3);

        case CloudRegionCode.us:
            return(4);

        case CloudRegionCode.cae:
            return(5);

        case CloudRegionCode.sa:
            return(6);

        case CloudRegionCode.usw:
            return(7);

        case CloudRegionCode.@in:
            return(8);

        case CloudRegionCode.kr:
            return(9);
        }
        return(5); // equal a none
    }
Ejemplo n.º 22
0
    /// <summary>
    ///
    /// </summary>
    /// <param name="code"></param>
    /// <returns></returns>
    public static string RegionToString(CloudRegionCode code)
    {
        switch (code)
        {
        case CloudRegionCode.asia:
            return("ASIA");

        case CloudRegionCode.au:
            return("AUSTRALIA");

        case CloudRegionCode.eu:
            return("EUROPE");

        case CloudRegionCode.jp:
            return("JAPAN");

        case CloudRegionCode.us:
            return("USA");

        case CloudRegionCode.sa:
            return("SOUTH AMERICA");

        case CloudRegionCode.cae:
            return("CANADA");

        case CloudRegionCode.usw:
            return("USA WEST");

        case CloudRegionCode.@in:
            return("INDIA");

        case CloudRegionCode.kr:
            return("SOUTH KOREA");
        }
        return("NONE"); // equal a none
    }
Ejemplo n.º 23
0
 public void UseCloud(string cloudAppid, CloudRegionCode code)
 {
     this.HostType = HostingOption.PhotonCloud;
     this.AppID = cloudAppid;
     this.PreferredRegion = code;
 }
Ejemplo n.º 24
0
 // Token: 0x0600B7FA RID: 47098 RVA: 0x00436A71 File Offset: 0x00434C71
 public Region(CloudRegionCode JFNKDGKEAEA, string GOLPAHODNFE, string FJPNDMCELJN)
 {
     this.Code        = JFNKDGKEAEA;
     this.Cluster     = GOLPAHODNFE;
     this.HostAndPort = FJPNDMCELJN;
 }
Ejemplo n.º 25
0
 // Token: 0x0600B7DB RID: 47067 RVA: 0x004361CD File Offset: 0x004343CD
 public Region(CloudRegionCode JFNKDGKEAEA)
 {
     this.Code    = JFNKDGKEAEA;
     this.Cluster = JFNKDGKEAEA.ToString();
 }
Ejemplo n.º 26
0
 /// <summary>Overwrites the region that is used for ConnectToBestCloudServer(string gameVersion).</summary>
 /// <remarks>
 /// This will overwrite the result of pinging all cloud servers.
 /// Use this to allow your users to save a manually selected region in the prefs.
 /// </remarks>
 public static void OverrideBestCloudServer(CloudRegionCode region)
 {
     PhotonHandler.BestRegionCodeInPreferences = region;
 }
Ejemplo n.º 27
0
 // Token: 0x06003E47 RID: 15943 RVA: 0x00139575 File Offset: 0x00137975
 public void UseCloud(string cloudAppid, CloudRegionCode code)
 {
     this.HostType        = ServerSettings.HostingOption.PhotonCloud;
     this.AppID           = cloudAppid;
     this.PreferredRegion = code;
 }
Ejemplo n.º 28
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="code"></param>
 /// <returns></returns>
 public static int RegionCodeToInt(CloudRegionCode code)
 {
     switch (code)
     {
         case CloudRegionCode.asia:
             return 0;
         case CloudRegionCode.au:
             return 1;
         case CloudRegionCode.eu:
             return 2;
         case CloudRegionCode.jp:
             return 3;
         case CloudRegionCode.us:
             return 4;
     }
     return 5; // equal a none
 }
Ejemplo n.º 29
0
 /// <summary>
 /// 
 /// </summary>
 /// <param name="code"></param>
 /// <returns></returns>
 public static string RegionToString(CloudRegionCode code)
 {
     switch (code)
     {
         case CloudRegionCode.asia:
             return "ASIA";
         case CloudRegionCode.au:
             return "AUSTRALIA";
         case CloudRegionCode.eu:
             return "EUROPE";
         case CloudRegionCode.jp:
             return "JAPAN";
         case CloudRegionCode.us:
             return "USA";
     }
     return "NONE"; // equal a none
 }
Ejemplo n.º 30
0
 public void OnEnable()
 {
     this.lastUsedRegion       = ServerSettings.BestRegionCodeInPreferences;
     EditorApplication.update += this.OnUpdate;
 }
Ejemplo n.º 31
0
    protected virtual void OnGuiSetupCloudAppId()
    {
        GUILayout.Label(CurrentLang.AppIdLabel);

        GUILayout.BeginHorizontal();
        this.cloudAppId = EditorGUILayout.TextField(this.cloudAppId);

        open = GUILayout.Toggle(open, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false));

        GUILayout.EndHorizontal();

        if (open)
        {
            GUILayout.Label(CurrentLang.AppIdInfoLabel);
        }



        EditorGUILayout.Separator();

        GUILayout.Label(CurrentLang.CloudRegionLabel);

        GUILayout.BeginHorizontal();
        int toolbarValue = GUILayout.Toolbar((int)selectedRegion, CloudServerRegionNames);   // the enum CloudRegionCode is converted into a string[] in init (toolbar can't use enum)

        helpRegion = GUILayout.Toggle(helpRegion, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false));
        GUILayout.EndHorizontal();


        if (helpRegion)
        {
            GUILayout.Label(CurrentLang.RegionalServersInfo);
        }
        PhotonEditor.selectedRegion = (CloudRegionCode)toolbarValue;

        EditorGUILayout.Separator();

        GUILayout.BeginHorizontal();
        if (GUILayout.Button(CurrentLang.CancelButton))
        {
            GUIUtility.keyboardControl = 0;
            this.ReApplySettingsToWindow();
        }



        if (GUILayout.Button(CurrentLang.SaveButton))
        {
            GUIUtility.keyboardControl = 0;
            this.cloudAppId            = this.cloudAppId.Trim();
            PhotonEditor.Current.UseCloud(this.cloudAppId);

            PhotonEditor.Current.PreferredRegion = PhotonEditor.selectedRegion;
            PhotonEditor.Current.HostType        = (PhotonEditor.Current.PreferredRegion == CloudRegionCode.none)
                                                ? ServerSettings.HostingOption.BestRegion
                                                : ServerSettings.HostingOption.PhotonCloud;
            PhotonEditor.Save();

            Inspect();
            EditorUtility.DisplayDialog(CurrentLang.SettingsSavedTitle, CurrentLang.SettingsSavedMessage, CurrentLang.OkButton);
        }

        GUILayout.EndHorizontal();



        GUILayout.Space(20);

        GUILayout.Label(CurrentLang.SetupOwnServerLabel);

        if (GUILayout.Button(CurrentLang.SelfHostSettingsButton))
        {
            //this.photonAddress = ServerSettings.DefaultServerAddress;
            //this.photonPort = ServerSettings.DefaultMasterPort;
            this.photonSetupState = PhotonSetupStates.SetupSelfHosted;
        }

        EditorGUILayout.Separator();
        GUILayout.Label(CurrentLang.OwnHostCloudCompareLabel);
        if (GUILayout.Button(CurrentLang.ComparisonPageButton))
        {
            Application.OpenURL(UrlCompare);
        }
    }
Ejemplo n.º 32
0
 public static Task <IResult <DisconnectCause, bool> > ConnectToRegion(CloudRegionCode region, string gameVersion,
                                                                       CancellationToken cancellationToken = default(CancellationToken))
 {
     return(Connect(() => PhotonNetwork.ConnectToRegion(region, gameVersion), cancellationToken));
 }
Ejemplo n.º 33
0
    /// <summary>
    /// Connects you to a specific region's Master Server, using the Name Server to find the IP.
    /// </summary>
    /// <returns>If the operation could be sent. If false, no operation was sent.</returns>
    public bool ConnectToRegionMaster(CloudRegionCode region)
    {
        if (PhotonHandler.AppQuits)
        {
            Debug.LogWarning("Ignoring Connect() because app gets closed. If this is an error, check PhotonHandler.AppQuits.");
            return false;
        }

        IsUsingNameServer = true;
        this.CloudRegion = region;

        if (this.State == global::PeerState.ConnectedToNameServer)
        {
            AuthenticationValues auth = this.CustomAuthenticationValues ?? new AuthenticationValues() { UserId = this.PlayerName };
            return this.OpAuthenticate(this.mAppId, this.mAppVersionPun, auth, region.ToString(), requestLobbyStatistics);
        }

        string address = this.NameServerAddress;
        if (!base.Connect(address, "ns"))
        {
            return false;
        }

        this.State = global::PeerState.ConnectingToNameServer;
        return true;
    }
Ejemplo n.º 34
0
 public static void OverrideBestCloudServer(CloudRegionCode region)
 {
 }
Ejemplo n.º 35
0
    internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest)
    {
        BestRegionCodeCurrently = CloudRegionCode.none;
        while (PhotonNetwork.networkingPeer.AvailableRegions == null)
        {
            if (PhotonNetwork.connectionStateDetailed != PeerState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != PeerState.ConnectedToNameServer)
            {
                Debug.LogError("Call ConnectToNameServer to ping available regions.");
                yield break; // break if we don't connect to the nameserver at all
            }

            Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null));
            yield return new WaitForSeconds(0.25f); // wait until pinging finished (offline mode won't ping)
        }

        if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0)
        {
            Debug.LogError("No regions available. Are you sure your appid is valid and setup?");
            yield break; // break if we don't get regions at all
        }

        //#if !UNITY_EDITOR && (UNITY_ANDROID || UNITY_IPHONE)
        //#pragma warning disable 0162    // the library variant defines if we should use PUN's SocketUdp variant (at all)
        //if (PhotonPeer.NoSocket)
        //{
        //    if (PhotonNetwork.logLevel >= PhotonLogLevel.Informational)
        //    {
        //        Debug.Log("PUN disconnects to re-use native sockets for pining servers and to find the best.");
        //    }
        //    PhotonNetwork.Disconnect();
        //}
        //#pragma warning restore 0162
        //#endif

        PhotonPingManager pingManager = new PhotonPingManager();
        foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions)
        {
            SP.StartCoroutine(pingManager.PingSocket(region));
        }

        while (!pingManager.Done)
        {
            yield return new WaitForSeconds(0.1f); // wait until pinging finished (offline mode won't ping)
        }


        Region best = pingManager.BestRegion;
        PhotonHandler.BestRegionCodeCurrently = best.Code;
        PhotonHandler.BestRegionCodeInPreferences = best.Code;

        Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest);


        if (connectToBest)
        {
            PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code);
        }
    }
Ejemplo n.º 36
0
    internal IEnumerator PingAvailableRegionsCoroutine(bool connectToBest)
    {
        BestRegionCodeCurrently = CloudRegionCode.none;
        while (PhotonNetwork.networkingPeer.AvailableRegions == null)
        {
            if (PhotonNetwork.connectionStateDetailed != ClientState.ConnectingToNameServer && PhotonNetwork.connectionStateDetailed != ClientState.ConnectedToNameServer)
            {
                Debug.LogError("Call ConnectToNameServer to ping available regions.");
                yield break; // break if we don't connect to the nameserver at all
            }

            Debug.Log("Waiting for AvailableRegions. State: " + PhotonNetwork.connectionStateDetailed + " Server: " + PhotonNetwork.Server + " PhotonNetwork.networkingPeer.AvailableRegions " + (PhotonNetwork.networkingPeer.AvailableRegions != null));
            yield return new WaitForSeconds(0.25f); // wait until pinging finished (offline mode won't ping)
        }

        if (PhotonNetwork.networkingPeer.AvailableRegions == null || PhotonNetwork.networkingPeer.AvailableRegions.Count == 0)
        {
            Debug.LogError("No regions available. Are you sure your appid is valid and setup?");
            yield break; // break if we don't get regions at all
        }

        PhotonPingManager pingManager = new PhotonPingManager();
        foreach (Region region in PhotonNetwork.networkingPeer.AvailableRegions)
        {
            SP.StartCoroutine(pingManager.PingSocket(region));
        }

        while (!pingManager.Done)
        {
            yield return new WaitForSeconds(0.1f); // wait until pinging finished (offline mode won't ping)
        }


        Region best = pingManager.BestRegion;
        PhotonHandler.BestRegionCodeCurrently = best.Code;
        PhotonHandler.BestRegionCodeInPreferences = best.Code;

        Debug.Log("Found best region: " + best.Code + " ping: " + best.Ping + ". Calling ConnectToRegionMaster() is: " + connectToBest);


        if (connectToBest)
        {
            PhotonNetwork.networkingPeer.ConnectToRegionMaster(best.Code);
        }
    }
Ejemplo n.º 37
0
    /// <summary>
    /// Connects you to a specific region's Master Server, using the Name Server to find the IP.
    /// </summary>
    /// <returns>If the operation could be sent. If false, no operation was sent.</returns>
    public bool ConnectToRegionMaster(CloudRegionCode region)
    {
        if (PhotonHandler.AppQuits)
        {
            Debug.LogWarning("Ignoring Connect() because app gets closed. If this is an error, check PhotonHandler.AppQuits.");
            return false;
        }

        IsUsingNameServer = true;
        this.CloudRegion = region;

        if (this.State == ClientState.ConnectedToNameServer)
        {
            return this.CallAuthenticate();
        }

        this.SetupProtocol(ServerConnection.NameServer);
        if (!base.Connect(this.NameServerAddress, "ns", this.TokenForInit))
        {
            return false;
        }

        this.State = ClientState.ConnectingToNameServer;
        return true;
    }
    protected virtual void OnGuiSetupCloudAppId()
    {
        GUILayout.Label(CurrentLang.AppIdLabel);

        GUILayout.BeginHorizontal();
        this.cloudAppId = EditorGUILayout.TextField(this.cloudAppId);

        open = GUILayout.Toggle(open, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false));

        GUILayout.EndHorizontal();

        if (open) GUILayout.Label(CurrentLang.AppIdInfoLabel);



        EditorGUILayout.Separator();

        GUILayout.Label(CurrentLang.CloudRegionLabel);

        GUILayout.BeginHorizontal();
        int toolbarValue = GUILayout.Toolbar((int)selectedRegion, CloudServerRegionNames);   // the enum CloudRegionCode is converted into a string[] in init (toolbar can't use enum)
        helpRegion = GUILayout.Toggle(helpRegion, HelpIcon, GUIStyle.none, GUILayout.ExpandWidth(false));
        GUILayout.EndHorizontal();


        if (helpRegion) GUILayout.Label(CurrentLang.RegionalServersInfo);
        PhotonEditor.selectedRegion = (CloudRegionCode)toolbarValue;

        EditorGUILayout.Separator();

        GUILayout.BeginHorizontal();
        if (GUILayout.Button(CurrentLang.CancelButton))
        {
            GUIUtility.keyboardControl = 0;
            this.ReApplySettingsToWindow();
        }



        if (GUILayout.Button(CurrentLang.SaveButton))
        {
            GUIUtility.keyboardControl = 0;
            this.cloudAppId = this.cloudAppId.Trim();
            PhotonEditor.Current.UseCloud(this.cloudAppId);

            PhotonEditor.Current.PreferredRegion = PhotonEditor.selectedRegion;
            PhotonEditor.Current.HostType = (PhotonEditor.Current.PreferredRegion == CloudRegionCode.none)
                                                ? ServerSettings.HostingOption.BestRegion
                                                : ServerSettings.HostingOption.PhotonCloud;
            PhotonEditor.Save();

            Inspect();
            EditorUtility.DisplayDialog(CurrentLang.SettingsSavedTitle, CurrentLang.SettingsSavedMessage, CurrentLang.OkButton);
        }

        GUILayout.EndHorizontal();



        GUILayout.Space(20);

        GUILayout.Label(CurrentLang.SetupOwnServerLabel);

        if (GUILayout.Button(CurrentLang.SelfHostSettingsButton))
        {
            //this.photonAddress = ServerSettings.DefaultServerAddress;
            //this.photonPort = ServerSettings.DefaultMasterPort;
            this.photonSetupState = PhotonSetupStates.SetupSelfHosted;
        }

        EditorGUILayout.Separator();
        GUILayout.Label(CurrentLang.OwnHostCloudCompareLabel);
        if (GUILayout.Button(CurrentLang.ComparisonPageButton))
        {
            Application.OpenURL(UrlCompare);
        }
    }
Ejemplo n.º 39
0
 // Token: 0x06003E3F RID: 15935 RVA: 0x001393A2 File Offset: 0x001377A2
 public Region(CloudRegionCode code, string regionCodeString, string address)
 {
     this.Code        = code;
     this.Cluster     = regionCodeString;
     this.HostAndPort = address;
 }
Ejemplo n.º 40
0
    /// <summary>
    /// Connects to the Photon Cloud region of choice.
    /// </summary>
    public static bool ConnectToRegion(CloudRegionCode region, string gameVersion)
    {
        if (PhotonServerSettings == null)
        {
            Debug.LogError("Can't connect: ServerSettings asset must be in any 'Resources' folder as: " + PhotonNetwork.serverSettingsAssetFile);
            return false;
        }

        if (PhotonServerSettings.HostType == ServerSettings.HostingOption.OfflineMode)
        {
            return PhotonNetwork.ConnectUsingSettings(gameVersion);
        }

        networkingPeer.IsInitialConnect = true;
        networkingPeer.SetApp(PhotonServerSettings.AppID, gameVersion);

        if (region != CloudRegionCode.none)
        {
            Debug.Log("ConnectToRegion: " + region);
            return networkingPeer.ConnectToRegionMaster(region);
        }

        return false;
    }
Ejemplo n.º 41
0
 // Token: 0x06003E3E RID: 15934 RVA: 0x00139380 File Offset: 0x00137780
 public Region(CloudRegionCode code)
 {
     this.Code    = code;
     this.Cluster = code.ToString();
 }
    /// <summary>
    /// Connects you to a specific region's Master Server, using the Name Server to find the IP.
    /// </summary>
    /// <returns>If the operation could be sent. If false, no operation was sent.</returns>
    public bool ConnectToRegionMaster(CloudRegionCode region)
    {
        if (PhotonHandler.AppQuits)
        {
            Debug.LogWarning("Ignoring Connect() because app gets closed. If this is an error, check PhotonHandler.AppQuits.");
            return false;
        }

        IsUsingNameServer = true;
        this.CloudRegion = region;

        if (this.State == global::PeerState.ConnectedToNameServer)
        {
            return this.OpAuthenticate(this.mAppId, this.mAppVersionPun, this.PlayerName, this.CustomAuthenticationValues, region.ToString());
        }

        #if RHTTP
        string address = (this.UsedProtocol == ConnectionProtocol.RHttp) ? this.NameServerAddressHttp : this.NameServerAddress;
        #else
        string address = this.NameServerAddress;
        #endif

        if (!address.Contains(":"))
        {
            int port = 0;
            ProtocolToNameServerPort.TryGetValue(this.UsedProtocol, out port);
            address = string.Format("{0}:{1}", address, port);
            //Debug.Log("Server to connect to: "+ address + " settings protocol: " + PhotonNetwork.PhotonServerSettings.Protocol);
        }
        if (!base.Connect(address, "ns"))
        {
            return false;
        }

        this.State = global::PeerState.ConnectingToNameServer;
        return true;
    }
Ejemplo n.º 43
0
 public void ChangeServer(int region)
 {
     if (PhotonNetwork.connected)
     {
         PhotonNetwork.Disconnect();
         WaitForConnectToNew = true;
         ServerHost = bl_CoopUtils.IntToRegionCode(region);
         Debug.LogWarning("Wait for the current server disconnect and reconnect to new.");
         return;
     }
     //If disconect, connect again to the select region
     PhotonNetwork.ConnectToRegion(bl_CoopUtils.IntToRegionCode(region), GameVersion);
     ServerHost = bl_CoopUtils.IntToRegionCode(region);
     WaitForConnectToNew = false;
     this.GetComponent<bl_LobbyUI>().ChangeWindow(6);
 }