mirror of
https://github.com/opensim/opensim.git
synced 2026-07-31 05:45:37 +08:00
fix several PARCEL_DETAILS_* constants for getparceldetails, add PARCEL_DETAILS_GEOMETRICCENTER; Stop script on unknown parameter, instead of keep running with a wrong integer 0 result
This commit is contained in:
@@ -13986,66 +13986,66 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api
|
||||
{
|
||||
if (o is not LSL_Integer io)
|
||||
{
|
||||
Error("GetParcelDetails", $"Unknown parameter {o.ToString()}");
|
||||
Error("GetParcelDetails", $"Unknown parameter {o}");
|
||||
return new LSL_List(0);
|
||||
}
|
||||
|
||||
switch (io.value)
|
||||
{
|
||||
case 0:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_NAME:
|
||||
ret.Add(new LSL_String(land.Name));
|
||||
break;
|
||||
case 1:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_DESC:
|
||||
ret.Add(new LSL_String(land.Description));
|
||||
break;
|
||||
case 2:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_OWNER:
|
||||
ret.Add(new LSL_Key(land.OwnerID.ToString()));
|
||||
break;
|
||||
case 3:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_GROUP:
|
||||
ret.Add(new LSL_Key(land.GroupID.ToString()));
|
||||
break;
|
||||
case 4:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_AREA:
|
||||
ret.Add(new LSL_Integer(land.Area));
|
||||
break;
|
||||
case 5:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_ID:
|
||||
ret.Add(new LSL_Key(land.GlobalID.ToString()));
|
||||
break;
|
||||
case 6:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_SEE_AVATARS:
|
||||
ret.Add(new LSL_Integer(land.SeeAVs ? 1 : 0));
|
||||
break;
|
||||
case 7:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_PRIM_CAPACITY:
|
||||
ret.Add(new LSL_Integer(parcel.GetParcelMaxPrimCount()));
|
||||
break;
|
||||
case 8:
|
||||
ret.Add(new LSL_Integer(parcel.PrimCounts.Total));
|
||||
break;
|
||||
case 9:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_LANDING_POINT:
|
||||
ret.Add(new LSL_Vector(land.UserLocation));
|
||||
break;
|
||||
case 10:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_LANDING_LOOKAT:
|
||||
ret.Add(new LSL_Vector(land.UserLookAt));
|
||||
break;
|
||||
case 11:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_TP_ROUTING:
|
||||
ret.Add(new LSL_Integer(land.LandingType));
|
||||
break;
|
||||
case 12:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_FLAGS:
|
||||
ret.Add(new LSL_Integer(land.Flags));
|
||||
break;
|
||||
case 13:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_SCRIPT_DANGER:
|
||||
ret.Add(new LSL_Integer(World.LSLScriptDanger(m_host, parcel) ? 1 : 0));
|
||||
break;
|
||||
case 64:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_DWELL:
|
||||
ret.Add(new LSL_Integer(land.Dwell));
|
||||
break;
|
||||
case 65:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_GETCLAIMDATE:
|
||||
ret.Add(new LSL_Integer(land.ClaimDate));
|
||||
break;
|
||||
case 66:
|
||||
case ScriptBaseClass.PARCEL_DETAILS_GEOMETRICCENTER:
|
||||
ret.Add(new LSL_Vector(parcel.CenterPoint.X, parcel.CenterPoint.Y, 0));
|
||||
break;
|
||||
default:
|
||||
ret.Add(new LSL_Integer(0));
|
||||
break;
|
||||
Error("GetParcelDetails", $"Unknown parameter {io.value}");
|
||||
return new LSL_List(0);
|
||||
}
|
||||
}
|
||||
return ret;
|
||||
|
||||
@@ -742,12 +742,22 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase
|
||||
public const int PARCEL_DETAILS_AREA = 4;
|
||||
public const int PARCEL_DETAILS_ID = 5;
|
||||
public const int PARCEL_DETAILS_SEE_AVATARS = 6;
|
||||
public const int PARCEL_DETAILS_ANY_AVATAR_SOUNDS = 7;
|
||||
public const int PARCEL_DETAILS_GROUP_SOUNDS = 8;
|
||||
public const int PARCEL_DETAILS_PRIM_CAPACITY = 7;
|
||||
public const int PARCEL_DETAILS_PRIM_USED = 8;
|
||||
public const int PARCEL_DETAILS_LANDING_POINT = 9;
|
||||
public const int PARCEL_DETAILS_LANDING_LOOKAT = 10;
|
||||
public const int PARCEL_DETAILS_TP_ROUTING = 11;
|
||||
public const int PARCEL_DETAILS_FLAGS = 12;
|
||||
public const int PARCEL_DETAILS_SCRIPT_DANGER = 13;
|
||||
|
||||
// constants for llGetParcelDetails os specific
|
||||
public const int PARCEL_DETAILS_DWELL = 64;
|
||||
public const int PARCEL_DETAILS_GETCLAIMDATE = 65;
|
||||
public const int PARCEL_DETAILS_GEOMETRICCENTER = 66;
|
||||
|
||||
//osSetParcelDetails
|
||||
public const int PARCEL_DETAILS_ANY_AVATAR_SOUNDS = 7;
|
||||
public const int PARCEL_DETAILS_GROUP_SOUNDS = 8;
|
||||
public const int PARCEL_DETAILS_CLAIMDATE = 10;
|
||||
|
||||
// constants for llSetClickAction
|
||||
|
||||
Reference in New Issue
Block a user