// ------------------------------------------------------------------------------- // 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); } } }
// =========================== MAIN METHODS ====================================== // ------------------------------------------------------------------------------- // InitAsSubZone // ------------------------------------------------------------------------------- protected void InitAsSubZone(NetworkZoneTemplate _template) { networkTransport.port = GetZonePort; networkManager.networkAddress = _template.server.ip; networkManager.onlineScene = _template.scene.SceneName; networkManager.StartServer(); }
// ------------------------------------------------------------------------------- // 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(); }
// =========================== 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 }
// ------------------------------------------------------------------------------- // 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(); }
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); } }