diff options
Diffstat (limited to '')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 0bcf480..a57e0d1 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -4269,6 +4269,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4269 | (m_teleportFlags & TeleportFlags.ViaLocation) != 0 || | 4269 | (m_teleportFlags & TeleportFlags.ViaLocation) != 0 || |
4270 | (m_teleportFlags & Constants.TeleportFlags.ViaHGLogin) != 0) | 4270 | (m_teleportFlags & Constants.TeleportFlags.ViaHGLogin) != 0) |
4271 | { | 4271 | { |
4272 | |||
4272 | if (GodLevel < 200 && | 4273 | if (GodLevel < 200 && |
4273 | ((!m_scene.Permissions.IsGod(m_uuid) && | 4274 | ((!m_scene.Permissions.IsGod(m_uuid) && |
4274 | !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) || | 4275 | !m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) || |
@@ -4277,7 +4278,14 @@ namespace OpenSim.Region.Framework.Scenes | |||
4277 | { | 4278 | { |
4278 | SpawnPoint[] spawnPoints = m_scene.RegionInfo.RegionSettings.SpawnPoints().ToArray(); | 4279 | SpawnPoint[] spawnPoints = m_scene.RegionInfo.RegionSettings.SpawnPoints().ToArray(); |
4279 | if (spawnPoints.Length == 0) | 4280 | if (spawnPoints.Length == 0) |
4281 | { | ||
4282 | if(m_scene.RegionInfo.EstateSettings.IsEstateManagerOrOwner(m_uuid)) | ||
4283 | { | ||
4284 | pos.X = 128.0f; | ||
4285 | pos.Y = 128.0f; | ||
4286 | } | ||
4280 | return; | 4287 | return; |
4288 | } | ||
4281 | 4289 | ||
4282 | int index; | 4290 | int index; |
4283 | bool selected = false; | 4291 | bool selected = false; |
@@ -4286,6 +4294,8 @@ namespace OpenSim.Region.Framework.Scenes | |||
4286 | { | 4294 | { |
4287 | case "random": | 4295 | case "random": |
4288 | 4296 | ||
4297 | if (spawnPoints.Length == 0) | ||
4298 | return; | ||
4289 | do | 4299 | do |
4290 | { | 4300 | { |
4291 | index = Util.RandomClass.Next(spawnPoints.Length - 1); | 4301 | index = Util.RandomClass.Next(spawnPoints.Length - 1); |
@@ -4297,6 +4307,7 @@ namespace OpenSim.Region.Framework.Scenes | |||
4297 | // SpawnPoint sp = spawnPoints[index]; | 4307 | // SpawnPoint sp = spawnPoints[index]; |
4298 | 4308 | ||
4299 | ILandObject land = m_scene.LandChannel.GetLandObject(spawnPosition.X, spawnPosition.Y); | 4309 | ILandObject land = m_scene.LandChannel.GetLandObject(spawnPosition.X, spawnPosition.Y); |
4310 | |||
4300 | if (land == null || land.IsEitherBannedOrRestricted(UUID)) | 4311 | if (land == null || land.IsEitherBannedOrRestricted(UUID)) |
4301 | selected = false; | 4312 | selected = false; |
4302 | else | 4313 | else |