<?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>Mon, 20 May 2013 06:08:18 +0000</lastBuildDate>
        <language>en-us</language>
    
                <item>
            <title>.reconnect Advertisements</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=1246981</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=1246981</guid>
            <pubDate>Fri, 26 Apr 2013 02:16:03 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=1246981#comments</comments>
            
            <description>When a client reconnects to a game via .reconnect or through the Options menu, they are greeted once again with an advertisement. For those with bad connections, this isn't really an optimal experience. Is this intentional? And as I have not yet had the chance to test, is this the same for link()?</description>
        </item>
                <item>
            <title>Isometric Screen Size; Resolution?</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=1067133</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=1067133</guid>
            <pubDate>Tue, 27 Nov 2012 07:13:34 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=1067133#comments</comments>
            
            <description>Let me start by saying this: I love the isometric worlds that you allow us to build. I absolutely -hate- the way that client.view is handled.&lt;br&gt;
&lt;br&gt;
We have never been able to directly set the resolution of the game. Instead, we have always used client.view to determine resolution. When 4.0 was released, we could use the interface to determine the scale of the map. Once big icons were introduced, we could use icon_size and client.view to manually set the client's screen to an even larger array of resolutions.&lt;br&gt;
&lt;br&gt;
But, when moving into the realm of isometric projection, all of that is thrown to the wind. We are given a method, an obtuse formula for finding the resolution of the screen, but no method for actually setting it.&lt;br&gt;
&lt;br&gt;
Will we ever be given a way to set the native resolution of our games? Can we at least be given a decent method of setting the resolution in isometric games?</description>
        </item>
                <item>
            <title>Semantic Dispute, Silk's Faggot Tree, and A.T.H.K.'s Paranoia</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=789854</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=789854</guid>
            <pubDate>Thu, 31 May 2012 01:55:05 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=789854#comments</comments>
            
            <description>&lt;span class=&quot;comment_quote_header&quot;&gt;Nadrew wrote:&lt;/span&gt;&lt;br&gt;
&lt;blockquote class=&quot;comment_quote&quot;&gt;Not the first, NEStalgia has a fully standalone version too, the only interaction with BYOND is the OPTIONAL ability to login with your key. But good job anyways :)&lt;/blockquote&gt;
&lt;br&gt;
Screw them, they had help from Tom. Besides, mine doesn't install BYOND and doesn't require the Internet, and the one you're referring to for NEStalgia doesn't seem to be public yet. So again, screw them.</description>
        </item>
                <item>
            <title>Stand Alone Complex</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=787252</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=787252</guid>
            <pubDate>Thu, 31 May 2012 01:43:06 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=787252#comments</comments>
            
            <description>Introducing BYOND's [apparently second] completely standalone game! I've spent the better part of the last two months working on all of the systems that this game would need to be made completely standalone from BYOND's suite. That's not to not advertise that it was made in BYOND, as there is plenty of credit given to BYOND, but so that it could be distributed as a standalone executable from other platforms, such as Steam. This is also, much like my other projects, mostly a test to see if I could do actually succeed, and also to prove that it could be done. Now with all of these systems in place, I can write any number of games, throw this interface over them, and make them standalone as well.&lt;br&gt;
&lt;br&gt;
If you are using BYOND, you will have to shutdown your pager in order for the executable to work. &lt;a href=&quot;http://www.byond.com/forum/?post=199977#comment2091063&quot;&gt;It is a known issue and should be resolved any time now.&lt;/a&gt; There have been issues with anti-virus programs declaring the files a &quot;high-level threat&quot; and deleting a portion of the files, so you'll need to either make an exception and rerun the executable or turn the anti-virus off before running the executable. Please report any issues with anti-virus programs, or otherwise, to the &lt;a href=&quot;http://www.byond.com/forum/?forum=2985&quot;&gt;LetterBox Bug Reports Forum&lt;/a&gt;.&lt;br&gt;
&lt;br&gt;
So, without further ado, I give to you, BYOND's second completely standalone game, LetterBox.&lt;br&gt;
&lt;br&gt;
&lt;center&gt;&lt;a href=&quot;http://files.byondhome.com/HirotheDragonKing/LetterBox.exe&quot;&gt;&lt;img src=&quot;http://www.byond.com/games/hubpic/97424_11093.png&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;</description>
        </item>
                <item>
            <title>LetterBox Update (Version 2.2)</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=787239</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=787239</guid>
            <pubDate>Thu, 31 May 2012 01:34:42 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=787239#comments</comments>
            
            <description>&lt;center&gt;&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/LetterBox&quot;&gt;&lt;img src=&quot;http://www.byond.com/games/banners/x97424.png.pagespeed.ic.Ky-G1z3Gmx.png&quot;&gt;&lt;/a&gt;&lt;/center&gt;
&lt;br&gt;
With this version of the LetterBox comes a whole slew of new features. I have been writing, testing, and wasting my life on these features for the better part of two months. But, the result, in my opinion, is fantastic, and opens new doors for my future projects. Below, is a list of all of the changes.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Pieces&lt;/u&gt;:&lt;br&gt;
- Added both uppercase and lowercase letters: [a b c d e f g h i j k l m n o p q r s t u v w x y z (ash)]&lt;br&gt;
- Added numbers: [0 1 2 3 4 5 6 7 8 9]&lt;br&gt;
- Added symbols: [, . ! ? &quot; : ; _ - + * / = &amp;lt; ~ ^ % &amp; @ # ( [ { | $ (euro) (pound) (beta)]&lt;br&gt;
- Added shapes: [line, diagonal line, circle, triangles (2), rectangle, square, rhombus, pentagon, pentagram, hexagon, hexagram, heptagon,heptagram (2), octagon, octagram (2)]&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Mouse Control&lt;/u&gt;:&lt;br&gt;
- Right-Click rotates piece clockwise.&lt;br&gt;
- Ctrl+Right-Click rotates piece counter-clockwise.&lt;br&gt;
- Alt+Right-Click flips piece horizontally.&lt;br&gt;
- Ctrl+Alt+Right-Click flips piece vertically.&lt;br&gt;
- Shift+Right-Click changes piece's case or size, for letters or shapes, respectively.&lt;br&gt;
- Alt+Shfit+Right-Click randomly changes the piece's color to another color.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Online Features&lt;/u&gt;:&lt;br&gt;
- Nicknames&lt;br&gt;
- Per-client, time-stamped chat, with chatlog.&lt;br&gt;
- Players list with moderation options.&lt;br&gt;
- Host can mute, kick, and ban players.&lt;br&gt;
- Other players' mice visible with nickname.&lt;br&gt;
- Hosting options: server name, status, port, visibility, and player limit; reboot; port checker; and world log.&lt;br&gt;
- Servers poll, listing all of the above settings for public servers, or server at requested address.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Editing Pane&lt;/u&gt;:&lt;br&gt;
- Choose any type, size, and color of piece to create.&lt;br&gt;
- Options for &quot;click to create&quot; and &quot;click to delete&quot;.&lt;br&gt;
- Smaller personal screen for private pieces.&lt;br&gt;
&lt;br&gt;
&lt;u&gt;Save Files&lt;/u&gt;:&lt;br&gt;
- Save file for server map, settings, and banned and muted lists.&lt;br&gt;
- Save file for client map, settings, and ingored list.&lt;br&gt;
- Individual logs for world log and chat log.&lt;br&gt;
&lt;br&gt;
&lt;center&gt;&lt;a href=&quot;http://www.byond.com/games/hubpic/97424_11092.png&quot;&gt;&lt;img width=&quot;640&quot; src=&quot;http://www.byond.com/games/hubpic/97424_11092.png&quot;&gt;&lt;/a&gt;&lt;/center&gt;</description>
        </item>
                <item>
            <title>.winset Command Arguments</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=669167</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=669167</guid>
            <pubDate>Sat, 14 Apr 2012 15:48:57 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=669167#comments</comments>
            
            <description>Can you pass element parameters through .winset as arguments for a command? I expected this ...&lt;br&gt;
&lt;br&gt;
.winset &quot;command=\&quot;AlterSize window.size\&quot;&quot;&lt;br&gt;
&lt;br&gt;
... to work because, in the past, I have used this ...&lt;br&gt;
&lt;br&gt;
.winset &quot;command=\&quot;Update 5\&quot;&quot;&lt;br&gt;
&lt;br&gt;
... for menu options and it would correctly send &quot;5&quot; as an argument for the Update() verb. Instead, no matter what I do with &quot;window.size&quot;, be it brackets, quotations, et cetera, I receive various runtime errors from the interface.&lt;br&gt;
&lt;br&gt;
Any ideas?</description>
        </item>
                <item>
            <title>LetterBox Update</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=639646</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=639646</guid>
            <pubDate>Sat, 07 Apr 2012 12:32:19 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=639646#comments</comments>
            
            <description>&lt;b&gt;&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/LetterBox&quot;&gt;LetterBox by Hiro TDK&lt;/a&gt;&lt;/b&gt;&lt;br&gt;
&lt;br&gt;
&lt;a href=&quot;http://www.byond.com/games/HirotheDragonKing/LetterBox&quot;&gt;&lt;img width=&quot;320&quot; src=&quot;http://www.byond.com/games/hubpic/97424_10761.png&quot;&gt;&lt;/a&gt;&lt;br&gt;
&lt;br&gt;
LetterBox, originally, was was tech demo to prove the feasibility of a multi-player jigsaw puzzle game on BYOND, that objects could be moved simultaneously across multiple players' screens. The reason I picked letters for the objects is because I had recently played with some fridge magnets at my fiancee's parent's place. Granted, the magnets that I played with were Hebrew characters, but the idea was there.&lt;br&gt;
&lt;br&gt;
Once I had the tech demo running, I put a link in The Saloon so that my fellow Chatters could test it with me. The tests showed that it worked far beyond my expectations. I was even able to use a dummy mouse to show where everyone's mouse was on the screen. After testing, the Chatters convinced me to work out the kinks and give it a hub. So, I did.&lt;br&gt;
&lt;br&gt;
It's been almost a year now, about ten months, and two days ago, I finally picked up the project again, after having completely rewritten the libraries behind the project. I picked up the old project, dumped it, and started from scratch. And the new version is much more polished now.&lt;br&gt;
&lt;br&gt;
The update to LetterBox brings quite a few things:&lt;br&gt;
- Better mouse positions updates&lt;br&gt;
- Names attached to each player's mouse&lt;br&gt;
- A completely new layering system for letters&lt;br&gt;
- Introductory credits&lt;br&gt;
- Title screen layered directly over the game (Shown Above)&lt;br&gt;
&lt;br&gt;
Upcoming updates:&lt;br&gt;
- Chat and players sidebar&lt;br&gt;
- Lowercase letters, numbers, symbols, and shapes&lt;br&gt;
- Manually adding and removing objects from the screen&lt;br&gt;
- Shuffling pieces&lt;br&gt;
&lt;br&gt;
So, pick it up, play it, host it, play it with friends. Enjoy.</description>
        </item>
                <item>
            <title>HDK Mouse And Keys Update [Version 3.1]</title>
            <link>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=591109</link>
            <guid>http://www.byond.com/members/HirotheDragonKing?command=view_post&amp;post=591109</guid>
            <pubDate>Wed, 28 Mar 2012 19:26:03 +0000</pubDate>
            
            <comments>http://www.byond.com/members/HirotheDragonKing?command=view_comments&amp;post=591109#comments</comments>
            
            <description>&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;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                         HDK Mouse And Keys Update [Version 3.1]&lt;br&gt;\\-------------------------------------------------------------------------------------//&lt;br&gt;&lt;br&gt;    The update for this library is substantial. The biggest update is the addition of&lt;br&gt;the Screen datum. If you already use this library, you will have to rewrite portions of&lt;br&gt;your code for compatibility. You may also want to delete the library from your computer&lt;br&gt;and redownload it, as BYOND doesn't clear out and update older help files properly.&lt;br&gt;Instead of accessing lists by numbers, lists are indexed using the IDs. This makes the&lt;br&gt;entire system quicker and more efficient, especially across multiple players. The other&lt;br&gt;updates are rather minor, such as how pausing the scripts and naming elements is handled.&lt;br&gt;Now included is support for individual left and right key up and key down macros for the&lt;br&gt;modifier keys.&lt;br&gt;&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                                     Screen Handling&lt;br&gt;\\-------------------------------------------------------------------------------------//&lt;br&gt;&lt;br&gt;    The Screen (/Screen) datum allows the developer to create and manage &amp;quot;screens&amp;quot; across&lt;br&gt;multiple clients. A Screen has a view size, an ID for referencing it in lists and its&lt;br&gt;map element, a list of atoms displayed by the screen, and a list of clients currently&lt;br&gt;viewing the screen. Clients also have a map variable that dictates which screen it uses&lt;br&gt;as its default map. Let's take a closer look at the Screen datum and its interface.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;Screen/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*This variable is used to to identify the map element associated with this Screen and&lt;br&gt;also used for accessing the mouse coordinate lists for individual Screens.*/&lt;/span&gt;&lt;br&gt;    id = &lt;span class=&quot;dmstring&quot;&gt;&amp;quot;&amp;quot;&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*These variables are the equivalent of client.view. They hold the Screen to a specific&lt;br&gt;number of tiles on each axis, When the Screen is used on the client's default map,&lt;br&gt;client.view is actally set to &amp;quot;[view_x]x[view_y]&amp;quot;*/&lt;/span&gt;&lt;br&gt;    view_x = 0&lt;br&gt;    view_y = 0&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*These are temporary variables written to by ScreenSize() for the purpose of ease&lt;br&gt;of use. They represent the view size of the Screen in pizels, i.e., view*icon_size.*/&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/size_x&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/size_y&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*This is the list of clients currently viewing the Screen. you should only access and&lt;br&gt;change this list via AddClient() and RemoveClient().*/&lt;/span&gt;&lt;br&gt;    list/clients = list()&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*This is a lits of atoms in the screen. When a client is added to the Screen, all of the&lt;br&gt;atoms in this list are added to client.screen.*/&lt;/span&gt;&lt;br&gt;    list/objects = list()&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;&lt;br&gt;    Now let's take a look at how to use a Screen. The Screen datum has six procedures&lt;br&gt;that you'll need and you'll use thes as the interface. Save for cases where you'd need to&lt;br&gt;change the id of a Screen, you shouldn't interact with a Screen's variables directly.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;Screen/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    New(id, x, y, client/c, map)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This creates a new screen with the specified id, and view size. The fourth variable,&lt;br&gt;c, allows you to shortcut creating a new Screen for a specific client. Instead of&lt;br&gt;creating a Screen, then adding the  client to it, you can simply pass the client through&lt;br&gt;Screen.New(). The fifth variable, map, like the client shortcut, allows the Screen to be&lt;br&gt;created as the default map for the specified client, when set to TRUE. By default, id and&lt;br&gt;client/c are null, x and y are 5, and map is FALSE.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    ScreenSize(x, y)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This procedure updates the size parameters of the Screen with a new size, x and y,&lt;br&gt;with the default for each being 5.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    AddClient(client/c, map)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This is procedure will add the specified client to Screen.clients and adds the atoms&lt;br&gt;from Screen.objects to client.screen, and if map=TRUE, sets the client's default map to&lt;br&gt;this Screen.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    RemoveClient(client/c, map)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This procedure removes the specified client from Screen.clients, removes the atoms&lt;br&gt;in Screen.objects from the client's screen, and if map=TRUE, sets the client's default&lt;br&gt;map to false.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    AddAtom(atom/a, x, y)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This adds the specified atom to the Screen and adds it to the screens of all clients&lt;br&gt;in Screen.clients. If x and/or y are specified, it will locate the object at that&lt;br&gt;position on the screen.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    RemoveAtom(atom/a)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This removes the specified atom to the Screen and removes it from the screens of all&lt;br&gt;clients in Screen.clients.&lt;br&gt;&lt;br&gt;    Now, here, I'll write a small snippet that shows how to use this to make a unified&lt;br&gt;title screen for all new clients connecting to a server.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/Screen/titlescreen&lt;br&gt;&lt;br&gt;world&lt;br&gt;    New()&lt;br&gt;        ..()&lt;br&gt;        titlescreen=&lt;span class=&quot;dmkeyword&quot;&gt;new&lt;/span&gt;(&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;map&amp;quot;&lt;/span&gt;, 16, 9)&lt;br&gt;        &lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/obj/title=&lt;span class=&quot;dmkeyword&quot;&gt;new&lt;/span&gt;()&lt;br&gt;        titlescreen.AddAtom(title)&lt;br&gt;&lt;br&gt;client&lt;br&gt;    New()&lt;br&gt;        ..()&lt;br&gt;        titlescreen.AddClient(src,map)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;Here, we define a global variable referencing a titlescreen. On world.New(), we create&lt;br&gt;the titlescreen that displays on a client's map element titled &amp;quot;map&amp;quot; with a size of 16x9.&lt;br&gt;We also create an object to be displayed on this screen and add it to the screen. On&lt;br&gt;client.New(), we add the client to this screen. Using this example, on login, all clients&lt;br&gt;will be directed to the same, reusable title screen. Any visibly interactable objects,&lt;br&gt;such as a button that animates when pressed, should be added to the client's screen&lt;br&gt;rather than to Screen, as to avoid other clients noticing when you press buttons.&lt;br&gt;&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                                     Mouse Tracking&lt;br&gt;\\-------------------------------------------------------------------------------------//&lt;br&gt;&lt;br&gt;    Mouse tracking brings to the developer, complete and up to date information on the&lt;br&gt;client's mouse. The mouse tracking system works on each individual client's computer,&lt;br&gt;client side, by sending a script to a browser on the client's end, which then keeps runs&lt;br&gt;and keeps the server updated on the position of the mouse. In order to begin tracking,&lt;br&gt;you simply pass the desired screen through StartMouseTracking().&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    StartMouseTracking(Screen/screen)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This procedure queries for the parent window of the specified screen, then copies all&lt;br&gt;of the properties of the map element matching Screen.id and uses them create a perfectly&lt;br&gt;cloned browser element. THe browser element is then provided a script that updates the&lt;br&gt;client of the mouses position approximately every tick, calculated using the properties&lt;br&gt;copied from the map element. There are also three corresponding procedures.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    PauseMouseTracking(Screen/screen)&lt;br&gt;&lt;br&gt;    ResumeMouseTracking(Screen/screen)&lt;br&gt;&lt;br&gt;    StopMouseTracking(Screen/screen)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    The first two procedures simply send a message through JavaScript, telling the script&lt;br&gt;to stop updating the server. The third deletes the browser element. There is one more&lt;br&gt;relevant procedure.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    UpdateMouseTracking(Screen/screen)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    This updates the script of the framerate and the icon-size of the map element. This&lt;br&gt;procedure should only be called in the instance in which either of those changes. Every&lt;br&gt;update sent to the server from the client decoded first through client.Topic() and then&lt;br&gt;through UpdateMouse().&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    UpdateMouse(Screen/screen, x, y)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    The arguments here are rather self-explanatory. The first refers to the screen for&lt;br&gt;which the coordinates correspond. The other two are the actual coordinates of the mouse.&lt;br&gt;The default behavior is to write the coordinates to two lists, using screen.id as the&lt;br&gt;index.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    list/mouse_x = list()&lt;br&gt;    list/mouse_y = list()&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    Below is are examples of how to access the lists.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    client.mouse_x[&lt;span class=&quot;dmstring&quot;&gt;&amp;quot;map&amp;quot;&lt;/span&gt;]&lt;br&gt;    client.mouse_x[screen.id]&lt;br&gt;    client.mouse_x[client.map] &lt;span class=&quot;dmcomment&quot;&gt;//This shortcut uses the client's default map variable.k&lt;/span&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    There also four other sets of coordinates that you have access to, as a developer&lt;br&gt;using this library. They are translated from the previous set, on the server, using&lt;br&gt;information available only to the server. Each set of coordinates has a corresponding&lt;br&gt;variable to flag whether or not to translate them.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    GenerateScreenLoc = TRUE        &lt;span class=&quot;dmcomment&quot;&gt;//This is FALSE by default, as are the rest.&lt;/span&gt;&lt;br&gt;    list/screen_tx = list()&lt;br&gt;    list/screen_px = list()&lt;br&gt;    list/screen_ty = list()&lt;br&gt;    list/screen_py = list()&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    The previous are accessed in exactly the same way as client. mouse_z/y.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    GenerateMapCoordinates = TRUE&lt;br&gt;    map_x&lt;br&gt;    map_y&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    These act the same way as mouse_x/y, in that they represent the number of pixels that&lt;br&gt;the mouse is removed from position 1:1, 1:1 over the actual map.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;    GenerateMapLoc = TRUE&lt;br&gt;    map_tx&lt;br&gt;    map_px&lt;br&gt;    map_ty&lt;br&gt;    map_py&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    These are the actual tile and pixel coordinates of the mouse over the actual map.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;atom/movable/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;/current_screen&lt;br&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    current_atom&lt;br&gt;&lt;br&gt;    GenerateIconCoordinates = TRUE&lt;br&gt;    icon_x&lt;br&gt;    icon_y&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;    These work a tad differently. When GenerateIconCoordinates is set to TRUE, the atom&lt;br&gt;that the client's mouse is over is kept track of at all times and the Screen on which&lt;br&gt;that atom resides, if not on the map, is kept track of as well, under current_atom and&lt;br&gt;current_screen, respectively. Keeping those in mind, the position of the mouse over the&lt;br&gt;actual icon are generated using information such as loc, step_x/y, screen_loc, et cetera.&lt;br&gt;&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                                 Absolute Mouse Position&lt;br&gt;\\-------------------------------------------------------------------------------------//&lt;br&gt;&lt;br&gt;    Absolute mouse position refers to the postion of the client's mouse over the actual&lt;br&gt;screen of his computer. The procedures controlling this are the same as for mouse&lt;br&gt;tracking.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    StartJavaScriptMouse(Screen/screen)&lt;br&gt;&lt;br&gt;    PauseJavaScriptMouse(Screen/screen)&lt;br&gt;&lt;br&gt;    ResumeJavaScriptMouse(Screen/screen)&lt;br&gt;&lt;br&gt;    StopJavaScriptMouse(Screen/screen)&lt;br&gt;&lt;br&gt;    UpdateJavaScriptMouse(Screen/screen)&lt;br&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    screenX&lt;br&gt;    screeny&lt;br&gt;&lt;br&gt;    jsMouse = FALSE     &lt;span class=&quot;dmcomment&quot;&gt;//This is a read-only variable that tells wether this is running.&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                                      Modifier Keys&lt;br&gt;\\-------------------------------------------------------------------------------------//&lt;br&gt;&lt;br&gt;    This system gives the developer access to individual left and right key up and key&lt;br&gt;down events for the Alt, Shift, and Ctrl modifier keys  This is done by JavaScript on the&lt;br&gt;client's end, due in part to a special variable that available from Internet Explorer 8,&lt;br&gt;and up. Every millisecond, the script checks the position of all six keys and updates the&lt;br&gt;server if any of them change. Unless your player can change the state of one of them more&lt;br&gt;than twice per millisecond (1/1000th of a second, A.K.A., they're cheating), this system&lt;br&gt;is foolproof. Along with hooks for all three, there are variables for which you can check&lt;br&gt;the state of each key, as well as the same controlling procedures as with the previous&lt;br&gt;systems.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    shiftLeft = FALSE&lt;br&gt;    shiftRight = FALSE&lt;br&gt;    ctrlLeft = FALSE&lt;br&gt;    ctrlRight = FALSE&lt;br&gt;    altLeft = FALSE&lt;br&gt;    altRight = FALSE&lt;br&gt;&lt;br&gt;    jsKeys = FALSE&lt;br&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    shiftLeftDown()&lt;br&gt;    shiftLeftUp()&lt;br&gt;    shiftRightDown()&lt;br&gt;    shiftRightUp()&lt;br&gt;&lt;br&gt;    ctrlLeftDown()&lt;br&gt;    ctrlLeftUp()&lt;br&gt;    ctrlRightDown()&lt;br&gt;    ctrlRightUp()&lt;br&gt;&lt;br&gt;    altLeftDown()&lt;br&gt;    altLeftUp()&lt;br&gt;    altRightDown()&lt;br&gt;    altRightUp()&lt;br&gt;&lt;br&gt;    StartJavaScriptKeys(Screen/screen)&lt;br&gt;&lt;br&gt;    PauseJavaScriptKeys(Screen/screen)&lt;br&gt;&lt;br&gt;    ResumeJavaScriptKeys(Screen/screen)&lt;br&gt;&lt;br&gt;    StopJavaScriptKeys(Screen/screen)&lt;br&gt;&lt;br&gt;    UpdateJavaScriptKeys(Screen/screen)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                                      Modifier Keys&lt;br&gt;\\-------------------------------------------------------------------------------------//&lt;br&gt;&lt;br&gt;    This system gives the developer access to several numbers from the client's computer&lt;br&gt;that they would not normally have access to. The system works exactly the same as the&lt;br&gt;rest of them.&lt;br&gt;*/&lt;/span&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;var&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/availWidth          &lt;span class=&quot;dmcomment&quot;&gt;//This is the usable width of the client's desktop.&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/availHeight         &lt;span class=&quot;dmcomment&quot;&gt;//This is the usable height of the client's desktop.&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/width               &lt;span class=&quot;dmcomment&quot;&gt;//This is the actual width of the client's desktop.&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/height              &lt;span class=&quot;dmcomment&quot;&gt;//This is the actual height of the client's desktop.&lt;/span&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/colorDepth          &lt;span class=&quot;dmcomment&quot;&gt;//This is the color depth of the client's desktop.&lt;/span&gt;&lt;br&gt;&lt;br&gt;    &lt;span class=&quot;dmkeyword&quot;&gt;tmp&lt;/span&gt;/jsVars = FALSE&lt;br&gt;&lt;br&gt;client/&lt;span class=&quot;dmkeyword&quot;&gt;proc&lt;/span&gt;&lt;br&gt;    StartJavaScriptVars(Screen/screen)&lt;br&gt;&lt;br&gt;    PauseJavaScriptVars(Screen/screen)&lt;br&gt;&lt;br&gt;    ResumeJavaScriptVars(Screen/screen)&lt;br&gt;&lt;br&gt;    StopJavaScriptVars(Screen/screen)&lt;br&gt;&lt;br&gt;    UpdateJavaScriptVars(Screen/screen)&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;br&gt;&lt;span class=&quot;dmcomment&quot;&gt;/*-------------------------------------------------------------------------------------*\&lt;br&gt;                Thank you for using my library. I hope it comes in handy.&lt;br&gt;&lt;br&gt;                                        -Hiro TDK&lt;br&gt;\*-------------------------------------------------------------------------------------*/&lt;/span&gt;
&lt;/pre&gt;&lt;/td&gt;
&lt;/tr&gt;
&lt;/table&gt;
&lt;/div&gt;</description>
        </item>
                <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>
            
    </channel>
</rss>

