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); } }
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); } } }