Welcome to the Second Life Forums Archive

These forums are CLOSED. Please visit the new forums HERE

Discussion: Builders' Buddy - Building Positioning/Rotation Tool

BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
04-22-2008 15:17
re:
From: Poppet McGimsie
3) If a linkset has more than one component script in it (e.g. if you forget to take one out of a child prim from a previous version and there's one in the root prim too) then you will see some odd stuff happening.


AND as SUGGESTION for a general improvement to the standard codebase:
Merge this code with the component script.
CODE

//----------------------------------
f_checkNested()
{
if (llGetLinkNumber() > 1)
{
llOwnerSay("Component script in non-root prim.\nSelf deleting");
llRemoveInventory(llGetScriptName());
}
}
//----------------------------------
default
{
on_rez(integer start_param)
{
f_checkNested();
}
changed(integer change)
{
if (change & CHANGED_LINK)
{
f_checkNested();
}
}
}
Dumisani Ah
Pass me the hammer
Join date: 2 Dec 2006
Posts: 95
04-23-2008 00:40
Hi Poppet, thanks for this. Its helped solve two of my regular problems:

From: Poppet McGimsie
2) I put a 20-30 sec delay (llSleep(20.0) in the part of the base program where the pieces are being rezzed, because I found that generally it was needed to avoid incomplete rezzing and a mess on the ground.

DUMI: This looks very much like a way to solve the incomplete rezzes from time to time. Will modify mine too :)

From: Poppet McGimsie
4) If a linkset becomes unlinked on rez (which sometimes happens with objects that are linked close to the distance limits) then it will not build properly of course: you will find that linkset's unlinked bits all rezzed willynilly around the object that contains the base script. Try making two smaller linksets out of the object, and it will work better.

DUMI: This explains my larger builds going a little wonkey ;) Thanks for the tip too.

From: Poppet McGimsie
6) Oh, and I use the builder buddy with my hippotech holovendor so people can rez models of my houses. The holovendor rezzes a copy of the builder box, and the customer then simply clicks the box to rez the house. I have the script modified slightly so that when a customer cycles through the houses, each new builder box shouts the "CLEAN" command and derezzes any previously rezzed model.

DUMI: Great Idea - I have a Hippo, but am trying to do the same with the multi-product vendor in the Wiki :)
_____________________
Screwdrivers are so 90's...
Iraefer Revnik
Registered User
Join date: 3 Dec 2007
Posts: 10
04-25-2008 07:25
hello this script is very good to rezz objects but i want to ask someting that cause me trouble.
i am using v1.10 and when i rezz the object it rezz it a over the ground from the half of the rezz box how can i rezz it on the grround with the bottom of rezz box
thank you very much for your helps...
BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
04-25-2008 13:54
From: Iraefer Revnik
how can i rezz it on the grround with the bottom of rezz box


The position it rezzes components at, is relative to the position they were 'recorded' at.
You need to re-record the positions with the base box in the desired position relative to the components.

... or move the base box a little underground.
Iraefer Revnik
Registered User
Join date: 3 Dec 2007
Posts: 10
04-25-2008 17:48
From: BETLOG Hax
The position it rezzes components at, is relative to the position they were 'recorded' at.
You need to re-record the positions with the base box in the desired position relative to the components.

... or move the base box a little underground.


thanks i understand the point....
PR Noyes
Registered User
Join date: 24 Jan 2008
Posts: 16
A bit off core topic, BB onRez at altitude above rezzer?
04-29-2008 11:31
BB 1 .10

I have complex sky boxes that I build (create) down under 768m that are intended to be rezzed upwards of 2000m+. Is it difficult to modify the Menu to rez at a chosen altitude above the rezzer box (base)?

Example, if my sky box is less than 100m high, I create a platform below 650m to create on, follow the BB sequence and eventually take the rezzer into Inventory. Days later i might create a platform at 100malt or even 750m altitude and drag the rezzer from my Inventory out onto the platform. When I click the base rezzer and get the menu, I am thinking to have a menu item suggest/query me for an altitude. We'd type in 3021m and click Build and the rezzer would calculate something like rezOffset=(GetPos()+(ChosenAltitude - it's own GetPos())); and rez it up there using 3021m as it's offset base location.

Sorry if I am rabling, I'm not great at LSS yet, but willing to do the work. Possible to use BB to script rez above the default sim ceiling? Same with Position and Clean? using RegionSay, of course.

Thanks for taking a stab at this newb question.
BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
04-29-2008 16:48
From: PR Noyes
I am thinking to have a menu item suggest/query me for an altitude. We'd type in 3021m and click Build and the rezzer would calculate something like rezOffset=(GetPos()+(ChosenAltitude - it's own GetPos())); and rez it up there using 3021m as it's offset base location.


I made a thing when I first joined SL which i call a HaxPad-10, it is based off an object called a workpad. Basically you sit on it, a dialog appears with some elevations, you chose one and it moves to that height, rezzes a platform (a single 10m pad), and unsits the avatar 5m above the platform.
You could easily combine BB and HaxPad simply by putting a BB rezzer (in the form of a small pad, so you have something to stand on when you arrive at X metres) into my HaxPad base.

It's not exactly what you want, but it would be a very simple compromise.
IM me inworld if you are interested, HaxPad is opensource, as is the 'WorkPad' code it's based off (but workpad rezzes a huge cube.. which never actually works in my experience).
Andromeda Quonset
Registered User
Join date: 20 May 2006
Posts: 46
Builders Buddy new features....
05-02-2008 04:01
I've been working on some further changes for Builders Buddy. Some are by request, and some are because they will help with some applications I'm working on. Any changes, I would submit the code to Newfie, of course, for his evaluation :)

1. Controlling the base using a Hud or other remote control.
2. Re-positioning a build by some offset vector.

I'm trying to make some design decisions, and my main problem is with the offset vector.
Basically, the problem is how to set the offset vector? Basically, I am talking about a vector containing 3 floating-point numbers, of positive, zero, or negative value.

One way I could do this is with blue dialog box, but I am running into the problem of needing 13 buttons, and 12 buttons is the limit. The dialog box for doing channel selection has the digits 0-9, an enter button, and a "-" button. That comes to exactly 12 buttons. For the vector, I also need a decimal point. So, to make this work via dialog box, I need to use a menu which has 2 "pages" to it, so page 1 would have 0-9, enter,next and page 2 would have "-", ".", prev which I think could be harder for the end user.

The other way I could do this is to have the base unit read the vector from a notecard. The drawback with this is that if there are a lot of objects in the base prim, accessing the notecard for manual editing can become difficult and slow. If I was to implement via a notecard reader, I would be inclined to find some other general parameters that could/should be set via notecard.

I am inclined to code this up using both solutions, but I thought I would ask here if anyone had any opinions :)
BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
05-02-2008 04:38
From: Andromeda Quonset
The other way I could do this is to have the base unit read the vector from a notecard.

Entering and storing info in the decscription field is handy.
My BB's almost always have a position vector in the decsription field... it helps me to know where in the sim they are supposed to be prior to rezzing.

But maybe you are overthinking this... or maybe i dont understand your specific requirements.... why exactly do you need to be able to enter a variable offset?
PR Noyes
Registered User
Join date: 24 Jan 2008
Posts: 16
05-02-2008 04:50
Andromeda,
I have to agree with with Betlog Hax, as we could easily just be prompted to Type coordinates into a private channel to enter something like that, unless you are thinking of storing a multi-dimensional array of data (many coordinates) in which case i suggest you take a look at the http://rpgstats.com/wiki/index.php?title=List and scroll waaay down to the bottom for the discussion there of "Strided Lists".

Be wary however of thinking of string data converted to vectors during the casting of type. I think I recall not that it won't work or that there is some goofy laborious workaround that is necessary to convert string data to genuine vector types, but I could be wrong. It MIGHT be easy.
BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
05-02-2008 06:49
From: PR Noyes
Be wary however of thinking of string data converted to vectors during the casting of type.

It's a pain in the butt. Not because its hard but because we have to be so mindful of what form (vector/string) its in.
....
vector validVector = (vector)llList2String(gList, i, i);
..works... but I still have to fiddle every time i do these things.
But I'm guessing Andromeda has encountered this before.

But back to the original issue... Just off the top of my head i guess you will need to alter the component and the base code reasonably significantly, adding global retention of a variable to recall the normal offset... and also the user offset. And then juggle them at the appropriate times.
...again.. are you sure you need this level of complexity? What's it for?
Andromeda Quonset
Registered User
Join date: 20 May 2006
Posts: 46
05-02-2008 12:55
Ok, I see additional explanation is in order:)

This "offset" is itself a very simple modification, as it turns out. It only needs a change to be made in the base code to work.

What it is: Say you have a building, all stored in Builder's Buddy. You place the base prim. You touch the base prim, select build, and the building is rezzed and positioned according to the recorded position. But suppose you want to move the building, and not move the base prim (perhaps the base prim is disguised as some landscaping element, or you have some other reason for doing this) ? Somebody earlier, looks like it was PR Noyes, was wanting to rez a build 2000 meters up in the air. So, the offset would be <0.0, 0.0, 2000.0>. The menu has a new command called "offset". So, first you would do a "build" command. The build rezes and positions normally. Then you do an "offset" command. Since the offset value has been set at <0.0, 0.0, 2000.0>, the building moves up by 2000 meters. Now, if you want to move the building back down to the origianl position, use the "position" command.

I had considered using an open channel to set this vector. It isn't my favorite way to handle things, but I'll think about it. Thanks!

(Yes, entering vectors can be tricky sometimes)
Aaron23 DeCuir
Registered User
Join date: 21 Sep 2007
Posts: 12
script error message
06-03-2008 17:45
Ok here's the conditions...

I've created a house and packed it into an object with builders buddy 1.0. I can build, position and clean without problem.

Yet, if I give that object to an alt and try to build it as my alt, I get the following error message:
aarmax bubble house one bedroom: Missing inventory item ''

Actually, i get it 7 times. There are seven objects in the package and the two are probably connected. Yet, the house builds successfully and all appears to be well.

Any suggestions on how to get rid of these unsightly script error messages?

Thanks,
aaron
Andromeda Quonset
Registered User
Join date: 20 May 2006
Posts: 46
06-03-2008 19:49
Not sure, but SL is having a lot of inventory issues lately. I've seen reports of people who have builds in other rezzing systems have problems. The other thing I would ask, is how do you have the permissions set on the objects? And, is your ALT set to modify your objects?
Aaron23 DeCuir
Registered User
Join date: 21 Sep 2007
Posts: 12
06-04-2008 08:26
the permissions on the objects in the package are set to allow modifications.

I tried it again this morning, still the same problem, same script errors. My alt can modify the objects once rezzed, its not a condition of the alt tho, but a condition of the objects. Since they're mod that allows it. ...... Or am i missing something.

Thanks for taking a look at it. If you'd like to meet in-world and have a look at what's going on let me know.

One correction to my first post, i'm using bb 1.1, i think i said 1.0 incorrectly above.

aaron
BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
06-04-2008 10:25
Any object thats not set to copy will only rez once when you give it to a different av.
If it's not copy, rezzing it removes it from the rezzer. So it only happens once, and tends to throw errors that may not be terribly intuitive. Basically what Andromeda said.
Aaron23 DeCuir
Registered User
Join date: 21 Sep 2007
Posts: 12
06-04-2008 13:38
Found the problem. Betlog's and Andromeda's posts above provided the necessary clue. Thanks!!

I had set the deleteOnRez to TRUE since that's what I wanted to happen. And I had the permissions set to no copy as well. So as the items are rezzed, they are removed from the container (no copy) and later it goes back and tries to delete them each individually and finds, individually, that each is not there and throws an error.

I changed the setting of deleteOnRez back to FALSE and the script errors are gone. Since the objects are no copy they're gone once they're rezzed. Which is what I had in mind. If there's a better way of achieving this let me know.

Thanks for the help!
aaron
Cabans Bosshart
Registered User
Join date: 17 Dec 2006
Posts: 1
07-08-2008 10:09
I had trouble with CLEANs and several rezzers in the same sim, so he added in the script COMPONENT an "if" on the principle of listener:

if (llGetOwnerKey (KID) == llGetOwner ()) ()

I hope it will be helpful for someone :)
BETLOG Hax
Geek
Join date: 22 May 2007
Posts: 91
07-09-2008 02:37
From: Cabans Bosshart
if (llGetOwnerKey (KID) == llGetOwner ()) ()

Yes, there are some flirly glaring omissions of stuff in BB. I modded 1.9 some time ago and recently noticed that a lot of what i take for granted in my version is absent in the later version.
I was considering adding a few of my old alterations to 1.10 but i dont want to do that if
a) Newfie didnt like them when i posted them back in 1.9 and has no intent of merging any
b) If there is a new revision due out soon... if so I'll hold off till then... is there Newfie?
ArchTx Edo
Mystic/Artist/Architect
Join date: 13 Feb 2005
Posts: 1,993
10-03-2008 10:59
EDIT: Sorry, for the double post, but I thought this information needed to be part of this thread.

I just saw a discussion on the SLExchange Forum regarding objects failing to rezz from the rezzer box when trying to rezz in a new location/sim. I'm speculating that this could be that the SL database was slow to respond and/or momentarily lost some objects that had to be rezzed.

I assume when one tries to rezz an object, the server from that sim quiries the database for the information on that object, if the server does not already have that information in its memory. If the database is slow or has trouble finding the item, you may get the "object missing from database" error.

Some people complained of objects going missing from the contents of the rezzer box after the first rezz. The only time I have had objects fail to rezz a second time for a customer is when I had a script in an object or the object it self with no copy permissions.

If you use Builder's Buddy it has the option of setting the rezzer box so it can only be used only once. A bad choice in my opinion given the number of times SL messed up.

I have not experienced the "object missing from database" error, but that gives me a hint regarding an experience I have had. Occasionally I have seen a rezzer box pause after rezzing some of its contents, then rezz the rest of them after the pause. My guess is that this is the database being slow to find and rezz some objects. This usually happens on the first attempt to use a rezzer box that has not been used in a while. The rezzer boxes seem to work fine on second or later attempts. So its kind of like once the sim has the database information refreshed, then it will work fine.

I have had similar problems with rezzer boxes, where items rezz but stick at the box location instead of moving into position. This is almost always on the first attempt to rezz. And usually works fine on the second or later attempt. I'm guessing here that the data base is having trouble finding the rezzer script in the rezzed object that tells it where to move to. Once the sim has more time to find the script in the database and load it into the sim server, then the rezzer works fine. I have been seeing this problem more and more frequently in SL. A possible sign of the servers having trouble keeping up with the load.

For the longest time I was trying to figure out what I had done wrong. Now I'm beginnning to think its SL that is acting buggy in these instances.

I'd appreciate hearing any other opinions on what causes these problems.
_____________________

VRchitecture Model Homes at http://slurl.com/secondlife/Shona/60/220/30
http://www.slexchange.com/modules.php?name=Marketplace&MerchantID=2240
http://shop.onrez.com/Archtx_Edo
Nika Talaj
now you see her ...
Join date: 2 Jan 2007
Posts: 5,449
10-03-2008 11:36
From: Cabans Bosshart
I had trouble with CLEANs and several rezzers in the same sim, so he added in the script COMPONENT an "if" on the principle of listener:

if (llGetOwnerKey (KID) == llGetOwner ()) ()
I ran into this last night :(

Tried to get around it by using the Channel command, at which point I discovered that the script does not update the component scripts when you issue "channel", only on rez. I was going to fix this this morning, but thought I'd ask here if there's already a semi-official patch for this.

Would it be useful to start a blog where people could post "unofficial" patches for each version of Builder's Buddy? Or, has that been done already? I could start one on Wordpress if folks wanted. I'm sure there are a lot of useful patches in this thread, but it seems like a lot of effort for each user to sort through the entire thread and figure out which still apply in 1.10.
.
Andromeda Quonset
Registered User
Join date: 20 May 2006
Posts: 46
10-03-2008 13:02
Some interesting new messages here, since the last time I checked on messages (and the forum doesn't seem to tell me there are new messages all the time).

1. I am still working on the changes I had started working on last May. I had to postpone working on the changes until Mono came out, as I was running into some issues over the size of the script.

2. I have read about other people's rezzers being slow to rez, or not wanting to rez anything, or just parts of a build missing. From what I have read, these have mostly been using rezzers that are sold commercially in SL, rather than using Builder's Buddy. I haven't lost anything which I have stored in Builder's Buddy. I do think that most of the problems have been due to problems on the asset servers.

I can think of 2 features which might be useful for these problems:

A. For limited builds, that there be some way of "counting" how many times a given product has been rezzed, so that a set number can be rezzed, which can be set by the person packing the build.

B. Sending rezzing info, perhaps error messages, back to the packer, so that the packer knows that a customer complaint RE: missing items is legitimate.

3. I hadn't considered it helpful to be able to change the channel of something that has already been deployed. I'm sure this could be added to the BB code, however, I am a little concerned that if there are 2 builds out in the same sim, and they are both on the same channel, that if you change the channel of one existing build, you may end up changing the channel of both existing builds. But I see no harm in having an abilty to change the channel of a build that is already out. It will require changes to both the component, as well as the base script, to accomplish.

I have had another idea with regards to channel numbers, and trying to keep track of all the channels I am using within 1 sim: I am thinking that the base unit, when it gets rezzed, that whatever channel is the default channel, or if the channel gets changed, that the base unit send out a message on said channel, and if there are any other base units (or maybe even component units that are still active but lack a base unit?), that they respond that they are already using the channel. Therefore, the base code doesn't function until the channel gets changed to one that doesn't have any activity. This may sound complicated, but I think it is fairly easy to implement.

Any changes I make, I will submit to Newfie. I wouldn't want to do anything against his policy. It's bad enough the way I seem to mangle up his code :)
Charlene Siemens
Registered User
Join date: 20 Jul 2008
Posts: 1
10-23-2008 06:23
Hi - I'd like to be able to use BB to show examples of my builds to people. However, at the moment, the land is build restricted to Group members only.

I was wondering if anybody has modded BB so that non-group members can view their builds on land that is build-restricted like this, maybe with just the Build and Clean options available? And maybe included an auto Die command to remove the prims either on a timer or when the person has left the parcel?

If you can help me, please feel free to contact me in-world or reply here.
thanks
ArchTx Edo
Mystic/Artist/Architect
Join date: 13 Feb 2005
Posts: 1,993
11-29-2008 16:58
From: Charlene Siemens
Hi - I'd like to be able to use BB to show examples of my builds to people. However, at the moment, the land is build restricted to Group members only.

I was wondering if anybody has modded BB so that non-group members can view their builds on land that is build-restricted like this, maybe with just the Build and Clean options available? And maybe included an auto Die command to remove the prims either on a timer or when the person has left the parcel?

If you can help me, please feel free to contact me in-world or reply here.
thanks


Sorry for the slow response.

I did what you described using an earlier version of BB. The one that responds to chat commands. I set up a button at each vendor box, the customer pushes the button and it says the "build" command on a channel assigned for that product. The rezzer box for that product listens on that channel and rezzes the model home. You can see this in action at my store in Shona, See my sig for an SLURL.
_____________________

VRchitecture Model Homes at http://slurl.com/secondlife/Shona/60/220/30
http://www.slexchange.com/modules.php?name=Marketplace&MerchantID=2240
http://shop.onrez.com/Archtx_Edo
Ruthven Willenov
Darkness in your light
Join date: 16 Jan 2008
Posts: 965
11-29-2008 21:40
From: Andromeda Quonset


I have had another idea with regards to channel numbers, and trying to keep track of all the channels I am using within 1 sim: I am thinking that the base unit, when it gets rezzed, that whatever channel is the default channel, or if the channel gets changed, that the base unit send out a message on said channel, and if there are any other base units (or maybe even component units that are still active but lack a base unit?), that they respond that they are already using the channel. Therefore, the base code doesn't function until the channel gets changed to one that doesn't have any activity. This may sound complicated, but I think it is fairly easy to implement.

Any changes I make, I will submit to Newfie. I wouldn't want to do anything against his policy. It's bad enough the way I seem to mangle up his code :)



why not us an initial channel for when first setting up, and then after packing, send a new random channel number thru the rez param
_____________________
Dark Heart Emporium

http://www.xstreetsl.com/modules.php?name=Marketplace&MerchantID=133020

want more layers for tattoos, specifically for the head? vote here
http://jira.secondlife.com/browse/VWR-1449?

llDetectedCollision* Functions similar to touch
http://jira.secondlife.com/browse/SVC-3369
1 2 3 4 5 6 7