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); } } } } }
public void OnUpdate() { 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); } } } }
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<QuestAttemptData>()); player.MyDBPlayer = splayer; QTools.SavePlayers(); } player.IsLoggedIn = true; } foreach (QuestRegion qr in QuestRegions) { if (qr.InArea(player.TSPlayer.TileX, player.TSPlayer.TileY)) { if (player.CurQuestRegionName != qr.Name) { player.CurQuestRegionName = qr.Name; player.CurQuestRegion = qr; player.TSPlayer.SendMessage(qr.MessageOnEntry, Color.Magenta); } } else if(player.CurQuestRegionName == qr.Name && !qr.InArea((int)player.LastTilePos.X, (int)player.LastTilePos.Y)) { player.CurQuestRegion = null; player.CurQuestRegionName = ""; player.TSPlayer.SendMessage(qr.MessageOnExit, Color.Magenta); } } player.LastTilePos = new Vector2(player.TSPlayer.TileX, player.TSPlayer.TileY); } } }