<?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/"
	xmlns:georss="http://www.georss.org/georss" xmlns:geo="http://www.w3.org/2003/01/geo/wgs84_pos#" xmlns:media="http://search.yahoo.com/mrss/"
	>

<channel>
	<title>Let&#039;s debug this reality of ours.</title>
	<atom:link href="http://buddhatron.wordpress.com/feed/" rel="self" type="application/rss+xml" />
	<link>http://buddhatron.wordpress.com</link>
	<description>The Universe - in 20 lines of code or less.</description>
	<lastBuildDate>Fri, 20 Jan 2012 17:42:27 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.com/</generator>
<cloud domain='buddhatron.wordpress.com' port='80' path='/?rsscloud=notify' registerProcedure='' protocol='http-post' />
<image>
		<url>http://1.gravatar.com/blavatar/1f5222063232fbcd2f457ab9ab1267ff?s=96&#038;d=http%3A%2F%2Fs2.wp.com%2Fi%2Fbuttonw-com.png</url>
		<title>Let&#039;s debug this reality of ours.</title>
		<link>http://buddhatron.wordpress.com</link>
	</image>
	<atom:link rel="search" type="application/opensearchdescription+xml" href="http://buddhatron.wordpress.com/osd.xml" title="Let&#039;s debug this reality of ours." />
	<atom:link rel='hub' href='http://buddhatron.wordpress.com/?pushpress=hub'/>
		<item>
		<title>Rez smart, save space, be lazy: Modularization</title>
		<link>http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/</link>
		<comments>http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/#comments</comments>
		<pubDate>Fri, 20 Jan 2012 03:20:48 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[modularization]]></category>
		<category><![CDATA[segment]]></category>
		<category><![CDATA[rotations]]></category>
		<category><![CDATA[positions]]></category>
		<category><![CDATA[big build]]></category>
		<category><![CDATA[lazy]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=382</guid>
		<description><![CDATA[Big things. Second Life hates them. So it falls upon us, the LSL life-givers of the grid, to make it easier to deploy, move, and rotate our multi-segmented structures. Thomas Conover built this Platform Rezzer tool, which demonstrates the same principle of simple modular deployment. But this is half of the lesson plan. I also [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=382&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Big things. Second Life hates them.</p>
<p>So it falls upon us, the LSL life-givers of the grid, to make it easier to deploy, move, and rotate our multi-segmented structures.</p>
<p>Thomas Conover built this Platform Rezzer tool, which demonstrates the same principle of simple modular deployment.<br />
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/"><img src="http://img.youtube.com/vi/BpR61wpODw0/2.jpg" alt="" /></a></span><br />
But this is half of the lesson plan. I also want to make moving and rotating these giant builds easier.</p>
<h6>Fun fact: the content of this post and the scripts within have been completely overhauled and rewritten three times to date. &gt;=/<br />
But it&#8217;s done, I can&#8217;t complain.</h6>
<p>SO, you are now faced with another script pair for this lesson, and we&#8217;re going to have to be able to distinguish between them while explaining the logical flow.</p>
<p>We have &gt;<span style="color:#ff6600;"><a title="modular.core" href="http://pastebin.com/DgiXqNKK" target="_blank"><span style="color:#ff6600;">modular.core</span></a></span>, and &gt;<span style="color:#ffff00;"><a title="modular.segment" href="http://pastebin.com/grmWCvHM" target="_blank"><span style="color:#ffff00;">modular.segment</span></a></span>.</p>
<h3><strong><br />
Development Stage 1: Co-ordinating our efforts</strong></h3>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/"><img src="http://img.youtube.com/vi/X0oVxOZCPR8/2.jpg" alt="" /></a></span>
<p>First off, let&#8217;s take a look at the global vars we will use:</p>
<p><a href="http://buddhatron.files.wordpress.com/2012/01/coreglobals.png"><img class="alignnone size-full wp-image-685" title="core globals" src="http://buddhatron.files.wordpress.com/2012/01/coreglobals.png?w=497" alt=""   /></a><br />
This build will operate via chat commands by the owner through channel <em>cmdchannel</em>. Commands such as &#8216;compile&#8217; and &#8216;deploy&#8217;.<br />
<em>Line 1, datachannel</em> is the line of communication between the <span style="color:#ff6600;">core</span> and all other <span style="color:#ffff00;">segments</span>.<br />
While <em>segmentlist</em> will contain the names of all segments to be affected.</p>
<p><a href="http://buddhatron.files.wordpress.com/2012/01/segglobals.png"><img class="alignnone size-full wp-image-686" title="seg globals" src="http://buddhatron.files.wordpress.com/2012/01/segglobals.png?w=497" alt=""   /></a><br />
Here, we have 2 vectors, <em>whereibelong</em> and <em>howiamsupposedtobe</em>, which will represent <strong><span style="text-decoration:underline;">this</span> </strong><span style="color:#ffff00;">segment</span> object&#8217;s position and rotation (in Euler values) in relation to the <span style="color:#ff6600;">core</span> object.<br />
Line 2, <em>corename</em> is important, for we use a sensor which locates the core to do our operations.<br />
And you already know about <em>datachan</em>.</p>
<p>With these, we have the basis of coordinating one core and many segments together.<br />
The following lines explain the process.</p>
<p>It all begins when the Owner says &#8220;<em>compile</em>&#8220;.</p>
<p>Remember that the core name is important.<br />
<a href="http://buddhatron.files.wordpress.com/2012/01/corecompile.png"><img class="alignnone size-full wp-image-689" title="core compile 1" src="http://buddhatron.files.wordpress.com/2012/01/corecompile.png?w=497&#038;h=85" alt="" width="497" height="85" /><br />
</a>Speaking &#8220;<em>compile</em>&#8221; forwards the command to the <span style="color:#ffff00;">segments</span>, who do most of the work.</p>
<p><a href="http://buddhatron.files.wordpress.com/2012/01/segcompile1.png"><img class="alignnone size-full wp-image-690" title="seg compile 1" src="http://buddhatron.files.wordpress.com/2012/01/segcompile1.png?w=497" alt=""   /></a><br />
It is here that the <em>corename</em> is recorded for the following sensor search:<br />
<a href="http://buddhatron.files.wordpress.com/2012/01/segcompile2.png"><img class="alignnone size-full wp-image-691" title="seg compile 2" src="http://buddhatron.files.wordpress.com/2012/01/segcompile2.png?w=497&#038;h=134" alt="" width="497" height="134" /></a><br />
In this search, we figure out the <span style="color:#ff6600;">core</span>&#8216;s position and rotation (again, in Euler), from which we subtract the <span style="color:#ffff00;">segment</span> object&#8217;s position and rotation. This will give us the difference, which will ensure that however the core is oriented, the segments will align again properly.<br />
Now, if all this 3D mathmaticing intimidates you, there&#8217;s a great reading (albeit pretty long) on rotations in Second Life, and the difficulties and solutions.<br />
&gt;<a href="http://eowyn.bigpondhosting.com/SecondLife/SecondLife_WindMill_1.html">http://eowyn.bigpondhosting.com/SecondLife/SecondLife_WindMill_1.html</a></p>
<p><span style="text-decoration:underline;">Long, long, long, long story short in a few pointers:</span><br />
<strong>-</strong>Rotation +/- another rotation <strong><span style="text-decoration:underline;">must</span></strong> be done with two rotations converted to Euler (<a href="http://wiki.secondlife.com/wiki/LlRot2Euler">http://wiki.secondlife.com/wiki/LlRot2Euler</a>)<br />
And when you convert to Euler, don&#8217;t forget to use <strong>RAD_TO_DEG</strong>.<br />
ex: (euler)Rot1 + (euler)Rot2 = (euler)RotNew<br />
-When calculating a position in relation an object, we must not forget to multiply that pos vector by the rotation (<span style="text-decoration:underline;">not</span> as a Euler val, but as rotation) of the core object, in order to align its placement correctly. *This is will appear in the next stage when we deal with placement<br />
ex: CorePos &#8211; (MyPosOffset * CoreRot)</p>
<p>This actually concludes the first piece of logic. The core merely issues commands to the multiple segments involved, which all retain their own personal positions and rotations relative to the <span style="color:#ff6600;">core</span> object. The core also stores the names of these segments, for when after compiling has been completed, you may Take Copies of each <span style="color:#ffff00;">segment</span> and place them inside the <span style="color:#ff6600;">core</span> for quick deployment and positioning (what I like to call Build Blooming).</p>
<h3><strong><br />
Development Stage 2: Places, everyone!!</strong></h3>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/"><img src="http://img.youtube.com/vi/SCYe77A4aWs/2.jpg" alt="" /></a></span>
<p>This is the fun part; watching everything reposition itself when the core is moved or rotated.</p>
<p>We begin with 2 possible initiators of the &#8220;<em>reorient</em>&#8221; command. Unfortunately, there&#8217;s no way in LSL (perhaps only of which I know) to merge handlers for an object having been moved and/or rotated into one, so we&#8217;ll have to make due (though it is a little unsightly).</p>
<p><a href="http://buddhatron.files.wordpress.com/2012/01/corereorient.png"><img class="alignnone size-full wp-image-695" title="core reorient" src="http://buddhatron.files.wordpress.com/2012/01/corereorient.png?w=497" alt=""   /></a><br />
The timer event weighs the last recorded changed rotation, <em>lastrot</em> which is declared globally, and the current rotation, to see if there was a change. And if there was, go ahead and reorient.<br />
The moving_end event is a straightforward LSL event triggered by, you guessed it, moving the object.</p>
<p><a href="http://buddhatron.files.wordpress.com/2012/01/segreorient.png"><img class="alignnone size-full wp-image-696" title="seg reorient 1" src="http://buddhatron.files.wordpress.com/2012/01/segreorient.png?w=497" alt=""   /></a><br />
A line in the listener sends the script into state <em>orientmode</em> when the proper command is heard.<br />
<a href="http://buddhatron.files.wordpress.com/2012/01/segreorient21.png"><img class="alignnone size-full wp-image-698" title="seg reorient 2" src="http://buddhatron.files.wordpress.com/2012/01/segreorient21.png?w=497&#038;h=143" alt="" width="497" height="143" /></a><br />
Once again, the sensor is key to working with wherever the core has been moved. Again, we detect its pos and rot, and apply the offsets saved; <em>whereibelong</em> and <em>howiamsupposedtobe</em> to get our new placements.<br />
This is where NewPos = CorePos &#8211; (MyPosOffset * CoreRot) comes into play.</p>
<h3><strong><br />
Development Stage 3: Destroy &amp; Deploy</strong></h3>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/"><img src="http://img.youtube.com/vi/qtyolmhQpSY/2.jpg" alt="" /></a></span>
<p>When you&#8217;re sure all <span style="color:#ffff00;">segments</span> have been injected with the <span style="color:#ffff00;">seg</span> scripts, that compilation works flawlessly, and everything is where it needs to be, you are free to Take or Take Copy of each segment and place it into the <span style="color:#ff6600;">core</span> for Rezzing.</p>
<p>Scripting this part is easy peasy by now. Just a looped llRezObject sequence through our list of names stored in <span style="color:#ff6600;">core</span>.</p>
<p>Command: &#8220;<em>deploy</em>&#8221; in the <em>cmdchannel</em><a href="http://buddhatron.files.wordpress.com/2012/01/coredeploy1.png"><br />
<img class="alignnone size-full wp-image-700" title="core deploy" src="http://buddhatron.files.wordpress.com/2012/01/coredeploy1.png?w=497&#038;h=75" alt="" width="497" height="75" /></a><br />
For each name in our segment list, poop it out. Wait half a second, then order everyone into position.</p>
<h3><strong><br />
Huzzah!!</strong></h3>
<p>Now I&#8217;m modularizing freaking everything.</p>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/"><img src="http://img.youtube.com/vi/Zk13pxnDee8/2.jpg" alt="" /></a></span>
<h5><strong><span style="text-decoration:underline;"><span style="color:#993366;text-decoration:underline;">*Current known bugs</span><br />
</span></strong>-the<em> moved_end</em> event does not always fire for some raisin<br />
-the core <span style="text-decoration:underline;"><strong>must</strong></span> be at an angle of &lt;0,0,0&gt;, or will skew all placement<br />
-segments originally placed at certain angles are also prone to skewing</h5>
<h5><span style="text-decoration:underline;color:#99ccff;"><strong>*To-be-updated list</strong></span><br />
-intelligent interaction between multiple cores (subcores)<br />
-chained rotation for subcores</h5>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/382/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/382/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/382/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=382&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2012/01/19/deployment-and-such/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/coreglobals.png" medium="image">
			<media:title type="html">core globals</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/segglobals.png" medium="image">
			<media:title type="html">seg globals</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/corecompile.png" medium="image">
			<media:title type="html">core compile 1</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/segcompile1.png" medium="image">
			<media:title type="html">seg compile 1</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/segcompile2.png" medium="image">
			<media:title type="html">seg compile 2</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/corereorient.png" medium="image">
			<media:title type="html">core reorient</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/segreorient.png" medium="image">
			<media:title type="html">seg reorient 1</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/segreorient21.png" medium="image">
			<media:title type="html">seg reorient 2</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2012/01/coredeploy1.png" medium="image">
			<media:title type="html">core deploy</media:title>
		</media:content>
	</item>
		<item>
		<title>Let&#8217;s make a HUD &#8211; pt.2 &#8211; Fun with essentials</title>
		<link>http://buddhatron.wordpress.com/2011/10/11/aggrohudpt2/</link>
		<comments>http://buddhatron.wordpress.com/2011/10/11/aggrohudpt2/#comments</comments>
		<pubDate>Tue, 11 Oct 2011 07:28:34 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[AggroHUD]]></category>
		<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[aggro]]></category>
		<category><![CDATA[ball]]></category>
		<category><![CDATA[bounce]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[grief]]></category>
		<category><![CDATA[hud]]></category>
		<category><![CDATA[lol]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[noclip]]></category>
		<category><![CDATA[npv]]></category>
		<category><![CDATA[platform]]></category>
		<category><![CDATA[prim launcher]]></category>
		<category><![CDATA[radar]]></category>
		<category><![CDATA[sandbox]]></category>
		<category><![CDATA[script]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=565</guid>
		<description><![CDATA[Time to Level Up our Toolkit. Here we go!! Let&#8217;s start with renaming+shortening some global variables we&#8217;re going to be using often in the course of this HUD&#8217;s existence. You should also note that the listen event is now split into 2 sections, the mode-changer section, where a command should change the behaviour of clicking the [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=565&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3>Time to Level Up our Toolkit.</h3>
<p>Here we go!!</p>
<p>Let&#8217;s start with renaming+shortening some global variables we&#8217;re going to be using often in the course of this HUD&#8217;s existence.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/conciseglobals.png"><img class="alignnone size-full wp-image-636" title="concise globals" src="http://buddhatron.files.wordpress.com/2011/10/conciseglobals.png?w=497" alt=""   /></a></p>
<p>You should also note that the <em>listen</em> event is now split into 2 sections, the mode-changer section, where a command should change the behaviour of clicking the <em>Mother</em> prim of the HUD; and object rezzer section, where a command will spawn a tool when needed.</p>
<p>Now we can start. &gt;:]</p>
<h3><strong><br />
Quick-Access Necessities</strong></h3>
<p>Too often do I see people who are forced to spawn a platform on the ground (or any kind of upward-facing surface), simply because it&#8217;s the only way to get something out of inventory &#8212; and who then have to sit on it and send it up into the sky using manual coordinate entry.<br />
The task of describing that entire process in a sentence alone was more of a hassle than I dare accept.</p>
<p><strong>Why not&#8230;</strong></p>
<p>un-complicate the entire procedure by flying freely up to any particular point in a vast and empty sky, type in a short command, and press Stop Flying as you land on the platform directly at your feet?</p>
<p>In the name of Great Logic, let&#8217;s learn to do that.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/ohlookaplatform.png"><img class="size-full wp-image-609 alignleft" title="oh look a platform!" src="http://buddhatron.files.wordpress.com/2011/10/ohlookaplatform.png?w=497" alt=""   /></a>If you have a platform you already like to use, go ahead and toss it into the AggroHUD content section.<br />
Me, I use a plain old flattened box, which I call &#8220;platfrm&#8221;.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/ohlookasandbox.png"><img class="alignright size-full wp-image-610" title="oh look a sandbox!" src="http://buddhatron.files.wordpress.com/2011/10/ohlookasandbox.png?w=497" alt=""   /></a></p>
<p>I also use a short walled alternative for when I&#8217;m playing with physical stuff I don&#8217;t want to fall out of my little playground. Name: &#8220;sandbx&#8221;.</p>
<p>Here&#8217;s the simple rez call required to make floating girders possible:<br />
<a href="http://buddhatron.files.wordpress.com/2011/10/rezflats.png"><img class="alignnone size-full wp-image-635" title="0 grav girders in the sky" src="http://buddhatron.files.wordpress.com/2011/10/rezflats.png?w=497&#038;h=69" alt="" width="497" height="69" /></a><em>/13 plat</em> = rez platfrm<br />
<em>/13 sand</em> = rez sandbx</p>
<p>Now, building castles in the sky doesn&#8217;t have to be the logistical nightmare it imposed us these last few millennia.</p>
<h3><span class="Apple-style-span" style="font-size:15px;font-weight:bold;"><strong><br />
Weaseling your way out of anything</strong></span></h3>
<p>Equally necessary for an acolyte of havoc is the ability to get out of havoc.</p>
<p>If you&#8217;re being knocked around by hooligans shelling you with prop launchers (ie: see <a href="http://buddhatron.wordpress.com/2011/08/22/aggrohudpt1/" target="_blank">Lesson 1</a>), or are being attacked by a rogue Goku with a sim-shaking Spirit Bomb, or got hit by the classic &#8220;noobRape Gun&#8221;; there is no time to waste in getting a defense set up.</p>
<p>I like to use&#8230; <a href="http://en.wikipedia.org/wiki/Noclip_mode" target="_blank">No Muthaf&amp;(*ing Clip</a><strong>.</strong></p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/noclip.png"><img class="alignnone size-full wp-image-637" title="PHASE WARP" src="http://buddhatron.files.wordpress.com/2011/10/noclip.png?w=497&#038;h=32" alt="" width="497" height="32" /></a><br />
<em>/13 noclip</em> = rez npv</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/helluuu.gif"><img class="size-full wp-image-648 alignright" title="why hello there" src="http://buddhatron.files.wordpress.com/2011/10/helluuu.gif?w=497" alt=""   /></a>Trip out your enemies and laugh in the face of their uberpush lazors.<br />
Startle even the most elite ninjas with mad silence.<br />
Doors? What the hell are those?<br />
Weasel out of anything while riding an NPV (Non Physical Vehicle).</p>
<p>Now, how an NPV works is simply by making a prim (it doesn&#8217;t matter what kind) rideable, that is, give it a SitTarget, turn it phantom, and give it movement control overrides with <a href="http://wiki.secondlife.com/wiki/Control" target="_blank"><em>control</em></a> event handling.<br />
Oh yeah, also make it invisible.</p>
<p>I use an <span style="color:#99cc00;"><a href="http://pastebin.com/akNFKd2C" target="_blank"><span style="color:#99cc00;">open-source NPV</span></a></span> for the <em>npv</em> object, originally made by one very generous and very talented <a href="https://marketplace.secondlife.com/stores/60285" target="_blank">Crooked Shim</a>, who also puts his scripts up for free sharing.</p>
<p>Credit to this part of the lesson, and the HUD, goes to him. I&#8217;m just deploying his work.</p>
<h3><strong><br />
Omniscience</strong></h3>
<p><strong></strong><strong><span style="color:#ff6600;">If you use <span style="color:#ff0000;"><a href="http://www.phoenixviewer.com/" target="_blank"><span style="color:#ff0000;">Phoenix Viewer</span></a></span> and/or (I think) Firestorm Viewer</span></strong>, you may go ahead and add my <span style="color:#99cc00;"><a href="http://pastebin.com/ZCCSHc9K" target="_blank"><span style="color:#99cc00;">Phx Radar bridge</span></a></span> script right into the HUD.<br />
Check out the <a href="http://buddhatron.wordpress.com/2011/09/10/rproject1/" target="_blank">lesson</a> on the radar&#8217;s script if you&#8217;re just tuning in.</p>
<h3><strong><br />
The Final Must-Have&#8230;</strong></h3>
<p><strong></strong><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">Childishness.<br />
<a href="http://buddhatron.files.wordpress.com/2011/10/bleuuuugh.gif"><img class="alignnone size-full wp-image-624" title="ball vomit" src="http://buddhatron.files.wordpress.com/2011/10/bleuuuugh.gif?w=497" alt=""  /></a>  <a href="http://buddhatron.files.wordpress.com/2011/10/boing.gif"><img class="alignnone size-full wp-image-625" title="ball moshpit" src="http://buddhatron.files.wordpress.com/2011/10/boing.gif?w=497" alt=""  /></a></span></p>
<p><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">I&#8217;ll go over the mechanics of the balls some other time.<br />
For now, just make a small sphere and give it the <span style="text-decoration:underline;"><em><strong>both</strong></em></span> the <span style="color:#99cc00;"><a href="http://pastebin.com/u575X5Pw" target="_blank"><span style="color:#99cc00;">swarm bounce script</span></a></span> <span style="text-decoration:underline;"><em><strong>and</strong></em></span> the <span style="color:#99cc00;"><a href="http://pastebin.com/SHbjJQLH" target="_blank"><span style="color:#99cc00;">killscript</span></a></span> (to save you the pain of cleaning up after yourself).<br />
</span><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">Insert the ball into the HUD contents.</span></p>
<p>To briefly go over the play-by-play in calling these things out:</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/callball.png"><img class="alignnone size-full wp-image-632" title="ball call" src="http://buddhatron.files.wordpress.com/2011/10/callball.png?w=497" alt=""   /><br />
</a><em>/13 ball</em><br />
sets the mode to spawn balls by the multitude.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/ballcoordination.png"><img class="alignnone size-full wp-image-633" title="ball coordination" src="http://buddhatron.files.wordpress.com/2011/10/ballcoordination.png?w=497&#038;h=103" alt="" width="497" height="103" /><br />
</a>On touching our <em>Mother</em> button of the HUD, balls will be birthed continuously for as long as we hold down the click.<br />
But the balls need to know where to be spawned. I use my own position, and spread it out with randomized floats.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/ballcoloration.png"><img class="alignnone size-full wp-image-634" title="ball coloration" src="http://buddhatron.files.wordpress.com/2011/10/ballcoloration.png?w=497&#038;h=86" alt="" width="497" height="86" /><br />
</a><em>Variety is the spice of life.</em> So I like to randomize the ball colours too, just as they spawn. First a value is decided, then the ball is rezzed, then transmit its RBG value via a random channel associated to that one ball (for each one).</p>
<h3><strong>Alright, let&#8217;s recap.</strong></h3>
<p>Mix all following ingredients together:</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/ball.png"><img class="alignnone size-full wp-image-638" title="ball" src="http://buddhatron.files.wordpress.com/2011/10/ball.png?w=497" alt=""  /></a><a href="http://buddhatron.files.wordpress.com/2011/10/dissed.png"><img class="alignnone size-full wp-image-639" title="dissed" src="http://buddhatron.files.wordpress.com/2011/10/dissed.png?w=497" alt=""  /></a><a href="http://buddhatron.files.wordpress.com/2011/10/npv.png"><img class="alignnone size-full wp-image-640" title="npv" src="http://buddhatron.files.wordpress.com/2011/10/npv.png?w=497" alt=""  /></a><a href="http://buddhatron.files.wordpress.com/2011/10/plat.png"><img class="alignnone size-full wp-image-641" title="platfrm" src="http://buddhatron.files.wordpress.com/2011/10/plat.png?w=497" alt=""  /></a><a href="http://buddhatron.files.wordpress.com/2011/10/sandbx.png"><img class="alignnone size-full wp-image-642" title="sandbx" src="http://buddhatron.files.wordpress.com/2011/10/sandbx.png?w=497" alt=""  /></a></p>
<p>Plus <span style="color:#99cc00;"><a href="http://pastebin.com/q098dTZ6" target="_blank"><span style="color:#99cc00;">AggroHUD lesson 2</span></a></span>,<br />
to get a grand total of:</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/10/aggrohudlab2.png"><img class="alignnone size-full wp-image-644" title="aggrohud lab 2" src="http://buddhatron.files.wordpress.com/2011/10/aggrohudlab2.png?w=497" alt=""   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/565/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/565/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/565/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=565&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/10/11/aggrohudpt2/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/conciseglobals.png" medium="image">
			<media:title type="html">concise globals</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/ohlookaplatform.png" medium="image">
			<media:title type="html">oh look a platform!</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/ohlookasandbox.png" medium="image">
			<media:title type="html">oh look a sandbox!</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/rezflats.png" medium="image">
			<media:title type="html">0 grav girders in the sky</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/noclip.png" medium="image">
			<media:title type="html">PHASE WARP</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/helluuu.gif" medium="image">
			<media:title type="html">why hello there</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/bleuuuugh.gif" medium="image">
			<media:title type="html">ball vomit</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/boing.gif" medium="image">
			<media:title type="html">ball moshpit</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/callball.png" medium="image">
			<media:title type="html">ball call</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/ballcoordination.png" medium="image">
			<media:title type="html">ball coordination</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/ballcoloration.png" medium="image">
			<media:title type="html">ball coloration</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/ball.png" medium="image">
			<media:title type="html">ball</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/dissed.png" medium="image">
			<media:title type="html">dissed</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/npv.png" medium="image">
			<media:title type="html">npv</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/plat.png" medium="image">
			<media:title type="html">platfrm</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/sandbx.png" medium="image">
			<media:title type="html">sandbx</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/10/aggrohudlab2.png" medium="image">
			<media:title type="html">aggrohud lab 2</media:title>
		</media:content>
	</item>
		<item>
		<title>Target in range. Avatar located: locking coordinates&#8230; Engage. Engage.</title>
		<link>http://buddhatron.wordpress.com/2011/09/26/targeting/</link>
		<comments>http://buddhatron.wordpress.com/2011/09/26/targeting/#comments</comments>
		<pubDate>Mon, 26 Sep 2011 08:01:49 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[avatar]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[keys]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[lllist2key]]></category>
		<category><![CDATA[lllistfindlist]]></category>
		<category><![CDATA[llsensor]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[phoenix radar]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[select]]></category>
		<category><![CDATA[system]]></category>
		<category><![CDATA[target avatar]]></category>
		<category><![CDATA[targeting]]></category>
		<category><![CDATA[tutorial]]></category>
		<category><![CDATA[UUID]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=461</guid>
		<description><![CDATA[You. *points* It&#8217;s time to start talking about targeting systems. A good targeter script is like a fine broth. Quite simply, it is among a chef&#8217;s best of friends. Starting with this basic ingredient, you&#8217;re open to a great landscape of cooking possibilities. In this same respect, knowing who you want to engage and where [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=461&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><strong>You. *points*</strong></h3>
<p>It&#8217;s time to start talking about targeting systems.<a href="http://buddhatron.files.wordpress.com/2011/09/dot.jpg"><img class="alignright size-full wp-image-567" title="avatar target" src="http://buddhatron.files.wordpress.com/2011/09/dot.jpg?w=497" alt=""   /></a></p>
<p>A good targeter script is like a fine broth. Quite simply, it is among a chef&#8217;s best of friends. Starting with this basic ingredient, you&#8217;re open to a great landscape of cooking possibilities. In this same respect, knowing who you want to engage and where they are becomes a great asset in whatever technowizardry with which you occupy yourself (in this case, SL programming).</p>
<p>In this article, I will be taking you through a few different ways to pick someone out of a crowd. What you do with them is up to you.</p>
<h3><span style="text-decoration:underline;"><br />
MK.I &#8211; Minimalist</span></h3>
<p>In this <span style="color:#99cc00;"><a href="http://pastebin.com/cnd2bvTt" target="_blank"><span style="color:#99cc00;">simple version</span></a></span> that I like to use for speedy picks, a single sensor pulse is sent out to farm up a list of avatar names and keys.</p>
<p><span style="color:#00ffff;">Pros: simple as hell, fast selection, reliable.</span><br />
<span style="color:#ff0000;">Cons: the use of llSensor means that we rely on a scan range around a single point in the map to sniff for avatars.</span></p>
<p><strong>Breakdown:<br />
</strong>This targeter will scan the area within the desired range, gather a list of avatars, and index them. This means that the closest person, say Denzel Washington, will be index 1, and then Wesley Snipes, who is just behind him, will be 2, and so on&#8230;</p>
<blockquote><p>targeterMKI: 1-Denzel Washington<br />
targeterMKI: 2-Wesley Snipes<br />
targeterMKI: 3-Joe Rogan</p></blockquote>
<p>Now, making our target selection is easy. Speak into the chat channel, whichever you choose to use, the index of your target.</p>
<blockquote><p>example: /19 2</p></blockquote>
<p>will select Wesley.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/gvars1.png"><img class="alignnone size-full wp-image-507" title="g_vars" src="http://buddhatron.files.wordpress.com/2011/09/gvars1.png?w=497" alt=""   /><br />
</a>Global vars we&#8217;ll need</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/start.png"><img class="alignnone size-full wp-image-508" title="start" src="http://buddhatron.files.wordpress.com/2011/09/start.png?w=497" alt="" /><br />
</a>Touch to start having fun &gt;:]</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/compilelist.png"><img class="alignnone size-full wp-image-509" title="compile list" src="http://buddhatron.files.wordpress.com/2011/09/compilelist.png?w=497" alt=""   /><br />
</a>Now let&#8217;s build the list of targets, and display them with their indices.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/attack1.png"><img class="alignnone size-full wp-image-511" title="attack" src="http://buddhatron.files.wordpress.com/2011/09/attack1.png?w=497" alt=""   /></a><br />
The number spoken into channel 19 is stacked against our list of target keys.<br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlList2Key" target="_blank">llList2Key</a>(list src, integer index) </span></p>
<h3><span style="text-decoration:underline;"><strong><br />
MK.II &#8211; The Command Centre</strong></span></h3>
<p><span style="color:#99cc00;"><a href="http://pastebin.com/4vNbVHq3" target="_blank"><span style="color:#99cc00;">This</span></a></span> model, like the Minimalist version, uses a sensor to gather the list of potential targets.</p>
<p><span style="color:#00ffff;">Pros: fool-proof, looks professional</span><br />
<span style="color:#ff0000;">Cons: I&#8217;ll think of some later.</span></p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/gvars2.png"><img class="alignnone size-full wp-image-512" title="g_vars" src="http://buddhatron.files.wordpress.com/2011/09/gvars2.png?w=497" alt=""   /><br />
</a>New variable: list of target names.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/begin.png"><img class="alignnone size-full wp-image-513" title="begin" src="http://buddhatron.files.wordpress.com/2011/09/begin.png?w=497" alt=""   /></a><a href="http://buddhatron.files.wordpress.com/2011/09/gvars2.png"><br />
</a>Listener channel has been changed to -19. We will not be speaking to it manually anymore.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/compilelist1.png"><img class="alignnone size-full wp-image-514" title="compile list" src="http://buddhatron.files.wordpress.com/2011/09/compilelist1.png?w=497&#038;h=90" alt="" width="497" height="90" /></a><br />
Compilation is done with keys <span style="text-decoration:underline;">and</span> names.</p>
<p><img class="alignnone size-full wp-image-515" title="display targets" src="http://buddhatron.files.wordpress.com/2011/09/disptargets.png?w=497&#038;h=49" alt="" width="497" height="49" /><br />
The list will now display in a buttoned dialog box.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/attack2.png"><img class="alignnone size-full wp-image-516" title="attack" src="http://buddhatron.files.wordpress.com/2011/09/attack2.png?w=497" alt=""   /></a><br />
Our listener hears the name instead of the index, so this name&#8217;s position in the names list is what we use to weigh against our list of keys.<br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlListFindList" target="_blank">llListFindList</a>(list src, list find)</span></p>
<h3><span style="text-decoration:underline;"><strong><br />
MK.III &#8211; The Seer</strong></span></h3>
<p><span style="color:#99cc00;"><a href="http://pastebin.com/HkeQMpVi" target="_blank"><span style="color:#99cc00;">This</span></a></span> time around, we&#8217;ll make use of the Phoenix Radar bridge of a <a href="http://buddhatron.wordpress.com/2011/09/10/rproject1/" target="_blank">previous post</a>, instead of a sensor. This allows for targeting of anyone anywhere (in the sim), as opposed to whoever is near the object wherever it spawns.</p>
<p>To understand this script fully, please refer back to the post on the radar bridge itself.</p>
<p><span style="color:#00ffff;">Pros: range no longer an issue, easy selection, distance between is shown</span><br />
<span style="color:#ff0000;">Cons: slightly complex in nature, took a long-ass time to learn, may be prone to special case bugs if unhandled</span></p>
<p>There was actually little that needed to be added to the bridge script to make it a targeting system:</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/gvar1.png"><img class="alignnone size-full wp-image-533" title="g_var: noobnames" src="http://buddhatron.files.wordpress.com/2011/09/gvar1.png?w=497" alt=""   /></a><br />
A new global list containing the names of our keys.<br />
<a href="http://buddhatron.files.wordpress.com/2011/09/updatenames.png"><img class="alignnone size-full wp-image-534" title="update names" src="http://buddhatron.files.wordpress.com/2011/09/updatenames.png?w=497" alt=""   /></a></p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/choosewisely.png"><img class="alignnone size-full wp-image-536" title="choose wisely" src="http://buddhatron.files.wordpress.com/2011/09/choosewisely.png?w=497&#038;h=56" alt="" width="497" height="56" /><br />
</a>A dialog box containing these names for selection.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/gotcha.png"><img class="alignnone size-full wp-image-535" title="gotcha" src="http://buddhatron.files.wordpress.com/2011/09/gotcha.png?w=497&#038;h=105" alt="" width="497" height="105" /></a><br />
And finally, a listener to the channel -19.</p>
<h3><strong><br />
Where to go from there</strong></h3>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/gotcha1.png"><img class="size-full wp-image-537 alignright" title="your soul is mine" src="http://buddhatron.files.wordpress.com/2011/09/gotcha1.png?w=497" alt=""   /></a></p>
<p>Is your call beyond this point.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/461/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/461/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/461/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=461&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/09/26/targeting/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/dot.jpg" medium="image">
			<media:title type="html">avatar target</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/gvars1.png" medium="image">
			<media:title type="html">g_vars</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/start.png" medium="image">
			<media:title type="html">start</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/compilelist.png" medium="image">
			<media:title type="html">compile list</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/attack1.png" medium="image">
			<media:title type="html">attack</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/gvars2.png" medium="image">
			<media:title type="html">g_vars</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/begin.png" medium="image">
			<media:title type="html">begin</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/compilelist1.png" medium="image">
			<media:title type="html">compile list</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/disptargets.png" medium="image">
			<media:title type="html">display targets</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/attack2.png" medium="image">
			<media:title type="html">attack</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/gvar1.png" medium="image">
			<media:title type="html">g_var: noobnames</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/updatenames.png" medium="image">
			<media:title type="html">update names</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/choosewisely.png" medium="image">
			<media:title type="html">choose wisely</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/gotcha.png" medium="image">
			<media:title type="html">gotcha</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/gotcha1.png" medium="image">
			<media:title type="html">your soul is mine</media:title>
		</media:content>
	</item>
		<item>
		<title>Research Project 1: Phoenix Viewer Radar feed</title>
		<link>http://buddhatron.wordpress.com/2011/09/10/rproject1/</link>
		<comments>http://buddhatron.wordpress.com/2011/09/10/rproject1/#comments</comments>
		<pubDate>Sat, 10 Sep 2011 19:05:02 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[Research Projects]]></category>
		<category><![CDATA[avatar]]></category>
		<category><![CDATA[feed]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[list]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[phoenix viewer]]></category>
		<category><![CDATA[radar]]></category>
		<category><![CDATA[research project]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=470</guid>
		<description><![CDATA[I like to know what I&#8217;m walking into as often as I can. So a radar that lists me all avatars in a region, along with their distance from me is a great way of discreetly keeping an eye on what I can&#8217;t always see; from people trying to be sneaky to those teleporting up/down&#38;across [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=470&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I like to know what I&#8217;m walking into as often as I can.<a href="http://images.wikia.com/funorb/images/0/06/Radar_Dish.PNG"><img class="alignright" title="radar" src="http://images.wikia.com/funorb/images/0/06/Radar_Dish.PNG" alt="" width="128" height="128" /></a><br />
So a radar that lists me all avatars in a region, along with their distance from me is a great way of discreetly keeping an eye on what I can&#8217;t always see; from people trying to be sneaky to those teleporting up/down&amp;across the map.</p>
<p>But the obstacle in the face of accomplishing this in LSL is a formidable one;<br />
<span style="text-decoration:underline;">scanners only work in spheres</span>.<br />
A)  To scan an entire sim, we would need to deploy multiple drones that spread out and zoom up and down the map to give us updates, which is resource-expensive.<br />
B)  llSensor/llSensorRepeat can already be rather heavy in processing demand, especially for wider radii and fast repeat succession.<br />
C) All in all, a good radar system is hard to make low in lag. There is just a lot going on in trying to see the whole sim&#8217;s activity.</p>
<h3><strong>Well, take a gander at this \/</strong></h3>
<p>The concept of Phoenix Viewer&#8217;s radar feed is actually really simple.<br />
Getting it, however, without any walkthroughs and very little documentation on tapping into the radar, took some time and mistake-making to understand.<br />
But there are three key components to this bridge:<br />
1) Opening ears to the feed<br />
2) Organizing the feed into workable values<br />
3) Creating/updating the avatar list</p>
<p><span style="color:#333399;">*note* read before moving on</span> &gt; <a href="http://wiki.phoenixviewer.com/doku.php?id=avatar_list_radar">http://wiki.phoenixviewer.com/doku.php?id=avatar_list_radar</a><br />
and pay heed to the section near the bottom of the page marked Options Tab about Announcing Keys to HUD.</p>
<p>So, we begin with easy-peasy-lemon-squeezy piece #1:</p>
<h3><strong>llListen(-777777777,&#8221;",&#8221;",&#8221;"); </strong></h3>
<p>Phoenix Viewer uses a system of 3 pieces of information stuffed together and separated by commas, which is broadcasted anytime an avatar leaves or enters the sim. You will know which is the case by the second value separated by commas, an integer indicator which is 0 for an exit notification, and 1 or greater for an entry. The third segment will be our one or more keys, also separated by commas. The first value in the feed, however, is still a complete mystery to me.</p>
<p>So we might see something like:<br />
<a href="http://buddhatron.files.wordpress.com/2011/09/phxradarfeed1.png"><img class="alignnone size-full wp-image-476" title="phxradarfeed" src="http://buddhatron.files.wordpress.com/2011/09/phxradarfeed1.png?w=497&#038;h=36" alt="" width="497" height="36" /><br />
</a>This raw stream is of little use as is. We&#8217;re compiling keys, so that we can extract the names and distance from our avatar.</p>
<p>Ideally, we want to take</p>
<blockquote><p>7256,4,b2d574b8-b293-4d0d-xxxx-a236367523fb,8277ec64-d8e1-4e23-xxxx-52bcdba0e33b,30db3442-0d5d-40e2-xxxx-d345279bec23,77f43037-6edb-44ae-xxxx-816f7b48333c</p></blockquote>
<p>and compile it into a list like so:</p>
<blockquote><p>7256<br />
4<br />
b2d574b8-b293-4d0d-xxxx-a236367523fb<br />
8277ec64-d8e1-4e23-xxxx-52bcdba0e33b<br />
30db3442-0d5d-40e2-xxxx-d345279bec23<br />
77f43037-6edb-44ae-xxxx-816f7b48333c</p></blockquote>
<p>This, too, is a one-liner of code to accomplish.<br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlParseString2List" target="_blank">llParseString2List</a>(string src, list separators, list spacers); </span></p>
<p>7256 means&#8230; I dunno.<br />
4, being a positive number, tells us that we have 4 keys to add to the list.<br />
Then we have the keys themselves.</p>
<p>If we were to see:</p>
<blockquote><p>27338,0,8277ec64-d8e1-4e23-xxxx-52bcdba0e33b</p></blockquote>
<p>It would mean that our buddy #2 has left, thus to remove this key from the Is Present list.</p>
<p>On occasion, we cannot wait for a person to exit/enter the sim to get an update, for we may have just entered ourselves. llTriggerSound the UUID: 76c78607-93f9-f55a-5238-e19b1a181389 to force a refresh of the feed.<br />
<span style="color:#333399;">(Currently, there is a bug in the functioning of the sound-triggered update. See </span><a href="http://jira.phoenixviewer.com/browse/PHOE-1023">http://jira.phoenixviewer.com/browse/PHOE-1023</a><span style="color:#333399;"> for info)<br />
</span><span class="Apple-style-span" style="color:#339966;">*Update* bug resolved!* llTriggerSound of the key above works again.<br />
<span style="color:#008080;">But mind you, it is TriggerSound, not PlaySound. I&#8217;m not sure of the reason why, but I had to learn it the hard way. May have something to do with the fact of one making the sound attached to the object, and the other not.<br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlTriggerSound" target="_blank">llTriggerSound</a>(string sound, float vol); </span><br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlPlaySound" target="_blank">llPlaySound</a>(string sound, float vol); </span></span></span></p>
<h3>Let&#8217;s Bridge already!</h3>
<h3><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">Alright, I&#8217;ve talked enough. Get the <span style="color:#99cc00;"><a href="http://pastebin.com/ZCCSHc9K" target="_blank"><span style="color:#99cc00;">Phx Radar Bridge</span></a></span> script and follow along.</span></h3>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/gvar.png"><img class="alignnone size-full wp-image-522" title="g_var: noobkeys" src="http://buddhatron.files.wordpress.com/2011/09/gvar.png?w=497" alt=""   /><br />
</a>The very focal point of this script. The sacred list.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/startyourrengines.png"><img class="alignnone size-full wp-image-523" title="starting engines" src="http://buddhatron.files.wordpress.com/2011/09/startyourrengines.png?w=497&#038;h=42" alt="" width="497" height="42" /><br />
</a>No need to re-explain, but this is where it all begins.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/processdata.png"><img class="alignnone size-full wp-image-524" title="digesting the radar feed" src="http://buddhatron.files.wordpress.com/2011/09/processdata.png?w=497" alt=""   /><br />
</a>When a string of radar feed comes in, it is split into a flag and our keys [I simply extract the int flag and slice off all but the keys].</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/foreachkey.png"><img class="alignnone size-full wp-image-525" title="for each key heard" src="http://buddhatron.files.wordpress.com/2011/09/foreachkey.png?w=497&#038;h=56" alt="" width="497" height="56" /><br />
</a>For each key we hear in the feed, we want to check for its existence in the noob list already, to avoid overlap or removing things that don&#8217;t exist, and casually avoiding catastrophe.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/feedmenoobsandwich1.png"><img class="alignnone size-full wp-image-527" title="taking appropriate action" src="http://buddhatron.files.wordpress.com/2011/09/feedmenoobsandwich1.png?w=497&#038;h=82" alt="" width="497" height="82" /></a><br />
In laymans terms, it says that we&#8217;ll only add a key to the list if our <em>flag is a positive number</em>, if the key is <em>not already in the list</em>, and the key is <em>not our own</em>.<br />
To remove, the flag will be 0, and the key should already be in the list, and its index, the value of <em>nubFound, is positive</em>.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/displaylist.png"><img class="alignnone size-full wp-image-528" title="show me a bunch of noobs" src="http://buddhatron.files.wordpress.com/2011/09/displaylist.png?w=497&#038;h=119" alt="" width="497" height="119" /><br />
</a>Now, we get into displaying our list of unsuspecting suckers.<br />
Two things are retrieved using the key: the name and the world position, which is used in determining the distance between the both of you.<br />
Meanwhile, a multi-lined string is compiled as we go, and this shall be the display engine.</p>
<h3><strong>But wait, there&#8217;s more!!</strong></h3>
<p>Included in the package are a few Deluxe features.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/simcrossing.png"><img class="alignnone size-full wp-image-529" title="refresh" src="http://buddhatron.files.wordpress.com/2011/09/simcrossing.png?w=497" alt=""   /></a><br />
Sim crossing refreshing.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/09/keepmeposted1.png"><img class="alignnone size-full wp-image-531" title="keep me posted" src="http://buddhatron.files.wordpress.com/2011/09/keepmeposted1.png?w=497" alt=""   /></a><br />
Live updates on distance changes.</p>
<p>And by the end of it all, we find ourselves with something like this</p>
<p style="text-align:center;"><a href="http://buddhatron.files.wordpress.com/2011/09/phxdisp.png"><img class="size-full wp-image-481 aligncenter" title="phx-disp" src="http://buddhatron.files.wordpress.com/2011/09/phxdisp.png?w=497" alt=""   /></a></p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/470/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/470/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/470/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=470&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/09/10/rproject1/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://images.wikia.com/funorb/images/0/06/Radar_Dish.PNG" medium="image">
			<media:title type="html">radar</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/phxradarfeed1.png" medium="image">
			<media:title type="html">phxradarfeed</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/gvar.png" medium="image">
			<media:title type="html">g_var: noobkeys</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/startyourrengines.png" medium="image">
			<media:title type="html">starting engines</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/processdata.png" medium="image">
			<media:title type="html">digesting the radar feed</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/foreachkey.png" medium="image">
			<media:title type="html">for each key heard</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/feedmenoobsandwich1.png" medium="image">
			<media:title type="html">taking appropriate action</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/displaylist.png" medium="image">
			<media:title type="html">show me a bunch of noobs</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/simcrossing.png" medium="image">
			<media:title type="html">refresh</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/keepmeposted1.png" medium="image">
			<media:title type="html">keep me posted</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/09/phxdisp.png" medium="image">
			<media:title type="html">phx-disp</media:title>
		</media:content>
	</item>
		<item>
		<title>Graffiti with words</title>
		<link>http://buddhatron.wordpress.com/2011/08/23/towerchat/</link>
		<comments>http://buddhatron.wordpress.com/2011/08/23/towerchat/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 18:36:38 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[prim letters]]></category>
		<category><![CDATA[print]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[text]]></category>
		<category><![CDATA[towerchat]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=374</guid>
		<description><![CDATA[[CURRENTLY UNDERGOING UPDATES] &#160; Vandalism. We all know what it is. The world of second life is no different from the first one, where the classic saying rings true: &#8220;any freedom has the potential to be abused&#8221;. The total freedom of creation inherent to the metaverse means that there is very little you can&#8217;t create, which [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=374&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<h3><strong><span style="color:#ff0000;">[CURRENTLY UNDERGOING UPDATES]</span></strong></h3>
<p>&nbsp;</p>
<p>Vandalism.</p>
<p><a href="http://i56.tinypic.com/2wobrpy.png" target="_blank"><img class="alignright" title="dat beat" src="http://i51.tinypic.com/m0om0.gif" alt="" width="280" height="195" /></a>We all know what it is. The world of second life is no different from the first one, where the classic saying rings true: &#8220;any freedom has the potential to be abused&#8221;. The total freedom of creation inherent to the metaverse means that there is very little you can&#8217;t create, which as a result allows for lots of very strange and fascinating exploits. Vandalism comes in many forms, colours, intensities, and capacities for maliciousness. This one, however, is pretty benign by comparison. Well, at least in this version. &gt;:]</p>
<p>The main itch I wanted to scratch when coming up with this idea was the tragic impermanence of words in the world. If you want to post some kind of message or incoherent series of letters, you are pretty much forced to do so by uploading a texture with the printed text, which is intolerable for two reasons:<br />
1) it costs 10L$ per upload, and<br />
2) there is no capability for dynamic text changing whatsoever.</p>
<p>I don&#8217;t even need to tell you how much individual, non-free, static, manual uploads suck and blow at the same time.</p>
<h3><strong>And so, I unleash upon the world&#8230;<br />
the power of words!!</strong></h3>
<p><a href="http://i56.tinypic.com/25iutjl.png" target="_blank"><img class="alignnone size-medium wp-image-401" title="graf_002" src="http://buddhatron.files.wordpress.com/2011/08/graf_002.png?w=300&#038;h=237" alt="" width="300" height="237" /><br />
</a></p>
<h3><strong></strong><span class="Apple-style-span" style="font-size:13px;font-weight:normal;">(version 0.5)</span></h3>
<p>*Note: While the script is being shared, you will have to make your letters and characters yourself (which was the most tedious part of the whole process of inventing this), or for now until I release the char pack. In case you do wish to make your own letters (in whatever font you like), there are a few schemes to follow:</p>
<p>-Each letter, symbol, or general ASCII or even Unicode character you plan to use needs to have a sphere within it, made to be the root prim.<br />
-Each root sphere must be at the same rotation in relation to the the orientation of the letter/char object&#8217;s face side.<br />
-Each root must contain this <span style="color:#99cc00;"><a href="http://pastebin.com/ik6t7kWt" target="_blank"><span style="color:#99cc00;">character script</span></a></span>.<br />
-Name the object the char it represents (ie: &amp; char object is named &amp;)</p>
<p>The base object which will spew out prim text contains the <span style="color:#99cc00;"><a href="http://pastebin.com/KHDW7ctV" target="_blank"><span style="color:#99cc00;">typewriter script</span></a></span>.</p>
<p>At the molecular level, this script is ludicrously simple:<br />
Our typewriter thing will contain its single char-named objects, shaped like their letters (a, b, c, 1, &#8220;,&#8221;, &amp;, etc&#8230;).<br />
The script reads input text from our notecard, and reads one character at a time.<br />
The typewriter vomits a char object, having the same name as the raw char itself.<br />
Script moves its theoretical cursor over to plop down its next char in the text.</p>
<p>Pretty simple, yes? Indeed!</p>
<p>Just not so much when we get into dynamic text centering, and breaking up the lines when the string gets too long.</p>
<h3> <strong>But let&#8217;s get started.</strong></h3>
<p>Public distribution version: It accepts a notecard called &#8220;In&gt;&#8221;, and spews its contents. Some of the code I use to give it a slightly more playfully nefarious purpose is omitted for obvious reasons. &gt;;D</p>
<p>So, let&#8217;s start with initializing some variables.</p>
<p><img class="alignnone size-full wp-image-425" title="init" src="http://buddhatron.files.wordpress.com/2011/08/init1.png?w=497&#038;h=82" alt="startup vars" width="497" height="82" /><br />
The first lines look pretty self-explanatory. In line 2, the <em>charspace</em> variable controls how much space is provided for a letter, by moving the cursor when ready to print the next one. This variable is subject to change based on your own build.<br />
Line 3, <em>printcursor</em>, is going to be the vector position equivalent of our cursor; where to place a letter.<br />
Line 4, <em>InLn</em>, is the line of the notecard currently being read.<br />
Line 5, <em>query</em>, is the key of the notecard itself. Obviously necessary.</p>
<p><img class="alignnone size-full wp-image-428" title="initinit" src="http://buddhatron.files.wordpress.com/2011/08/initinit2.png?w=497&#038;h=71" alt="" width="497" height="71" /><br />
Before anything is done, we run the init function, which clears any characters (Ln8), resets our Notecard Line to 0 (Ln9), finds our key (Ln10), and opens a listener for owner commands (Ln11).<br />
<span style="color:#333399;">Ref lookup: <span style="color:#333399;"><a href="http://wiki.secondlife.com/wiki/LlGetNotecardLine" target="_blank">llGetNotecardLine</a></span>(string name, integer line) </span></p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/start.png"><img class="alignnone size-full wp-image-431" title="start" src="http://buddhatron.files.wordpress.com/2011/08/start.png?w=497" alt="beginread"   /><br />
</a>The next thing that happens after we <em>init()</em> is we begin to read the notecard, starting with InLn (which is 0 at the moment).<br />
We have our character string, the first line, and now we pass it to the <em>println</em> function to be typed out (Ln67). Increase our line reader index (Ln68), and do it again (once printing is finished, duh) (Ln69).</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/beginprint1.png"><img class="alignnone size-full wp-image-432" title="beginprint" src="http://buddhatron.files.wordpress.com/2011/08/beginprint1.png?w=497" alt="printing part 1"   /><br />
</a>First off, knowing the text line&#8217;s length is important. If it gets too long, then the cursor will go out so far that llRezObject just won&#8217;t work. llRezObject has to rez object within a certain vicinity of the rezzing object. It&#8217;s just how it rolls.<br />
In line 15, our printcursor vector decides it&#8217;s going to be 2 meters above the center of the writer obj.<br />
Then we convert our string to all lower case letters (because adding upper case would mean doubling the work, in my case).<br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlToLower" target="_blank">llToLower</a>(string src) </span></p>
<p>Let&#8217;s skip the segment of dynamic line-breaking for now and just continue with the printing process. We&#8217;ll get back to dealing with long lines of text.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/finallyprint1.png"><img class="alignnone size-full wp-image-437" title="finallyprint" src="http://buddhatron.files.wordpress.com/2011/08/finallyprint1.png?w=497&#038;h=86" alt="" width="497" height="86" /></a><br />
So to make the most of this limited space we have with an object spawning letters, we&#8217;re going to use a centered alignment. Halving the string length and multiplying it by the space-per-char, you get exactly that.<br />
Now, for each char, extract it from the string (Ln42), check to skip spaces and special chars not yet in the inventory (Ln43), rez (Ln44), and shift that cursor over 1 (45).<br />
<span style="color:#333399;">Ref lookup: <span style="color:#333399;"><a href="http://wiki.secondlife.com/wiki/LlGetSubString" target="_blank">llGetSubString</a></span>(string src, integer start, integer end)</span><br />
<span style="color:#333399;">Ref lookup: <span style="color:#333399;"><a href="http://wiki.secondlife.com/wiki/LlGetInventoryType" target="_blank">llGetInventoryType</a></span>(string name)</span></p>
<p>That covers the logical flow. But we still gotta account for a thick paragraph of unbroken text.</p>
<h3><strong>Contingency Plan Alpha</strong></h3>
<p>Now, the number I use as max chars per line is 30, but it is dependent on the size of the char and the cursor space size, so it is also bound to be different for whatever you make.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/conting1.png"><img class="alignnone size-full wp-image-438" title="conting1" src="http://buddhatron.files.wordpress.com/2011/08/conting1.png?w=497&#038;h=88" alt="contingency segment1" width="497" height="88" /><br />
</a>The variable <em>mult</em> will be the number of line segments we get when we get the <a href="http://en.wikipedia.org/wiki/Floor_and_ceiling_functions" target="_blank">ceiling</a> of our whole line length divided by the max char per line. With this, we can use simple centering again.<br />
<span style="color:#333399;">Ref lookup: <span style="color:#333399;"><a href="http://wiki.secondlife.com/wiki/LlCeil" target="_blank">llCeil</a></span>(float var) </span></p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/conting2.png"><img class="alignnone size-full wp-image-439" title="conting2" src="http://buddhatron.files.wordpress.com/2011/08/conting2.png?w=497&#038;h=92" alt="" width="497" height="92" /><br />
</a>Look familiar? Yep. Except, notice the last two lines here. Ln30 deletes the segment just printed from the whole of the string <em>line</em>, then we shorten the string length value <em>len</em> by 30 (Ln31).<br />
Next.<br />
<span style="color:#333399;">Ref lookup: <span style="color:#333399;"><a href="http://wiki.secondlife.com/wiki/LlGetInventoryType" target="_blank">llGetInventoryType</a></span>(string name)<br />
Ref lookup: <span style="color:#333399;"><a href="http://wiki.secondlife.com/wiki/LlDeleteSubString" target="_blank">llDeleteSubString</a></span>(string txt, integer start, integer end)</span></p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/conting3.png"><img class="alignnone size-full wp-image-440" title="conting3" src="http://buddhatron.files.wordpress.com/2011/08/conting3.png?w=497&#038;h=76" alt="" width="497" height="76" /><br />
</a>This line handles the <a href="http://dictionary.reference.com/browse/enjambment" target="_blank">enjambment</a> by appending a dash (-) to the 31st character (Ln33), calling a new line (Ln34), and resetting our cursor (Ln35) in readying for the next segment.</p>
<p>Alright, that&#8217;s everything. &lt;/anti_climactic_ending&gt;</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/374/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/374/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/374/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=374&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/08/23/towerchat/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://i51.tinypic.com/m0om0.gif" medium="image">
			<media:title type="html">dat beat</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/graf_002.png?w=300" medium="image">
			<media:title type="html">graf_002</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/init1.png" medium="image">
			<media:title type="html">init</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/initinit2.png" medium="image">
			<media:title type="html">initinit</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/start.png" medium="image">
			<media:title type="html">start</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/beginprint1.png" medium="image">
			<media:title type="html">beginprint</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/finallyprint1.png" medium="image">
			<media:title type="html">finallyprint</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/conting1.png" medium="image">
			<media:title type="html">conting1</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/conting2.png" medium="image">
			<media:title type="html">conting2</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/conting3.png" medium="image">
			<media:title type="html">conting3</media:title>
		</media:content>
	</item>
		<item>
		<title>Let&#8217;s make a HUD &#8211; pt.1</title>
		<link>http://buddhatron.wordpress.com/2011/08/22/aggrohudpt1/</link>
		<comments>http://buddhatron.wordpress.com/2011/08/22/aggrohudpt1/#comments</comments>
		<pubDate>Tue, 23 Aug 2011 04:43:57 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[AggroHUD]]></category>
		<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[aggro]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[grief]]></category>
		<category><![CDATA[hud]]></category>
		<category><![CDATA[lol]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=407</guid>
		<description><![CDATA[In the heat of battle, some gadgets need to be deployed quickly. None of that digging through inventory crap. So for a while now, I&#8217;ve been using a simple HUD (Heads Up Display) I made for exactly this purpose &#8211; to whip things out of my bag of tricks without letting a wizard dueling moment go [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=407&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p style="text-align:center;"><img class="aligncenter" title="back up, son" src="http://i51.tinypic.com/11v6xwm.gif" alt="" width="227" height="155" /></p>
<p style="text-align:left;">In the heat of battle, some gadgets need to be deployed quickly. None of that digging through inventory crap.</p>
<p style="text-align:left;">So for a while now, I&#8217;ve been using a simple HUD (Heads Up Display) I made for exactly this purpose &#8211; to whip things out of my bag of tricks without letting a wizard dueling moment go to waste.</p>
<p>So this will be the first post in an informative series of lessons on building  a simple battle HUD.</p>
<p>Its name? Let&#8217;s go with AggroHUD. &gt;:]</p>
<h3><strong><br />
AggroHUD &#8211; The Beginning.</strong></h3>
<blockquote><p><strong>Aggro</strong> is a jargon word in WoW, probably originally derived from the English words &#8220;aggravation&#8221; or &#8220;aggression&#8221;, and used since at least the 1960s in British slang. In MMORPGs, such as WoW, aggro denotes the aggressive interests of a monster/NPC.</p>
<p>Some examples are &#8220;We&#8217;ve got aggro!&#8221; and &#8220;Go aggro that monster&#8221;.</p>
<p>-<a href="http://www.wowwiki.com/Aggro">http://www.wowwiki.com/Aggro</a></p></blockquote>
<p>Yep.<br />
One would think it should be a good idea to write out some formal disclaimer segment notifying you that I am releasing toys of mayhem and annoyance, sure to be abused, for the sake of education only &#8211; but it&#8217;s not like doing so would have changed your mind if you were intending on doing so anyway. I&#8217;m not that talented a writer.</p>
<div>
<p>So without further horn-tooting, let&#8217;s do the deed.</p>
<p>Pushing; shoving; it happens. Push back, with a barrage of blocks.<br />
Messes. They can teach the overly-neat an important lesson. Make big messes with a barrage of blocks.</p>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/08/22/aggrohudpt1/"><img src="http://img.youtube.com/vi/tcVIkzop0Yc/2.jpg" alt="" /></a></span>
<div>
<div>This, my friends, is lesson 1.</div>
<h3><strong><br />
Start with two cups of fresh, pure evil</strong></h3>
<p><span style="text-decoration:underline;"><strong>Step 1</strong></span>: physically make the HUD.<br />
I use 2 prims, one in which I press to do things, and which will listen for commands and what not (which we shall call <strong><em>Mom</em></strong>) &#8211; and the other, which I press to quickly clear any objects I make with the killscript inside (which we shall call <strong><em>Dad</em></strong>). Dad has this <span style="color:#99cc00;"><a title="dad script" href="http://pastebin.com/pHqkrv1C"><span style="color:#99cc00;">infanticide script</span></a></span> contained in him.</p>
<p><span style="text-decoration:underline;"><strong>Step 2</strong></span>: gather your ingredients.<br />
Make a cube. Scale it up a little bit. Insert the <span style="color:#99cc00;"><a href="http://pastebin.com/SHbjJQLH"><span style="color:#99cc00;">deathscript</span></a></span>. Now multiply this cube so that it forms a 2x3x4 brick of blocks. Ah-ah! Don&#8217;t link them!<br />
Select all of them, and without releasing a single one so that it they don&#8217;t drop, set them all to physical. Now &#8216;take&#8217; them as a group of single prims. Name it something. I call it <em>dissed</em>.</p>
<p><span style="text-decoration:underline;"><strong>Step 3</strong></span>: let&#8217;s cook!<br />
Inseminate Mom with the <span style="color:#99cc00;"><a title="mom script" href="http://pastebin.com/B8duPSHJ"><span style="color:#99cc00;">birthing script</span></a></span>.</p>
<h3><strong><br />
The Chef&#8217;s Science</strong></h3>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/init.png"><img class="alignnone size-full wp-image-415" title="init" src="http://buddhatron.files.wordpress.com/2011/08/init.png?w=497" alt="initializ0rs"   /><br />
</a>Initializers; a flag called <em>mode</em> which will control the functions, and what results from touching the Mom button; and the channel which we use to change the mode via keywords.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/modeset.png"><img class="alignnone size-full wp-image-416" title="modeset" src="http://buddhatron.files.wordpress.com/2011/08/modeset.png?w=497" alt=""   /><br />
</a>In this first installment, we have one function so far, and this listener is pointless. Regardless, it is important as we&#8217;re going to use it plenty. It is the main segment which will be updated in every subsequent installment.<br />
Typing <em>/13 blox</em>  will set our mode to fire the barrage.</p>
<p><a href="http://buddhatron.files.wordpress.com/2011/08/brap1.png"><img class="alignnone size-full wp-image-418" title="brap" src="http://buddhatron.files.wordpress.com/2011/08/brap1.png?w=497&#038;h=105" alt="brap brap!" width="497" height="105" /></a><a href="http://buddhatron.files.wordpress.com/2011/08/brap.png"><br />
</a>To rez and fire off our toy, we need 3 properties: our avatar&#8217;s position in world coordinates, the velocity (which is also apparently the direction), and a rotation to apply to the rezed object upon creation.<br />
Line 9 computes our position, in addition to an offset which is also affected by the avatar&#8217;s rotation/look direction.<br />
Line 10 figures out the direction to shoot, while multiplying it by the speed at which you want to shoot it to create a velocity value.<br />
Line 11 is the orientation of our block of boxes. This is subject to change from what is shown depending on how you oriented your brick during creation.<br />
<span style="color:#333399;">Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlRot2Fwd" target="_blank">llRot2Fwd</a>(rotation rot)<br />
Ref lookup: <a href="http://wiki.secondlife.com/wiki/LlEuler2Rot" target="_blank">llEuler2Rot</a>(vector vec) </span></p>
<h3><strong><br />
Delicious.</strong></h3>
</div>
</div>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/407/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/407/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/407/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=407&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/08/22/aggrohudpt1/feed/</wfw:commentRss>
		<slash:comments>1</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://i51.tinypic.com/11v6xwm.gif" medium="image">
			<media:title type="html">back up, son</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/init.png" medium="image">
			<media:title type="html">init</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/modeset.png" medium="image">
			<media:title type="html">modeset</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/08/brap1.png" medium="image">
			<media:title type="html">brap</media:title>
		</media:content>
	</item>
		<item>
		<title>Miscellaneous Magnificent Magnum Opuses</title>
		<link>http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/</link>
		<comments>http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/#comments</comments>
		<pubDate>Sat, 02 Apr 2011 06:45:37 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[ghosting]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[motion capture]]></category>
		<category><![CDATA[parallex]]></category>
		<category><![CDATA[ray tracing]]></category>
		<category><![CDATA[raytracing]]></category>
		<category><![CDATA[realtime]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[shader]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=356</guid>
		<description><![CDATA[Today&#8217;s post is not about anything I&#8217;ve made, but some seriously breathtaking innovations done by others with/for Second Life. We all know how Youtube is great for insomnia, so I was browsing and absorbing for hours last night, learning about a couple of technologies which have blown my mind right out of its jar. Raytracing [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=356&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>Today&#8217;s post is not about anything I&#8217;ve made, but some seriously breathtaking innovations done by others with/for Second Life.</p>
<p>We all know how Youtube is great for insomnia, so I was browsing and absorbing for hours last night, learning about a couple of technologies which have blown my mind right out of its jar.</p>
<h3><strong>Raytracing</strong></h3>
<p><strong></strong><span style="font-size:13px;font-weight:normal;"><span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/"><img src="http://img.youtube.com/vi/faBLMrpS71A/2.jpg" alt="" /></a></span></span></p>
<p><span style="font-size:13px;font-weight:normal;">If you, like me until 20 hours ago, have no idea what Raytracing is, it is basically the simulating of real life light vectors. Light, which travels in a straight line rays, bounces off of objects and either illuminates or colours the surrounding environment in any given hue. Ray tracing in computer logic is based off this concept of light reflections in straight line vectors for the purpose of determining the reflective, illuminative, and light absorbent properties of an entire scene of objects on the fly. It is to be the advent of a new age in environmental advancements.</span></p>
<p>Intel Labs is doing some flabbergasting research on this technology. Check out some excellent informational vids on their work and how it works <a title="Intel Labs - Raytracing" href="http://www.youtube.com/watch?v=oei4GiEn71g" target="_blank">here</a> and <a title="Raytracing presentation" href="http://www.youtube.com/watch?v=hIdvJONFOVU" target="_blank">here</a>.</p>
<p>This <a href="http://www.foxular.net/raytracer/" target="_blank">Second Life raytracer</a> is no less astounding. It uses prims to take a screenshot of prims, then a canvas also made of prims to display the captured image.<br />
I know what you&#8217;re thinking. Wat. @__________@<br />
Hats off to Mr. <a href="http://www.foxular.net/" target="_blank">Foxular</a>. Hell of an invention.</p>
<h3><strong>Parallax Shading</strong></h3>
<p><strong></strong><span style="font-size:13px;font-weight:normal;"><span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/"><img src="http://img.youtube.com/vi/OqWSxvee_gw/2.jpg" alt="" /></a></span></span></p>
<p><span style="font-size:13px;font-weight:normal;">This confounds me beyond words.<br />
I&#8217;ve dabbled in heightmaps in one of my game programming classes, but not enough to understand any of this. But<a href="http://developer.valvesoftware.com/wiki/Parallax_mapping" target="_blank"> according</a> to the Valve dev community, it is apparently doable with some ease.<br />
But wait there&#8217;s <a href="http://www.youtube.com/watch?v=IXKZL8GfVmg" target="_blank">moar</a>, as if your jaw wasn&#8217;t open wide enough already.<br />
<span style="color:#008080;">*note* Both the Shader and the Ghost videos, are inventions of one incredibly innovative </span><a href="http://wiki.secondlife.com/wiki/User:Nexii_Malthus" target="_blank"><span style="color:#3366ff;">Nexii Malthus</span></a><span style="color:#008080;">, and were shot while using the Vertical Life (otherwise known as Combat Cubed) client for SL, which is built with a Script API not included in SL&#8217;s Viewer 2 which is needed to run them [I think]. VL/C3 itself is also partly [or wholly] a brainchild of Nexii.</span><br />
You earn yourself a wholehearted golf clap, sir. </span></p>
<h3><strong>Ghosting</strong></h3>
<p><strong></strong><span style="font-size:13px;font-weight:normal;"><span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/"><img src="http://img.youtube.com/vi/_zxU1khDXcU/2.jpg" alt="" /></a></span></span></p>
<p><span style="font-size:13px;font-weight:normal;">Using the API available only in VL/C3, this incredibly fascinating technology enables the user to draw an object across surfaces with apparent telekinesis (mouse positions across surfaces). This is an insanely fascinating challenge I will perhaps have to give a go at reverse engineering sometime.</span></p>
<p>Also check out <a href="http://www.youtube.com/watch?v=N-Qur11cvYQ" target="_blank">Tool.Path</a> to show this API in further use.</p>
<h3><strong>Realtime Full-Body Motion Streaming</strong></h3>
<h3><strong></strong><span style="font-size:13px;font-weight:normal;"><span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/"><img src="http://img.youtube.com/vi/NFBv_ypyhiA/2.jpg" alt="" /></a></span><br />
</span><span style="font-size:13px;font-weight:normal;">Holy flapcrackers.</span></h3>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/356/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/356/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/356/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=356&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/04/02/legendaryworksinsl/feed/</wfw:commentRss>
		<slash:comments>2</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>
	</item>
		<item>
		<title>Seek and ______</title>
		<link>http://buddhatron.wordpress.com/2011/03/31/avtracker/</link>
		<comments>http://buddhatron.wordpress.com/2011/03/31/avtracker/#comments</comments>
		<pubDate>Thu, 31 Mar 2011 17:44:12 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[follower]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[grief]]></category>
		<category><![CDATA[homing]]></category>
		<category><![CDATA[llmove]]></category>
		<category><![CDATA[llsensor]]></category>
		<category><![CDATA[llsetprimitiveparams]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[move prim]]></category>
		<category><![CDATA[prim position]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[second life]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[tracking]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=309</guid>
		<description><![CDATA[At this posting rate, it will take me forever to document even the majority of my inventions while new projects keep writing themselves. So with still much else to cover, this article will be explaining one of several different methods of picking and seeking in on an avatar. A mantracker, if you will. Hacked together [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=309&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>At this posting rate, it will take me forever to document even the majority of my inventions while new projects keep writing themselves.<br />
So with still much else to cover, this article will be explaining one of several different methods of picking and seeking in on an avatar. A mantracker, if you will. Hacked together and formatted specially for this tutorial.</p>
<h3><strong><br />
The Briefing</strong></h3>
<p><span style="font-size:13px;font-weight:normal;">I&#8217;ll be drawing inspiration from my previous post on the <span style="color:#99cc00;"><a href="http://buddhatron.wordpress.com/2010/08/31/nobody-said-you-could-leave/" target="_blank"><span style="color:#99cc00;">Dungeon of Psychological Torture</span></a></span>, from which the main chunk of logic pertaining to listing, choosing, and engaging targets will be taken. But mind the differences in the changes which will be made, as a few sequential strides in upgrading the tracker have been taken. Compulsive optimizing, baby.<br />
</span> For one, instead of using repeaters, which was always far more taxing a process than it needed to be, we will simply spawn a single drone which will be given its target in the form of a key transmitted through a random chat channel, then displace itself across the region&#8217;s map in short, quick bursts until its position is identical to that of its target&#8217;s.</p>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/03/31/avtracker/"><img src="http://img.youtube.com/vi/VOCxjTdS6wM/2.jpg" alt="" /></a></span>
<p><span style="color:#008080;">*note* I have seen monstrously fast ways of moving a prim across the map, but have never actually managed to figure that out yet. Plus, it&#8217;s fun to watch the chase!</span> <span style="color:#008080;">I&#8217;ve seen some advanced teleporters which will send you [while seated] anywhere around 1000 meters in an instant, used in a few of the sandboxes I frequent.</span><br />
<span style="color:#008080;">One of the gadgets from a toolbelt HUD made by one of my favourite scripters in the game, a talented </span><a href="http://www.thomas-conover.com/index.html" target="_blank"><span style="color:#3366ff;">Thomas Conover</span></a><span style="color:#008080;">, who builds some of the highest grade tools I&#8217;ve ever seen in Second Life, has also demonstrated this magical and esoteric technique of hypermove.</span></p>
<p>But back to the manhunt.</p>
<h3><strong><br />
Mission Begins</strong></h3>
<p>This build will be in the form of 2 scripted objects, one which goes inside the other for deployment: a seeker drone inside a radar object. You have all the freedom to pack a little surprise into the drone to dish out on arrival to its destination. I use the same cage seen in DoPT, but I encourage any branch-off hack you the reader may imagine can be of use in your crusade.</p>
<p>The <strong></strong><span style="text-decoration:underline;"><span style="color:#99cc00;"><strong>Radar Console</strong></span></span><br />
<a href="http://pastebin.com/Ya34g4EG">http://pastebin.com/Ya34g4EG</a><br />
A simple, 40 line script which <a href="http://wiki.secondlife.com/wiki/LlSensor" target="_blank">scans</a> for all avatars in x range (I use 100 for now), displays a <a href="http://wiki.secondlife.com/wiki/LlDialog" target="_blank">dialog</a> box with a list of these avatar names to choose from, for upon making a selection, the seeker drone is <a href="http://wiki.secondlife.com/wiki/LlRezObject" target="_blank">rezzed</a> and <a href="http://wiki.secondlife.com/wiki/LlListen" target="_blank">fed</a> the key of our selected avatar.</p>
<p>Step 1: Radar object is touched (by owner)<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/touch.png"><img class="size-full wp-image-319 alignnone" title="touch" src="http://buddhatron.files.wordpress.com/2011/03/touch.png?w=497&#038;h=61" alt="" width="497" height="61" /></a></p>
<p>Step 2: Scan for avis in range<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/sight.png"><img class="alignnone size-full wp-image-320" title="sight" src="http://buddhatron.files.wordpress.com/2011/03/sight.png?w=497&#038;h=186" alt="" width="497" height="186" /><br />
</a><span style="color:#008080;">*Note* For the Dialog selection to be heard, remember to declare a listener to keep tabs on channel x (which ever you choose, I use 2012 here). Even I forget to do this sometimes.</span><br />
So what you&#8217;re seeing here is the list pair, tgtnames and tgtkeys being instantiated as blanks on every Sensor run, a for loop running through each detected actor, saving the avatar&#8217;s name and UUID key [excluding those of the owner], and then the displaying of these names in the dialog if the number of avatars detected is at least 1.</p>
<p>Step 3: Select target<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/hearing.png"><img class="alignnone size-full wp-image-321" title="hearing" src="http://buddhatron.files.wordpress.com/2011/03/hearing.png?w=497&#038;h=62" alt="" width="497" height="62" /><br />
</a> llDialog(&#8230;) uses the listen event to communicate a selection. Thus, we draw the index at which our target is from the list of names, and pull the corresponding key from the keys list. From there, engagement.</p>
<p>Step 4: Spawn drone, feed target data<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/smell.png"><img class="alignnone size-full wp-image-322" title="smell" src="http://buddhatron.files.wordpress.com/2011/03/smell.png?w=497&#038;h=78" alt="" width="497" height="78" /><br />
</a> Random range channel communication is your friend. Once that channel is decided, we rez our drone, take a tiny llSleep(&#8230;) nap in case of lag or delay of the drone creation, then a simple <a href="http://wiki.secondlife.com/wiki/LlSay" target="_blank">llSay</a>(&#8230;) command to speak out the key. That makes up the radar.</p>
<p>The <span style="text-decoration:underline;"><strong><span style="color:#99cc00;">Tracker Drone</span></strong></span><br />
<span style="text-decoration:underline;"><a href="http://pastebin.com/YduGQi7V">http://pastebin.com/YduGQi7V</a><strong><br />
</strong></span> When a scripted object is spawned, it is spawned with an integer parameter given by its birthgiving scripted object, and this integer is accessible in the <a href="http://wiki.secondlife.com/wiki/On_rez" target="_blank">on_rez(integer param)</a> event. So when the drone comes to life, it is given the start parameter of random int in range of -50000 to -60000, which is the channel in which it must listen. The drone takes a key, and figures out its position. It then sets forth in a straight path towards the target. Once arrived&#8230; That, I leave to you.</p>
<p>Step 1: Birth and learning<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/imalive.png"><img class="alignnone size-full wp-image-326" title="imalive!" src="http://buddhatron.files.wordpress.com/2011/03/imalive.png?w=497&#038;h=82" alt="" width="497" height="82" /></a><br />
Straightforward. No need for any formatting or validation with the incoming message, so we can just parse it as is.</p>
<p>Step 2: OMW!<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/omw.png"><img class="alignnone size-full wp-image-327" title="omw" src="http://buddhatron.files.wordpress.com/2011/03/omw.png?w=497&#038;h=94" alt="" width="497" height="94" /><br />
</a> This function repeats the movement process of small burps until arrived, and closes with a final check on target&#8217;s updated position since beginning of move.</p>
<p>Step 3: Finale &#8211; Gotcha, sucker.<br />
<a href="http://buddhatron.files.wordpress.com/2011/03/insistance.png"><img class="alignnone size-full wp-image-328" title="insistance" src="http://buddhatron.files.wordpress.com/2011/03/insistance.png?w=497&#038;h=112" alt="" width="497" height="112" /><br />
</a> What I do to make sure that this drone <em>stays</em> on the target  even while they&#8217;re moving, so that the surprise is not missed. This is done by figuring out the maximum distance you can accept them to be from the drone before it deploys its surprise. For me, it is no more than 0.9 meters, which is actually so close that a running target will be continuously chased until they slow to a walk or stop altogether. And the whole process comes to its conclusion once this post-move sniff sensor determines the target is within the acceptable distance gap.</p>
<span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2011/03/31/avtracker/"><img src="http://img.youtube.com/vi/MkioRJpYyY8/2.jpg" alt="" /></a></span>
<p>&#8212;</p>
<p>Justice in Chaos!</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/309/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/309/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/309/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=309&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2011/03/31/avtracker/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/touch.png" medium="image">
			<media:title type="html">touch</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/sight.png" medium="image">
			<media:title type="html">sight</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/hearing.png" medium="image">
			<media:title type="html">hearing</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/smell.png" medium="image">
			<media:title type="html">smell</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/imalive.png" medium="image">
			<media:title type="html">imalive!</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/omw.png" medium="image">
			<media:title type="html">omw</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2011/03/insistance.png" medium="image">
			<media:title type="html">insistance</media:title>
		</media:content>
	</item>
		<item>
		<title>Hacking up something sinister</title>
		<link>http://buddhatron.wordpress.com/2010/12/19/hacking-up-something-sinister/</link>
		<comments>http://buddhatron.wordpress.com/2010/12/19/hacking-up-something-sinister/#comments</comments>
		<pubDate>Mon, 20 Dec 2010 02:25:25 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[gadgets]]></category>
		<category><![CDATA[hack]]></category>
		<category><![CDATA[lsl]]></category>
		<category><![CDATA[modify]]></category>
		<category><![CDATA[scripting]]></category>
		<category><![CDATA[secondlife]]></category>
		<category><![CDATA[trap]]></category>
		<category><![CDATA[tutorial]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=255</guid>
		<description><![CDATA[The other day, I was browsing through some of the free scripts I found in my first weeks in SecondLife and found this one pretty cool one, called an Iris door, by Cera Murakami. Here, have a gander: http://bdhtrn.pastebin.com/Zitq5KbH The purpose of this script is to apply it on a torus of any dimensions, and clicking it [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=255&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>The other day, I was browsing through some of the free scripts I found in my first weeks in SecondLife and found this one pretty cool one, called an Iris door, by Cera Murakami.<br />
Here, have a gander:<br />
<span style="color:#99cc00;"><a href="http://bdhtrn.pastebin.com/Zitq5KbH"><span style="color:#99cc00;">http://bdhtrn.pastebin.com/Zitq5KbH</span></a></span></p>
<p><a href="http://buddhatron.files.wordpress.com/2010/12/iris1.gif"><img class="size-full wp-image-299 alignright" title="iris" src="http://buddhatron.files.wordpress.com/2010/12/iris1.gif?w=497" alt=""   /></a>The purpose of this script is to apply it on a torus of any dimensions, and clicking it toggles the size of its hole that it is either a completely impassive, circular block, or merely the outer rim of said block.</p>
<p>It&#8217;s a refreshing variation to all the generic door scripts out there.</p>
<p>But holy rampaging disclaimers Batman! Way to <span style="text-decoration:underline;">make</span> me WANT to rehaul the code, and the first lines to go would be the comments telling me not to delete these comments. Dissed. &gt;=]</p>
<p>However, at this point, I still needed to find a purpose for editing someone else&#8217;s script other than for being colossally fatter than necessary.<br />
While messing around with the shape and parameters, expanding the torus so that it now had some girth, I noticed that <span style="text-decoration:underline;">an avatar standing inside the iris while its open will be devoured by it when it is closed</span>. Escape is not possible.</p>
<p>I had found what I was searching for &#8212; it was time to start hacking up something sinister.</p>
<h3><strong><br />
Fast-Forward about an hour</strong></h3>
<p>and the script ended up evolving from a door to a boobytrap. At this point, I forgot what I initially planned on doing, which was skim the code down for cleanliness, and maybe toss in a functionality boost or two. In the end, I had 5 lines MORE than when we started. But not a single one of those was a comment.<br />
<span style="color:#99cc00;"><a href="http://bdhtrn.pastebin.com/7Yy9aGCQ"><span style="color:#99cc00;">http://bdhtrn.pastebin.com/7Yy9aGCQ</span></a></span></p>
<p>The fat block of global vars at the top is comprised of:<br />
-Flag for deployment mode (standby or trap set off)<br />
-A bunch of torus parameters laid out for easy altering<br />
-Original position and rotations of the trap when set<br />
-UUID Key of the poor sucker who fell for it</p>
<p>Like any boobytrap, it needs to be set.<br />
<a href="http://buddhatron.files.wordpress.com/2010/12/disarm.png"><img class="alignnone size-full wp-image-286" title="set the trap" src="http://buddhatron.files.wordpress.com/2010/12/disarm.png?w=497" alt=""   /></a></p>
<p><a href="http://buddhatron.files.wordpress.com/2010/12/arm.png"><img class="alignnone size-full wp-image-287" title="torus attack!" src="http://buddhatron.files.wordpress.com/2010/12/arm.png?w=497" alt=""   /></a><br />
is where the torus morphs its shape.</p>
<p>And so it begins.<br />
<a href="http://buddhatron.files.wordpress.com/2010/12/setup.png"><img class="alignnone size-full wp-image-288" title="initialize" src="http://buddhatron.files.wordpress.com/2010/12/setup.png?w=497" alt=""   /><br />
</a>Our starting position and rotation are noted, and the trap is set up.</p>
<p>So when the Sensor picks someone up within its 0.5meter scan radius<a href="http://buddhatron.files.wordpress.com/2010/12/letsgo.png"><br />
<img class="alignnone size-full wp-image-289" title="GOTCHA" src="http://buddhatron.files.wordpress.com/2010/12/letsgo.png?w=497" alt=""   /><br />
</a>The flag is raised, the trapped avatar is recorded, we kill the trap radius scan, send the mancapsule flying upward, then set another scanner to keep dibs on whether or not the victim is still caught in the trap. If the victim does manage to escape (managed to put more than 5 meters of distance between them), the capsule will self-destruct.<br />
<a href="http://buddhatron.files.wordpress.com/2010/12/x__x.png"><img class="alignnone size-full wp-image-290" title="X__X" src="http://buddhatron.files.wordpress.com/2010/12/x__x.png?w=497" alt=""   /></a></p>
<p>For compassion&#8217;s sake, there is also the chance for the victim to disarm the trap themselves by touching the cage. But this is not an obvious solution.<br />
<a href="http://buddhatron.files.wordpress.com/2010/12/backosquare1.png"><img class="alignnone size-full wp-image-291" title="back to square one" src="http://buddhatron.files.wordpress.com/2010/12/backosquare1.png?w=497" alt=""   /></a><br />
When this happens, the torus opens up again, and returns to its original position and rotation as recorded upon init, releasing the avatar and readying itself for a repeat performance.</p>
<p>The finished product: <span style="text-align:center; display: block;"><a href="http://buddhatron.wordpress.com/2010/12/19/hacking-up-something-sinister/"><img src="http://img.youtube.com/vi/T11Jo_BXd7Q/2.jpg" alt="" /></a></span><br />
Note: It&#8217;s hard to trap things without bait, so you&#8217;ll notice I tossed in a little message which reads &#8220;Step inside for Free L$&#8221;.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/255/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/255/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/255/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=255&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2010/12/19/hacking-up-something-sinister/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/iris1.gif" medium="image">
			<media:title type="html">iris</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/disarm.png" medium="image">
			<media:title type="html">set the trap</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/arm.png" medium="image">
			<media:title type="html">torus attack!</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/setup.png" medium="image">
			<media:title type="html">initialize</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/letsgo.png" medium="image">
			<media:title type="html">GOTCHA</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/x__x.png" medium="image">
			<media:title type="html">X__X</media:title>
		</media:content>

		<media:content url="http://buddhatron.files.wordpress.com/2010/12/backosquare1.png" medium="image">
			<media:title type="html">back to square one</media:title>
		</media:content>
	</item>
		<item>
		<title>Moving on up in the tutorial game</title>
		<link>http://buddhatron.wordpress.com/2010/12/17/moving-on-up-in-the-tutorial-game/</link>
		<comments>http://buddhatron.wordpress.com/2010/12/17/moving-on-up-in-the-tutorial-game/#comments</comments>
		<pubDate>Fri, 17 Dec 2010 08:14:44 +0000</pubDate>
		<dc:creator>buddhatron</dc:creator>
				<category><![CDATA[Life v2.0]]></category>
		<category><![CDATA[bdhtrn]]></category>
		<category><![CDATA[fraps]]></category>
		<category><![CDATA[video]]></category>

		<guid isPermaLink="false">http://buddhatron.wordpress.com/?p=262</guid>
		<description><![CDATA[I remember Humph once mentioned in class how video demonstrations are beyond a great way to expand on the things you explain, add a little professionalism to a tutorial post, and as well as capturing the reader&#8217;s eye/attention with a break from the sea of text. Like coders, blog readers are lazy. Skimming over posts [...]<img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=262&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></description>
			<content:encoded><![CDATA[<p>I remember <a href="http://vocamus.net/dave/" target="_blank">Humph</a> once mentioned in class how video demonstrations are beyond a great way to expand on the things you explain, add a little professionalism to a tutorial post, and as well as capturing the reader&#8217;s eye/attention with a break from the sea of text.</p>
<p>Like coders, blog readers are lazy. Skimming over posts is a globally common practice, and the average browsing reader will usually spend 5 to 30 seconds (a minute if they&#8217;re feeling generous) over a post they haven&#8217;t actually intended on reading in full, perhaps even less if it&#8217;s nothing but words. So to put something visual, like an image or video, plays a key role in giving the reader the gist of the post in an instant. From there, they decide whether or not it&#8217;s worth reading.</p>
<p>So I got my hands on <a href="http://www.fraps.com/" target="_blank">Fraps</a>, an in-game recording client, and set up a youtube account exclusively for my SecondLife contraptions whose basic explanations don&#8217;t do them justice.</p>
<p>You can find the videos I&#8217;ve shot so far within some of my now updated older posts: the <a href="http://buddhatron.wordpress.com/2010/10/29/holodoor/" target="_blank">holodoor</a>, <a href="http://buddhatron.wordpress.com/2010/11/03/deuce/" target="_blank">coin flip</a>, and <a href="http://buddhatron.wordpress.com/2010/11/03/eye-see-you/" target="_blank">freakish eyeball</a>.<br />
I&#8217;m aiming to make a habit of this, so expect more as we go along.</p>
<br />  <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gocomments/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/comments/buddhatron.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godelicious/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/delicious/buddhatron.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gofacebook/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/facebook/buddhatron.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gotwitter/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/twitter/buddhatron.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/gostumble/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/stumble/buddhatron.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/godigg/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/digg/buddhatron.wordpress.com/262/" /></a> <a rel="nofollow" href="http://feeds.wordpress.com/1.0/goreddit/buddhatron.wordpress.com/262/"><img alt="" border="0" src="http://feeds.wordpress.com/1.0/reddit/buddhatron.wordpress.com/262/" /></a> <img alt="" border="0" src="http://stats.wordpress.com/b.gif?host=buddhatron.wordpress.com&amp;blog=9489526&amp;post=262&amp;subd=buddhatron&amp;ref=&amp;feed=1" width="1" height="1" />]]></content:encoded>
			<wfw:commentRss>http://buddhatron.wordpress.com/2010/12/17/moving-on-up-in-the-tutorial-game/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
	
		<media:content url="http://0.gravatar.com/avatar/4cd8e615269a2267abd95a57074f0284?s=96&#38;d=identicon&#38;r=G" medium="image">
			<media:title type="html">buddhatron</media:title>
		</media:content>
	</item>
	</channel>
</rss>
