Git Product home page Git Product logo

multitablepro's Introduction

MultiTable Pro

Discontinued

This application became redundant near it's completion due to sudden changes on both supported platforms.

The amount of tables you can have open on PokerStars was reduced from 24 down to 6 and Party/bwin no longer allows huds making mass-multitabling unprofitable on any stake with the possible exception of 2NL.

You are free to modify and redistribute this software. I've made it relatively easy to add support for other platforms.

Unfortunately I can't do this myself or assist with it since these are the only two platforms that are both legal in my country and allow third party software to be used.

DISCLAIMER:

  • Use this repository at your own risk. Anything you choose to do with it is entirely your responsibility.
  • I cannot be held responsible for any penalties or loss of accounts on any platform.
  • I cannot be held responsible for any financial or emotional damage cause by the usage of anything relating to this repository.

WARNING: This application is not fully completed and has some platform specific bugs related to table placement. Table detection is also likely to be outdated and may need to be modified to work with the current version of the platforms.

MultiTablePro was reviewed and approved by PokerStars under their April 2019 Terms of Service in it's current state. Keep in mind that they likely changed their ToS since then!

It has however, NOT been submitted for approval to bwin/party. You'll need to verify that you have permission there for yourself. You will need to do your own research on the platform you intend to use this on to see if you're allowed to use it.

Each platform has their own rules regarding third party software. These rules can change at any time and you are responsible for ensuring that you are allowed to use this software.

Preview

MultiTable Pro Preview

Description

MultiTable Pro Logo

Automatically Move Tables

MultiTable Pro moves your poker tables to the best possible position. Tables which require you to act become larger, while inactive poker tables are moved to smaller slots.

This will help you make more profitable plays on more tables without having to spend valuable time worrying about the logistics.

Custom Profiles

Create custom profiles to support your computer setup. Choose where priority and inactive tables will be placed on your screen. It also supports multiple monitors.

Move Priority Tables Aside

If you've every played more than 4 tables you probably know what it's like to be stuck on a hand while other tables keep piling up.

With MultiTable Pro you can just press a button which moves your table aside while continuing to play on other tables while you consider the best course of action for your aside table.

When you're done, you can simply press the hotkey again to move it back into the normal rotation.

multitablepro's People

Contributors

demathias avatar

Stargazers

 avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

multitablepro's Issues

Optional flicker reduction

Create a config setting for the 200ms pause on table move.
The flicker seems to be gone by simply resizing offscreen with the new movement system.

UI: Warn user when opening config during session

allow config in case of singletabling or user really wants to change their config regardless.
But add a messagebox to confirm config should run if slots contain tables.

If slots contain virtual tables, do not allowthem to click the button as config is already running.

Licensing system & API connection

These should all send POST requests to their corresponding API url:
Response is in json array. Just call it, call json deserialize and roll use the output.
All responses look like this:
array(
'result' => array(),
'errors' => array(),
);

check if response contains errors before anything else (errors exists at all rather)
errors: array("error strings", "other error")
call Logger.Log() to display errors to user, or show em in the window

All relevant return data is contained in the "result" variable

  • Trial
  • Check license

/api/validate_license
Post params:
macaddr - mac address string
license_key - (should be 'TRIAL' for trial check, all caps)
request_product_group - should be 1 for MTP

Return
is_active - int (0 or 1) (basically true or false but DB outputs tinyint)
expires_at - time string (DateTime.Parse())
^ Only these return on trial check

for non trial it also adds:
'product_name' => $r->product_name,
'product_description' => $r->product_description,
'first_name' => $r->first_name,
'last_name' => $r->last_name,
'email' => $r->email,
'restrictions' => $restrictions, // described below
'license_status_message' => 'Active license',

restrictions - array ( - not all keys may exist, so check if they do first - they all return as string (probably)
UNLIMITED_COMPUTERS - bool
MAX_STAKE - int of max buyin (Table.BigBlind x 100)
BUILD_TYPE - enum("RELEASE", "INTERNAL", "BETA") (so string basically) - indicates optional access to non-release builds
)

  • Check new version

Logger multithread support

Multiple threads can access the Log function at the same time.
Use a static constructor to assign a new thread decicated to writing to logger file & use a queue to submit new messages.

InitialTablePlacement() alternative

Currently it moves everything to inactive when first starting. This is not optimal if the WindowHandler starts during a session.
Have user choose what to do? (leave everything until we get more info or move to inactive)

Hopefully there's a better way

PSLogHandler Loading timestamps

Test whether or not these timestamps are formatted the same in different locations.
Likely not a problem but GL finding the problem when someone reports that the program does literally nothing.

Auto generate profile (along side manual options)

Button that can be pressed to auto generate a profile best fit for the user's setup.

Request which screens to use
Request whic screen should contain active slots
Request amount of tables
Ask if there should be an aside table (not possible on small screens

Multiscreen:

  • Optionally use second screen for inactive slots
  • Main screen should contain X aside tables

Medium screen:
1 active
1 (optional aside)
2-4 inactives (look into that)

Small screen:

  • 1 active
  • 1 inactive

Validate slots on startup

Ensure previously configured slots are still valid on startup.
If not, request that user runs the config again & cancel startup.

This can occur if user changed a screen's position or removed a screen.
Slot.IsNewLocationValid() and/or TryInitialize needs to be modified

UI: MainWindow menu: Documentation link & Kill info > about

Top menu
File

  • Import Config
  • Export Config
  • Export all profiles (to zip) (not doing this, pointless)
  • Restart with Logging
    License:
  • License info
  • Unregister this computer (no, why?)
    Help
  • Check for new version
  • Instructions
  • Report Bug (not doing this)

Statusbar
[ ] Running/notrunning
[ ] Version (New Version Available) (link if there is

PSLogHandler: Do something when user uninstalls PS

Log files would be removed. Currently the program would just die with no info.
Leave it for when we can manually start/stop everything

Also remove the fatal crash when no logs are found by the same mechanism.

Table.HandPreferredSlotId

tie a specific hand to a specific slot when possible so user can keep better track of what's what.

Render lag

My Broken 970
bwin: has heavy delay on- (barely playable
PokerStars: table movement delay of 100-200 is fine:

Mathias:
OP beeldkaart (2080?)
PokerStars: ??
Bwin: 50 should be more than enough based on video footage

Also plz test other beeldkaart if you get chance

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.