diff options
Diffstat (limited to 'OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs')
-rw-r--r-- | OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | 27 |
1 files changed, 19 insertions, 8 deletions
diff --git a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs index b333b55..45a7c96 100644 --- a/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs +++ b/OpenSim/Region/ScriptEngine/Shared/Api/Implementation/LSL_Api.cs | |||
@@ -3769,10 +3769,6 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3769 | public void llCreateLink(string target, int parent) | 3769 | public void llCreateLink(string target, int parent) |
3770 | { | 3770 | { |
3771 | m_host.AddScriptLPS(1); | 3771 | m_host.AddScriptLPS(1); |
3772 | UUID targetID; | ||
3773 | |||
3774 | if (!UUID.TryParse(target, out targetID)) | ||
3775 | return; | ||
3776 | 3772 | ||
3777 | if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0 | 3773 | if ((m_item.PermsMask & ScriptBaseClass.PERMISSION_CHANGE_LINKS) == 0 |
3778 | && !m_automaticLinkPermission) | 3774 | && !m_automaticLinkPermission) |
@@ -3781,10 +3777,15 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3781 | return; | 3777 | return; |
3782 | } | 3778 | } |
3783 | 3779 | ||
3784 | IClientAPI client = null; | 3780 | CreateLink(target, parent); |
3785 | ScenePresence sp = World.GetScenePresence(m_item.PermsGranter); | 3781 | } |
3786 | if (sp != null) | 3782 | |
3787 | client = sp.ControllingClient; | 3783 | public void CreateLink(string target, int parent) |
3784 | { | ||
3785 | UUID targetID; | ||
3786 | |||
3787 | if (!UUID.TryParse(target, out targetID)) | ||
3788 | return; | ||
3788 | 3789 | ||
3789 | SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID); | 3790 | SceneObjectPart targetPart = World.GetSceneObjectPart((UUID)targetID); |
3790 | 3791 | ||
@@ -3819,6 +3820,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3819 | parentPrim.HasGroupChanged = true; | 3820 | parentPrim.HasGroupChanged = true; |
3820 | parentPrim.ScheduleGroupForFullUpdate(); | 3821 | parentPrim.ScheduleGroupForFullUpdate(); |
3821 | 3822 | ||
3823 | IClientAPI client = null; | ||
3824 | ScenePresence sp = World.GetScenePresence(m_host.OwnerID); | ||
3825 | if (sp != null) | ||
3826 | client = sp.ControllingClient; | ||
3827 | |||
3822 | if (client != null) | 3828 | if (client != null) |
3823 | parentPrim.SendPropertiesToClient(client); | 3829 | parentPrim.SendPropertiesToClient(client); |
3824 | 3830 | ||
@@ -3836,6 +3842,11 @@ namespace OpenSim.Region.ScriptEngine.Shared.Api | |||
3836 | return; | 3842 | return; |
3837 | } | 3843 | } |
3838 | 3844 | ||
3845 | BreakLink(linknum); | ||
3846 | } | ||
3847 | |||
3848 | public void BreakLink(int linknum) | ||
3849 | { | ||
3839 | if (linknum < ScriptBaseClass.LINK_THIS) | 3850 | if (linknum < ScriptBaseClass.LINK_THIS) |
3840 | return; | 3851 | return; |
3841 | 3852 | ||