Mantis Bug Tracker

View Issue Details Jump to Notes ] Issue History ] Print ]
IDProjectCategoryView StatusDate SubmittedLast Update
0008793opensim[REGION] Scripting Enginepublic2020-10-31 19:022020-11-19 07:00
ReporterGezebu MindBlue 
Assigned Totampa 
PrioritynormalSeverityminorReproducibilityalways
StatusresolvedResolutionfixed 
PlatformLinuxOperating SystemFedoraOperating System VersionFedora 32
Product Version 
Target VersionFixed in Versionmaster (dev code) 
Summary0008793: llBreakLink does not work properly in YEngine
DescriptionllBreakLink does not work properly in YEngine, although AutomaticLinkPermission = true.
Initially it gives a console error claiming that llRequestPermissions and run_time_permissions have not been used.
In Xengine it is not necessary to use llRequestPermissions and run_time_permissions, if AutomaticLinkPermission = true.
This facilitates the process of breaking a linkset and removing a specific prim without the need for a popup confirmation.
This is very useful in automated processes where a large number of objects are rezzed in the world, where it is necessary to remove a part.
Why would something like this be useful? Well, I can give the example of a tool that I created, which serves to plant forests of mesh trees, and that at the end of the process needs to break the linkset to remove the object that contains the script with which the trees are planted in random positions.

To continue... It happens that even if you use llRequestPermissions and run_time_permissions, llBreakLink does not manage to break the link if the script that invokes the function is not in the primitive root of the linkset. It doesn't matter if you use llBreakLink(llGetLinkNumber()); or if you pass it the number of the primitive for example llBreakLink(4). It will not work, if the script is not in the root prim. If you use llBreakLink(llGetLinkNumber()) in a child of the linkset, it does not break it. It only works if llBreakLink(llGetLinkNumber()) is used in the primitive root of the linkset.

This is not the case with Xengine. You can use the function in a childprim and it will break it.

You can test it with the same example from the lsl wiki, placing the script on each linkset primitive child. In Xengine it will work, but in Yengine it won't.

Summarizing there are two problems here: AutomaticLinkPermission does not work in Yengine, and llBreakLink works partially.
Steps To ReproduceCreate a linkset with multiple prim childs and put inside of each one this script.
Then try break the linkset touching childs.

//-- requests permission to change links, then breaks the link
//-- between the prim and the rest of the object, on touch.
default{
  touch_start( integer vIntTouched ) {
    llRequestPermissions( llGetOwner(), PERMISSION_CHANGE_LINKS );
  }
 
  run_time_permissions( integer perm ) {
    if(perm & PERMISSION_CHANGE_LINKS) {
      llBreakLink( llGetLinkNumber() );
    }
  }
}
Additional InformationOpenSim 0.9.2.0 Yeti Dev OSgrid 0.9.2.0 Yeti Dev 3049658aaa: 2020-10-17 16:09:49 +0100 (SIMULATION/0.3 - SIMULATION/0.8)
TagsNo tags attached.
Git Revision or version numberVersion: OpenSim 0.9.2.0 Yeti Dev OSgrid 0.9.2.0 Yeti Dev 3049658aaa: 2020-10-17 16:09:49 +0100 (SIMULATION/0.3 - SIMULATION/0.8)
Run Mode Grid (Multiple Regions per Sim)
Physics EngineBulletSim
Script EngineYEngine
EnvironmentMono / Linux64
Mono Version6.x
ViewerFirestorm 6.3.9.58205
Attached Files

- Relationships

-  Notes
(0037007)
UbitUmarov (administrator)
2020-11-01 11:17

This is not related to script engine, except the option AutomaticLinkPermission.
For now you may need to add it into [Yengine] section also.
This is still a problem on some settings, only present under [Xengine] for now

Still the script will not unlink because code forbids that on the script prim.
This seems old opensim thing. I will check
(0037008)
UbitUmarov (administrator)
2020-11-01 12:02

changed code to allow script prim to self unlink

also do standup all avatars before doing the unlink as spec

i don't like this standup, may review it later

it prevents for example a airplane from dropping a bomb by just unlink it
(0037009)
Gezebu MindBlue (reporter)
2020-11-01 16:26

Is solved. As suggested by @UbitUmarov add AutomaticLinkPermission = true in the YEngine section corrects the first problem. And the patch applied in the git version: OpenSim 0.9.2.0 Yeti Dev 7708214, effectively fixes the rest. Thx ...

- Issue History
Date Modified Username Field Change
2020-10-31 19:02 Gezebu MindBlue New Issue
2020-10-31 19:05 Gezebu MindBlue Fixed in Version => 0.9.2.0 dev
2020-10-31 19:05 Gezebu MindBlue Additional Information Updated View Revisions
2020-11-01 11:17 UbitUmarov Note Added: 0037007
2020-11-01 12:02 UbitUmarov Note Added: 0037008
2020-11-01 16:26 Gezebu MindBlue Note Added: 0037009
2020-11-19 07:00 tampa Status new => resolved
2020-11-19 07:00 tampa Fixed in Version 0.9.2.0 dev => master (dev code)
2020-11-19 07:00 tampa Resolution open => fixed
2020-11-19 07:00 tampa Assigned To => tampa


Copyright © 2000 - 2012 MantisBT Group
Powered by Mantis Bugtracker