// Checks if player is in same building or dungeon interior as anchor bool IsSameInterior() { // Reject if outside or anchor not set if (!playerEnterExit.IsPlayerInside || anchorPosition == null) { return(false); } // Test depends on if player is inside a building or a dungeon if (playerEnterExit.IsPlayerInsideBuilding && anchorPosition.insideBuilding) { // Compare building key if (anchorPosition.buildingDiscoveryData.buildingKey == playerEnterExit.BuildingDiscoveryData.buildingKey) { return(true); } } else if (playerEnterExit.IsPlayerInsideDungeon && anchorPosition.insideDungeon) { // Compare map pixel of dungeon (only one dungeon per map pixel allowed) DaggerfallConnect.Utility.DFPosition anchorMapPixel = DaggerfallConnect.Arena2.MapsFile.WorldCoordToMapPixel(anchorPosition.worldPosX, anchorPosition.worldPosZ); DaggerfallConnect.Utility.DFPosition playerMapPixel = GameManager.Instance.PlayerGPS.CurrentMapPixel; if (anchorMapPixel.X == playerMapPixel.X && anchorMapPixel.Y == playerMapPixel.Y) { return(true); } } return(false); }
public static string Execute(params string[] args) { if (args == null || args.Count() < 1) { return(string.Format("Invalid paramaters; \n {0}", usage)); } DaggerfallConnect.DFLocation loc; string name = args[0]; for (int i = 1; i < args.Count(); i++) { name += " " + args[i]; } if (DaggerfallWorkshop.Utility.GameObjectHelper.FindMultiNameLocation(name, out loc)) { DaggerfallConnect.Utility.DFPosition pos = MapsFile.LongitudeLatitudeToMapPixel((int)loc.MapTableData.Longitude, (int)loc.MapTableData.Latitude); return(string.Format("{0} found; Pixel Coordinates: \nx: {1} y: {2}", name, pos.X, pos.Y)); } else { return("Invalid location. Check spelling?"); } }
// Checks if player is in same building or dungeon interior as anchor bool IsSameInterior() { // Reject if outside or anchor not set if (!playerEnterExit.IsPlayerInside || anchorPosition == null) { return(false); } // Test depends on if player is inside a building or a dungeon if (playerEnterExit.IsPlayerInsideBuilding && anchorPosition.insideBuilding) { // Compare building key if (anchorPosition.buildingDiscoveryData.buildingKey == playerEnterExit.BuildingDiscoveryData.buildingKey) { // Also compare map pixel, in case we're unlucky https://forums.dfworkshop.net/viewtopic.php?f=24&t=2018 DaggerfallConnect.Utility.DFPosition anchorMapPixel = DaggerfallConnect.Arena2.MapsFile.WorldCoordToMapPixel(anchorPosition.worldPosX, anchorPosition.worldPosZ); DaggerfallConnect.Utility.DFPosition playerMapPixel = GameManager.Instance.PlayerGPS.CurrentMapPixel; if (anchorMapPixel.X == playerMapPixel.X && anchorMapPixel.Y == playerMapPixel.Y) { return(true); } } } else if (playerEnterExit.IsPlayerInsideDungeon && anchorPosition.insideDungeon) { // Compare map pixel of dungeon (only one dungeon per map pixel allowed) DaggerfallConnect.Utility.DFPosition anchorMapPixel = DaggerfallConnect.Arena2.MapsFile.WorldCoordToMapPixel(anchorPosition.worldPosX, anchorPosition.worldPosZ); DaggerfallConnect.Utility.DFPosition playerMapPixel = GameManager.Instance.PlayerGPS.CurrentMapPixel; if (anchorMapPixel.X == playerMapPixel.X && anchorMapPixel.Y == playerMapPixel.Y) { GameManager.Instance.PlayerEnterExit.PlayerTeleportedIntoDungeon = true; return(true); } } return(false); }
private void PlayerGPS_OnMapPixelChanged(DaggerfallConnect.Utility.DFPosition mapPixel) { // Clear when changing map pixel ClearSiteTargets(); }