mirror of
https://github.com/opensim/opensim.git
synced 2026-08-04 08:06:27 +08:00
Merge branch 'master' into careminster-presence-refactor
This commit is contained in:
@@ -10493,6 +10493,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
case "4":
|
||||
ret = ret + new LSL_List(land.Area);
|
||||
break;
|
||||
case "5":
|
||||
ret = ret + new LSL_List(land.GlobalID);
|
||||
break;
|
||||
default:
|
||||
ret = ret + new LSL_List(0);
|
||||
break;
|
||||
|
||||
@@ -648,6 +648,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
//
|
||||
CheckThreatLevel(ThreatLevel.High, "osTeleportAgent");
|
||||
|
||||
TeleportAgent(agent, regionName, position, lookat);
|
||||
}
|
||||
|
||||
private void TeleportAgent(string agent, string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
|
||||
{
|
||||
m_host.AddScriptLPS(1);
|
||||
UUID agentId = new UUID();
|
||||
if (UUID.TryParse(agent, out agentId))
|
||||
@@ -660,7 +665,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
== World.LandChannel.GetLandObject(
|
||||
presence.AbsolutePosition.X, presence.AbsolutePosition.Y).LandData.OwnerID)
|
||||
{
|
||||
|
||||
// Check for hostname , attempt to make a hglink
|
||||
// and convert the regionName to the target region
|
||||
if (regionName.Contains(".") && regionName.Contains(":"))
|
||||
@@ -670,7 +674,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
if (regions != null && regions.Count > 0)
|
||||
{
|
||||
GridRegion regInfo = regions[0];
|
||||
regionName = regInfo.RegionName;
|
||||
string[] parts = regInfo.RegionName.Split(new char[] { ':' });
|
||||
if (parts.Length > 2)
|
||||
regionName = parts[2];
|
||||
else
|
||||
regionName = parts[0];
|
||||
}
|
||||
}
|
||||
World.RequestTeleportLocation(presence.ControllingClient, regionName,
|
||||
@@ -683,13 +691,17 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
}
|
||||
}
|
||||
|
||||
// Teleport functions
|
||||
public void osTeleportAgent(string agent, int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
|
||||
{
|
||||
// High because there is no security check. High griefer potential
|
||||
//
|
||||
CheckThreatLevel(ThreatLevel.High, "osTeleportAgent");
|
||||
|
||||
TeleportAgent(agent, regionX, regionY, position, lookat);
|
||||
}
|
||||
|
||||
private void TeleportAgent(string agent, int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
|
||||
{
|
||||
ulong regionHandle = Util.UIntsToLong(((uint)regionX * (uint)Constants.RegionSize), ((uint)regionY * (uint)Constants.RegionSize));
|
||||
|
||||
m_host.AddScriptLPS(1);
|
||||
@@ -718,6 +730,26 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
osTeleportAgent(agent, World.RegionInfo.RegionName, position, lookat);
|
||||
}
|
||||
|
||||
public void osTeleportOwner(string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
|
||||
{
|
||||
// Threat level None because this is what can already be done with the World Map in the viewer
|
||||
CheckThreatLevel(ThreatLevel.None, "osTeleportOwner");
|
||||
|
||||
TeleportAgent(m_host.OwnerID.ToString(), regionName, position, lookat);
|
||||
}
|
||||
|
||||
public void osTeleportOwner(LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
|
||||
{
|
||||
osTeleportOwner(World.RegionInfo.RegionName, position, lookat);
|
||||
}
|
||||
|
||||
public void osTeleportOwner(int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat)
|
||||
{
|
||||
CheckThreatLevel(ThreatLevel.None, "osTeleportOwner");
|
||||
|
||||
TeleportAgent(m_host.OwnerID.ToString(), regionX, regionY, position, lookat);
|
||||
}
|
||||
|
||||
// Functions that get information from the agent itself.
|
||||
//
|
||||
// osGetAgentIP - this is used to determine the IP address of
|
||||
|
||||
@@ -86,6 +86,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces
|
||||
void osTeleportAgent(string agent, string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
|
||||
void osTeleportAgent(string agent, int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
|
||||
void osTeleportAgent(string agent, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
|
||||
void osTeleportOwner(string regionName, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
|
||||
void osTeleportOwner(int regionX, int regionY, LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
|
||||
void osTeleportOwner(LSL_Types.Vector3 position, LSL_Types.Vector3 lookat);
|
||||
|
||||
// Animation commands
|
||||
void osAvatarPlayAnimation(string avatar, string animation);
|
||||
|
||||
@@ -508,6 +508,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
public const int PARCEL_DETAILS_OWNER = 2;
|
||||
public const int PARCEL_DETAILS_GROUP = 3;
|
||||
public const int PARCEL_DETAILS_AREA = 4;
|
||||
public const int PARCEL_DETAILS_ID = 5;
|
||||
|
||||
// constants for llSetClickAction
|
||||
public const int CLICK_ACTION_NONE = 0;
|
||||
|
||||
@@ -227,6 +227,21 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
m_OSSL_Functions.osTeleportAgent(agent, position, lookat);
|
||||
}
|
||||
|
||||
public void osTeleportOwner(string regionName, vector position, vector lookat)
|
||||
{
|
||||
m_OSSL_Functions.osTeleportOwner(regionName, position, lookat);
|
||||
}
|
||||
|
||||
public void osTeleportOwner(int regionX, int regionY, vector position, vector lookat)
|
||||
{
|
||||
m_OSSL_Functions.osTeleportOwner(regionX, regionY, position, lookat);
|
||||
}
|
||||
|
||||
public void osTeleportOwner(vector position, vector lookat)
|
||||
{
|
||||
m_OSSL_Functions.osTeleportOwner(position, lookat);
|
||||
}
|
||||
|
||||
// Avatar info functions
|
||||
public string osGetAgentIP(string agent)
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user