TableNavigatorSourceCode | TableNavChangeLog | TableNavToDoList | TableNavigatorGuide | TableNavigatorStudio
A note on this version (3.02)
Okay, so I decided to re-write TableNavigator once again, and drop a bunch of features while I was at it. The idea is that the remaining features will actually work , because it will be easier to fix them when they break. Here are some things I got rid of:
Modes. Looked like a good idea at the time, but I think nobody really uses them. Besides, they only work for Party and I wanted to lose stuff that only worked for one or two sites.
NL Support. This might be a bit of a shock. Basically, Dave is doing a great job with the BetPot script, so I don't see the point in having it in TableNavigator. You can now use BetPot with TableNavigator, it will auto-detect if you are using it.
TableNavigatorStudio. I had fun writing it, but I don't think anyone uses it.
Chat hotkeys. I thought having three of these is neither here nor there... People who like them probably want more than three, and the rest want none. I didn't want to have to write code to support more chat hotkeys.
Some other commands that didn't work/didn't really make sense.
I just really don't think TableNavigator needs all these fancy features. They just make the code more complicated, which makes it harder to look after the important stuff. I think it makes a lot more sense to have seperate scripts for things like chat hotkeys, etc. I should point out that any external script can 'ask' TableNavigator for the handle of the currently selected table using this function:
tableNav() {
If ! WinExist("blue_bar ahk_class AutoHotkeyGUI")
return 0
SendMessage, 0x5555
return WinExist("ahk_id" errorLevel )
}
What TableNavigator does need is support for more sites. It can support an unlimited amount of sites, and it's not that hard to add support. However, I don't have the time (or inclination - it's pretty boring
) to do it all myself. So what I did in this version is make it easier for others to add support for more sites.
Basically, all the site-specific functions are in a seperate file now, one for each site (have a look in the folder called 'Casinos'). In the main folder, you'll find a file called SomeCasino.ahk, which serves as a template: Rename it to the name of the casino you want to add, replace the string 'SomeCasino' with the actual name, fill in the functions and put the file in the Casinos folder... that's it. You won't have to mess with any of the other scripts. I'll write a little guide that's a bit more specific once I find the time.
Btw, this also makes it easier to fix the casino-spcific functions when they break due to site-updates etc. People have been already fixing stuff themselves (thanks at this point). Now, all of these little 'plug-ins' have their own wiki page: Just add the name of the casino to the url of this page to get there, e.g.http://www.overcards.com/wiki/moin.cgi/TableNavigatorParty. (I listed all the plug-ins below). So, if you have a fix, please edit the plug-in! Don't worry about breaking anything: The wiki keeps a copy of every version, so we can always revert. So, just go ahead and edit it and let everyone know by posting in the TableNavigator thread on 2+2. People can then easily update using the plug-in option in the tray menu.
Okay, that's it for now. The download is at the bottom of this page.
Oh, as always: Please test it on play money first!
About TableNavigator
Basics
The key feature of TableNavigator is that you can move between tables using a gamepad or your keyboard (or even your mouse, if you like that better but want to take advantage of the other featues), and then click the buttons on that table (also using gamepad, keyboard or mouse).
Navigation Modes
Direction uses the direction-pad on your gamepad or direction commands hotkeyed to the keyboard. These move the focus from one table to another. If you turn on the Wrapping option , the focus will shift to the far left after you to the right of the right-most window.
AttentionQueue keeps track of which tables need your attention, and selects that table. As soon as you act on that table, the navigator will be drawn to the next table requiring your attention. If you "break out" of the queue (by selecting a table with one of the navigation commands), the AttentionQueue will be suspended until you have acted on that table (i.e. sent a command to that table).
KeySelect allows you to attach a hotkey to each table. That key sends your focus directly to that table. (The script assumes that the tables are all roughly the same size (like when you use the “tile” button), that you’re playing without overlap, and that your setup is a subset of a 3x3 grid. (So 2x3 or 3x2 are fine, but not 4x2.)
MouseSelect allows you to focus TN by moving the mouse. The table under your cursor will be highlighted. Note that you can use MouseSelect with ActivateTarget turned off and a very low transparency if you dislike the normal effect.
ActiveTable Simply selects the active table, which is useful for casinos with automatic foregrounding (like Stars). You will want to set the transparency of the navigation bar to zero (confusing otherwise).
AttentionQueue - Extended mode
Note: Only for Party at the moment.
In extended mode, the preselect buttons will be taken into account (i.e. added onto the end of the queue). Unfortunately, the only way to determine whether one of the pre-select buttons is already checked is by looking at the color of pixels (basically, if we find some black ones in the little white checkbox, it's checked...) and this means that extended mode may not work correctly with overlap (it can handle a certain amount of overlap though - just experiment a little). One problem with extended mode is that the AttentionQueue will still move you to a table that has normal action buttons showing, which could lead to misclicks. See below on how to counter this problem.
AttentionQueue - Flash
Especially in extended mode, the risk of misclicks seems relatively high. The flash option is meant to prevent misclicks by drawing your attention to the fact that the focus has moved to a different table. Maybe more importantely, you cannot act while the bar is flashing, so any clicks meant for the previous table just do nothing.
AttentionQueue - Auto-Suspend
If you uncheck this option, tables that have 'normal' (not advance) action buttons showing will be inserted at the front of the queue - meaning TableNavigator will jump to them even if you have not yet acted on you current table. This was the default behavior in version prior to v2.19 beta. If checked, however, TableNavigator will always wait until you have acted (i.e, executed a command like fold, call, raise, etc.). This seems more natural/less confusing. Note that if you get stuck on a table with no actions pending, just hit your fold button (or any other button).
Setting up the AttentionQueue for Stars, Absolute & Pacific
The buttons (Fold, Check, Raise etc) on some sites don't have names (like on Party, for instance). Therefore instead of checking whether a certain control is visible, we check the color of a certain pixel. Since the background color of the table and the color of the button or different (obviously), we can determine whether the button is visible.
Unfortunately this means that the AttentionQueue can't work with overlap on these sites (or only very little overlap since the pixel we're checking has to be visible (not-overlapped) at all times) . It also means that you'll have to do some configuring since what with different mods (and different table sized on Stars) the color of the pixel we're checking won't be the same for everyone.
Basically, we just check if the "Fold" button is there (since it is always there if you act). Luckily the "Post" button has the same position usually, so we don't have to check for it seperately (this is probably true for the "Show Cards" button, but I didn't bother to check - I doubt many people show their hands while multi-tabling).
So, to enable the AttentionQueue for one of these sites, open a table and take a seat. Then, select 'Preferences' from the tray menu and choose your site from the drop-down list in the 'Pixel configuration' section and click the button next to the drop-down list. Then, wait for the "Fold" button to appear on your table. Now when you right-click on it while holding down Control, the color of the pixel as well as it's position will be saved (you'll notice that the mouse will move away briefly - we have to because most buttons have a different color when you mouse over them). The pixel you click on should be clearly of a different color then the table background for best results.
Finally, a note on Stars. The buttons on the so-called "Hyper-simple theme" (and possibly others, I didn't dowload them all) are mono-color, which makes dynamic support for re-sizing tables possible. The buttons on the default theme on the other hand aren't which makes it impossible to say with certainty which exact pixel will have which color when the table is resized. Therefore you can choose between dynamic support and normal support. For dynamic support, the configuration has to be done when the table has the default size. For non-dynamic mode, he configuration has to be done once the table has been re-sized (and the AttentionQueue won't work for any other sizes).
Getting Started
The first thing you'll have to do is tell TableNavigator which casinos you play on. Simply select them from the drop-down list in the Preferences Gui to add them.
The Tray Menu
The tray menu is accessed by right-clicking on the TableNavigator icon in the system tray or with the "Show Tray Menu" command. You can find out which version you're running by selecting About, open this page easily at any time by selecting Help, configure your preferences or hotkeys, or exit the script. As described above in A note on this version, there is a seperate file for every casino now. People may update these files, or even add new files for new sites. You can just copy the code, select 'Plug-in...' and paste it in. That way you won't have to download the whole app again.
Preferences
Most of this should be self-explanatory. Just a few things:
To remove casinos from the list, just, err, remove them; manually I mean. Make sure you don't leave any spaces.
To configure your pixels for the AttentionQueue, choose your casino, click on the little button next to the drop down, wait for the fold button, move the mouse over it, and hit Ctrl+RButton. Choose dynamic if you use the hyper-simple theme on Stars.
If you want to use KeySelection mode, you'll have to tell TableNavigator how many rows and columns your setup has. 'Top, Bottom', etc. are the coordinates of a rectangle, usually your screen. If for some reason you don't spread the tables over your entire screen or something, you can change these.
Hotkeys
You can navigate between commands using the Up/Down keys, scrolling with the mouse wheel or by double-clicking on a field. You can also use the left analog stick of your gamepad to navigate when 'Joystick' is selected.
To enter a new hotkey or change an existing one, simply hold down the key(s) or the joystick button.
Since version 3.01, the script no longer checks for duplicate hotkeys, so you have to watch out yourself!
Manual Configuration ?
What if you want to use the UP or DOWN arrows as hotkeys (which you can't do because they navigate you through fields)? You can always manually edit the TableNavigator.ini file in the directory that the installation creates. Or, of course, you click the 'All keys' checkbox - then you can use the up/down keys (as well as the left and right mouse buttons, and the mouse wheel). (Thanks anyway to whoever added this
).
Hotkey Options
First off, to find out more about hotkeys, take a look at this hotkeys page.
Keyboard & Mouse Hotkeys
left/right modifiers: If checked, left and right modifiers will be treated as different keys; example: LCtrl+x instead of Ctrl+x
Tilde (~): When the hotkey fires, its key's native function will not be blocked (hidden from the system). Especially useful for mouse hotkeys.
Wildcard (*): Fire the hotkey even if extra`nmodifiers are being held down.
UP: Causes the hotkey to fire upon release of the key rather than when the key is pressed down.
All keys: Disables navigation and lets you map the left mouse button, the mouse wheel and the Up/Down arrow keys too.
Ampersand (&): When you press two non-modifier keys (e.g. a + b), the first one becomes a prefix key (this is written as "a & b" in AHK). I.e. you can turn any two keys into a hotkey (for instance RButton & WheelUp etc.).
Joystick hotkeys
None of the above options work for joystick buttons at the moment (not supported by AHK). So you can't map Ctrl+Joy3, Joy1 & Joy2 etc.
Download
Unzip and run TableNavigator.ahk in the first sub-folder.
Plug-ins
Links
Aknowledgements
Thanks to:
Chris Mallett, the primary author of AutoHotkey.
Goyyah @ the AHK forum for the amazing Color Picker
everyone else at the AHK forum
anyone else who has contributed to TableNavigator
