jueves, 11 de noviembre de 2010

Mature woman Skin

After my - highly amusing to some, highly frustrating to others - encounter with Miss/Mr Prokofy Neva yesterday, I am in dying need for positive things. Proof that there are residents that don’t just talk/troll, but that are doing constructive things that benefit the whole Second Life community rather than an old hag’s ego. Was I lucky, as I found out about Brazen Women’s ‘Mature Woman Skins’: “The Classic Lines skins were created from custom modifications to Eloh Eliot’s open source skin files. This line was designed to provide a range of ages for women, in a variety of skin tones, make-up colours, hair colours, and pubic hair styles.”
Mature Woman Skins Photoshop Templates
See, drawing wrinkles on any texture isn’t that easy as it seems! ;)
Beebo Brink, the creator of these ‘Mature Woman Skins’ stays loyal to Miss Eloh Eliot request to keep ‘derivatives’ of her Photoshop skin templates open for all to access & mod. Besides the ‘Mature Classic Line’ being available for purchase on OnRez and in-world, you can also find Beebo’s Photoshop files for your own further ‘modding’ pleasures at brazenwomen.com.
The Classic Lines Photoshop template contains:
  1. Age Ranges
    Classic Lines I - The Skin has a hint of lines and creases on the face. / Classic Lines II - Deepens those lines for a slightly older woman. / Classic Lines III - A face of laugh lines and wrinkles, with salt-and-pepper eyebrows, and a body that is not as trim as her younger counterparts.
  2. Make-up Options
    Basic Skin Pack / Lightly Skin Pack / Blue Ice Skin Pack / Smoke Skin Pack
  3. Hair Colour Options
    Each Classic Lines skin pack includes 4 hair colours (black, brown, red, blond), in 2 pubic hair choices (natural & shaved) for a total of 8 skins. Classic Lines III skin pack also includes the salt & pepper hair color in natural and shaved versions.
Remember, these ‘free full perm skin files’ are NOT supplied in Photoshop format so you could import them in Second Life & resell them. They are donated to the community so you could create your own skins, based upon them and with proper attribution to Miss Eloh Eliot & Beebo Brink!

‘Open’ Second Life Skin Resources

Resources for the Mature Woman Skin Photoshop Templates:
Classic Lines Skins overview page at brazenwoman.com / Pale Skin Zip File / Tan Skin Zip File.

martes, 9 de noviembre de 2010

Basic Avatar Textures

Skinning an avatar involves a collection of 2D textures that are applied to the base avatar's meshes in very specific ways. They're layered onto the avatar in a specific order. See the graphic below. The lower layers are partially or fully covered by the ones above them.
Ruth, the original avatar, is made entirely of base avatar components. Fortunately for us, we don't have to look like Ruth.
To make skin or clothing with your name as creator, you must create a new item of the appropriate type. You can right-click in inventory and create new clothing or body parts. To edit one, wear it then right click and choose edit.
There's six templates for avatar skinning: head, chest and arms, hips and legs, eyes, hair, and skirt. The official templates are here. I recommend you start with both Robin's and Chip's.
There's only one arm and one foot on the templates. Both arms are textured to appear identical, the same is true of the feet.
Clothing and skin textures (except for eye textures) are shrunk to 512x512 pixels when displayed. Avoid uploading larger textures for these uses - you and your graphics editor will do a better job shrinking the texture.
Seeing odd colored edges on some of your textures? Try blurring the colors over the outlines - color outside the lines. If you get an odd line or plus sign on the back of the head, try pulling the mouth texture further inside the outlines.

Tools

The Second Life Wiki keeps a list of tools.
You'll need a 2D graphics editor that handles layers. Most people seem to use Photoshop or the freely available GIMP.
To save money on downloads, there's tools like AvPainter or the freely available SL Clothes Previewer. The Aditi test grid can also be used to test skinning freely, or you could run a personal sim.

Skin Layer

A skin requires three textures, one each based from the head, the chest and arms, and the hips and legs templates. To create a new skin, first make a new skin item in inventory. Wear the skin, choose Edit. Add your textures to the three boxes confusingly named Head Tattoos, Upper Tattoos, and Lower Tattoos.
Transparency on textures applied to the skin layer allows the default avatar skin to show. Most skin textures do leave a small corner on the upper right of the head texture transparent - this is for the default eyelashes. If you fill that area in with solid colors, the default eyelashes will look like a solid colored block.
Eloh Eliot has released several skins as templates. Natalia has a skin making tutorial here 1 2

Tattoo Layer

The tattoo layer was introduced with the Viewer 2 client. Older clients and those based off of an earlier version of the viewer may not allow you to wear a tattoo layer.
A tattoo requires three textures, same as a skin. The Tattoo section of Appearance mode can be found in the Clothes section of the interface. When making something for the tattoo layer that doesn't cover all three sections of the avatar body, use transparent textures or "none" for the unused areas. Transparency on a texture applied to the tattoo layer allows the skin layer to show through. The tattoo layer can be colored inworld while being edited.
Besides tattoos, these are popular for facial and body hair, and makeup.

Clothing Layers

Clothing layers are worn on top of tattoo and skin layers. Transparency on textures applied to clothing layers allows lower layers (clothing, tattoo, and skin) to show. Clothing layers (other than the jacket layer) are made of a single texture. The jacket layer is made of two textures. Applying textures involves wearing the clothing item and adding the texture to the box(es) in the interface.
Skirts are another mesh with a texture applied. There's a number of sliders that control the shape of the mesh. When you wear a skirt you can apply a texture the same way as with other clothing.
Shoes, shirts and pants have sliders that change the shape of the basic avatar mesh. This lets you create shoe shapes that have blunt or pointed toes, and flared sleeves or bell bottomed pants.
There's dozens of clothing tutorials available, but here's two clothing tutorials I like from Natalia: Creating clothes with the GIMP, and with Photoshop.

Eyes Layer

To use a texture, go into Appearance mode, choose Eyes, place your texture into the Applied Texture box, and save. The texture is applied to both eyes.
When creating eye textures, rotate the final result 90 degrees counterclockwise - SL automatically rotates textures 90 degrees clockwise on eyes.
Unlike other avatar skinning textures, eye textures are adjusted to be 256x256 pixels.
Here's some tutorials showing different methods of making eye textures. Kris Costa's.Adam Dorman'sN-sane Art's
To make different colored eyes, attach an appropriately textured prim over one eye. You can use prims over eyes to create "glowing" eyes with fullbright or glow.

Default Hair

Default hair is a combination of a slider-deformable mesh and a texture. It is very rarely seen, most people prefer to be bald or use prim hair. Some skin textures have (usually very short) hair drawn on them.
If you're going to wear prim hair, or just like the look of a shiny scalp, you'll want to wear a "bald" base avatar hair. Create a new Hair body part in your inventory. Wear it. Open the Appearance menu, go to Hair. Set the texture to a transparent texture (there is one in your Library.) Save, and rename the Hair to "Bald" in your inventory.

lunes, 1 de noviembre de 2010

Starlight

Starlight (Hyades)

Current Skins

Starlight 

1024x1024 Raster format, female (face, upper, lower). (Please remember to resize to 512x512 before uploading!)

PSD files (Photoshop CS) 
Starlight Face PSD (22.4 MB) Starlight Upper PSD (9.0 MB) Starlight Lower PSD (8.5 MB) 
XCF files (GIMP 2.4.6) Starlight Face XCF (12.3 MB)Starlight Upper XCF (5.1 MB) Starlight Lower XCF (5.6 MB) 

AI files (Illustrator CS)

Licensed under a MIT License.

Pleiades 

pleiades

1024x1024 Raster format, female (face, upper, lower).
(Please remember to resize to 512x512 before uploading!)

PSD files (Photoshop CS)

XCF files (GIMP 2.4.6)

sábado, 2 de octubre de 2010

Rumor: Microsoft making a play for Linden Lab

If most of the horrific violence that happens in the ocean takes place unseen beneath the waves, then the same goes for the massive acquisitions that happen unseen behind boardroom doors.

Yesterday, Tateru Nino posted a rumor on her blog that several Linden Lab employees were saying that Microsoft was making a bid to purchase the company: "Funny as that might seem on the face of it, a small number of Linden Lab staff are today spreading the story that Linden Lab is now entertaining offers for sale, and that Microsoft has actually presented one."

TechEye.net seconded the rumor, noting that as the Linden Lab UK office closed down this week, an employee tweeted: "A little birdie told me that Microsoft may have silently offered to buy Linden Lab this week."

Linden Lab runs the popular virtual world Second Life, which has seen its share of troubles lately. So far, Linden Lab is neither confirming nor denying the rumor.

lunes, 9 de agosto de 2010

Bots bots bots

Bots in Second Life are third party programs used to access the server to perform and automate various tasks like camping, group joining, greeting and even copying/cloning. They are based on LibSecondLife’s code, which is Open Source, and are very lightweight since they’re text only. Unlike, those bots found in mmorpgs and other online games, bots in Second Life are allowed by Linden Labs.
Bots have many useful uses but they also have some not so good use like copying other people’s objects and textures. In this post I will list all the Second Life Bots that I know and provide a little info about them.

LibSecondLife’s Test Client (Free)

LibSecondLife’s Test Client is your most basic form of Second Life Bot. It runs in DOS mode and commands are either entered in the console or issued by an assigned Master. You can get a working copy of this program by downloading LibSecondLife’s binary.
LibSecondLifes Test Client
LibSecondLife's Test Client
LibSecondLife’s Test Client is not very user friendly since you’ll be running it in DOS mode but it does have all the commands at your disposal. It is also very lightweight and uses very little CPU process and memory. You can also log in multiple accounts with only one instance of the program.
LibSecondLife’s Test Client is not all that good because it can be used to copy other people’s objects and textures regardless of permission with its export/import and clone commands.
Update: It’s now called OpenMetaverse!

SLeek (Free)

SLeek is a Second Life text only viewer developed by Delta and it’s a lightweight Second Life client. It is very user friendly because it has a windowed interface (no DOS consoles with SLeek). You can also log in multiple accounts by opening new windows from the main window.
SLeek
SLeek
SLeek is very easy to use and the interface is very simple to master. You don’t need to have a Master avatar to control your bot. Everything can be done from the interface.
SLeek is great for camping and chatting and because its window is text only, it doesn’t use too much memory or CPU process. It also can’t be used for stealing or copying other people’s hardwork.
Unfortunately, Delta announced that SLeek will not be developed any further but the good news is that he also announced that he will be working on another project which is much better than SLeek. He has not yet disclosed any information about his new project but he said that he will announce it when it is ready for release.
« Download SLeek »

MetaBolt (Free)

MetaBolt’s window interface looks and feels very much like SLeek and like SLeek it is also a lightweight (text only) Second Life client. It allows you to log in to your account in Second Life to perform various tasks but mostly it is used for camping and chatting. Think of MetaBolt as a leaner and meaner version of SLeek.
MetaBolt is in active development and updates with new features and enhancements are released regularly. Unlike, LibSecondLife’s Test Client, you can’t use MetaBolt to steal or copy other people’s hardwork.
It is very lightweight and uses less memory than SLeek. It also doesn’t need a Master account to control the bot. The bot can be controlled through the interface. If you are looking for a FREE Second Life bot then I strongly recommend this one.

Second Messenger (Free)

Second Messenger is another cool lightweight Second Life client. It has lots of nice feature like being able to touch a Child Prim which is great for zone campers that requires you to touch a button to login and begin camping.
I didn’t explored Second Messenger that much because it was eating too much memory (at least for me it was) but you can always try it for yourself and compare it with the other lightweight clients.

AjaxLife (Free)

AjaxLife is a browser based Second Life client developed by Katharine Berry. All you have to do to use AjaxLife is visit the site (http://www.ajaxlife.net) and login once the page loads. With AjaxLife, you will be able to login to your Second Life account using an iPhone and an iPod Touch.
AjaxLife, The Browser Based SL Client
AjaxLife
AjaxLife allows you to be online and chat with people almost anywhere and without downloading or installing any other programs. If you are not on your computer and you want to login to your Second Life account then you can use AjaxLife to accomplish that. Although, I don’t know if you can camp using it. Well, you can camp on your own land, I guess.

AvaPet (Free)

I found this bot listed in SLExchange and decided to give it a try. It’s a very, very lightweight Second Life client. Almost as light as LibSecondLife’s Test Client. It has a windowed interface but you can’t use it to command your bot. Commands are sent through an assigned Master avatar just like LibSecondLife’s Test Client.
A cool feature of AvaPet is the ability to integrate it with Pandorabot. Doing this will turn your Bot into a Chat but you must have to register and create a bot first at Pandorabots.com. The process is fairly simple, if I can do it then you can absolutely do it too.
AvaPet has a good set of command available to control the bot and you can’t use it for illegal things like copying other people’s textures and objects. The export/import and clone commands are not available in AvaPet.
UPDATE: AvaPet is no longer available!
« Download AvaPet 2.5 »

OMVViewer-light (Free)

This is my current favorite text-based viewer for Second Life because it fully loads or renders avatars in-world. With the recent updates on Second Life, avatars running on text-based Second Life clients usually don’t load or render in-world and remains in cloud form the whole time they are logged in but not with OMVViewer-light. I am not a very technical person but it seems that OMVViewer-light has a cache (much like a regular viewer) where it download stuff that are needed to load or render your avatar in-world. (MetaBolt, in their latest updates, also included a feature like this but it does not always work.)
Below are some of the features supported by OMVViewer-light:
*  Chat to near by Avatars * Send and Recieve IM’s and Group IM’s * See a radar of near by Avatars * See a map with Avatar positions shows * Follow Avatars * Read profiles * Scan for near by objects, then touch, sit, pay, take, take copy etc (as allowed) * Access inventory, give inventory to Avatars * See group info, past notices * See the parcel map, access lists and dwell * Search for people, places and events * Teleport to landmarks, or specific locations * Change clothes and outfits * Read notecards
If you would like to learn more about OMVViewer-light then point your browser tohttp://omvviewer-light.byteme.org.uk/.

Thoys’ SL Bot (Not Free)

Next to LibSecondLife Test Client, this is one of the early bots I tested for Second Life. It’s not free and it cost 2,000L$ per avatar to use it. Thoys’ SL Bot also has a windowed interface but it’s only good for chatting. All commands to control the bot are sent through a Master avatar in IM.
Thoys’ SL Bot is very, very lightweight and uses very little CPU process. You can log in multiple bots with one instance of the program but you will need to pay 2,000L$ for each bot, unfortunately.
I can say that Thoys’ SL Bot is like the ultimate camping bot. It has features and commands that are specifically just for camping. You can also turn it into a Chat Bot by integrating Pandorabots with it.

PikkuBot (Not Free)

I also stumbled upon this bot in SLExchange and it’s a very pricey bot. I think it also uses the name A1 Bot and a full version bot cost 6,000L$ per avatar. Whoa!
I downloaded it and got a Free Trial but upon seeing the interface, I didn’t go any further. If I want to use a console and IM commands to my bot then I’ll just use any of the above mentioned bots instead.
I’ve read the commands available for PikkuBot and I don’t think they’re that much different from the ones available above specially the LibSecondLife’s Test Client except, I guess, that the ones above are FREE (excluding Thoys’ SL Bot).
Seriously, I will not spend 6,000L$ for it.

Actorbot

Actorbot is a bot being developed by a company called Sine Wave. Basically, it’s just another bot but what I notice about this one is that you don’t need to download anything. The bot program is hosted somewhere else and bots are created (assigned to alts) using a web based form. Calling your bots in-world is just a matter of creating a prim and placing a script in it.
Sine Waves Actorbot
Sine Wave's Actorbot
I’m not so sure if you can use this bot for money camping since it sits on its own prim already but you can use it to camp on your own land, I guess. Anyway, I don’t think this bot was designed for camping anyway. LOL!
Just like with the bots above, the Actorbot can be use as a greeter, store mannequins, performing artists, non-player characters, machinima extras, your own personal sex slave (ha ha ha) and many other things. Again, just use your imagination!
Unlike the FREE Second Life Bots mentioned above, Actorbot will cost you 5L$ per hour to use. It’s cheap but why spend when you can get the same thing for FREE? I guess if you don’t want to run your own bots in your computer then, I guess, Actorbot is worth that much but you’ll have to do some reading to make it do things!
« Visit Actorbot »

SL-Bot (Not Free)

This is another bot which I found listed at SLExchange for 0L$ but all you’ll get is a link to the bot’s website. The bot is priced at 7,000L$ for five accounts which is extremely expensive considering that it’s just a retouched version of LibSecondLife’s Test Client. How do I know? Well, the commands listed is an exact copy of the commands available in LibSecondLife’s Test Client.
 

Bot! Bot! Bot!

The bots I listed above are just the ones I know. You can use them for chatting, camping, role playing, etc. You can even use them to turn an avatar into a greeter or even an auto-group inviter. I’ve also seen some bots that act like assistants that gives out information when talked to. I’m sure you’ll find many good uses for bots. Just use your imagination!
Unfortunately, if there are good uses for bots there are also bad uses for them too. The most terrible one would be the ability to copy objects and textures of other residents regardless of permissions.
Anyway, Linden Labs have looked the other way when it comes to bots in Second Life and they have not yet issued any formal ruling about its rampant use within the virtual world so I guess there use is legal for now.
Remember, this are third party programs that will ask you your Second Life information to login. If you are not comfortable entering your account access info into another program other than Second Life then please don’t use them. If you want to try them out then I suggest that you use another account and not your main Second Life account just to be on the safe side.
I have personally tried all of them (with the exception of PikkuBot and SL-Bot because I will not throw away that kind of money for something I can get cheaper, even FREE) and I haven’t encountered any problems with them just yet but it is always better to be safe than sorry! Again, Use them only if you are willing to take the risk!

jueves, 22 de julio de 2010

Textures for games

Find out how to tile images seamlessly in this tutorial. Discover how to create tiled textures using Photoshop.
These tiling techniques can also be applied to other graphics editors.
In this tile tutorial you’ll learn how to choose a suitable texture and how to make the texture seamless.
You’ll also learn how to reduce high contrast areas in the texture. This little-discussed technique will help make your tiled texture look even more natural.

Choose a suitable texture

Choosing a suitable texture is easy enough, as there are only a couple of things you need to keep in mind.
The texture ideally should be as big as possible. This is to help reduce the number of times it needs to be tiled on
a surface.
You should also look for textures with little to no hard lines or edges. While it is possible to tile these textures, it’s much harder to make them look natural.
The texture below is an example of what to avoid.
Before you begin on making the texture seamless, make sure that its width and height are divisible by two. Crop the texture to the correct height and width if needed. The reason for doing this will be explained later.

Make the texture seamless

The example texture we will be using for this tutorial is a nice, big rocky texture which contains no hard edges or lines.
Its size is 600 by 250.
Let’s see what happens when it is tiled on a surface:
The repeating texture along with its seams can be clearly seen.
Load the image into Adobe Photoshop or a similar graphics tool. From the menu, choose Filter/Other/Offset.
Set the horizontal offset to half of the image’s width, and set the vertical offset to half of the image’s height. As the height and width are divisible by two, the image should be easy to offset to and from its original position without any difficulty.
Select for the undefined areas to wrap around. Finish applying the offset to the image. You should now be able to see the edges of the image.
Select the clone tool from the toolbar. Use this tool to smooth over the edges using other parts of the image.
Once all the edges have been smoothed out, use the offset filter to move the image back to its previous position.
The image below shows the new example texture being applied. The seams have been removed; however the pattern repetition is still evident.

Reduce areas of high contrast in the texture

Areas of high contrast in textures should be reduced as much as possible, as they help create recognizable patterns and make the tiled surface look less realistic.
Use the clone tool to replace or disperse any areas of high contrast in the texture. In our example, we have replaced the lighter area with the darker parts of the texture.
When this texture is tiled on a surface the pattern is less recognizable.
I hope you enjoyed this tiling tutorial and can now tile images seamlessly for your games. As special thanks for reading the tutorial, you can use the finished texture from this tutorial in your own projects.

sábado, 12 de junio de 2010

Rent land

Second Life Land

There are all kinds of ways to get Second Life land. In this article I will discuss some of the risks involved in renting land in Second Life, and what you can do to minimize those risks.
Whether you decide to rent Mainland or rent Estate land, be forewarned.  When you rent, you are at the mercy of the landowner.  Expect to pay enough for the landowner to make a profit, because if your landlady doesn’t make a profit, how is she going to pay her tier to the Lindens?  And if she doesn’t pay her tier, guess what happens to your land?  That’s right – you will lose it.  This is true, even if your own rent was paid on time.  I am not telling you this to scare you, but because it is important for you to understand.  You could make your own rent payments on time, and still end up losing your land. It isn’t fair, but that is the risk you take when you rent.
There are some things you can do to make sure you minimize your risk of losing your money on your Second Life land rental.  The first thing to do is find out as much as you can about whom you are paying rent to.  Does he own the land himself, or is he renting from someone else?  If it is Estate land, are you dealing with the Estate Owner directly, or through a third party?  How long has your landlord been in Second Life?  How many tenants do they have?  How much land do they own?  How long have they been renting Second Life land?  Do you know anyone who has done business with them?  Do they have referrals you can talk to?  How is tier paid, weekly, monthly, daily?  Do they accept PayPal?  Do they accept payment in game currency (Linden dollars)?
Yes, it can be a bit of a hassle to do that much research before renting land in Second Life, but it will be worth the effort in the long run.  You have much less risk if you are renting from someone who owns the land, rather than through a third party.  Think about it.  If you pay the landowner directly, there is only one layer between you and Linden Labs.  As long as your landlord pays his tier, chances are your land will still be there.  If you rent from a third party, you are now three layers away from Linden Labs.  You are now depending on your landlord to pay his rent or tier, AND the landowner to pay Linden Labs.  If something happens to your landlord, you will be at the mercy of the landowner, who may not even have been aware that your landlord was subleasing!  At the very least, get referrals.  Also, if you are renting from a third party, make an effort to contact the landowner.  If the landowner knows about the subleasing, he may be more likely to work with you if something happens to your landlord.
You may prefer to do business in Lindens, but look for someone who accepts PayPal.  Why?  Because in order to accept payment from PayPal, your landlord will have to reveal their email address.  Someone who is out to scam you or steal your money isn’t likely to reveal his or her real life identity.
Finally, especially if you are new to renting, pay the least amount of tier up front that you can.  If your landlord wants you to pay a month or two in advance, just remember that once you have paid, chances are you will never see that money again.  I have seen it happen many times where someone pays rent for a month or more, then *poof* their landlord disappears with all of the rent money.  Sad but true.
I hope this article helped you understand the risks involved in renting Second Life land, and how you can minimize those risks.
See you in world!

sábado, 1 de mayo de 2010

Mirror reflection script

// Simulates a mirror reflexion in Second Life by changing camera position on sit, i.e. reflects the image of an avatar in a mirror.
// Put script 1 (mirror) in a prim resembling a mirror and put script 2 (looking_a_mirror) in a chair or stool. Put the stool in front of the mirror. Tip: to cover the camera trick, integrate the mirror in a dressing table.

//  Script I: Mirror
//==========
// Made by Seagel Neville
// Retrieved from from Free SL Scripts on http://www.freeSLscripts.com or www.gendersquare.org/sl
// put me in a prim resembling a mirror. To cover the camera trick, do not forget to build a thin wall (i.e. a mirror with a mirror texture) behind the simulated reflexion of the avatar

default
{
    state_entry()
    {
        llSay(0, "Hello, Avatar!");
    }


    touch_start(integer total_number)
    {
        llSay(0, "Touched.");
    }
}


///  Script II: Looking_a_mirror
//====================


// Made by Seagel Neville
// Retrieved from from Free SL Scripts on http://www.freeSLscripts.com or www.gendersquare.org/sl




string DISPLAY_TEXT = "Sit";
string ANIMATION;
string GESTURE;
integer is_sitting;


list GESTURE_BUTTON =
[
"point_you", "point_me", "peace",
"nyanya", "toungue out", "blowkiss",
"wink#1", "wink#2", "embarassed",
"laugh", "surprise", "cry"
];


list GESTURE_LIST =
[
"point_you", "point_me", "peace",
"nyanya", "express_tongue_out", "blowkiss",
"wink_hollywood", "express_wink", "express_embarrased",
"express_laugh", "express_surprise", "express_cry"
];


opendialog_gestures()
{
    llDialog(llAvatarOnSitTarget(), "What do you want to do in front of this mirror?", GESTURE_BUTTON, 696543);
}


default
{
    state_entry()
    {
        llListen(696543, "", NULL_KEY, "");
        ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, 0);
        is_sitting = 0;
        llSitTarget(<-0.63, 0, 0>,llEuler2Rot(<180, -90, 0>*DEG_TO_RAD));
        llSetText(DISPLAY_TEXT,<1,1,1>,1);
        llSetCameraEyeOffset(<-1, 0, 0>);
        llSetCameraAtOffset(<-5, 0, -100>);
    }
    
    changed(integer change)
    {
        if(change & CHANGED_LINK)
        {
            key av = llAvatarOnSitTarget();
            
            if(av != NULL_KEY)
            {
                llRequestPermissions(av, PERMISSION_TRIGGER_ANIMATION);
            }
            else
            {
                if((llGetPermissions() & PERMISSION_TRIGGER_ANIMATION) && is_sitting)
                {
                    llMessageLinked(LINK_SET, 0, "standing", NULL_KEY);
                    is_sitting = 0;
                    llStopAnimation(ANIMATION);
                    llSetText(DISPLAY_TEXT,<1,1,1>,1);
                    llUnSit(av);
                    llOwnerSay("Press \"Ignore\" button if you want to remove the menus.");
                }
            }
        }         
        ANIMATION = llGetInventoryName(INVENTORY_ANIMATION, 0);
    }
    listen(integer channel, string name, key id, string message)
    {
    if (llListFindList(GESTURE_BUTTON, [message]) != -1)  // verify dialog choice
    {
        opendialog_gestures();   // The dialog box keeps showing until you choose "Ignore".
        GESTURE = llList2String(GESTURE_LIST, llListFindList(GESTURE_BUTTON, [message]));
        llStartAnimation(GESTURE);
        }
    }
    run_time_permissions(integer perm)
    {
        if(perm & PERMISSION_TRIGGER_ANIMATION)
        {
            llMessageLinked(LINK_SET, 0, "sitting", NULL_KEY);
            is_sitting = 1;
            llStopAnimation("sit_generic");
            llStopAnimation("sit");
            llStartAnimation(ANIMATION);
            llSetText("",<1,1,1>,1);
            opendialog_gestures();
        }
    }
    on_rez(integer start_param)
    {
        llResetScript();
    }