Pages

Wednesday, January 23, 2013

"I'm Bored"

Every once in a while, I come across this.  Last night, I was sitting with some friends and some newcomers at Caledon Oxbridge University.  One of the newbies, call her "Susie", was restless.  She'd flit off for a few minutes, then come back and rejoin the group.  And then after another few minutes, she'd say, "I'm bored" and flit off again.

This, plus other behaviors, made all of us pretty sure she was quite young.  Possibly even too young to be using Second Life legally.  "I'm booooored" is a little kid's whine.

There are so many things to see and do in Second Life that it takes real effort to be bored.  Or a total lack of imagination, or perhaps a lack of initiative.

"I'm bored" is a demand for attention.  "Pay attention to ME!  Entertain me.  I'm supposed to be having fun and you're supposed to be providing it."

I refuse to be used in this fashion, or rise to the bait.  But Susie....and anyone else who's bored out there...here are some things you might look into to change that.

  • Explore.  You can use Search to find places that intrigue you or that match your interests, or you can visit blogs like Inara Pey's that showcase many beautiful places.  Or you can just open the map, find a cluster of green dots, and teleport at random.  You never know what you might find with this method.
  • Build, or learn to build.  I can while away a lot of hours tossing prims around and coming up with a new design for a house, or furniture.  Find some tutorials, learn some new skills.  You can venture out of Second Life and learn your way around GIMP or Blender or Photoshop.  Figure out how to paint a skin, or design a dress.  Learn LSL and create a script to do something.  The possibilities are endless.
  • Travel by vehicle.  Get an airplane, or a helicopter or balloon.  Get a sailboat.  See how far you can travel, and what you can find along the way.
  • Take pictures.  When you find a pretty place, take a picture of it!  Then learn how to take better pictures, using both the in world tools and post-processing in GIMP or Photoshop.
  • Take a class.  Many places offer classes in both Real Life and Second Life topics.  Try NCI for starters.  Search will turn up many others.
  • Go shopping.  You can do this even if you have no money.  Visit some of the many freebie stores.  Join a Midnight Mania or Lucky Chairs group.
  • Hunt.  This combines both shopping and exploring.  A Google search will give you information about many hunts in Second Life.
  • Roleplay.  Find a roleplay region, create a character, join the group, and have fun with the collaborative storytelling that is roleplay.
  • Play a Game.  There are all sorts of games in SL.  Board games like "Greedy Greedy".  Sports like the "En Garde" fencing game.  Golf.  Tennis.  Fishing.  Games of chance skill like Zyngo.
  • Visit an Amusement Park.  There are quite a few, from the venerable Prim Hearts to some frighteningly exact copies of Disney theme parks.
  • Meet people.  This is easy to do, just go to crowded places and talk to people.  Just don't say, "I'm bored", OK?

Tuesday, January 22, 2013

Body Swapping – Danger Ahead



I have talked here before about alts – additional Second Life accounts that you can create and use. As we know, alts have many legitimate uses, but they can also be used for harmful purposes.

Today, I want to talk about the mirror image of the alt: the avatar that has more than one Real Life operator.  Is this confusing?  Let’s say I am married (which I am, in fact) and that I let my husband log into Second Life using my Lindal Kidd account (which I most emphatically do NOT!)  This would be one example of what I am going to call “body swapping”.  (I've blogged about this before too, but I think it bears repeating.)

Sometimes we see a question on the forums like: “Can I transfer or sell my account to someone else?”  This would be another example of body swapping.  Or, a teacher might create a Second Life avatar and let her students take turns with it.

Sometimes, partners in Second Life trust each other enough to share the passwords for their accounts.  Whether or not this trust is justified isn’t the issue just yet (but read on), but this is another example of body swapping.

And sometimes, people may swap bodies with near-strangers, just for the thrill of it.  There is a “Body Swappers” group in Second Life for people who choose to engage in this behavior.  The group publishes a long manifesto which purports to show that what they are doing is within the Second Life Terms of Service, but in my opinion its logic is flawed, and body swapping is not within the ToS.  Even if it was, body swapping is a dangerous practice, both to you and to those around you.

Dangerous?  How can a cartoon character on a monitor screen be dangerous, regardless of who’s at the controls?  Well, let’s just talk about that, shall we?

Terms of Service.  The Second Life ToS prohibits (or, depending on how you read the language, strongly cautions against) letting anyone else have access to your account.

(From the Second Life Terms of Service, section 3.2)
You are responsible for maintaining the confidentiality of your password and are responsible for any harm resulting from your disclosure, or authorization of the disclosure of your password or from any person's use of your password to gain access to your Account or Account Name. At no time should you respond to an online request for a password other than in connection with the log-on process to the Service. Your disclosure of your password to any other person is at your own risk.  

What this says is that you are responsible for what is done with your avatar, no matter what.  If another person does something bad while using your account, the consequences will fall on YOU.  Those consequences could range from offended or enraged friends, to permanent banning for ToS violations like copybotting, to criminal prosecution for theft or extortion or certain other matters.

“Oh, but that won’t happen to me.  LL doesn’t enforce that crap anyway.”  They do.  But let’s assume that you are right and LL never finds out, or doesn’t care.  There are still other dangers to worry about.

When you signed up for Second Life, you provided an email address.  You also gave Linden Lab a “secret question and answer” to use for security purposes.  In order to give someone full access to your account (if you were to sell or transfer it, for example) you would have to give them this information, as well as your account password.

Do you really want to give someone else access to your email account?  Even if you created a Gmail or Hotmail account just for SL, it may be possible for the other person to backtrack to your main email account.  What about passwords…not only your SL password, but passwords for your email?  Did you use unique passwords for everything?  Or did you, as a lot of us do, use the same password you use for everything else on the Web?  After all, keeping track of so many different passwords is such a pain, isn’t it?  And that “secret question”…did you pick the same one, and the same answer, that you always do?  You did?  Oh dear, you have just made it really easy to steal your Real Life identity, not just your Second Life one.

If your account has Payment Information on File you have given LL a credit card number or a verified PayPal account.  Anyone else using your account has access to this source of funds.  They can buy $L…how would you like to see a $5,000.00 USD charge on your credit card from “Linden Research, Inc.”?

By giving someone access to your account, you are risking not only getting banned -- but identity theft, monetary loss, and even possible criminal prosecution.

There’s another aspect to this, beyond the above hazards.  What is the effect on others of there being someone else behind the controls of the avatar they know as “you”?

I have experienced this on a couple of occasions when I knew that someone else was using a friend’s avatar.  For example, one friend once told me “I want to introduce my wife to Second Life.  I’m going to let her swap chairs with me and use my avatar.  Will you show her around?”  Even when I knew what was going on, this gave me a creepy feeling.  Suddenly my friend was…someone else, a stranger.

How much worse, then, when one’s friend suddenly seems…different?  She looks the same, but her attitude and her manner of speaking have changed.  When do you begin to suspect that the person behind the avatar isn’t the same as the one you know?  And if you do suspect, how on earth can you find out if it’s true?  And even if you ask, and she answers…can you believe the answer?  Doubt is corrosive. 

This is very similar to encountering a case of Multiple Personality Disorder, but in a way it’s even worse – because the multiple personalities really ARE multiple people, with unique bodies, minds, and pasts.  This is a very good way to alienate your friends.

Please, please – don’t use alts to play head games.  And don’t, don’t, DON’T give your account information to anyone else, ever!  You, there – yes, you with the “remember my password” box checked on your login screen.  Stop that at once!

FLASH! Another Bargain in Boots

My favorite boots in Second Life are made by Bax Coen.  The only reason I don't have more of them is that they cost so darn much!

A couple of days ago, I got word that Bax's "Foxy" ankle boots were on sale at The Dressing Room in three colors, for only $L69 each.  That's about a tenth of the normal price, so I headed over there to brave the mob.

The Dressing Room is a small store, with not very many items.  What it is, is a showcase where designers put out one or two things a month at a very attractive price...a place to pick up promo items.  I was VERY happy to get three pairs of Baxes there!

Sunday, January 20, 2013

"Elementary, my Dear Watson"

Sir Arthur Conan Doyle's Great Detective, Sherlock Holmes, is famous for his deductive powers.  By simply examining a person, or some clue left at a crime scene, he can reel off an astonishing amount of information to his friend Doctor Watson, or Inspector LeStrade.

We could learn something from Holmes.  In Second Life, there are Clues to be watched for and noted.  Such clues can give you an important "heads up", warning you of avatars with Evil Intentions, or alerting you to a possible scam or an emotional trap.

My partner Cindi describes it as her "radar".  Something about an avatar just throws up warning flags for her, even if she can't put her finger on it.  If that feeling happens to you, pay attention to it.  Even if we are not the Great Detective, sometimes things we don't consciously notice can add up to a warning to steer clear.

One thing I always do when meeting someone new, or even before approaching them,  is read their Profile.  Profiles give you an amazing amount of information about someone...even some things they did not intend.  Things like...

  • Avatar username and Display Name.  A guy with the name "Stud94527"  tells me that this person is new to Second Life, and cruising for casual sex.  A girl with the name "FkUrFeelinqs" is probably not very good Friend material.  See "What's in a Name?"
  • Avatar age.  Avatars less than three months old are usually noobs.  But not always.  If the avatar age doesn't match up with the avatar's appearance and the way they handle things like chat emoting, they may be an alt -- a new avatar account created by an experienced Second Life user.  Alts can have benign purposes, but they may also be created to hide one's activities from one's friends, to grief other residents, to stalk people (maybe you!)  They may also have been created to get away from an ex-lover, and while you may be sympathetic to this, remember that any relationship has two sides.  What did this person do to contribute to the breakup, and are they likely to do it to you?
  • Groups.  A profile with groups that are ALL slanted to one thing is probably obsessed with that thing, whether it be sailing or BDSM.  A profile with NO groups, combined with an avatar age of several months or more, indicates a person is deliberately hiding their groups.  Which makes you wonder what in the world they are hiding about themselves.
  • Picks.  Similar to Group listings.  What does this person find enjoyable?  Are her Picks all stores?  Or all clubs?  Or have they used Picks to showcase the people that are important to them in Second Life?  If the latter, what kind of people do they hang out with?  Have a look at THEIR Profiles, too.
  • First Life tab.  Most people I meet leave this blank, or put in some smartass comment about "SL is SL and RL is RL.  Off limits."  Some put in actual Real Life details, like "Female 22, UK, single."  And some of these include what is alleged to be a Real Life photograph.  Please note I say "alleged", because it's very easy to simply grab a picture off the Internet and claim that it is "you."  Someone who puts a lot of information in their First Life tab is probably an "augmentationist," or as I like to call them, a Facebooker.  This is not necessarily a Bad Thing, but it says to me that this person and I don't have much in common in our approach to Second Life.
  • Description.  I like finding something charming and witty here.  Quotes from song lyrics or poetry are a distant second to original material, for me.  But snarky comments like "Don't call me Babe or Hun," or "I am always brutally honest," or "NOTICE:  All chat and IMs are logged and I reserve the right to do whatever I want with them," tell me that this is a person to be avoided.
Avatar appearance.  I look for things like...
  • An account age of several years combined with a noob avatar could mean someone that is simply trying SL again after a long hiatus.  But it could be that they either STILL have no clue as to what SL is about, after years of trying, or their interests lie in completely different directions to mine.
  • A bizarre or ugly shape.  People who deliberately make themselves ugly on the outside generally have a lot of ugliness inside.  
  • Exaggerated male or female characteristics.  This person is probably highly interested in casual cyber-sex.  At the extremes, such as size JJJ boobs, they are most likely a fetishist of some kind.
  • Poor quality clothing, or poorly edited attachments.  Depending on avatar age, they may simply not give a damn, or they could be a slow learner.  Or they might be a sloppy and careless sort.
Communication skills.  How does this person communicate?  Look for things like...
  • Internet and gamer slang.  The occasional "BRB" or "LOL" is OK.  But people who type things like "RU bzy" or "u r so pwned" are probably very young.  Maybe TOO young to be in SL.  Plus they are likely to treat SL as a "game," which again puts them on the "not good Lindal friend material" list.
  • Poor spelling and grammar.  This could just be a bad typist, but people who don't care about precision of language and I will probably never be close friends.
  •  Voice.  I hate to say it, but those who voice and those who type really don't have much in common.  It's too bad, because I'm sure I'd like a lot of the voicers if I once got to know them.  But it's sort of like trying to communicate with someone who doesn't speak English.  You CAN talk to them (using a translator), but there is always the sense of that language barrier being there.
  • Do they respond to you?  I have met "beggar bots" who seem at first meeting to be real people.  However, no matter what you say, they seem to ignore it, and the next thing they type doesn't have anything to do with what YOU said.  There are two clues to detecting a beggar bot:  They don't respond to insults or non-sequitur remarks...and they always, in the end, ask you for money.  
Finally, have a look at behavior.
  • If a person is standing perfectly still for a long time and not responding to your chat or IMs, it is possible (though far from a sure thing) that they are a copybot stealing your stuff.  
  • If they are running around and colliding with people, they are probably new and either don't know how to control their movement, or thinking it is a great sport.  
  • If someone appears on your land and suddenly things start going nuts, they are a griefer.  
  • If someone is wearing visible genitals, they might simply be having technical difficulties, or they may be trying to shock others.
  • If they are wearing invisible genitals, they are probably cruising for casual sex.
  • If they are carrying weapons they may be simply a forgetful roleplayer, or they may be a griefer looking for trouble.  Decorative weapons, like a holstered gun or a sheathed sword, are one thing.  Invisible weapons attached to the hands are something else again.  CTRL+ALT+T to see invisible objects.
  • If they IM you out of the blue instead of introducing themselves in local chat first, they may be out for sex, or simply ignorant of etiquette.
  • If someone you don't know sends you a URL in IM, local chat, or group chat, be very careful.  It could be a phishing scam trying to trick you out of your password.
  • If their Profile says they have a partner, but they are coming on to you, this is probably someone who doesn't care much about others.  They will do the same to you.
Keep your eyes open and look for Clues, and listen to your feelings, too.  You will have a more serene Second Life.

Tuesday, January 15, 2013

A View Into the Future

A very short post today!

I just became aware of an exciting new product.  In fact, it's SO new that it is still under development.  There is, however, a working prototype that has impressed reviewers from Tom's Hardware to Forbes.  And the company has raised more than enough money (according to their estimates) to bring the product to market within two years.

The product is Oculus Rift , a new set of virtual reality "goggles".  They feature head tracking, so that when you move your head, the image you see moves correspondingly.  AND they show the world in 3D perspective, without the eye fatigue associated with "shutter" type 3D glasses.

The company is so sure that it will work that you can pre-order the thing today...at a price ($300) that is orders of magnitude less than the five-figure cost of similar devices made for "professional" VR applications.  Since I've been looking at putting together a triple monitor 27" screen setup, $300 looks pretty good from where I sit.

A product like this would bring a new level of immersion to virtual worlds like Second Life.  Of course, since you can't see your keyboard any more, the user interface would need a deal of work to be compatible with this new peripheral.  But, as they say, that's a trivial matter of engineering.  (Well, I HOPE that will prove to be the case!)

I can't say that Oculus Rift will be in time to save Second Life itself.  The grid has been shrinking slowly over the past couple of years.  This is not, in itself, cause for alarm (yet), but the trend does not appear to be slowing, and no one either in Linden Lab or among the Residents seems to have a good idea for stopping or reversing the decline.  But there will surely be SOME form of virtual world around to take advantage of the Oculus Rift VR goggles.

And that's pretty exciting, in my view.

Monday, January 14, 2013

Sounding Off

Hi there, Gentle Readers, it's Basics time again!  I've gotten a number of questions relating to sounds in the past few days, so, er...listen up!

Sound plays a big part in the immersive experience of virtual worlds like Second Life.  There are a number of sound "channels" used by the viewer, and you can see the volume sliders for them either by pulling them down from the little speaker icon in the upper right corner of your screen, or by looking in the Sound and Media tab of the Preferences window.


"Master Volume" is pretty self explanatory, so let's move down the list:
  • Buttons.  Some viewers call this User Interface or UI.  It's the beeps and dings that happen when you receive an IM, or click a button or other control.
  • Ambient.  Environmental sounds such as wind, the teleport whoosh, and the thonk when you bump your shins against steps that are a little too high.
  • Sound Effects.  Sounds played by in world objects.  Heel click sounds, gunshots, bird calls, wave noises, and so on.  We'll come back to this one in a minute.
  • Streaming Music.  Each land parcel can have its own music stream.  In a club, the DJ will set things up so the parcel music stream links to his Shoutcast stream.  In your home, your SL "radio" can be used to tune in any music stream on the internet.
  • Media.  Similar to the parcel music stream, but this is video content and its related sound track.
  • Voice Chat.  Plays local voice chat and voice IM calls.
The check boxes below the sliders are mostly self-explanatory, but I will mention two in particular.
  •  Allow Media to auto-play.  If checked, your viewer will automatically start playing the parcel's music and media streams when you arrive.  I recommend NOT checking this, for security reasons.  Any stream provider (all over the internet, not just in SL) gets your IP address -- they have to have it, or they could not send you the stream.  People who have your IP address have a significant clue as to your physical location.  With most streams, this is not a concern.  But it's possible for a stream provider to use this as a way to obtain people's IP addresses with Evil Intent.  So only play media streams from sources you choose.
  • Toggle speak on/off when I press <Designated Key>.  If this is checked, when you hit the specified key, your microphone is turned on...and it will stay live until you press the key again.  It is very easy to forget, and then everyone around you hears you muttering to yourself, scarfing down chips, and yelling at your kids.  If left unchecked, the mic will only be live as long as you hold the key down.
In contrast with the younger set, I tend to leave my music and media off, unless I am at a club.  I prefer to listen to the "natural" sounds of the world around me...the ones in the Sound Effects channel.  You can buy all sorts of sound effects for your Second Life home and garden...or space station, submarine, or other build.  Try browsing the Marketplace, and select Audio and Video/Nature and Relaxation Audio.  You'll find all sorts of sounds for sale, at prices ranging from free up to around $L500 or so.  You can also find a lot of free sounds in freebie stores like Yadni's Junkyard.

Or you can upload your own sounds.  There are some pretty strict limitations to be followed:
  • A sound clip cannot exceed 10 seconds in length
  • Sounds must be in .WAV format, 44.1 KHz mono or stereo.
This means you are not going to be uploading any symphonies, or even your favorite rock tunes.  There are plenty of basic audio editing programs out there that can resample sound files, manipulate them, and save the results in the required format.

There is a $L 10 upload charge, just as there is for textures.  I recommend uploading a test version onto the Beta Grid first...because you will want to test how it plays.  The most common problem is too low a volume.  The maximum volume you can play a sound at is 1.0, there is no "11" in Second Life.  You can always turn a sound down, but you can't increase the volume if it is too low to start with.  Your sound file should have its peaks near (but not over) 0 dB, and you may want to apply a Normalization filter in your audio editing program.

Uploaded sounds can be used in Gestures (HOOOOO!)  Yeck.  Or my favorite, a little girl whining "Mommy?  Mommy, Second Life won't work today!"  Or they can be used for environmental enhancement.

To do this, you need to put your sound(s) into the Content tab of a prim, along with a script to play the sound.  Here is one very simple sound-playing script:

//Play Sound in a Loop at Full Volume
default
{
    state_entry()
    {
//Either re-name your sound INVENTORY_SOUND, or change this text to your sound's name

//The last number, 1.0 is the volume.  Reduce volume by changing this to a value less than 1.0

        llLoopSound(llGetInventoryName(INVENTORY_SOUND,0), 1.0);
    }
}


Here is another one, with options to play different sounds during the day or night, and to randomly select from multiple sound files.  It's menu-controlled and has plenty of other options, too:

// ----------------------------------------------------------------
// Script Title:    Advanced Sound Player
// Created by:      WhiteStar Magic
// Creation Date:   December 21,2009
// Platforms:
//    OpenSim:      Tested & operational on OpenSim 0.6.9 (Dev) ba75526 - r11721
//
// Revision:        0.5
// Revision History:
//     Evolved from basic DayTime Sound Module
//     Now does Day, Night or Always sound emination with Volume control and more,
//     All Menu driven and no need to edit script for functionality.
//
// Revision Contributors:
//
//
//
// Conditions:
// Please maintain this header. If you modify the script indicate your
// revision details / enhancements
//
// Support:
//  If & When needed as Time Permits
//
// Licensing:  Creative Commons 2.5 (Canada)
//
// http://creativecommons.org/licenses/by/2.5/ca/
// http://creativecommons.org/licenses/by/2.5/ca/legalcode.en
// ================================================================
// ** SCRIPT NOTES **
//  This is  Multi Mode Sound player Script.  It can play sounds during Daytime, Nightime or Always
//  Plays sounds for a Random Period of Time between 15 to 150 seconds in duration
//  Menu Driven with Settings Status Information
//  Menu can only be accessed by Owner
//  Debugging can be enabled from Menu for extended details of operation
//  No Lag Chat & Listen functions (uses Good Housekeeping)
//  No llSleep Functions, uses active timer
//
//  ** INSTALLATION **
//    Install script into a prim of your choice
//    Copy in your desired sound files into same prim
//    Touch for OWNER Menu to activate Options
//
//  ** MENU OPTIONS **
//    ON    = Player ON
//    OFF   = Player OFF
//    Day   = Play Sounds Daytime Only
//    Night = Play Sounds Nightime Only
//    Allways = Play Sounds always
//    Looping = Loops Sound during Cycle
//    Single  = Plays Sound once in Cycle
//    Volume = Volume/Loudness menu
//      Volume menu gives option of 1/4, 1/3, 1/2, 2/3, 3/4, full
//    RESET = RESET SCRIPT
//    DEBUG = On/Off (Chats info to Owner)
//    DONE  = EXIT MENU SYSTEM
//
//================================================================
// === Variables Used ===
//==================================
// === DO NOT CHANGE LINES BELOW ===
//==================================
//
// Smaller Numbers will generally result in faster switching / cycling of sounds.
float SHORTEST = 11.0;  // allows for Short Sound Burst cycle = More Randomness
float LONGEST = 165.0;  // 2.5 minutes Max Sound Play value with correction for llFrand
//
string  WhenToPlay = "Day"; // Day, Night, Allways
integer On_Off = TRUE;      // Device Active On or Off
integer MENU_ACTIVE = FALSE;
string  MENU;
string  MyVol = "1/2";
integer sounds;
float   timing = 10.0;
integer CHANNEL;            // Channel for Menus
key     OWNER;              // Owners UUID
integer DEBUG = FALSE;      // Debugging Switch
string  MyStatus;
float   LOUDNESS = 0.5;     // 0.0 = silent - 1.0 = Loudest
integer LOOPING = FALSE;
// =====================================
// === Day Night Check ===
DayOrNight()
{
    vector sun_point = llGetSunDirection();
    if ( sun_point.z <= 0.0 ) // It's Night Time as SUN is Below Horizon
    {
        if(DEBUG) llOwnerSay("Currently Night time");
        if(WhenToPlay == "Night")
        {
            SoundPlay();
        }
        else
        {
            llSetTimerEvent(300); // 5 minutes till next cycle & test
            return;
        }
    }
    else    // It's daytime as SUN is above Horizon
    {
        if(DEBUG) llOwnerSay("Currently Day time");
        if(WhenToPlay == "Day")
        {
            SoundPlay();
        }
        else
        {
            llSetTimerEvent(300); // 5 minutes till next cycle & test
            return;
        }
    }
}
// === PLAY SOUND ROUTINE ===
SoundPlay()
{
    // Sets timer event to trigger again @ random time causing sound cycle
    // Little bit of tom foolery here to compensate & rationalize values
    timing = (float)(llFloor(llFrand(LONGEST - SHORTEST)) + 1);
    if(timing < 10.0) timing = SHORTEST;
    llSetTimerEvent(timing);
    //       
    if ( sounds <= 0 ) llOwnerSay("There are no sounds in me, Please put sounds files into this prim for me to play");
    integer randomnum = llFloor(llFrand(sounds));
    string soundname = llGetInventoryName( INVENTORY_SOUND, randomnum );
    if ( soundname != "" )
    {
        if(DEBUG) llOwnerSay("Sounds Found = ["+(string)sounds+"]: File Being Played = [# "+(string)randomnum+" / "+soundname+"] for ["+llGetSubString((string)timing, 0,llSubStringIndex((string)timing,".")+1)+"] Seconds");
        if(LOOPING) llLoopSound( soundname, LOUDNESS );
        else llPlaySound( soundname, LOUDNESS );
    }
}
//
// ==============
// MENU FUNCTIONS
// ==============
// Simple Button Ordering for regular functions (MAX 12 BUTTONS)
//===== Order the Buttons into right sequence for DIALOG MENUS
list ButtonSort(list btns)
{
    return llList2List(btns, -3, -1) + llList2List(btns, -6, -4)
        + llList2List(btns, -9, -7) + llList2List(btns, -12, -10);
}
//
OPEN_Comms()  // Open Communications Channel only when needed
{
    llListenRemove(CHANNEL);                         // SAFETY Kill CHANNEL incase left over
    CHANNEL = (integer)(llFrand(-1000.0) - 1000.0);  // RANDOM Negative Channel
    llListen(CHANNEL, "", "", "");                   // listen for dialog answers
    llSetTimerEvent(45.0);                           // to AutoKill CHANNEL
}
//
MENU_Admin(key id)  // Admin Menu
{
    OPEN_Comms();
    MENU_ACTIVE = TRUE;
    MENU = "ADM";
    llSetTimerEvent(60.0);
    //
    status();
    //
    string MA_data;
    list MA_list;
    //
    MA_data = "-=[Multi-Mode Sound Player]=-"+MyStatus+
        "\n=== Select the Option ===\n"+
        "ON    = Player ON\n"+
        "OFF   = Player OFF\n"+
        "Day   = Play Sounds Daytime Only\n"+
        "Night = Play Sounds Nightime Only\n"+
        "Allways = Play Sounds always\n"+
        "Looping = Loops Sound during Cycle\n"+
        "Single  = Plays Sound once in Cycle\n"+
        "Volume  = Volume/Loudness Menu\n"+
        "RESET = RESET SCRIPT\n"+
        "DEBUG =  On/Off (Chats info to Owner)\n"+
        "DONE  = EXIT MENU SYSTEM";
    MA_list = ["ON","OFF","Day","Night","Allways","Looping","Single","Volume","RESET","DEBUG","DONE"];
    llDialog(id, MA_data, ButtonSort(MA_list), CHANNEL);
}
//
MENU_Volume(key id)  // Volume Menu
{
    OPEN_Comms();
    MENU_ACTIVE = TRUE;
    MENU = "VOL";
    llSetTimerEvent(60.0);
    //
    status();
    //
    string MA_data;
    list MA_list;
    //
    MA_data = "-=[Multi-Mode Sound Player]=-"+MyStatus+
        "\n=== Volume/Loudness ===\n"+
        "Select your Volumen Prefference\n"+
        "NB: Sound is Centered ON the prim containing this script\n"+
        "DONE  = EXIT MENU SYSTEM";
    MA_list = ["1/4","1/3","1/2","2/3","3/4","FULL","DONE"];
    llDialog(id, MA_data, ButtonSort(MA_list), CHANNEL);
}
//
status()
{
    string statusA =    "Debug OFF";
    if(DEBUG) statusA = "Debug ON";
    string statusB =     "Device OFF";
    if(On_Off) statusB = "Device ON";
    string statusC =    "OFF";
    if(LOOPING) statusC = "ON";

    MyStatus = "\nSTATUS: ["+statusA+"] ["+statusB+"]\n"+
        "Play Mode:["+WhenToPlay+"] Vol:["+(string)MyVol+"] Loop:["+statusC+"]\n"+
        "Sounds Available: ["+(string)sounds+"]";
}
// === MAIN APP STATE ===
default
{
    state_entry()
    {
        OWNER = llGetOwner();
        sounds = llGetInventoryNumber(INVENTORY_SOUND);
        status();
        llOwnerSay(MyStatus);
        llStopSound();
        llSetTimerEvent(10.0);  // kick the timer in 10 seconds and act on defaults
    }
   
    on_rez(integer start_param)
    {
        llResetScript();
    }
   
    changed(integer change)     // something changed, take action
    {
        if(change & CHANGED_OWNER)
        {
            llResetScript();
        }
        else if (change & CHANGED_INVENTORY)
        {
            sounds = llGetInventoryNumber(INVENTORY_SOUND);
            llOwnerSay("Sound Inventory Changed, resetting Sound Inventory Count "+(string)sounds+" Sounds Found");
        }
    }
   
    touch_start(integer num_detected)
    {
        key id_key = llDetectedKey(0);
        if(id_key == OWNER) MENU_Admin(id_key);
    }
   
    timer()
    {
        if (MENU_ACTIVE)
        {
            MENU_ACTIVE = FALSE;
            MENU = "";
            llOwnerSay("Menu Deactivated Touch to get New Menu");
            llListenRemove(CHANNEL);
            llSetTimerEvent(timing);
        }
        if(On_Off) // it's ON so act accordingly
        {
            if (WhenToPlay == "Allways") SoundPlay();
            else DayOrNight();
        }
    }
    // ==== Listening & acting on Menu Response ====
    listen( integer channel, string name, key id, string msg )
    {
        if(DEBUG) llOwnerSay("\nListen Heard on Channel " + (string)channel+
            "\nName: "+name+
            "\nID: "+(string)id+
            "\nMSG: "+msg);
        // housekeping - Kill Listen reduce Lag
        llListenRemove(CHANNEL);
        // Take Action
        if(msg == "ON")
        {
            On_Off = TRUE;
            llSetTimerEvent(timing);
        }
        else if(msg == "OFF")
        {
            On_Off = FALSE;
            llStopSound();
        }
        else if(msg == "DEBUG")
        {
            if(DEBUG) DEBUG = FALSE;
            else DEBUG = TRUE;
        }
        else if(msg == "Day") WhenToPlay = msg;
        else if(msg == "Night") WhenToPlay = msg;
        else if(msg == "Allways") WhenToPlay = msg;
        else if(msg == "Looping") LOOPING = TRUE;
        else if(msg == "Single") LOOPING = FALSE;
        // volume selections
        else if(msg == "Volume")
        {
            MENU_Volume(id);
            return;
        }
        else if(msg == "1/4") { LOUDNESS = 0.25; MyVol = msg;}
        else if(msg == "1/3") { LOUDNESS = 0.33; MyVol = msg;}
        else if(msg == "1/2") { LOUDNESS = 0.50; MyVol = msg;}
        else if(msg == "2/3") { LOUDNESS = 0.66; MyVol = msg;}
        else if(msg == "3/4") { LOUDNESS = 0.75; MyVol = msg;}
        else if(msg == "FULL") { LOUDNESS = 1.00; MyVol = msg;}
        //
        else if(msg == "RESET") llResetScript();
        if(msg == "DONE")
        {
            MENU_ACTIVE = FALSE;
            MENU = "";
            llSetTimerEvent(timing); //set timing back to the random value already generated OR default
            llOwnerSay(MyStatus);
            return;
        }
        else if(MENU == "ADM") MENU_Admin(id);
        else if(MENU == "VOL") MENU_Volume(id);
    }
}


Thanks to WhiteStar Magic of OSGrid for the above script!

Monday, January 7, 2013

Those Who Pose

Today, it's Back to Basics time!

There are many ways to animate your avatar.  The easiest is to use the built-in animations...the ones that make you walk, and sit, and stand.  In fact, it's automatic!  But the built-in animations are pretty dorky, and most people replace them with better animations using a gadget called an animation overrider, or AO.

Your start-up inventory also includes some dance animations.  You can find them in your Library/Animations folder.  These are also pretty dorky, so when you go out dancing, use the dances provided in the club's dance machine.

To play these stock dance animations, or any animation you receive in "raw" form, you can double click the animation item in your inventory to open it on your screen, then click "Play in World".  You will continue to be animated until you click Stop. (Play on Screen also works, but only you will see the animation.)

As you wander about Second Life, you will undoubtedly encounter some spheres here and there, about the size of a soccer ball.  They are usually colored pink (for girls) and blue (for boys).  Sometimes they are white (unisex).  These are "poseballs".  If you right click one and Sit on it, your avatar will be animated with whatever animation the poseball contains.  Very often, these poseballs occur in pairs.  When you and a friend sit on them, they will animate you both in a couples animation...a cuddle or a kiss perhaps.  Or a dance...or even an XXX-rated sexual animation.  NOTE:  You should turn off your AO, and you may get an animation request notice from the poseball which you must accept before it will animate you.

Some poseballs are temporary.  They appear above a bed or other piece of furniture when you click the furniture and choose an animation from its menu.  When you get off the bed, and click the Stop choice in the menu, the poseballs disappear again.

You must be in a place that allows you to rez items (create them in world) to use your own poseballs, whether they are simply items in your inventory, or rezzed from a device you are wearing, like a "romance HUD".  However, you can use poseballs in existing furniture, provided that the furniture has been set to allow you as a user.  (Some furniture is limited by its owner to owner-only operation, or group-only operation.)

To stop using a poseball, just right click yourself and select Stand, or click the Stand button near the bottom of your screen.  Or, if the poseballs are rezzed by a dance machine or a piece of furniture, you can also choose Stop from the controlling item's menu.

Poseballs may be hidden, so as to avoid the unrealistic situation of colored spheres floating all over the place.  Type "/1 hide" in local chat to hide them, or "/1 show" to make them appear (don't type the quotation marks.)  Some poseballs "listen" on other chat channels, but channel 1 is the most common.

Poseballs are especially useful for couples animations, because you can edit the relative positions of the participants by editing the position of the poseballs.  So you can tweak them to allow your lips to meet in that kiss animation.  Some furniture menus have special menu selections to make this easier, but you can also select the poseball for editing, then sit on it.  Even though the poseball becomes invisible, the edit menu will remain active, and you can adjust the ball's position with the positioning arrows.

Poseballs most often contain animations...that is, your avatar will move through a realistic sequence of actions.  However, for photographic purposes, you don't want your avatar to move, you want her to POSE.  There are special animations that are just that...static poses.  Although they have the same symbol as any other animation (a little running figure), they do not move your avatar, but keep her in one position.  You may find poseballs with static poses like this in photography studios in Second Life, and there are some stores that specialize in selling poses, primarily to the model community.

You can make your own poseballs.  Here is a link to a poseball script.  Follow the directions to download it, and upload it to SL.  Then drop it, and an animation, into a prim.  The prim may be any size or shape, but you may as well follow tradition and make it a sphere.  Edit the script so it will recognize your animation by name.  Then...hey, sit on it!

A NOTE TO TINIES AND NONHUMAN AVATARS:  Poseballs, and any animation or pose intended for a human avatar can mess you up, stretching your body to try to get it back to a human shape.  This is not serious, you will go back to normal when you stand up or stop the animation...but it can be frustrating.

ETIQUETTE NOTE:  Sex bed stores have samples out on the floor for you to try before you buy.  If you do try these out, DO NOT take off your clothes or put on your prim genitals!  Most stores will ban you if they catch you actually using their floor samples for cyber-sex.  Geeze...get a ROOM!  And guys...the pickup line, "Would you please help me try out this bed's poseballs?" is VERY lame.  You Have Been Warned!


Sunday, January 6, 2013

Second Life Slang

Today, Dav2 IM'd me in world to offer some comments on the blog.  His main two:  He couldn't post a comment, and I was failing to define my terms.

Sorry, Dav...I'm not sure why you had comment problems.  I do moderate comments, but the blog should have accepted your comment and passed it to me to approve for publication.  Do you have a Google or Yahoo or FaceBook identity?  Using it may help.

As for the terms...I do make an effort to word things here so that people who don't use Second Life, or who are new to Second Life, can understand.  I try not to use too much Second Life slang, or unfamiliar acronyms and abbreviations.  For example, I went to great lengths a few days ago to explain the events leading up to the current upset that some users are feeling over the winding-down of the popular Phoenix viewer.  But it's hard, you know?  One gets used to talking to people who know all the slang and idioms, and they creep into all your communications, even outside of SL.

I thought maybe I could just point people to a Wiki page.  I found one: http://wiki.secondlife.com/wiki/Acronyms  There's only one problem:  it's terribly out of date and incomplete.  Some of the terms there are no longer in use, and others that ARE in common use aren't listed.

Here's a slightly better one:  http://virtualoutworlding.blogspot.com/2011/01/kit-language-of-virtual-village.html

Here is a list aimed more at multiplayer online games in general, not Second Life in particular:
http://mmorpg4life.blogspot.com/2007/05/mmorpg-abbreviationsjargons-for-dummies.html

This one isn't acronyms and abbreviations, but does define common SL terms very well:
http://cyfishy.com/slexicon.html

Here is one of the most complete, although its authors agree that it needs updating too:
http://www.inkwelle.com/glossary_nci.shtml

OK...enough, already.  I've convinced myself that it would be re-inventing the wheel to come up with my own glossary.  Remember, Dav...Google Is Your Friend!

Oh, and your suggestion about poseballs?  Good one!  I'll try to remember to talk about them tomorrow.

The Invisible Avatar

There have been many attempts to make avatars invisible in Second Life, and none of them have been very successful.  An early method covered the whole avatar with an invisiprim.  However, invisiprims leave a visible "signature" when they are viewed against any transparent or semi-transparent texture, creating a strange "outline" of the invisiprim.

Another method displaced the avatar under the ground.  I remember chatting with one person who used this method, combined with a large flower.  The end result was a five foot orchid with a name tag...very funny!  This method had the serious drawback that the underground displacement was canceled when the avatar moved.  Pop!  Up he comes, and boop! down he goes, planted in a new location.  It reminded me of a little kid, hiding behind the furniture and trying to sneak from the chair to the sofa.

With the introduction of alpha layers, true body invisibility became possible, without the limitations of invisiprims.  But, like the previous methods, alpha layers still did not hide the avatar name tag.  We all dismissed "invisibility" as a toy, because you could always see that telltale nametag floating in the air.

But the other day, my partner called my attention to a new item, a "Cloak of Invisibility".  This item claimed to hide not only the avatar, but the nametag as well.  Since I teach a class in Avatar Safety, I'm interested in any new development that could be misused by griefers and pranksters...so I bought a copy to see for myself.

A bit to my surprise, the damn thing worked as advertised.  As soon as I put it on, I disappeared entirely, nametag and all.  I could move about without becoming visible.  This was a little bit disorienting, and I felt like I do when using a text only client.  I was "in" Second Life, and yet...I was not.

The Cloak does have three limitations.  If you have Voice enabled and are on Voice-enabled land, a white dot shows above your head to indicate your Voice-activated status, and anyone else with Voice can see this dot.  The Cloak does not hide this dot, so you must disable Voice to be completely invisible.  Second, you are still visible on the Map, the Minimap, and avatar radars as a green dot.  And finally, even after you remove the Cloak, you must teleport to another region and back again, or re-log, to become visible again.

It's not a perfect solution...but it's a big improvement over previous methods, and unless you are being vigilant, it will be easy for someone wearing one to play tricks and practical jokes on you, or to lurk near you and eavesdrop on your chat and activities.  Keep a sharp eye on your radar!

No, I'm not going to give you directions on where to buy this thing.  Even though it's an impressive achievement, I cannot endorse a product that will surely be used more for harm than for fun.

Saturday, January 5, 2013

Ski Jumping, and a Bargain in Boots



Last weekend, some fun-loving Caledonians got together for an outing, and as it happened, I had some free time and went along.  The location chosen was one I’d never visited...the winter sports area of Chamonix City.

There, I found a very realistic ski jump.  It’s free to use, and you can get a free pair of jump skis at the top of the jump ramp.  I won’t go into details about how to jump, there are very clear instructions on a sign right there.  I will say that it is harder than it looks…I saw some scores of 175 – 180 while I was there, but never managed anything  over 165 myself.  More often, I crashed instead!  It’s also very addictive; my partner Cindi and I went back later that day and spent an hour or so doing jump after jump.  There is a group you can join if you are the type who enjoys competition against others.

This is one of those things that I’d never have the nerve to try in Real Life, but feel perfectly safe doing in Second Life.  Highly recommended…go ahead and try it!

Get Set...
Go!

Fly!!!


While I have your attention, I’m also going to recommend you check out VG Shoes.  They have both men’s and women’s styles, and feature mainly Mesh items.

I have a bone to pick with Mesh shoes.  Most of them that I have seen have an odd sort of turned up toe, putting me in mind of Dutch wooden shoes, or the bow of a boat.  Many of VG Shoes’ offerings have this appearance.  But, in the back room, they have some non-mesh strappy sandals and some knee high boots that are very nice indeed…and the boots are a stone bargain at only $L 80 per pair.  They are equipped with re-sizing scripts which work very cleanly.  However, they use the older “a script in every prim” approach, so you should make a safety copy, re-size your everyday copy, and then delete the scripts to keep lag down.
 



























































































So Many to Choose!