Example #1
0
        /// <summary>Initial scene load when joining the server for the first time.</summary>
        /// <param name="fromClient">The ID of the client who joined the server</param>
        /// <param name="sceneName">The name of the client's active scene when joining the server</param>
        public static void SceneChanged(byte fromClient, string sceneName)
        {
            Server.clients[fromClient].player.activeScene = sceneName;

            for (byte i = 1; i <= Server.MaxPlayers; i++)
            {
                if (Server.clients[i].player != null && i != fromClient)
                {
                    if (Server.clients[i].player.activeScene == sceneName)
                    {
                        Log("Same Scene, Spawning Players First Pass");
                        ServerSend.SpawnPlayer(fromClient, Server.clients[i].player);
                        ServerSend.SpawnPlayer(Server.clients[i].player.id, Server.clients[fromClient].player);
                    }

                    Player iPlayer    = Server.clients[i].player;
                    Player fromPlayer = Server.clients[fromClient].player;
                    ServerSend.SpawnPlayer(fromClient, iPlayer);
                    ServerSend.SpawnPlayer(i, fromPlayer);

                    // CustomKnight integration
                    if (ServerSettings.CustomKnightIntegration)
                    {
                        Log("Checking Hashes");
                        ServerSend.CheckHashes(i);
                        ServerSend.CheckHashes(fromClient);
                    }
                }
            }
        }