This Week in OpenSim Dev - week ending Saturday 6th December 2008
Hello everybody. This is a short summary of OpenSim development for the past week up until the end of last Saturday, as culled from our source code repository logs. After any general news there are two sections. The first section - “Features and bug fixes”, contains prominent new functionality and bug fixes visible to users of OpenSim. The numbers in brackets in this section are the final svn revision numbers in which the work was completed for this week. This is right at the cutting edge so there is no guarantee that this functionality is stable.
The second section contains information about the infrastructure changes happening within the project. This is going to be a little more impressionistic than the features/bug fixes list, but hopefully it will give a picture of how OpenSim is evolving from week to week.
This week in OpenSim ( r7547 - r7632 )
General news
- None this week
Features & bug fixes
- idb improved the avatar height calculation in the Basic Physics and Physics Of Simplicity physics engines (r7557).
- MW stopped it being possible to bring down a grid server merely by sending it corrupt XML data (r7562).
- I resolved problems persisting some prims in the database by stopping storage or retrieval of the parent local ID field, which was unused anyway (r7586).
- mpallari contributed an update to the make the NHibernate database backend option useable. This now means that OpenSim requires an extra dependency on Linux systems, otherwise it will complain about a missing System.Data.Oracle namespace on startup. See this wiki page for more details (r7604).
- Godfrey contributed a patch to fix llTriggerSound() (r7589).
- Melanie fixed a bug where no copy objects would be lost if attached (r7608).
- Melanie fixed a bug where scripts were not stopped if they were removed from a prim’s inventory (r7611).
- idb implemented the llDetectedTouchBinormal(), llDetectedTouchFace(), llDetectedTouchNormal(), llDetectedTouchPos(), llDetectedTouchST(), llDetectedTouchUV() (r7621).
- Melanie added code to enable region crossing for scripts such that they will stay active in the new region. For this to work, both source and destination must be configured to allow script crossing. See the AllowScriptCrossing and TrustBinaries settings in OpenSim.ini.example (r7624).
Infrastructure
- Diva contributed patches to improve Hypergrid support.
- Melanie added extra hooks in the Permissions module.
- Sean, Melanie and Diva worked on region crossing and teleporting issues (e.g. no texture downloading when a region is re-entered from another region).
“Melanie added code to enable region crossing for scripts such that they will stay active in the new region. For this to work, both source and destination must be configured to allow script crossing. See the AllowScriptCrossing and TrustBinaries settings in OpenSim.ini.example (r7624).”
We are running Opensim in grid mode at SVN7875 with one region server running multiple regions. The common opensim.ini contains:
AllowScriptCrossings=true
TrustBinaries=true
(Please note we have added the s to AllowScriptCrossings as we saw that it had been missed off according to a Mantis report).
I have tried to drag a scripted object across a border and also tried it attached to my avatar and crossed the border. In both cases the script stops running. Both regions are running in the same region server instance so using the same opensim.ini file as mentioned above.
Am I missing something?
Oh by the way tried this with both DotNetEngine and with Xengine running the script. Same result both times. Script stops on crossing
@Bob - The setting should actually be AllowScriptCrossing - I think this was actually changed from AllowScriptCrossings
Thanks for your help … you are right.
On further investigation I realised I originally saw a post saying that the program and ini were out of sync so we changed our ini to match the program but then someone later changed the program to match the old ini so I needed to change it back again.
We now have AllowScriptCrossing=true and all is well. I can drag a prim across a boudary and the script continues, I can attach a scripted prim and fly/walk across a boundary or even TP and it continues to run. Wonderful. Now all I have to figure out is how to make my scripted train move its self across a sim boundary and I will be a happy man.
Try putting the script below into a prim in the middle of one sim with another sim to the east of it and clicking the prim. According the LSL wiki on llSetPos the prim should slowly cross to the middle of the adjacent sim and then come back again but it doesn’t. It gets to the border and freezes and a subsequent click jumps it to 2 meters from the west of the original sim and the script stops running and wont reset.
//lsl
default
{
state_entry()
{
llSay(0,”ready”);
}
touch_start(integer num_detected)
{
integer a = 0;
integer b = 255;
vector speed1 = ;
vector speed2 = speed1 * -1;
llSay(0,”Forward”);
for(1; a < b; ++a)
{
llSetPos(llGetPos() + speed1);
}
a = 0;
llSay(0,"Reverse");
for(1; a < b; ++a)
{
llSetPos(llGetPos() + speed2);
}
llSay(0,"Stop");
}
}