diff options
author | onefang | 2020-09-09 22:59:24 +1000 |
---|---|---|
committer | onefang | 2020-09-09 22:59:24 +1000 |
commit | aaef497afbedef9382c9afdcb9f8d0d5b0a0e0bc (patch) | |
tree | 0cca9608b28ec503f045a26b0f664a176a061d1f /OpenSim/Region/ScriptEngine/Shared/Api | |
parent | Use F1 instead of ? as the in command help key. (diff) | |
download | opensim-SC-aaef497afbedef9382c9afdcb9f8d0d5b0a0e0bc.zip opensim-SC-aaef497afbedef9382c9afdcb9f8d0d5b0a0e0bc.tar.gz opensim-SC-aaef497afbedef9382c9afdcb9f8d0d5b0a0e0bc.tar.bz2 opensim-SC-aaef497afbedef9382c9afdcb9f8d0d5b0a0e0bc.tar.xz |
Various teleport fixes.
TPs from scripts avoid all that silly raycasting nonsense, just go where
we ask.
For the "teleport from above" case, do the right thing.
Which includes looking for designated floor prims, which have ^ as
the first character of their description.
Don't do "teleport from above" when we have proper coords.
Teleport home from off grid shouldn't land on roofs either.
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 6 | ||||
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | 2 |
2 files changed, 4 insertions, 4 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index c9ee28e..10afe99 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -5245,7 +5245,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5245 | 5245 | ||
5246 | if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_TELEPORT) != 0) | 5246 | if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_TELEPORT) != 0) |
5247 | { | 5247 | { |
5248 | World.RequestTeleportLocation(presence.ControllingClient, regionHandle, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); | 5248 | World.RequestTeleportLocation(presence.ControllingClient, regionHandle, targetPos, targetLookAt, (uint)(Constants.TeleportFlags.ViaLocation | Constants.TeleportFlags.ViaScript)); |
5249 | } | 5249 | } |
5250 | } | 5250 | } |
5251 | } | 5251 | } |
@@ -5259,7 +5259,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5259 | // Use it as a sim name | 5259 | // Use it as a sim name |
5260 | if (assetID == UUID.Zero) | 5260 | if (assetID == UUID.Zero) |
5261 | { | 5261 | { |
5262 | World.RequestTeleportLocation(sp.ControllingClient, destination, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); | 5262 | World.RequestTeleportLocation(sp.ControllingClient, destination, targetPos, targetLookAt, (uint)(Constants.TeleportFlags.ViaLocation | Constants.TeleportFlags.ViaScript)); |
5263 | return; | 5263 | return; |
5264 | } | 5264 | } |
5265 | 5265 | ||
@@ -5272,7 +5272,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
5272 | 5272 | ||
5273 | AssetLandmark lm = new AssetLandmark(lma); | 5273 | AssetLandmark lm = new AssetLandmark(lma); |
5274 | 5274 | ||
5275 | World.RequestTeleportLocation(sp.ControllingClient, lm.RegionHandle, targetPos, targetLookAt, (uint)TeleportFlags.ViaLocation); | 5275 | World.RequestTeleportLocation(sp.ControllingClient, lm.RegionHandle, targetPos, targetLookAt, (uint)(Constants.TeleportFlags.ViaLocation | Constants.TeleportFlags.ViaScript)); |
5276 | } | 5276 | } |
5277 | 5277 | ||
5278 | public void llTextBox(string agent, string message, int chatChannel) | 5278 | public void llTextBox(string agent, string message, int chatChannel) |
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index d268609..48f9d0b 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs | |||
@@ -1071,7 +1071,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
1071 | Util.FireAndForget( | 1071 | Util.FireAndForget( |
1072 | o => World.RequestTeleportLocation( | 1072 | o => World.RequestTeleportLocation( |
1073 | presence.ControllingClient, regionName, position, | 1073 | presence.ControllingClient, regionName, position, |
1074 | lookat, (uint)TPFlags.ViaLocation), | 1074 | lookat, (uint)(TPFlags.ViaLocation | TPFlags.ViaScript)), |
1075 | null, "OSSL_Api.TeleportAgentByRegionCoords"); | 1075 | null, "OSSL_Api.TeleportAgentByRegionCoords"); |
1076 | ScriptSleep(5000); | 1076 | ScriptSleep(5000); |
1077 | } | 1077 | } |