<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Grey Fuzz &#187; second life</title>
	<atom:link href="http://www.greyfuzz.com/category/second-life/feed" rel="self" type="application/rss+xml" />
	<link>http://www.greyfuzz.com</link>
	<description>Come get some!</description>
	<lastBuildDate>Thu, 29 Jul 2010 22:04:50 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=abc</generator>
		<item>
		<title>Second Life Suggestion Box Script</title>
		<link>http://www.greyfuzz.com/2008/11/second-life-suggestion-box-script</link>
		<comments>http://www.greyfuzz.com/2008/11/second-life-suggestion-box-script#comments</comments>
		<pubDate>Sat, 15 Nov 2008 01:13:06 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[second life]]></category>
		<category><![CDATA[LSL]]></category>
		<category><![CDATA[secondlife]]></category>

		<guid isPermaLink="false">http://www.greyfuzz.com/?p=480</guid>
		<description><![CDATA[While waiting for Bill to come on the tube I decided the wife needed a &#8216;Suggestion Box&#8217; for her AngelWear clothing store in Second Life. A little research and I had the basic LSL script at hand. A little tweaking and a few improvements, add in a little translating so that the controls and such [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;">
		<script type="text/javascript">
		<!--
		digg_url = "http://www.greyfuzz.com/2008/11/second-life-suggestion-box-script";
		digg_bgcolor = "";
		digg_skin = "";
		digg_window = "";
		digg_title = "Second+Life+Suggestion+Box+Script";
		digg_media = "";
		digg_topic = "";
		digg_bodytext = "";
		//-->
		</script>
		<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></div><p>While waiting for <a href="http://www.billoreilly.com/" target="_blank">Bill</a> to come on the tube I decided the wife needed a &#8216;Suggestion Box&#8217; for her <a href="http://world.secondlife.com/place/a493b421-44f0-a53d-1db5-c5b4e639429f" target="_blank">AngelWear clothing store</a> in Second Life.  A little research and I had the basic LSL script at hand. A little tweaking and a few improvements, add in a little translating so that the controls and such were in some semblance of English and presto&#8230;..  Now folks can drop a notecard in the box and it will store it until she logs into the game to check the box and it will deliver the notecards to her.  Pretty slick!</p>
<p>Figure I should start sharing some of the stuff I&#8217;ve written/hacked on for others&#8230;</p>
<p>To use this script, simply copy/paste the contents below into a New Script in the game.  Then place the script into a &#8216;prim&#8217; (in the shape of a mailbox or suggestion box?).  That&#8217;s all there is to it.</p>
<pre><code>[RAW]
// --------------------------------------//
// This script transform a prim to a Mail Box.
// Folks can drop notecard to the box.
// Read/unread information is displayed as hovering text.
// You can copy/modify this script, it's totally free.
// --------------------------------------//
// Modified by dakar Muliaina, converted to The king's English
// and a few other enhancements.
//-------------------------------------------//

list lMail = [];
// column 1 = notecard name, column 2 = read by user
integer     MAIL_UNREADED = 0;
integer     MAIL_READED = 1;
integer     DIALOG_CHANNEL = 49383;
list        DIALOG_CHOICE =
                ["Unread",
                 "Read",
                 "Delete"];
integer nLastCardCount = 0;
integer nLastItemCount = 0;

TxtRefresh()
{
    // show the unreadable notecard
    integer nTotalCard = 0;
    integer nNotReaded = 0;
    integer nCount = 0;
    for (nCount = 0; nCount &lt; llGetListLength(lMail); nCount += 2)
    {
        if (llList2Integer(lMail, nCount + 1) == MAIL_UNREADED)
            nNotReaded += 1;
        nTotalCard += 1;
    }

    // total string
    string cPost = (string)nTotalCard + " card";
    if (nTotalCard &gt; 1) cPost += "s";
    cPost += " posted";

       // unreaded string
    string cUnreaded = (string)nNotReaded + " unread";
    llSetText("Suggestion Box!\n" + cPost + "\n" + cUnreaded, &lt;.95, .75, 0&gt;, 1);
}

default
{
    state_entry()
    {
       // Allowing dropping of object
       llAllowInventoryDrop(TRUE);
       llListen(DIALOG_CHANNEL, "", NULL_KEY, "");
       nLastCardCount = llGetInventoryNumber(INVENTORY_ALL);
       nLastItemCount = llGetInventoryNumber(INVENTORY_NOTECARD);

       // Auto complete list
       integer nCardCount = llGetInventoryNumber(INVENTORY_NOTECARD);
       integer n_CurObj = 0;
       string c_Name = "NotEmpty";
       while (c_Name != "")
       {
            c_Name = llGetInventoryName(INVENTORY_NOTECARD, n_CurObj);
            n_CurObj += 1;
            if (c_Name != "")
            {
                lMail += [c_Name];
                lMail += MAIL_UNREADED;
            }
        }
        TxtRefresh();
    }

    touch_start(integer total_number)
    {
        llSay(0, "Drop a notecard to be sent to MY OWNER.");
//---- Change MY OWNER above to suit your likes and needs.   //
        // if owner
        key id = llDetectedKey(0);
        if (id == llGetOwner())
        {
            // Show a dialog
            llDialog(id, "What do you want to do ?", DIALOG_CHOICE,
              DIALOG_CHANNEL);
        }
    }

    listen(integer channel, string name, key id, string message)
    {
        if (llGetOwner() == id &amp;&amp; llListFindList(DIALOG_CHOICE,
           [message]) != -1)
        {
            integer i;
            string cName;
            list lRemove;
            integer nStatus;
            for (i = 0; i &lt; llGetListLength(lMail); i += 2)
            {
                cName = llList2String(lMail, i);
                nStatus = llList2Integer(lMail, i + 1);
                if (message == llList2String(DIALOG_CHOICE, 0)
                   &amp;&amp; nStatus == MAIL_UNREADED)
                {
                    // open un-readed
                    llGiveInventory(id, cName);
                    // mark for readed
                    lMail = llListReplaceList(lMail, [MAIL_READED],
                        i + 1, i + 1);
                }
                if (message == llList2String(DIALOG_CHOICE, 1)
                   &amp;&amp; nStatus == MAIL_READED)
                {
                    // open readed
                    llGiveInventory(id, cName);
                }
                if (message == llList2String(DIALOG_CHOICE, 2)
                   &amp;&amp; nStatus == MAIL_READED)
                {
                    // delete readed
                    llSay(0, cName);
                    llRemoveInventory(cName);
                    lRemove += i;
                }
            }
            // remove from the list
            if (llGetListLength(lRemove) &gt; 0)
            {
                integer k;
                for (k = 0; k &lt; llGetListLength(lRemove); k++)
                {
                    i = llList2Integer(lRemove, k);
                    lMail = llDeleteSubList(lMail, i, i+1);
                }
            }
            TxtRefresh();
        }
    }

    changed(integer change)
    {
        // dont accept other than a notecard
        integer nItemCount = llGetInventoryNumber(INVENTORY_ALL);
        if (nItemCount &lt; 2)
        {
            // clear the list
            lMail = [];
        }

        if (nItemCount != nLastItemCount)
        {
            // delete other item type than notecard
            string cName = "NotEmpty";
            integer nCurObj = 0;
            integer nObjType = INVENTORY_NONE;
            list lRemove = [];
            while (cName != "")
            {
                cName = llGetInventoryName(INVENTORY_ALL, nCurObj);
                nCurObj += 1;
                nObjType = llGetInventoryType(cName);
                if (nObjType != INVENTORY_NOTECARD)
                {
                    // add for deletion, its not a notecard
                    lRemove += cName;
                }
            }

            // delete other object than notecard
            integer nD = 0;
            for (nD = 0; nD &lt; llGetListLength(lRemove); nD += 1)
            {
                // dont remove this script !
                cName = llList2String(lRemove, nD);
                if (cName != llGetScriptName() &amp;&amp; cName != "")
                {
                    llSay(0, "Sorry but " + cName + " is not a notecard.");
                    llRemoveInventory(cName);
                }
            }

            // search for a new notecard
            integer n_CurObj = 0;
            string c_Name = "NotEmpty";
            while (c_Name != "")
            {
                c_Name = llGetInventoryName(INVENTORY_NOTECARD, n_CurObj);
                llSay(0, c_Name);
                n_CurObj += 1;
                // search for this card
                if (llListFindList(lMail, [c_Name]) == -1 &amp;&amp; c_Name != "")
                {
                    // ok its a new card
                    lMail += [c_Name];
                    lMail += MAIL_UNREADED;
                    llSay(0, c_Name + " added to the mailbox.");
                }
            }
        }
        nLastItemCount = llGetInventoryNumber(INVENTORY_ALL);
        nLastCardCount = llGetInventoryNumber(INVENTORY_NOTECARD);
        // refresh the text
        TxtRefresh();
    }
}
[/RAW]</code></pre>
]]></content:encoded>
			<wfw:commentRss>http://www.greyfuzz.com/2008/11/second-life-suggestion-box-script/feed</wfw:commentRss>
		<slash:comments>2</slash:comments>
		</item>
		<item>
		<title>Halloween in Second Life</title>
		<link>http://www.greyfuzz.com/2008/11/halloween-in-second-life</link>
		<comments>http://www.greyfuzz.com/2008/11/halloween-in-second-life#comments</comments>
		<pubDate>Sat, 08 Nov 2008 23:39:54 +0000</pubDate>
		<dc:creator>admin</dc:creator>
				<category><![CDATA[second life]]></category>
		<category><![CDATA[zombie]]></category>

		<guid isPermaLink="false">http://www.greyfuzz.com/?p=457</guid>
		<description><![CDATA[Didn&#8217;t have a lot to write about today, been pretty boring all day, so instead I&#8217;ll share a few screenies I took with the better half in the online world of Second Life. As pictured is a &#8216;skin&#8217; I created for the occasion. Turned out pretty good. Should have a whole pile of these skins [...]]]></description>
			<content:encoded><![CDATA[<div style="float: right; width: 42px; padding-right: 10px; margin: 0 0 0 10px;">
		<script type="text/javascript">
		<!--
		digg_url = "http://www.greyfuzz.com/2008/11/halloween-in-second-life";
		digg_bgcolor = "";
		digg_skin = "";
		digg_window = "";
		digg_title = "Halloween+in+Second+Life";
		digg_media = "";
		digg_topic = "";
		digg_bodytext = "";
		//-->
		</script>
		<script src="http://digg.com/tools/diggthis.js" type="text/javascript"></script></div><p>Didn&#8217;t have a lot to write about today, been pretty boring all day, so instead I&#8217;ll share a few screenies I took with the better half in the online world of <a href="http://www.secondlife.com" target="_blank">Second Life</a>.  As pictured is a &#8216;skin&#8217; I created for the occasion. Turned out pretty good.</p>
<div id="attachment_458" class="wp-caption alignnone" style="width: 310px"><a href="http://www.greyfuzz.com/wp-content/uploads/2008/11/snapshot_0011.png"><img class="size-medium wp-image-458" title="Zombie in Second Life" src="http://www.greyfuzz.com/wp-content/uploads/2008/11/snapshot_0011-300x175.png" alt="Zombie in Second Life" width="300" height="175" /></a><p class="wp-caption-text">Zombie in Second Life</p></div>
<div id="attachment_459" class="wp-caption alignnone" style="width: 310px"><a href="http://www.greyfuzz.com/wp-content/uploads/2008/11/snapshot_0021.png"><img class="size-medium wp-image-459" title="Chewin' on Miss Peep" src="http://www.greyfuzz.com/wp-content/uploads/2008/11/snapshot_0021-300x175.png" alt="Chewin' on Miss Peep" width="300" height="175" /></a><p class="wp-caption-text">Chewin on Miss Peep</p></div>
<div id="attachment_460" class="wp-caption alignnone" style="width: 310px"><a href="http://www.greyfuzz.com/wp-content/uploads/2008/11/snapshot_0051.png"><img class="size-medium wp-image-460" title="Fry Sucker... Fry!" src="http://www.greyfuzz.com/wp-content/uploads/2008/11/snapshot_0051-300x175.png" alt="Fry Sucker... Fry!" width="300" height="175" /></a><p class="wp-caption-text">Fry Sucker... Fry!</p></div>
<p>Should have a whole pile of these skins ready for sale for next year!</p>
]]></content:encoded>
			<wfw:commentRss>http://www.greyfuzz.com/2008/11/halloween-in-second-life/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>
