I wrote some stuff.

Razorfish
:)

Chat Command System

I wrote this TurboHUD plugin to commandeer the in-game chat prompt, adding another way to accept player input and make plugins respond to requests.  ChatCommand streamlines the implementation of custom chat commands, handling the quirks involved in polling for changes in UI text, parsing chat text and sending out neatly packaged notifications to IChatCommandHandler plugins that are listening for specific invocation strings. ChatCommand matches any kind of text at the beginning of the input string. It doesn't have to be a forward slash command, but I prefer forward slash commands because they don't show up to other players in chat when you submit them (press Enter). It also notifies interested plugins whenever there is a change in the command parameters, which allows a plugin to respond on-the-fly if desired, not just upon submit. Here is an example of a quick developer tool I put together with it that responds to a /texture  chat command and displays the provided textu...

Movable Plugin System

While working on RunStats v2 for TurboHUD, I started to play around with implementing plugins that can be moved around on the screen dynamically. After a few iterations and a game-changing tip about how to detect mouse clicks, I turned it into its own library to make it easier to write standalone plugins where you can drag, resize, and toggle the display on or off in-game and then save those modifications. That's how I found myself working on drag and drop repositioning of menu items in RunStats v3 shortly thereafter. More on that later. Unified Modification Each plugin doesn't have to do it's own handling of mouse or key presses, and it doesn't have to define yet another hotkey for toggling stuff on or off, it can just focus on drawing data on the screen. A plugin that implements the IMovable interface will gain the ability to create movable areas that can be dragged around the screen and resized, and all of that code is handled behind the scenes by this library. All ...

Click Events Plugin

Although mouse click events are not the easiest way to interact with TurboHUD (because the Diablo 3 client also processes all the clicks), it's the most intuitive. When Dys told me how to check mouse button state in TH, I ran with it and have been spinning out plugins with click event functionality ever since.  This plugin polls mouse state and generates left and right mouse click events (frequency capped by TH's refresh rate, which maxes out at 60 FPS). It's a bit primitive, but works within the boundaries of the original TurboHUD v9.0 restrictions. Plugins that want to be notified of these events can simply implement the ILeftClickHandler and/or IRightClickHandler interfaces.  Most recently, I added the ability to substitute a keyboard press for a mouse click with IKeyEvent ClickEventHandler.SimulateLeftMouseClick and ClickEventHandler.SimulateRightMouseClick . Using my new Hotkey library, it treats the E key as the left mouse bottom and the R key as the right mouse butt...

Latest Movable