Azaril’s Home

Quick update

by Azaril on May.02, 2009, under Uncategorized

Just a quick update to show progress on the bar addon I’ve been working on. This has a basic version of distance and clock implemented as bar addons.

Bar Addon

Bar Addon

14 Comments more...

Windower update

by Azaril on Apr.28, 2009, under Uncategorized

It’s been a little quiet on my blog over the last few weeks mainly as I’ve either been hanging out over on the Windower forums or been busy coding.

I’ve made a lot of progress in regard to v4 so here’s the list of what’s I’m working on:

  • v4 Alpha was released including a couple of updates.
  • Over 26 bugs have been fixed so far in v4 including a lot of problems people encountered with the alpha release.
  • BlinkMeNot is implemented and fully working.
  • Cancel is implemented and working but is now just lua and bundled with v4.
  • CFHProtect is implemented and working but is now just lua and bundled with v4.
  • I’ve started working on a bar framework similar to TitanPanel to allow easy infobar/clock/distance style addons to be written in lua and customized.
  • I’ve completed a preliminary version of clock using the new bar framework.
  • I’ve started on distance and and XYZ for the bar framework.
2 Comments more...

Windower 4 ALPHA Release

by Azaril on Mar.29, 2009, under Windower

I’ve released an early alpha build of v4 for people to start using for people that want to play with some of the new features. This doesn’t include plugins and still has plenty of bugs so if you’re happy with v3 there’s no reason to switch right now.

Full post over at the Windower forums: http://forums.windower.net/index.php?showtopic=14931

9 Comments :, more...

Work in progress

by Azaril on Mar.28, 2009, under Windower

It’s been almost a month since I posted last, mainly as I always forget to update my site :)

I’ve been working with Starhawk to get the v4 site up and running which can be found at http://dev.windower.net for the moment. Right now I’m just using it for work item and basic bug tracking so there’s nothing very exciting up there yet.

  • I finally have Windows 7 set up on my laptop so I have v4 working on Windows 7 correctly now. I’ve only tested with build 7000 so if you’re using newer or older I can’t be certain it works.
  • I added abortable command queues which should make things such as running loops much easier now. You can do things like this:

    local Queue = Console:CreateCommandQueue(”foo;bar;baz;wait 4000;something”);
    local Executor = Console:RunCommandQueue(Queue);
    Executor:Abort();

  • I added the timer class that I use internally to lua so you can now perform timed calbacks. If you want to perform a command every 5 seconds you could do this:

    function MyHandler()
    echo(”Yay!”);
    end

    local timer = CTimer();
    timer:GetOnTick():connect(MyHandler);
    timer:Start(5000);

5 Comments :, more...

Plugins and more…

by Azaril on Feb.23, 2009, under Windower

I had a really productive weekend for Windower related activities which let me get some of the big items I’d been planning on doing for a while actually done.

  • Added automatic update capabilities to the launcher that allows updating of the core windower and plugins. I’d like to extend this to allow installing plugins from an available list so that plugins won’t have to be a part of the setup process.
  • I moved all the code over to git and set up a private project on github. SVN had been making my life difficult for the last few weeks and I finally had had enough.
  • With the move to git I took the time to split the core Windower code from the Plugin and Common code so that plugin developers can now start working on plugins without requiring full source access.
  • I fixed a few more alt+tab and input issues so FFXi should behave nicely with other windows. Alt+tabbing back to the game and global hotkeys should now be working as intended.
3 Comments :, more...

Still working…

by Azaril on Feb.21, 2009, under Windower

I got a good batch of things accomplished last weekend including some of the features and bugs I’ve been procrastinating about working on.

  • The console history is finally hooked up, pressing up and down will now go to previous/next commands that were entered.
  • Finally fixed key repeat so holding down a key actually works as expected.
  • Added an inbuilt timer class for callbacks after a certain amount of time. This is exposed in to lua which is useful for a lot of common tasks if you don’t want to use the “wait” console command and use pure script instead.
  • Exposed the 3D rendering code to lua so it’s possible to display sprites in the game world. This is only preliminary but I’ve been doing some prototyping for the new version of TParty for highlighting party/alliance members etc.
  • Fixed the last plugin bug that was causing crashes on unload so there’s currently no known bugs in the plugin API any more.
  • Exposed some of the game state in to lua though I’m not sure how much I will leave in when I release v4. There’s some really cool stuff you can do though right now though so I really want to leave it mostly in. As a trivial example you can target the 4th alliance member and echo the target change to the chat log:

    local Player = GetGameStateManager():GetAllianceMemberInformation( 3 );
    echo( “Targeting: ” .. Player:GetName() );
    Player:Target();

  • I finally got the 64 bit injection working so it should all just work out of the box on 64 bit systems now but I’m going to finish doing thorough testing on my laptop before release as I’m sure there will be compatability issues, especially on Vista 64 bit.
  • I’m about halfway through mapping some of the datarequired to consider porting Spellcast to v4 without having to rely on memory reading or code hooks outside of the core windower code. This is another one of the things I have to probably do before releasing v4 as a full version since it’s one of the top plugins. It’s also near the bottom of my list of plugins I want to have to rewrite so we’ll see how that works out.
Leave a Comment :, more...

Status Update

by Azaril on Jan.06, 2009, under Windower

I’m finally back from vacation and back with a computer so coding can resume. I’m at the point with v4 where the main thing holding me back from releasing is lack of plugins. I’m trying to get a new version of TParty up and running so there’s actually a compelling reason to switch to the new version other than stability issues. I have some other feature ideas I’d like to implement for TParty that are pretty compelling but I still have a lot of core work to be done.

Ideas off the top of my head for the new TParty:

  • Cast bars for players within alliance/range of the player. This would allow you to see who’s casting what and on who. For example tell if you’ve got an incoming heal when you’re close to death.
  • Alliance member location indicators. Show arrows under your players feet to indicate direction to alliancer members/group members/target.
  • Alliance member or target overlay information, see hp/mp/tp information next to the player on screen.
  • Custom overlay information, attach any image/text to a player in 3d.
  • Clickable targeting and casting buttons on screen for alliance members. Be able to see health and debuffs on a player in a simple fashion and be able to click to cure/remove debuffs.
6 Comments :, more...

Windower v4 Weekend Progress

by Azaril on Dec.08, 2008, under Windower

I didn’t make a whole lot of progress on v4 this weekend but I got a couple of things done that I’d been putting off. Here’s the short list:

  • Added backwards compatible bind command support. You can now use bind ^a “echo foo” to bind ctrl+a to the command “echo foo”. I’ve deprecated binding multiple keys to a command at the same time as it’s complex and confusing. There’s enough support to simplify the second parameter to a single command that I’m ok with forcing people to call bind twice.
  • Created an installer package for easier setup. This is just a really simple installer so there should be less install and uninstall problems for people.

Here’s the fun part, all the bind and alias code has been done in lua. The system set up for scripting in is quite powerful and able to do complex tasks. I’m really happy with the flexibility it’s given me as it’s meant that a lot of the utility features can be quickly coded up in lua rather than having to heavily embed them in to the rest of the Windower system in C++.

1 Comment :, more...

Windower v4 Update

by Azaril on Nov.30, 2008, under Windower

I had a good amount of time over the thanksgiving break to crank out some code. Here’s the list of new stuff I got done:

  • Aliases are working including backwards compatability. The old alias command syntax works, e.g. alias “foo” “bar”; will make command “foo” call command “bar”. There is also the new script syntax which can be called directly from script which is just Alias(”foo”, “bar”);. Both forms support complex commands and functors in the second parameter. (More on functors later.)
  • Command expansion is now deterministic, in v3 the console was multithreaded to handle waiting which caused commands to fire in a potentially different order every time. Now the ordering is very simple, when you call RunCommand or enter new commands in to the command queue in response to a command they are inserted immediatley after the currently executing command. For example, the command string “foo;bar;baz” where “bar” aliases to “input sometext; wait 100;” it expands correctly to “foo; input sometext; wait 100; baz”. I’ll consider adding explicit out of order processing if I can come up with a scenario for it, I’ve yet to find one.
  • Binds are now enabled for the keyboard including support for modifier keys (ctrl, alt etc.) as well as custom modifier keys (such as A+D+F as a key combination). I haven’t started on the backwards compatability for binds yet but the script interface is enabled. You can use the syntax BindKeyDown(Key.A, Key.Shift, “echo foo”); to bind Shift+A to the command “echo foo”.
  • I’ve added support for functors for both aliases and binds. This means you can have a script function callback for a command or bind very easily. For example I use a functor callback to toggle the console with this script BindKeyDown(Key.Grave, nil, Console_Toggle); where Console_Toggle is a lua function taking no parameters. You can also use this script Alias(”toggle_console”, Console_Toggle); to make the command “toggle_console” call Console_Toggle.

I’m working on the backwards compatability for binds next so people will be able to use the majority of their existing scripts. I still have some work to do on the command parser to support comments in command files loaded from disk.

1 Comment :, more...

Minor Update

by Azaril on Nov.04, 2008, under Windower

I spent some time this last weekend working on Windower v4 and made some decent progress. I’ve got sending input to the game hooked up as well as a whole rack of bug fixes. I’m currently trying to isolate a bug regarding crashing when hitting play with a specific USB PS2 gamepad adaptor plugged in. I’m also having some issues with 64 bit correctly hooking in to the FFXi process which is annoying as it was working fine a few days ago.

I’ve finally implemented the wait command from the console but this time it’s synchronous rather than running off another thread. The nice part about the new system is that you’ll be able to create queues of commands and then execute them with the option to cancel them while they’re running.

In regards to new features I’m going to be enabling binding to gamepad buttons soon, the groundwork is in place I just need to expose the events in to lua correctly so they can be handled.

2 Comments :, more...

Looking for something?

Use the form below to search the site:

Still not finding what you're looking for? Drop a comment on a post or contact us so we can take care of it!

Visit our friends!

A few highly recommended friends...