<?xml version="1.0" encoding="ISO-8859-1"?>
<rss version="2.0">
    <channel>
        <title>Hiro the Dragon King's site</title>
        <link>http://www.byond.com/members/HirotheDragonKing</link>
        <description></description>
        <lastBuildDate>Sat, 11 Feb 2012 00:50:06 +0000</lastBuildDate>
        <language>en-us</language>
    
                <item>
            <title>How about those logos, Tom?</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=236408</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=236408</guid>
            <pubDate>Thu, 02 Feb 2012 04:58:56 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=236408#comments</comments>
            
            <description>I would like to ask if you have the original vector art for the BYOND logos around anywhere. I've asked in the past and been looked over, and they used to be up for viewing, as far as I can tell, but not anymore. So, is there any way that I can get my hands on them? It'd be a lot easier to platform brand if developers could actually use your logos.</description>
        </item>
                <item>
            <title>Flash Client: Browser/JavaScript Interaction</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=199715</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=199715</guid>
            <pubDate>Thu, 26 Jan 2012 03:14:41 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=199715#comments</comments>
            
            <description>Will there be any sort of browser or JavaScript interaction available for the Flash client? As it is, we still have no mouse coordinate information through DM and absolutely every project I've ever worked on in DM uses such information, via JavaScript, so lack thereof would completely shut me off to the Flash client. Even if the interaction wasn't visible, I would be happy.</description>
        </item>
                <item>
            <title>The Rollercoaster Of Motivation And Procrastination</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=121086</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=121086</guid>
            <pubDate>Thu, 17 Nov 2011 08:17:20 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=121086#comments</comments>
            
            <description>Ever since I moved, I've been rather detached from BYOND. I took a week after I moved in to translate Eternia over to pixel movement, only to find that BYOND couldn't properly handle simple movement over a network. And without the Internet, and with all the work I had to do to move in, I sadly had to abandon Eternia altogether. Sorry, Adam.&lt;br&gt;
&lt;br&gt;
Anyway, I've been up and down on my motivation and mood recently. I've been writing down all kinds of ideas. I've dabbled a bit with my jigsaw puzzle engine, I've added a little onto my Minecraft Pokearth map, I've jotted down DM snippets here and there, I've written up multiple functional specification documents on a Pokemon mod for Minecraft, and I've started to learn Java, not to mention all of the random housework that I have and haven't finished... or started. Recently, I've been looking into work outside of town, pondering the possibility of moving again soon. One thing is clear right now; I'm not settled and I'm not content. I know that next year, I will have to move no matter what, but I don't know...&lt;br&gt;
&lt;br&gt;
Anyway, with my life in very little context here, it's clear that nothing I start will be finished anytime soon, so I've decided to release, rather make public, some libraries I've been using and even had on my hub for a while now. These are over a year old, in their original implementation. I figure that it'd be nice to share them, as they've been more than handy for me. Granted, the documentation for one is outdated, one is incomplete, and the other two lack documentation altogether, and only one has a demo. I hope to make up for that here.&lt;br&gt;
&lt;br&gt;
Now without further ado, I give you these:&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/HDKMouseAndKeys&quot;&gt;HDK Mouse And Keys (Updated)&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/HDKPixelHUD&quot;&gt;HDK Pixel HUD&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/HDKDraggableHUD&quot;&gt;HDK Draggable HUD&lt;/a&gt;&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/HDKIconAugments&quot;&gt;HDK Icon Augments&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
&lt;b&gt;HDK Mouse And Keys&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
This library has been update with some naming convention changes. If you use it already, you should update your sources to reflect these changes. The changes were to make variables a little more homogenous for use with the other two libraries.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;HDK Pixel HUD&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
HDK Pixel HUD has some minor documentaion packaged with it that explains how to set up HDK Mouse And Keys if you only plan to use this library. Here, I'll explain how to use it. /HUDObject is the main datum for this library, a screen object with variables and procedures that allow it to be easily manipulated on the client's screen. Not listed below but also included is a full suite of alignment procedures. You may reference the actual library for usage.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
/HUDObject&lt;br&gt;&lt;br&gt;pixel_loc_x/y: coordinates on screen, &lt;span class=&quot;dmkeyword&quot;&gt;in&lt;/span&gt; pixels, from the bottom-left&lt;br&gt;size_x/y: size of object, drawn from Width() and Height() of object&lt;span class=&quot;dmstring&quot;&gt;'s icon&lt;/span&gt;&lt;br&gt;list/attachments: list of attached objects, referenced by name&lt;br&gt;&lt;br&gt;New(client/C,X,Y)&lt;br&gt;    client/C: client whose screen on which &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; place object&lt;br&gt;    X/Y: coordinates at which &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; place object, placed at pixel_loc_x/y &lt;span class=&quot;dmkeyword&quot;&gt;if&lt;/span&gt; not specified&lt;br&gt;&lt;br&gt;Icon(new_icon,reset)&lt;br&gt;    new_icon: the icon &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; &lt;span class=&quot;dmkeyword&quot;&gt;set&lt;/span&gt; &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; object, called &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; nab the &lt;span class=&quot;dmkeyword&quot;&gt;new&lt;/span&gt; size&lt;br&gt;    reset: changes icon back &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; initial&lt;br&gt;&lt;br&gt;PixelMove(client/C,newx,newy,skip_attachments)&lt;br&gt;    client/C: the client on whose screen object appears&lt;br&gt;    newx/y: the coordinates on the screen &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; move object &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt;&lt;br&gt;    skip_attachments: TRUE &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; ignore any attached objects when moving, defaults &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; FALSE&lt;br&gt;&lt;br&gt;PixelMoved() called after PixelMove() is completed
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;HDK Draggable HUD&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
HDK Draggable HUD allows for screen objects that may be freely moved around on the client's screen via the mouse. This comes in very handy for anything from puzzles to customizable interfaces. Even more interesting is the ability to drag around a window by grabbing a screen object.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
/HUDObject/Draggable&lt;br&gt;&lt;br&gt;PixelDrag() &lt;br&gt;    always returns TRUE, used &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; make calls before dragging&lt;br&gt;&lt;br&gt;PixelDrop()&lt;br&gt;    used &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; make calls after dragging&lt;br&gt;    &lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/drag_window_name: the name of an interface window &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; drag rather than the object
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;HDK Icon Augments&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
HDK Icon Augments adds a few useful icon procedures for altering icons. The four procedures allow you to dynamically resize images whilist maintaining their precious aspect ratios, outline icons, both inner and outer, and rotate dynamically sized icons by ninety degrees. There is an updated version of the last one that allows for inputs of any degrees, but rounds to the nearest ninety degree interval. If I find it, I will update it.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
ResizeWithAspect(new_width,new_height,alignment)&lt;br&gt;    new_widht/height: the &lt;span class=&quot;dmkeyword&quot;&gt;new&lt;/span&gt; size of the image&lt;br&gt;    alignment: favors portions of the picture &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; cropping, 0=left/bottom, 1=right/top, 2=center&lt;br&gt;&lt;br&gt;InnerOutline(color,bold,blending)&lt;br&gt;OuterOutline(color,bold,blending)&lt;br&gt;    color: color of the outline, defaults &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; black&lt;br&gt;    bold: FALSE &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; thin outline, TRUE &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; think outline&lt;br&gt;    blending: follows the same blending methonds &lt;span class=&quot;dmkeyword&quot;&gt;as&lt;/span&gt; icon.Blend(), defaults &lt;span class=&quot;dmkeyword&quot;&gt;to&lt;/span&gt; ICON_OVERLAY&lt;br&gt;&lt;br&gt;Rotate(ccw)&lt;br&gt;    ccw: TRUE &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; counterclockwise, FALSE &lt;span class=&quot;dmkeyword&quot;&gt;for&lt;/span&gt; clockwise
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
        </item>
                <item>
            <title>Pokearth Download and Eternia</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=118345</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=118345</guid>
            <pubDate>Sat, 10 Sep 2011 10:43:35 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=118345#comments</comments>
            
            <description>I have put up a download link for my Mincraft Pokearth map, what I've finished so far. You can find the link in the &lt;a href=&quot;http://www.tinyurl.com/MinecraftPokearth&quot;&gt;official thread&lt;/a&gt;. I've chosen to put the uncompleted map up for download because I don't plan on making anymore progress to it soon. In order to work on Goldenrod City, I'd need all of the interior shots, shots which cannot be found online or in the official guide. And because the NDS emulator doesn't run on any of my computers and my NDS is lent out, I have no source material to work with.&lt;br&gt;
&lt;br&gt;
I've instead decided to dedicate my time to finding work, taking care of my family, and making some heady way on Eternia, as KhaosParadox (now known as &quot;Writing A New One) had picked me up for the project (right before my home life was suddenly rearranged) and I've yet to do anything really substantial.&lt;br&gt;
&lt;br&gt;
Yesterday, I finally put a good number of hours into the project and made an effort to pull the game into pixel movement's territory. The movement feels much cleaner in a pixel based environment and the scale of the world seems a tad greater. Not to mention, movement for different creatures can now vary in many intervals, meaning that evasion is easier and monsters can have much greater diversity.&lt;br&gt;
&lt;br&gt;
If the BYOND bug pertaining to pathfinding is remedied soon, then we can put up a test server and find out how viable pixel movement is. Cross your fingers, because what I've seen so far is wonderful.</description>
        </item>
                <item>
            <title>Minecraft Pokearth Update</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=118219</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=118219</guid>
            <pubDate>Tue, 06 Sep 2011 21:21:09 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=118219#comments</comments>
            
            <description>&lt;a href=&quot;http://www.minecraftforum.net/topic/510888-creation-wip-massive-scale-pokearth-johto/page__p__6736326#entry6736326&quot;&gt;The official thread can be found here.&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
Here are a few new renders of the map. I'm currently working to get a cartography program that renders tall grass. In these, it's simply displayed as some sort of elevated grass. I won't be putting much more work into this for a bit because the next item on the list is Goldenrod City and I have another project that needs attention at the moment.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;&lt;b&gt;Oblique (Day/Night)&lt;/b&gt;&lt;/u&gt;&lt;br&gt;
&lt;img width=&quot;550&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Overworld/PokearthObliqueDay.png&quot;&gt;&lt;br&gt;
&lt;img width=&quot;550&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Overworld/PokearthObliqueNight.png&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;&lt;b&gt;Angled Oblique (Day/Night)&lt;/b&gt;&lt;/u&gt;&lt;br&gt;
&lt;img width=&quot;550&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Overworld/PokearthAngledObliqueDay.png&quot;&gt;&lt;br&gt;
&lt;img width=&quot;550&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Overworld/PokearthAngledObliqueNight.png&quot;&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;&lt;b&gt;Isometric (Day/Night)&lt;/b&gt;&lt;/u&gt;&lt;br&gt;
&lt;img width=&quot;550&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Overworld/PokearthIsometricDay.png&quot;&gt;&lt;br&gt;
&lt;img width=&quot;550&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Overworld/PokearthIsometricNight.png&quot;&gt;</description>
        </item>
                <item>
            <title>Minecraft Pokearth (Johto, Part Three)</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=116873</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=116873</guid>
            <pubDate>Sun, 07 Aug 2011 02:48:39 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=116873#comments</comments>
            
            <description>Here is part three of my epic Minecraft Project.&lt;br&gt;
&lt;br&gt;
&lt;object width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/Iz6n1U_t8Mw&quot;&gt;
&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;&gt;
&lt;embed src=&quot;http://www.youtube.com/v/Iz6n1U_t8Mw&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;350&quot; wmode=&quot;opaque&quot;&gt;&lt;/object&gt;&lt;br&gt;
&lt;br&gt;
Right, and here is an overworld map:&lt;br&gt;
&lt;a href=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Pokearth1.png&quot;&gt;&lt;img width=&quot;500&quot; src=&quot;http://i42.photobucket.com/albums/e325/hirotdk/Minecraft/Pokearth/Pokearth1.png&quot;&gt;&lt;/a&gt;</description>
        </item>
                <item>
            <title>Minecraft Pokearth (Johto, Part One and Two)</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=116505</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=116505</guid>
            <pubDate>Fri, 29 Jul 2011 13:12:01 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=116505#comments</comments>
            
            <description>I've been putting together a 3:1 scale replica of the Pokemon world, starting with Johto. So far, I'm only to Violet City, but hopefully progress will speed up now. What I have now though is awesome.&lt;br&gt;
&lt;br&gt;
&lt;object width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/yd8DzQaCC4Y&quot;&gt;
&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;&gt;
&lt;embed src=&quot;http://www.youtube.com/v/yd8DzQaCC4Y&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;350&quot; wmode=&quot;opaque&quot;&gt;&lt;/object&gt;&lt;br&gt;
&lt;br&gt;
&lt;object width=&quot;425&quot; height=&quot;350&quot;&gt;&lt;param name=&quot;movie&quot; value=&quot;http://www.youtube.com/v/KBkt6HC5PTM&quot;&gt;
&lt;param name=&quot;wmode&quot; value=&quot;opaque&quot;&gt;
&lt;embed src=&quot;http://www.youtube.com/v/KBkt6HC5PTM&quot; type=&quot;application/x-shockwave-flash&quot; width=&quot;425&quot; height=&quot;350&quot; wmode=&quot;opaque&quot;&gt;&lt;/object&gt;</description>
        </item>
                <item>
            <title>Casey Anthony's Verdict: A Triumph Of Our Judicial System</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=115562</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=115562</guid>
            <pubDate>Thu, 07 Jul 2011 21:17:52 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=115562#comments</comments>
            
            <description>As everyone knows, or at least it seems that everyone knows, Casey Anthony was recently given a &quot;not-guilty&quot; verdict on the three major injunctions she faced involving the death of her daughter, Calyee Anthony. If you've been around media, then you've in all likelihood seen the &quot;the justice system has failed&quot; headline. Most people whose opinions I've had shoved down my throat seem to think that not only is Casey guilty, but that she should be put to death and that the lack of doing so is our failure to avenge Caylee's death.&lt;br&gt;
&lt;br&gt;
I disagree completely, mostly because of what lies at the fundamental core of our judicial system: innocence unless proven otherwise. The fact that so much public contempt and loathing has been going around in the last three years and she was still rightfully given an acquittal, gives me a slimmer of hope for our courts, and even our society.&lt;br&gt;
&lt;br&gt;
The prosecution failed to prove that Casey was guilty. It's as simple as that. Not only that, they couldn't prove when Caylee died, where Caylee died, or even how Caylee died. The only reason that the trial made it as far as it did is because Casey was caught in so many lies. This verdict does not imply that she is innocent, only that the law cannot say she's guilty.&lt;br&gt;
&lt;br&gt;
Cases like these show that there is still integrity to our courts. Rather it's cases like Kerry Silvers, a man who had his entire life taken from him for a single, non-violent crime, where he was convicted on circumstantial evidence, where the police handled every part of his investigation poorly, and even &lt;a href=&quot;http://www.amw.com/fugitives/brief.cfm?id=28041&quot;&gt;used him as a scapegoat for another case&lt;/a&gt;; cases like these that really make me worry. I eagerly await his &lt;a href=&quot;http://www.barnesandnoble.com/w/american-refugee-kerry-silvers/1029659308&quot;&gt;book&lt;/a&gt; and the completion of his &lt;a href=&quot;http://kerrysilvers.com/&quot;&gt;site&lt;/a&gt;.</description>
        </item>
                <item>
            <title>Getting Something Done?</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=113755</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=113755</guid>
            <pubDate>Fri, 27 May 2011 01:45:04 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=113755#comments</comments>
            
            <description>Now, I read the GSD starter post the day it was posted and I was going to make a post about all the things I wanted to get done this month. But alas, that... didn't happen. So, here is a list of the things this month that I wished to accomplish at the beginning of the month, things that were added along the way, and things I actually did.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;----Goals----&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Pixel HUD&lt;/u&gt; - update, docs, demo, publish&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Draggable HUD&lt;/u&gt; - update, docs, demo, publish&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Icon Augments&lt;/u&gt; -&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Tech Demos&lt;/u&gt;&lt;br&gt;
-Displaying mouse data to multiple players&lt;br&gt;
-One screen, modified and displayed to multiple players&lt;br&gt;
-Draggable objects interacting with multiple players&lt;br&gt;
-Multiplayer jigsaw puzzles&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;----Added During the Month----&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Tech Demo&lt;/u&gt; -Selection boxes, single and multiplayer&lt;br&gt;
&lt;br&gt;
&lt;u&gt;LetterBox&lt;/u&gt; - polish, package, publish, and patch&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Mouse And Keys&lt;/u&gt; - patch up&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;----Accomplished----&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Pixel HUD&lt;/u&gt; - Updated, created a hub, unpublished though.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Draggable HUD&lt;/u&gt; - Updated, created a hub, yet to be published.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Icon Augments&lt;/u&gt; - Created a hub, still unpublished.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Tech Demos&lt;/u&gt; - All of the originally planned demos were completed and tested, save for puzzles, and were even made into a game of their own; LetterBox.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;LetterBox&lt;/u&gt; - Published and listed and continues to receive updates.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;----Still In Progress---&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;HDK Mouse And Keys&lt;/u&gt; - Critical update, working on that now.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;LetterBox&lt;/u&gt; - Updates continue.&lt;br&gt;
-Layering system for letters.&lt;br&gt;
-Adding popular punctuation to the mix.&lt;br&gt;
-Add and remove sets of letters, based on popular letter distribution methods.&lt;br&gt;
-Add and remove specific letters and punctuation of specified quantity and color.&lt;br&gt;
-Macros for screen shots.&lt;br&gt;
-Saving current layout, letters placement and colors.&lt;br&gt;
&lt;br&gt;
And or course there are things in real life that I wished to accomplish this month, like selling my house, finding work (though I've been avoiding this one due to bad experiences in the area), et cetera. I may have a buyer for the house but he's having issues finding a bank that will help.</description>
        </item>
                <item>
            <title>Let's get some mouse! (Not you, Mab.)</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=111799</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=111799</guid>
            <pubDate>Sat, 09 Apr 2011 21:42:33 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=111799#comments</comments>
            
            <description>Now that my long labored (i.e., procrastinated) gimmick finally has it's own neat little package, I can write up a decent article on how it works and how you can use it. I'll even throw in a few tips and tricks.&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How It Came To Be&lt;/b&gt;&lt;br&gt;
A few years ago, I wanted to create a library out of a HUD system I was working on. I thought that I should spruce it up with something exciting, something that nobody's done before. I decided on being able to drag objects around on the screen was the way to go, so I did soe research. After looking around, I saw that dragging objects around was only once done, and the creator's method no longer worked.&lt;br&gt;
&lt;br&gt;
After a few iterations, I decided that the system needed improvement and pixel precision was the way to go. It was a month or so before I found the method by which to do this. As I was reading through release notes of BYOND updates, I came across &lt;a href=&quot;http://www.byond.com/docs/notes/441.html&quot;&gt;version 441.1099&lt;/a&gt; and the very last bit caught my eye. Knowing that JavaScript had access to mouse coordinates, I knew that back and forth banter between BYOND and JavaScript was the solution I was looking for. After all, Meebo handled the effect in a similar fashion.&lt;br&gt;
&lt;br&gt;
It took a while for me to realize that this mouse function needed to be isolated and even longer before realizing that it should have it's own library. But, eventually, I did and through months and months of procrastination and distraction, I've finally made it here.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How It Works&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Mouse Tracking&lt;/u&gt;&lt;br&gt;
Basically, I start by effectively cloning map elements except making it a browser element instead; same size, pos, parent, anchors, borders, everything. This way, the browser has all of the information it will ever need. The only thing that ever needs to be updated is a change in the client's view.&lt;br&gt;
&lt;br&gt;
Now I can send a script to that browser element and have it constantly check and calculate the coordinates of the mouse, relative to the actual map element. Using the information provided, the script can calculate and compensate for ANY obstacle thrown at it. Changes in position, size, even icon-size are automatically dealt with by the script. Every tick, as defined by tick_lag, the script will update the server of the mouse's position, if the position has changed since the last tick.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Modifier Macros&lt;/u&gt;&lt;br&gt;
For the modifier macros, I simply browse()'d a script that runs click() event on a one millisecond loop and checks the position of the modifier keys on each iteration. If they've changed, the script will update the server. The reason that the loop is so quick is to make sure that all key-ups and key-downs are caught. The server seems to queue them in the same manner as actual macros.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;b&gt;How It's Used&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Basic Mouse Coordinates&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
Let's get these out of the way first. Upon start-up, world.icon_size is automatically decoded into two rather convenient global variables, shown below. These are great for icon calculations.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/icon_sizex&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/icon_sizey
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
Now on to the good stuff. Everything else is defined under client. There are only three that you need to play with to make this work.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    list/maps&lt;br&gt;    list/screen_viewx&lt;br&gt;    list/screen_viewy
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
If you would like to use a map, you must add the map's name to the list of maps and you must define the size of the screen in screen_viewx and screen_viewy. client.view will be calculated from the first value in each list. If no view sizes are specified, then the screen_view variables will default to client.view. A single pixel will be added to the to make sure that the map stays at the right size, even in the absence of any HUD elements. Example:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client&lt;br&gt;    maps = list(&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;map1&amp;quot;&lt;/span&gt;,&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;map2&amp;quot;&lt;/span&gt;)&lt;br&gt;    maps = list(10,5)&lt;br&gt;    maps = list(7,5)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
In this example, map1's screen, as well as client.view, will be &quot;10x7&quot; and map2's screen will be &quot;5x5&quot;. The coordinates are then outputted to these variables:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    list/mousex&lt;br&gt;    list/mousey
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
The coordinates are stored and indexed in the order of the maps they belong to. If would like to output the coordinates from map1, you would simply write:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
world &amp;lt;&amp;lt; mousex[1]&lt;br&gt;world &amp;lt;&amp;lt; mousey[1]
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
Now all that you have to do is call StartMaps() and specify the map you want to use as an argument. For instance, if we wanted to use map1, we would use:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
StartMaps(1)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Map Update Management&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
There are four things that you will have to do to maintain that this library continually provides the correct information. If map.icon-size ever changes, client.UpdateMaps(map_number) needs to be called, where map_number is the index of the map in client.maps and null will update all of the maps. If world.tick_lag ever changes, client.UpdateTickLag() needs to be called. If you would like to change the size of the map's views or the client's view, edit the client's screen_view variables and call client.UpdateScreenSize(map_number). And finally, if you add to or remove maps from the client's maps list, call client.UpdateLists(), followed by StartMaps(map_number), if you're adding.&lt;br&gt;
&lt;br&gt;
Notes:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Updates the speed at which all maps send updates, corresponding&lt;br&gt;to world.tick_lag.Note that this will automatically update all&lt;br&gt;other maps and JavaScript extras too.*/&lt;/span&gt;&lt;br&gt;    UpdateTickLag()&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Sends the corresponding map.icon-size to the map_number indexed&lt;br&gt;or every map listed.*/&lt;/span&gt;&lt;br&gt;    UpdateMaps(map_number)&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Updates the size of the corresponding map, or all maps, and sends&lt;br&gt;the pertinent infromation to the map, or all maps.*/&lt;/span&gt;&lt;br&gt;    UpdateScreenSize(map_number)&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Updates the size of each of the lists to allow for the correct&lt;br&gt;amount of information.*/&lt;/span&gt;&lt;br&gt;    UpdateLists(map_number)
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
If you allow your users to play with those settings through the interface, you will need to write a verb that the interface can access to make the appropriate call.&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Advanced Mouse Coordinates&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
You can also generate more advanced coordinates, those that directly correspond to the mouse parameter's screen-loc. In order to do so, you must turn on the setting;&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/GenerateScreenLoc
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
... and it will automatically convert mousex and mousey to the four variables;&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    list/screen_tx&lt;br&gt;    list/screen_px&lt;br&gt;    list/screen_ty&lt;br&gt;    list/screen_py
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
... for use as screen_loc coordinates. Here is how you'd use them in the screen_loc format.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
screen_loc = &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_tx[1]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_px[1]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_ty[1]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_py[1]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;//OR&lt;/span&gt;&lt;br&gt;screen_loc = &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[maps[2]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_tx[2]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_px[2]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;,&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_ty[2]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;:&lt;/span&gt;&lt;span class=&quot;dmbrace&quot;&gt;[screen_py[2]]&lt;/span&gt;&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Map Coordinates&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
There are two more settings that will allow you to automatically generate more advanced coordinates. When working with this setting, you have to remember that the first map listed in client.maps is assumed to be the default map. Program accordingly. The&lt;br&gt;
first setting is;&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/GenerateMapCoordinates
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
If you turn this on, the coordinates of your mouse over the actual in-game map will be generated, in pixels, to the variables;&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    mapx&lt;br&gt;    mapy
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
These would be useful if you employed a pixel-based coordinate system into your game.&lt;br&gt;
&lt;br&gt;
The second setting;&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/GenerateMapLoc
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
... will automatically generate true map coordinates (as in x, y, pixel_x, pixel_y) to&lt;br&gt;
the four variables;&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    map_tx&lt;br&gt;    map_px&lt;br&gt;    map_ty&lt;br&gt;    map_py
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Start, Stop, Pause, Resume&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
Each system now has four functions, shown below:&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    StartMaps(map_number)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Creates a window(s) that keeps track of and updates the server&lt;br&gt;of mouse coordinates.*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;    StopMaps(map_number)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Deletes the window(s).*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;    PauseMaps(map_number)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Disables the window(s).*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;    ResumeMaps(map_number)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*Re-enables the window(s).*/&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
There are also commands that correspond to the JavaScript extras (explained below). They are:&lt;br&gt;
&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    StartJavaScript[Keys/Mouse/Variables]()&lt;br&gt;    Stop            &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;br&gt;    Pause           &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;&lt;br&gt;    Resume          &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;JavaScript Extras&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
The last setting that you can turn on will allow you to have real-time information about settings on the client's end. Below is a list of all the information that it allows you access to.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*The absolute position of the mouse on the client's screen.*/&lt;/span&gt;&lt;br&gt;    screenX&lt;br&gt;    screenY&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*The dimensions of usable space on the client's screen.*/&lt;/span&gt;&lt;br&gt;    availWidth&lt;br&gt;    availHeight&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*The actual dimensions of the client's screen.*/&lt;/span&gt;&lt;br&gt;    width&lt;br&gt;    height&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*The bit depth of colors on the client's screen.*/&lt;/span&gt;&lt;br&gt;    colorDepth&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*The the positions of the client's Shift, Ctrl, and Alt keys.*/&lt;/span&gt;&lt;br&gt;    shiftKey&lt;br&gt;    ctrlKey&lt;br&gt;    altKey
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Hooks&lt;/u&gt;&lt;br&gt;
&lt;br&gt;
Last but not least, we have a list of the hooks that you can use to play with all of these wonderful features.&lt;br&gt;
&lt;div class=&quot;dmcode&quot;&gt;
&lt;table width=&quot;100%&quot; border=&quot;0&quot;&gt;
&lt;tr&gt;
&lt;td&gt;
&lt;pre class=&quot;dmcode&quot;&gt;
client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*These are hooks should be painfully obvious...*/&lt;/span&gt;&lt;br&gt;    shiftKeyDown()&lt;br&gt;    shiftKeyUp()&lt;br&gt;&lt;br&gt;    ctrlKeyDown()&lt;br&gt;    ctrlKeyUp()&lt;br&gt;&lt;br&gt;    altKeyDown()&lt;br&gt;    altKeyUp()&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*These are all called once per tick to update the server, where&lt;br&gt;num is the index of the map being updated and x and y are the new&lt;br&gt;coordinates.*/&lt;/span&gt;&lt;br&gt;    UpdateMouse(num,x,y)&lt;br&gt;        ..()&lt;br&gt;&lt;br&gt;    UpdateJavaScriptMouse(screenX,screenY)&lt;br&gt;        ..()&lt;br&gt;&lt;br&gt;    UpdateJavaScriptVariables(availWidth,availHeight,width,height,colorDepth)&lt;br&gt;        ..()
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
&lt;br&gt;
Please be sure to report any bugs or errors to me.</description>
        </item>
            
    </channel>
</rss>


