/* public class GetDropdownValueClass : GetDropdownValue * { * public GetDropdownValueClass() * { * //GameModeSystemServer newGMSS = new GameModeSystemServer(); * //newGMSS.SelectedCharacter = characterTypeValue; * } * } */ public GameModeSystemServer(GameWorld world, ChatSystemServer chatSystem, BundledResourceManager resourceSystem) { m_World = world; m_ResourceSystem = resourceSystem; this.chatSystem = chatSystem; m_CurrentGameModeName = ""; // TODO (petera) Get rid of need for loading these 'settings' and the use of them below. // We need a way to spawn a 'naked' replicated entity, i.e. one that is not created from a prefab. m_Settings = Resources.Load <GameModeSystemSettings>("GameModeSystemSettings"); // Create game mode state var prefab = (GameObject)resourceSystem.GetSingleAssetResource(m_Settings.gameModePrefab); gameModeState = m_World.Spawn <GameMode>(prefab); }
public bool Init(string[] args) { // Set up statemachine for ServerGame m_StateMachine = new StateMachine <ServerState>(); m_StateMachine.Add(ServerState.Idle, null, UpdateIdleState, null); m_StateMachine.Add(ServerState.Loading, null, UpdateLoadingState, null); m_StateMachine.Add(ServerState.Active, EnterActiveState, UpdateActiveState, LeaveActiveState); m_StateMachine.SwitchTo(ServerState.Idle); m_NetworkTransport = new SocketTransport(NetworkConfig.serverPort.IntValue, serverMaxClients.IntValue); var listenAddresses = NetworkUtils.GetLocalInterfaceAddresses(); if (listenAddresses.Count > 0) { Console.SetPrompt(listenAddresses[0] + ":" + NetworkConfig.serverPort.Value + "> "); } GameDebug.Log("Listening on " + string.Join(", ", NetworkUtils.GetLocalInterfaceAddresses()) + " on port " + NetworkConfig.serverPort.IntValue); m_NetworkServer = new NetworkServer(m_NetworkTransport); if (Game.game.clientFrontend != null) { var serverPanel = Game.game.clientFrontend.serverPanel; serverPanel.SetPanelActive(true); serverPanel.serverInfo.text += "Listening on:\n"; foreach (var a in NetworkUtils.GetLocalInterfaceAddresses()) { serverPanel.serverInfo.text += a + ":" + NetworkConfig.serverPort.IntValue + "\n"; } } m_NetworkServer.UpdateClientInfo(); m_NetworkServer.serverInfo.compressionModel = m_Model; if (serverServerName.Value == "") { serverServerName.Value = MakeServername(); } m_ServerQueryProtocolServer = new SQP.SQPServer(NetworkConfig.serverSQPPort.IntValue > 0? NetworkConfig.serverSQPPort.IntValue : NetworkConfig.serverPort.IntValue + NetworkConfig.sqpPortOffset); #if UNITY_EDITOR Game.game.levelManager.UnloadLevel(); World.DisposeAllWorlds(); #endif m_GameWorld = new GameWorld("ServerWorld"); m_NetworkStatistics = new NetworkStatisticsServer(m_NetworkServer); m_ChatSystem = new ChatSystemServer(m_Clients, m_NetworkServer); GameDebug.Log("Network server initialized"); Console.AddCommand("load", CmdLoad, "Load a named scene", this.GetHashCode()); Console.AddCommand("unload", CmdUnload, "Unload current scene", this.GetHashCode()); Console.AddCommand("respawn", CmdRespawn, "Respawn character (usage : respawn playername|playerId)", this.GetHashCode()); Console.AddCommand("servername", CmdSetServerName, "Set name of the server", this.GetHashCode()); Console.AddCommand("beginnetworkprofile", CmdBeginNetworkProfile, "begins a network profile", this.GetHashCode()); Console.AddCommand("endnetworkprofile", CmdEndNetworkProfile, "Ends a network profile and analyzes. [optional] filepath for model data", this.GetHashCode()); Console.AddCommand("loadcompressionmodel", CmdLoadNetworkCompressionModel, "Loads a network compression model from a filepath", this.GetHashCode()); Console.AddCommand("list", CmdList, "List clients", this.GetHashCode()); CmdLoad(args); Game.SetMousePointerLock(false); m_ServerStartTime = Time.time; GameDebug.Log("Server initialized"); Console.SetOpen(false); return(true); }
public ServerGameWorld(GameWorld world, NetworkServer networkServer, Dictionary <int, ServerGameLoop.ClientInfo> clients, ChatSystemServer m_ChatSystem, BundledResourceManager resourceSystem) { m_NetworkServer = networkServer; m_Clients = clients; this.m_ChatSystem = m_ChatSystem; m_GameWorld = world; m_CharacterModule = new CharacterModuleServer(m_GameWorld, resourceSystem); m_ProjectileModule = new ProjectileModuleServer(m_GameWorld, resourceSystem); m_HitCollisionModule = new HitCollisionModule(m_GameWorld, 128, 1); m_PlayerModule = new PlayerModuleServer(m_GameWorld, resourceSystem); m_SpectatorCamModule = new SpectatorCamModuleServer(m_GameWorld, resourceSystem); m_ReplicatedEntityModule = new ReplicatedEntityModuleServer(m_GameWorld, resourceSystem, m_NetworkServer); m_ReplicatedEntityModule.ReserveSceneEntities(networkServer); m_ItemModule = new ItemModule(m_GameWorld); m_GameModeSystem = m_GameWorld.GetECSWorld().CreateManager <GameModeSystemServer>(m_GameWorld, m_ChatSystem, resourceSystem); m_DestructablePropSystem = m_GameWorld.GetECSWorld().CreateManager <UpdateDestructableProps>(m_GameWorld); m_DamageAreaSystem = m_GameWorld.GetECSWorld().CreateManager <DamageAreaSystemServer>(m_GameWorld); m_TeleporterSystem = m_GameWorld.GetECSWorld().CreateManager <TeleporterSystemServer>(m_GameWorld); m_HandleGrenadeRequests = m_GameWorld.GetECSWorld().CreateManager <HandleGrenadeRequest>(m_GameWorld, resourceSystem); m_StartGrenadeMovement = m_GameWorld.GetECSWorld().CreateManager <StartGrenadeMovement>(m_GameWorld); m_FinalizeGrenadeMovement = m_GameWorld.GetECSWorld().CreateManager <FinalizeGrenadeMovement>(m_GameWorld); m_platformSystem = m_GameWorld.GetECSWorld().CreateManager <MoverUpdate>(m_GameWorld); m_MoveableSystem = new MovableSystemServer(m_GameWorld, resourceSystem); m_CameraSystem = new ServerCameraSystem(m_GameWorld); }
public bool Init(string[] args) { // Set up statemachine for ServerGame m_StateMachine = new StateMachine <ServerState>(); m_StateMachine.Add(ServerState.Idle, null, UpdateIdleState, null); m_StateMachine.Add(ServerState.Loading, null, UpdateLoadingState, null); m_StateMachine.Add(ServerState.Active, EnterActiveState, UpdateActiveState, LeaveActiveState); m_StateMachine.SwitchTo(ServerState.Idle); #if USE_UNET m_NetworkTransport = new UNETTransport(); if (!m_NetworkTransport.Init(serverPort.IntValue, 32)) { return(false); } m_NetworkServer = new NetworkServer(m_NetworkTransport); m_ServerBroadcast = new UNETServerBroadcast(m_NetworkTransport.hostId, new UNETBroadcastConfig(), 7913); // TODO (petera) what if these (max clients and name) changes during play m_ServerBroadcast.gameInfo.maxPlayers = serverMaxClients.IntValue; if (serverServerName.Value.Length == 0) { serverServerName.Value = MakeServername(); } m_ServerBroadcast.gameInfo.servername = serverServerName.Value; GameDebug.Log("Server name: '" + m_ServerBroadcast.gameInfo.servername + "'"); m_ServerBroadcast.gameInfo.levelname = "-"; m_ServerBroadcast.gameInfo.gamemode = "-"; m_ServerBroadcast.Start(); #else m_NetworkTransport = new SocketTransport(serverPort.IntValue); GameDebug.Log("Listening on " + string.Join(", ", NetworkUtils.GetLocalInterfaceAddresses()) + " on port " + serverPort.IntValue); m_NetworkServer = new NetworkServer(m_NetworkTransport); if (Game.game.clientFrontend != null) { var serverPanel = Game.game.clientFrontend.serverPanel; serverPanel.SetPanelActive(true); serverPanel.serverInfo.text += "Listening on:\n"; foreach (var a in NetworkUtils.GetLocalInterfaceAddresses()) { serverPanel.serverInfo.text += a + ":" + serverPort.IntValue + "\n"; } } #endif m_NetworkServer.UpdateClientInfo(); m_NetworkServer.clientInfo.compressionModel = m_Model; m_ServerQueryProtocolServer = new SQP.SQPServer(serverSQPPort.IntValue); var info = m_ServerQueryProtocolServer.ServerInfoData; info.BuildId = Game.game.buildId; info.Port = (ushort)serverPort.IntValue; info.CurrentPlayers = 0; info.GameType = "Deathmatch"; info.Map = ""; info.MaxPlayers = 32; info.ServerName = MakeServername(); #if UNITY_EDITOR Game.game.levelManager.UnloadLevel(); World.DisposeAllWorlds(); #endif m_GameWorld = new GameWorld("ServerWorld"); m_NetworkStatistics = new NetworkStatisticsServer(m_NetworkServer); m_ChatSystem = new ChatSystemServer(m_Clients, m_NetworkServer); GameDebug.Log("Network server initialized"); Console.AddCommand("load", CmdLoad, "Load a named scene", this.GetHashCode()); Console.AddCommand("unload", CmdUnload, "Unload current scene", this.GetHashCode()); Console.AddCommand("respawn", CmdRespawn, "Respawn character (usage : respawn playername|playerId)", this.GetHashCode()); Console.AddCommand("servername", CmdSetServerName, "Set name of the server", this.GetHashCode()); Console.AddCommand("beginnetworkprofile", CmdBeginNetworkProfile, "begins a network profile", this.GetHashCode()); Console.AddCommand("endnetworkprofile", CmdEndNetworkProfile, "Ends a network profile and analyzes. [optional] filepath for model data", this.GetHashCode()); Console.AddCommand("loadcompressionmodel", CmdLoadNetworkCompressionModel, "Loads a network compression model from a filepath", this.GetHashCode()); Console.AddCommand("list", CmdList, "List clients", this.GetHashCode()); CmdLoad(args); Game.SetMousePointerLock(false); m_ServerStartTime = Time.time; GameDebug.Log("Server initialized"); Console.SetOpen(false); return(true); }
public GameModeSystemServer(World world, ChatSystemServer chatSystem) { m_World = world; this.chatSystem = chatSystem; m_CurrentGameModeName = ""; }