From 2c1909a873b7895e725d39d67bae4dac9873b1d2 Mon Sep 17 00:00:00 2001 From: UbitUmarov Date: Fri, 11 Oct 2019 00:01:59 +0100 Subject: [PATCH] add osResetAllScripts(LSL_Integer AllLinkset). use with care --- .../Shared/Api/Implementation/OSSL_Api.cs | 34 ++++++ .../Shared/Api/Interface/IOSSL_Api.cs | 2 + .../Shared/Api/Runtime/LSL_Constants.cs | 2 +- .../Shared/Api/Runtime/OSSL_Stub.cs | 4 + bin/ScriptSyntax.xml | 111 ++++++++++++++---- 5 files changed, 126 insertions(+), 27 deletions(-) diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs index 4d1ccb7505..f0f67817ae 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/OSSL_Api.cs @@ -5560,5 +5560,39 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api return LSL_Rotation.Slerp(a, b, amount); } + + public void osResetAllScripts(LSL_Integer linkset) + { + UUID me = m_item.ItemID; + List scripts = new List(); + + if(linkset != 0) + { + SceneObjectGroup sog = m_host.ParentGroup; + if(sog.inTransit || sog.IsDeleted) + return; + + SceneObjectPart[] parts = sog.Parts; + for (int i = 0; i < parts.Length; i++) + { + scripts.AddRange(parts[i].Inventory.GetInventoryItems(InventoryType.LSL)); + } + } + else + scripts.AddRange(m_host.Inventory.GetInventoryItems(InventoryType.LSL)); + + foreach(TaskInventoryItem script in scripts) + { + if(script.ItemID == me) + continue; + m_ScriptEngine.ResetScript(script.ItemID); + } + + if (m_UrlModule != null) + m_UrlModule.ScriptRemoved(me); + + m_ScriptEngine.ApiResetScript(me); + + } } } \ No newline at end of file diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs index 369b361007..afbbe6f4ec 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Interface/IOSSL_Api.cs @@ -556,5 +556,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api.Interfaces LSL_Key osGetLastChangedEventKey(); LSL_Float osGetPSTWallclock(); LSL_Rotation osSlerp(LSL_Rotation a, LSL_Rotation b, LSL_Float amount); + + void osResetAllScripts(LSL_Integer AllLinkset); } } diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs index 7edda5813e..e1c421f97d 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/LSL_Constants.cs @@ -35,7 +35,7 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase public partial class ScriptBaseClass { // SCRIPTS CONSTANTS - public static readonly LSLInteger OS_APIVERSION = 8; + public static readonly LSLInteger OS_APIVERSION = 9; public static readonly LSLInteger TRUE = 1; public static readonly LSLInteger FALSE = 0; diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs index 866a955e4d..e13b6b06ad 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Runtime/OSSL_Stub.cs @@ -1412,5 +1412,9 @@ namespace OpenSim.Region.ScriptEngine.Shared.ScriptBase return m_OSSL_Functions.osSlerp(a, b, amount); } + public void osResetAllScripts(LSL_Integer allLinkSet) + { + m_OSSL_Functions.osResetAllScripts(allLinkSet); + } } } diff --git a/bin/ScriptSyntax.xml b/bin/ScriptSyntax.xml index 12c3a30deb..135ded926b 100644 --- a/bin/ScriptSyntax.xml +++ b/bin/ScriptSyntax.xml @@ -1,4 +1,4 @@ -4c3dbda3-bc1e-b0f0-c532-2c6daf1e2343 +dfadabce-becc-8749-2b74-781332befa2e llsd-lsl-syntax-version2 controls @@ -1027,6 +1027,50 @@ typeinteger value3 + IMG_USE_BAKED_AUX1 + typestring + value9742065b-19b5-297c-858a-29711d539043 + + IMG_USE_BAKED_AUX2 + typestring + value03642e83-2bd1-4eb9-34b4-4c47ed586d2d + + IMG_USE_BAKED_AUX3 + typestring + valueedd51b77-fc10-ce7a-4b3d-011dfc349e4f + + IMG_USE_BAKED_EYES + typestring + value52cc6bb6-2ee5-e632-d3ad-50197b1dcb8a + + IMG_USE_BAKED_HAIR + typestring + value09aac1fb-6bce-0bee-7d44-caac6dbb6c63 + + IMG_USE_BAKED_HEAD + typestring + value5a9f4a74-30f2-821c-b88d-70499d3e7183 + + IMG_USE_BAKED_LEFTARM + typestring + valueff62763f-d60a-9855-890b-0c96f8f8cd98 + + IMG_USE_BAKED_LEFTLEG + typestring + value8e915e25-31d1-cc95-ae08-d58a47488251 + + IMG_USE_BAKED_LOWER + typestring + value24daea5f-0539-cfcf-047f-fbc40b2786ba + + IMG_USE_BAKED_SKIRT + typestring + value43529ce8-7faa-ad92-165a-bc4078371687 + + IMG_USE_BAKED_UPPER + typestring + valueae2de45c-d252-50b8-5c6e-19f39ce79317 + INVENTORY_ALL typeinteger value-1 @@ -1513,7 +1557,7 @@ OS_APIVERSION typeinteger - value6 + value9 OS_ATTACH_MSG_ALL typeinteger @@ -6322,6 +6366,8 @@ returnstring arguments drawListtypestring + startXtypeinteger + startYtypeinteger endXtypeinteger endYtypeinteger @@ -6331,8 +6377,6 @@ returnstring arguments drawListtypestring - startXtypeinteger - startYtypeinteger endXtypeinteger endYtypeinteger @@ -6471,13 +6515,13 @@ arguments avatartypestring - targettypestring osForceOtherSit arguments avatartypestring + targettypestring osFormatString @@ -6714,7 +6758,7 @@ returnkey arguments - regionNametypestring + regionNameOrIDtypestring osGetRegionSize @@ -7013,7 +7057,6 @@ arguments npctypekey - channeltypeinteger messagetypestring @@ -7021,6 +7064,7 @@ arguments npctypekey + channeltypeinteger messagetypestring @@ -7182,6 +7226,7 @@ returninteger arguments secondstypefloat + msgtypestring osRegionRestart @@ -7189,7 +7234,6 @@ returninteger arguments secondstypefloat - msgtypestring osReplaceString @@ -7217,6 +7261,12 @@ optionstypelist + osResetAllScripts + + arguments + AllLinksettypeinteger + + osRound returnfloat @@ -7413,7 +7463,7 @@ osSetProjectionParams arguments - primtypekey + linknumbertypeinteger projectiontypeinteger texturetypekey fovtypefloat @@ -7424,7 +7474,7 @@ osSetProjectionParams arguments - linknumbertypeinteger + primtypekey projectiontypeinteger texturetypekey fovtypefloat @@ -7515,6 +7565,15 @@ valuetypefloat + osSlerp + + returnrotation + arguments + atyperotation + btyperotation + amounttypefloat + + osStopSound arguments @@ -7556,6 +7615,8 @@ arguments srctypestring valuetypestring + starttypeinteger + counttypeinteger ignorecasetypeinteger @@ -7565,8 +7626,6 @@ arguments srctypestring valuetypestring - starttypeinteger - counttypeinteger ignorecasetypeinteger @@ -7603,7 +7662,6 @@ arguments srctypestring starttypeinteger - lengthtypeinteger osStringSubString @@ -7612,6 +7670,7 @@ arguments srctypestring starttypeinteger + lengthtypeinteger osSunGetParam @@ -7629,16 +7688,6 @@ osTeleportAgent - - arguments - agenttypestring - regionXtypeinteger - regionYtypeinteger - positiontypevector - lookattypevector - - - osTeleportAgent arguments agenttypestring @@ -7655,6 +7704,16 @@ lookattypevector + osTeleportAgent + + arguments + agenttypestring + regionXtypeinteger + regionYtypeinteger + positiontypevector + lookattypevector + + osTeleportObject returninteger @@ -7675,8 +7734,7 @@ osTeleportOwner arguments - regionXtypeinteger - regionYtypeinteger + regionNametypestring positiontypevector lookattypevector @@ -7684,7 +7742,8 @@ osTeleportOwner arguments - regionNametypestring + regionXtypeinteger + regionYtypeinteger positiontypevector lookattypevector