public void OnUpdate() { lock (Players) { foreach (QPlayer player in Players) { if (!player.IsLoggedIn && player.TSPlayer.IsLoggedIn) { player.MyDBPlayer = QTools.GetStoredPlayerByIdentification(player); if (player.MyDBPlayer == null) { StoredQPlayer splayer = new StoredQPlayer(player.TSPlayer.UserAccountName, new List <QuestPlayerData>()); StoredPlayers.Add(splayer); player.MyDBPlayer = splayer; QTools.UpdateStoredPlayersInDB(); } player.IsLoggedIn = true; } if (player.LastTilePos != new Vector2(player.TSPlayer.TileX, player.TSPlayer.TileY)) { bool inhouse = false; foreach (QuestRegion qr in QuestRegions) { if (qr.Area.Intersects(new Rectangle(player.TSPlayer.TileX, player.TSPlayer.TileY, 1, 1))) { if (player.CurQuestRegion != qr.Name) { player.CurQuestRegion = qr.Name; player.InHouse = true; if (qr.MessageOnEntry != "") { player.TSPlayer.SendMessage(qr.MessageOnEntry, Color.Magenta); } } inhouse = true; } if (!inhouse && player.InHouse) { if (qr.MessageOnExit != "") { player.TSPlayer.SendMessage(qr.MessageOnExit, Color.Magenta); } player.CurQuestRegion = ""; player.InHouse = false; } player.LastTilePos = new Vector2(player.TSPlayer.TileX, player.TSPlayer.TileY); } } } } }