diff options
Diffstat (limited to 'OpenSim/Region/Framework/Scenes')
-rw-r--r-- | OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | 4 | ||||
-rw-r--r-- | OpenSim/Region/Framework/Scenes/ScenePresence.cs | 33 |
2 files changed, 37 insertions, 0 deletions
diff --git a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs index b552cdc..e87766e 100644 --- a/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs +++ b/OpenSim/Region/Framework/Scenes/SceneObjectPart.cs | |||
@@ -4145,6 +4145,10 @@ namespace OpenSim.Region.Framework.Scenes | |||
4145 | case 16: | 4145 | case 16: |
4146 | _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask) & | 4146 | _nextOwnerMask = ApplyMask(_nextOwnerMask, set, mask) & |
4147 | baseMask; | 4147 | baseMask; |
4148 | // Prevent the client from creating no mod, no copy | ||
4149 | // objects | ||
4150 | if ((_nextOwnerMask & (uint)PermissionMask.Copy) == 0) | ||
4151 | _nextOwnerMask |= (uint)PermissionMask.Transfer; | ||
4148 | break; | 4152 | break; |
4149 | } | 4153 | } |
4150 | SendFullUpdateToAllClients(); | 4154 | SendFullUpdateToAllClients(); |
diff --git a/OpenSim/Region/Framework/Scenes/ScenePresence.cs b/OpenSim/Region/Framework/Scenes/ScenePresence.cs index 5ac7755..efe3365 100644 --- a/OpenSim/Region/Framework/Scenes/ScenePresence.cs +++ b/OpenSim/Region/Framework/Scenes/ScenePresence.cs | |||
@@ -3365,6 +3365,18 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos); | |||
3365 | cAgent.Attachments = attachs; | 3365 | cAgent.Attachments = attachs; |
3366 | } | 3366 | } |
3367 | 3367 | ||
3368 | lock (scriptedcontrols) | ||
3369 | { | ||
3370 | ControllerData[] controls = new ControllerData[scriptedcontrols.Count]; | ||
3371 | int i = 0; | ||
3372 | |||
3373 | foreach (ScriptControllers c in scriptedcontrols.Values) | ||
3374 | { | ||
3375 | controls[i++] = new ControllerData(c.itemID, (uint)c.ignoreControls, (uint)c.eventControls); | ||
3376 | } | ||
3377 | cAgent.Controllers = controls; | ||
3378 | } | ||
3379 | |||
3368 | // Animations | 3380 | // Animations |
3369 | try | 3381 | try |
3370 | { | 3382 | { |
@@ -3446,6 +3458,27 @@ Console.WriteLine("Scripted Sit ofset {0}", m_pos); | |||
3446 | } | 3458 | } |
3447 | catch { } | 3459 | catch { } |
3448 | 3460 | ||
3461 | try | ||
3462 | { | ||
3463 | lock (scriptedcontrols) | ||
3464 | { | ||
3465 | if (cAgent.Controllers != null) | ||
3466 | { | ||
3467 | scriptedcontrols.Clear(); | ||
3468 | |||
3469 | foreach (ControllerData c in cAgent.Controllers) | ||
3470 | { | ||
3471 | ScriptControllers sc = new ScriptControllers(); | ||
3472 | sc.itemID = c.ItemID; | ||
3473 | sc.ignoreControls = (ScriptControlled)c.IgnoreControls; | ||
3474 | sc.eventControls = (ScriptControlled)c.EventControls; | ||
3475 | |||
3476 | scriptedcontrols[sc.itemID] = sc; | ||
3477 | } | ||
3478 | } | ||
3479 | } | ||
3480 | } | ||
3481 | catch { } | ||
3449 | // Animations | 3482 | // Animations |
3450 | try | 3483 | try |
3451 | { | 3484 | { |