private static void ServerUpdate()
        {
            var serverTime = Server.Game.FrameTime;

            foreach (var character in Server.Characters.EnumerateAllPlayerCharacters(onlyOnline: false))
            {
                if (ServerIsNeedDespawn(character, serverTime))
                {
                    ServerCharacterDeathMechanic.DespawnCharacter(character);
                }
            }
        }
        public static void SpawnPlayer(ICharacter character, bool isRespawn)
        {
            ServerAddTorchItemIfNoItems(character);

            if (character.IsInitialized &&
                CharacterCreationSystem.SharedIsCharacterCreated(character))
            {
                PlacePlayer(character, isRespawn);
            }
            else
            {
                // first time spawn, requires character creation
                ServerCharacterDeathMechanic.DespawnCharacter(character);
            }
        }
示例#3
0
            public override void ServerInitialize(IServerConfiguration serverConfiguration)
            {
                base.ServerInitialize(serverConfiguration);

                CharacterStyleSystem.ServerCharacterAppearanceSelected
                    += ServerCharacterAppearanceSelectedHandler;

                foreach (var character in Server.Characters.EnumerateAllPlayerCharacters(onlyOnline: false))
                {
                    var privateState = PlayerCharacter.GetPrivateState(character);
                    if (!privateState.IsDespawned &&
                        !SharedIsCharacterCreated(character))
                    {
                        // despawn all invalid characters
                        ServerCharacterDeathMechanic.DespawnCharacter(character);
                    }
                }
            }