Esempio n. 1
0
        // -------------------------------------------------------------------------------
        // Awake
        // -------------------------------------------------------------------------------
        void Awake()
        {
            singleton = this;

            debug = new DebugHelper();
            debug.Init();

            networkManager   = GetComponent <OpenMMO.Network.NetworkManager>();
            networkTransport = GetComponent <Mirror.TelepathyTransport>();

            originalPort = networkTransport.port;

            SceneManager.sceneLoaded += OnSceneLoaded;

            if (!active || GetIsMainZone || !GetCanSwitchZone)
            {
                currentZone = mainZone;
                debug.LogFormat(this.name, nameof(Awake), "mainZone");         //DEBUG
                return;
            }

            currentZone = subZones[zoneIndex];

            foreach (NetworkZoneTemplate template in subZones)
            {
                if (template == currentZone)
                {
                    InitAsSubZone(template);
                }
            }
        }
Esempio n. 2
0
        // =========================== MAIN METHODS ======================================

        // -------------------------------------------------------------------------------
        // InitAsSubZone
        // -------------------------------------------------------------------------------
        protected void InitAsSubZone(NetworkZoneTemplate _template)
        {
            networkTransport.port         = GetZonePort;
            networkManager.networkAddress = _template.server.ip;
            networkManager.onlineScene    = _template.scene.SceneName;
            networkManager.StartServer();
        }
Esempio n. 3
0
        // -------------------------------------------------------------------------------
        // SpawnSubZone
        // -------------------------------------------------------------------------------
        protected void SpawnSubZone(NetworkZoneTemplate _template, int zoneIndex)
        {
            Process process = new Process();

            process.StartInfo.FileName  = Tools.GetProcessPath;
            process.StartInfo.Arguments = Tools.GetArgumentsString + " -" + argZoneIndex + zoneIndex.ToString();
            process.Start();
        }
Esempio n. 4
0
        // =========================== MAIN METHODS ======================================

        // -------------------------------------------------------------------------------
        // InitAsSubZone
        // -------------------------------------------------------------------------------
        protected void InitAsSubZone(NetworkZoneTemplate _template)
        {
            networkTransport.port         = GetZonePort;
            networkManager.networkAddress = _template.server.ip;
            networkManager.onlineScene    = _template.scene.SceneName;
            networkManager.StartServer();

            debug.LogFormat(this.name, nameof(InitAsSubZone), _template.name);     //DEBUG
        }
Esempio n. 5
0
 // -------------------------------------------------------------------------------
 // InitAsSubZone
 // -------------------------------------------------------------------------------
 protected void InitAsSubZone(NetworkZoneTemplate _template, int zoneIndex)
 {
     isSubZone                  = true;
     zoneName                   = _template.title;
     zoneTimeoutMultiplier      = _template.zoneTimeoutMultiplier;
     networkTransport.port      = (ushort)(originalPort + zoneIndex);
     networkManager.onlineScene = _template.scene.SceneName;
     networkManager.StartServer();
 }
Esempio n. 6
0
        void LoginPlayer_NetworkPortals(NetworkConnection conn, GameObject player, string playerName, string userName)
        {
            if (!ZoneManager.singleton.GetCanSwitchZone)
            {
                return;
            }

            PlayerComponent     pc          = player.GetComponent <PlayerComponent>();
            string              zoneName    = pc.tablePlayerZones.zonename;
            NetworkZoneTemplate currentZone = pc.currentZone;

            if (!String.IsNullOrWhiteSpace(zoneName) && zoneName != currentZone.name)
            {
                string anchorName = pc.tablePlayerZones.anchorname;

                // -- issue warp (no token required as it is server side)
                pc.WarpRemote(anchorName, zoneName, 0);
            }
        }