Monday, July 30, 2007

Building a wall with a door


You can use the door described at previous point and one of the wall described in the simple room, then using various cut and pasting you can "make a hole" where the door is.

making a hole means that you have to restrict and duplicate the red wall (for instance) to be at least a 3 part structure:

The section over the door (.7x10x.2) 0,270,0
The section on the left of the door (3.5x1.5x.2) 0,270,0
The section on the right of the door (3.5x6.4x.2) 0,270,0 (You can hollow this 60 to have extra window).

You can link together the pieces of the wall but NOT the door. (UNLUCKILY)

A very simple door

Build a door as following:

cube, .2x4.25x3.33, (cut: .375-.875) apply a texture of your choice (maybe a real door?)
put following script inside:


// improved door script by Ezhar Fairlight
// features: automatic closing, workaround for rotating out of position,
// doesn't mess up when moved, adjustable direction (inwards/outwards)
// updated for SL 1.1 damped rotations, small bugfix

// ********** USER SETTINGS HERE **********
float TIMER_CLOSE = 5.0; // automatically close the door after this many seconds,
// set to 0 to disable

integer DIRECTION = -1; // direction door opens in. Either 1 (outwards) or -1 (inwards);
// ********** END OF USER SETTINGS **********



integer DOOR_OPEN = 1;
integer DOOR_CLOSE = 2;

vector mypos; // door position (objects move a tiny amount
// away from their position each time they are rotated,
// thus we need to workaround this by resetting
// the position after rotating)

door(integer what) {
rotation rot;
rotation delta;

llSetTimerEvent(0); // kill any running timers

if ( what == DOOR_OPEN ) {
//llTriggerSound("Door open", 0.8);

rot = llGetRot();
delta = llEuler2Rot(<0,>);
rot = delta * rot; // rotate by -45 degree
llSetRot(rot);

} else if ( what == DOOR_CLOSE) {
rot = llGetRot();
delta = llEuler2Rot(<0,>); // rotate by 45 degree
rot = delta * rot;
llSetRot(rot);

//llTriggerSound("Door close", 0.8);
}
}


default { // is closed
on_rez(integer start_param) { // reset, so we store the new position
llResetScript();
}

state_entry() {
mypos = llGetPos(); // remember where we're supposed to be
}

touch_start(integer total_number) {
door(DOOR_OPEN);

state is_open;
}

moving_end() { // done moving me around, store new position
mypos = llGetPos();
}
}

state is_open {
state_entry() {
llSetTimerEvent(TIMER_CLOSE);
}

touch_start(integer num) {
door(DOOR_CLOSE);

llSetPos(mypos); // workaround for tiny movements during rotation

state default;
}

timer() { // it's time to close the door
door(DOOR_CLOSE);

llSetPos(mypos); // workaround for tiny movements during rotation

state default;
}

moving_start() { // close door when door is being moved
door(DOOR_CLOSE);

state default;
}
}



The door should be working

Sunday, July 29, 2007

Building a super simple house



Building a simple cell room is not that trivial as it can seem at first sight.
To be sure that everything is correctly aligned you cannot rely on numbers or your ability to move the mouse correctly, you must use some special tricks.

Here a simple recipe:

1\ Rez a cube 10x10x.2 as floor (color it in blue). Blue means it is aligned on the z coordinate
2\ Rez a cube 4x10x.2 as wall (color it in red), y rotation must be 270 because it is aligned on the X coordinate, and it can be hollowed naturally, hollow it to 60%
3\ Rez or copy a cube 4x10x.2 as wall (color it in green), X and Z rotation to 270, so it is aligned on the y coordinate, hollow it to 60%
4\ set ruler mode to World (IMPORTANT)
5\ set grid interval to half the thickness: .1

Now position the blue floor and be sure it is aligned on integer coordinates.
Align on it the 2 red walls using the grid.
Align the 2 green walls using the grid.
Duplicate blue floor to have ceiling.
You should have produced a nice simple room with empty windows.

Link everything and name properly...
This room has to be properly completed.
==> missing a side with a door
==> missing actual windows
==> missing textures

Thursday, July 26, 2007

Sitting on a pillow....


Can be tremendously difficult for newbies.. :)
I wanted to sit down "a la japonese"....

Follow these instructions:

1. create a sphere .737,.923,.436 (or whatever fits you!), the only thing is that it should not be actually spheric. Apply a texture of your choice.

2. add the following script:


vector offset = <0,0,0.8>; // might to adjust z this depending on your original dimensions rotation rot = <0,0,0,0>;
default {
state_entry() {
llSitTarget(offset,rot);
llSetText("",<0,0,0>,0);
llSetSitText("");
}
changed(integer change) {
if (change & CHANGED_LINK) {
if (llAvatarOnSitTarget() != NULL_KEY) {
llRequestPermissions(llAvatarOnSitTarget(), PERMISSION_TRIGGER_ANIMATION);
llStopAnimation("sit");
llStartAnimation("sit_ground");
}
}
}
}



Et voilĂ  you have a working sitting pillow. :)

Wednesday, July 25, 2007

Tip Jar



Create 2 torus with following properties:

1. .5,.6,.6, glass, color blue, 50% transparent
2. .05,.4,.4, glass, color blue, 20% transparent

Put one on the top of the other, link them and put following script:





integer totaldonated;
string owner;

default
{
state_entry()
{
owner = llKey2Name(llGetOwner());
llSetText( owner + "'s donation box.\nAll donations gratefully accepted.\n$0 donated so far.\nRight-click on me and select Pay to donate.",<1,1,1>,1);
}

on_rez( integer sparam )
{
llResetScript();
}

money(key id, integer amount)
{
totaldonated+=amount;
llSetText( owner + "'s donation box.\nAll donations gratefully accepted.\n$" + (string)totaldonated + " donated so far.\nRight-click on me and select Pay to donate.",<1,1,1>,1);
llInstantMessage(id,"Thanks very much for the tip!");
llInstantMessage(llGetOwner(),llKey2Name(id)+" donated $" + (string)amount);
}

}




You have your tipjar :)

Tuesday, July 24, 2007

Built my first vases... :)

Observing hos vases have been made by others, I was able to build up my first Egyptian like vase.
You can build by yourself using the following 3 prims:

- Torus dimensions: .632,1.19,1.19, Hollow: 94.9, Profile cut 0-0.5,
- Sphere dim: 1.19,1.19,1.19
- Another torus, dim: .516,1.19,1.19, Hollow: 94.9, Profile cut 0-0,5,

and just put one on the top of the other. The result can be something similar to this:
















On the left you can se a vase for trees, which is composed by
2 prims:

- a sphere 1,2,2 with dimple 0-0.7, and
- a cylinder 1.6,1.6,.0.1, with z rotation 30

I was so proud of these simple amatorial tasks.

!!

Office in a box v1.0


I've finished a version 1.0 of my office in a box. As I declared in a previous post.












To build it up it is very simple, just put the box on the floor providing the red surface is where you want to have the center of the table in the direction of the whiteboard, and just click it, and specify on the dialog "build":



You will see the box opening up with the office, and finally the office layered out :)

















Mainly you see a table, 6 chairs, 1 whiteboard, a notecard giver, 6 notebook and two screens for powerpoint like displaying. Everything is made in such a form that it doesnt'consume much prims and is usable. See next posts for details on various objects.

If you need them, you can contact me in SL (salahzar stenvaag).

here is the content of the notecard giver:

This is a very simple small office package made of the
following:

OF10 1 table (2 prims)
OF11 6 chairs + positions (to make it easy to sit down) (12 prims)
OF12 1 whiteboard V050 able to display notecards with paging (31 prims), able to be interactively changed by people present
OF13 1 notecard giver for having people knowing what's going on
OF14 1 powerpoint 64 slide reader, to avoid consuming L$ put 64 slides in one texture and the reader will loop over them (u just spend 10L$ for one transfer)
OF15 1 powerpoint 16 slide reader (for higher quality slides)
OF16 6 notebooks for each participant where they can put their ideas or just asking for the floor

In total we are talking of 54 prims which is quite low impact, and stays
comfortably on a 512 land.

OF10 1 table. Table is not large so to allow for camera viewing from people sit on the wall. Only 2 prims. Surface is light color to be able to see notebooks.
OF11 6 chairs with sit balls. This makes easy for people to sit down and avoids losing a lot of time for teaching them how to do so ;)
OF12 whiteboard V050, uses the same "notecard"/say approach of the notebooks, see after. Here there will be something that everybody must see very clearly. Accepts notecards, just drop them. Click on the board to choose which noteboard (warning notecard must have short names!). Evry body can comment using /line comment
OF13 notecard giver is fundamental for having people Agenda or other pieces of information. You can copy it to have multiple pieces of information.
OF14 To save money, have all your powerpoint presentation put in a 8x8 frame (512x512 points).
OF15 64 images in 512x512 gives bad quality, so I provided also a 4x4 version to have much quality ready handout.
OF16 notebooks works in a similar way as the whiteboard. Thanks peace furst for pointing me this solutions instead of a whiteboard. However a whiteboard made in this way is quite inconvenient, and has the big limitation of 256 chars, which are also difficult to align properly. I'd propose this mixed approach so that everybody can present themselves and possibly ask for the floor or presenting data.


Monday, July 16, 2007

Meeting in a box... starting place...

I started from: Peace Furst Conference Room, Haemosu (216, 180, 120), a really nice micro office developed from Peace Furst

No Profit experiences in SL


See this link: http://beth.typepad.com/beths_blog/2007/06/macarthur-fou-1.html for info about Sl and philantrophy.

I also have been in some meetings of techsoup.org (http://www.techsoup.org/) which are giving space for noprofit organizations needing help in using Second Life.

Sunday, July 15, 2007

Starting a blog for 2nd life experience

Just wanted to share something after 2 months of 2nd life.

What is good in 2ndlife:

- express yourself
- build things
- script
- relationships

What is "bad":

- $$$ and L$ is currently too stressed
- too much commerce...

Anyway my official goal for being in 2nd life are:
- experimenting
- having fun (something I forgot during latest 20 years!)
- providing tools for no profit organizations to have decision meetings

So we can tell that projects can be as follow:
Meeting Tools: Meeting Room in a box, that can be rezzed even in a sandbox using just a bunch of prims.

Content:
1\ a platform 32x32 rezzed at 100 meters 1 prim
2\ a table (2 prims) + 6 chairs with 6 position balls (total 14 prims)
3\ notebook for each person using paged llSetText able to share contribute notes 6 prim
4\ One viewer for a 8x8 textures (power point) ==> saving L$ for upload (3 prim)
5\ 2 boards for rapid writing (62 prim)
6\ some trees around (10 prims?)
Total would be around 96 prims.