Instructions are in the code. I had to add one line where it initializes PRIMCHAN and haven't seen any real problems. One time I had to position a build twice before all parts were correct.

Builders' Buddy 1.10 (Base Script) for OpenSim

{L_CODE}:

///////////////////////////////////////////////////////////////////////////////// Builders' Buddy 1.10 (Base Script)// by Newfie Pendragon, 2006-2008/////////////////////////////////////////////////////////////////////////////////// Script Purpose & Use// Functions are dependent on the "component script"//// QUICK USE:// - Drop this script in the Base.// - Drop the "Component" Script in each building part.// - Touch your Base, and choose RECORD// - Take all building parts into inventory// - Drag building parts from inventory into Base Prim// - Touch your base and choose BUILD//// OTHER COMMANDS from the Touch menu// - To reposition, move/rotate Base Prim choose POSITION// - To lock into position (removes scripts) choose DONE// - To delete building pieces: choose CLEAN///////////////////////////////////////////////////////////////////////////////// This script is copyrighted material, and has a few (minor) restrictions.// For complete details, including a revision history, please see// http://wiki.secondlife.com/wiki/Builders_Buddy///////////////////////////////////////////////////////////////////////////////

// Channel used by Base Prim to talk to Component Prims// This channel must be the same one in the component script// A negative channel is used because it elimited accidental activations// by an Avatar talking on obscure channelsinteger DefaultPRIMCHAN = -192567; // Default channel to use//integer PRIMCHAN = DefaultPRIMCHAN; // Channel used by Base Prim to talk to Component Prims;integer PRIMCHAN = -192567; // OpenSim Modification - also comment out the previous line for OpenSim // ***THIS MUST MATCH IN BOTH SCRIPTS!***

//The UUID of the creator of the object//Leave this as "" unless SL displays wrong name in object propertieskey creatorUUID = "";

// Set to TRUE to allow group members to use the dialog menu// Set to FALSE to disallow group members from using the dialog menuinteger ingroup = TRUE;

// Set to TRUE to delete piece from inventory when rezzed// (WARNING) If set to FALSE, user will be able to rez multiple copiesinteger deleteOnRez = FALSE;

// Allow non-creator to use CLEAN command?// (WARNING) If set to TRUE, it is recommended to set// deleteOnRez to FALSE, or user could lose entire buildinginteger allowClean = TRUE;

///////////////////////////////////////////////////////////////////////////////// DO NOT EDIT BELOW THIS LINE.... NO.. NOT EVEN THEN///////////////////////////////////////////////////////////////////////////////

//Menu option descriptionsstring descRecord = ": Record the position of all parts\n";string descReset = ": Forgets the position of all parts\n";string descBuild = ": Rez inv. items and position them\n";string descPos = ": Reposition the parts to a new location\n";string descClean = ": De-Rez all pieces\n";string descDone = ": Remove all BB scripts and freeze parts in place.\n";string descChannel = ": Change Channel used on base and parts.\n";

//If rezzing/positioning one at a time, we need // to listen for when they've reached their dest if(!bulkBuild) { llListen(PRIMCHAN, "", NULL_KEY, "READYTOPOS"); llListen(PRIMCHAN, "", NULL_KEY, "ATDEST"); }

//Rezzing it all before moving? if(bulkBuild) { //Move on to the next object //Loop through backwards (safety precaution in case of inventory change) iRezIndex--; if(iRezIndex >= 0) { //Attempt to rez it rez_object();

Joe, I apologize for sounding like a Moron, but what does "Builders Buddy" do?

No problem. It's used a lot in Second Life to package, distribute and erect builds, especially larger ones where the link limits on prims is more restrictive in Second Life than OpenSim. It's similar to a commercial product available in Second Life called Rez Faux.

This is from the documentation on the Second Life Wiki.

{L_QUOTE}:

01. PRODUCT SUMMARY

Builder's Buddy lets ordinary SL users rez a set of unlinked items in their proper places in relation to each other, without needing any building skills. The "Set" is usually a building, but there is no reason it can't also be a statue, a furniture set, etc.

You prepare the unlinked items according to the easy steps below, then for distribution put them in a Packing Box.

05. USAGE SUMMARY

The base script you only use once in an item. It goes in a "base" prim, which is the piece that is moved/rotated/etc. The component script goes into each part or each linked part that makes up the rest of the large build. In short, only one base script, many component scripts. You do not put a component script in the same item where you put a base script.

1. Drop the base script in the Base. 2. Drop the "Component" Script in each building part. 3. Touch your Base, and choose RECORD 4. Take all building parts into inventory except for the base prim 5. Drag building parts from inventory into Base Prim 6. Touch your base and choose BUILD

OTHER COMMANDS from the Touch menu

* To reposition, move or rotate the Base Prim choose POSITION * To adjust where the house has rezzed after choosing BUILD, you can just edit - arrow move the base prim around, and the Rest of the build will follow; * To lock into position (removes all scripts, helping to reduce work on the sim server) choose DONE * To delete building pieces: choose CLEAN

I had the same problem, but the simple solution is not to use it, the reason is, scripts that record information (unless recorded on a notecard) do not save their previous state if the object containing such a script is taken, then rezzed, mainly because when the object is rezzed, the script is re-compiled, thus re initializing the variables and losing the data they contain.

Sorry for the disappointment, but the only way Builders Buddy is going to work, is if the recorded information is stored on a notecard in the objects inventory, be it a linkset or a single prim.

UPDATE........Tested on windows, the builders buddy script works so, so, but on Linux, it uses the llGetUnixTime() code, which for some reason does not work, and the base script keeps rezzing the previous object, because the llGetUnixTime() comparison to the 'Are we taking to long?' condition, is always more than the 'RezWait' time and therefore will continuiously rezz the last object regardless.

What needs be changed (which I can't at my current knowledge level of LSL), is to replace the 'are we taking too long' condition, and use a sleep time instead, then rez the next in line, sleep a while, then the next, and so on, until all objects have been rezzed, then continue to the move function, this is for 'bulkrez = true', but for 'bulkrez = false', rez, move, sleep, rez, move sleep, and so on, again until all objects have been rezzed, then, it'll work in both windows and Linux.

Ok, i added a Notecard memory to the component script, the base script is unchanged. With this modification the components do not loose their data.

This modification requires the OSSL function osMakeNotecard to be allowed on your region only when storing the position, not needed for rezzing. It will automaticaly write a notecard with the needed data saved in it. I used osMakeNotecard because it would be a nightmare if your would need to do the work manualy if your planing on saving the data for many objects.

{L_CODE}:

///////////////////////////////////////////////////////////////////////////////// Builders' Buddy 1.10 (Component Script)// by Newfie Pendragon, 2006-2008/////////////////////////////////////////////////////////////////////////////////// Script Purpose & Use// Functions are dependent on the "component script"//// QUICK USE:// - Drop this script in the Base.// - Drop the "Component" Script in each building part.// - Touch your Base, and choose RECORD// - Take all building parts into inventory// - Drag building parts from inventory into Base Prim// - Touch your base and choose BUILD//// OTHER COMMANDS from the Touch menu// - To reposition, move/rotate Base Prim choose POSITION// - To lock into position (removes scripts) choose DONE// - To delete building pieces: choose CLEAN///////////////////////////////////////////////////////////////////////////////// This script is copyrighted material, and has a few (minor) restrictions.// For complete details, including a revision history, please see// http://wiki.secondlife.com/wiki/Builders_Buddy///////////////////////////////////////////////////////////////////////////////

///////////////////////////////////////////////////////////////////////////////// Added a Memory datastorage for opensim using osMakeNotecard///////////////////////////////////////////////////////////////////////////////

Thanks Michelle that is a great additiion to a very useful utility. I was not aware that they had converted the Builder Buddy 1.10, and had recently been working on it myself. But this is a great leap forward in making it more stable on Opensim.

Michelle I discovered a bug in the component script and in fact one in the orginal Builder Buddy Component which also was probably causing the problems people were seeing. In this section from the original script on Second Life you will notice the bottom line:

It is a redundant declaration. The above sets the limits for the x coordinate at 255.0 then says on the bottom line the limit is 768.0. Not sure where that value came from however. But there is no mention of the z coordiante, and for rezzing skyboxes which is one of the often uses for Builder Buddy, this is necessary. So I have change the bottom line too:

Now the reason I have done this, is opensim will support rezzing up to 10000 meters, and there is no reason I can see for avoiding this. The space is there and with these changes it works just fine. I just would not go above 10000 meters. Imprudence, Hippo and Meerkat all support rezzing to this height.

Who is online

Users browsing this forum: No registered users and 1 guest

You cannot post new topics in this forumYou cannot reply to topics in this forumYou cannot edit your posts in this forumYou cannot delete your posts in this forumYou cannot post attachments in this forum