/// <summary> /// Called every ~5 seconds for Players /// </summary> public override void Heartbeat(double currentUnixTime) { NotifyLandblocks(); ManaConsumersTick(); HandleTargetVitals(); LifestoneProtectionTick(); PK_DeathTick(); GagsTick(); PhysicsObj.ObjMaint.DestroyObjects(); // Check if we're due for our periodic SavePlayer if (LastRequestedDatabaseSave == DateTime.MinValue) { LastRequestedDatabaseSave = DateTime.UtcNow; } if (LastRequestedDatabaseSave.AddSeconds(PlayerSaveIntervalSecs) <= DateTime.UtcNow) { SavePlayerToDatabase(); } base.Heartbeat(currentUnixTime); }
/// <summary> /// Called every ~5 seconds for Players /// </summary> public override void Heartbeat(double currentUnixTime) { ValidateCurrentRealm(); NotifyLandblocks(); ManaConsumersTick(); HandleTargetVitals(); LifestoneProtectionTick(); PK_DeathTick(); GagsTick(); PhysicsObj.ObjMaint.DestroyObjects(); // Check if we're due for our periodic SavePlayer if (LastRequestedDatabaseSave == DateTime.MinValue) { LastRequestedDatabaseSave = DateTime.UtcNow; } if (LastRequestedDatabaseSave.AddSeconds(PlayerSaveIntervalSecs) <= DateTime.UtcNow) { SavePlayerToDatabase(); } if (Teleporting && DateTime.UtcNow > Time.GetDateTimeFromTimestamp(LastTeleportStartTimestamp ?? 0).Add(MaximumTeleportTime)) { if (Session != null) { Session.LogOffPlayer(true); } else { LogOut(); } } base.Heartbeat(currentUnixTime); }