Two Plus Two Newer Archives

Two Plus Two Newer Archives (http://archives1.twoplustwo.com/index.php)
-   Software (http://archives1.twoplustwo.com/forumdisplay.php?f=47)
-   -   New script: PartySNGHelper (http://archives1.twoplustwo.com/showthread.php?t=309852)

jukofyork 01-20-2007 04:25 PM

Re: AHK script for Party Poker SNGs - ALL-IN
 
Bleh, the "Seat Empty" thing still didn't work properly and my edit time has expired now. Here's the fixed version:

<font class="small">Code:</font><hr /><pre>;---------------------------------------------------------
;----------------- Party SNG Helper v1.01 ----------------
;---------------------------------------------------------
; AutoHotkey Version: 1.x
; Language: English
; Platform: Win9x/NT
; Author: jukofyork (reused code and thanks to: _dave_ &amp; Roland!)

; Features:
; =========
; 1. Push with/without autobet using middle mouse mutton.
; 2. Check or fold (ie: check if we can, else fold) using right mouse button.
; 3. Scroll wheel moved bet amount up/down in big bets.
; 4. Auto-confirm and check the buying box so all that will be needed is to click on an empty seat to join a SNG.
; 5. Auto-timebank clicker.
; 6. Auto-confirm the "Would you like a summary sent" box after being knocked out of a SNG.

; New for v1.01:
; ==============
; 1. Now will click Check/Fold checkbox if visible.
; 2. Pressing F12 over a player's name will simulate a right mouse click so we can takes notes, etc.
; 3. Have made it so that AlterAmount amount can take another argument to increment in 0.5BB amounts.
; 4. Have made it so we will close finished SNGs.
; 5. Have changed the timings to be 1000ms rather than 500ms to try to save on CPU time.

#Persistent
#NoEnv

SendMode Input

SetTitleMatchMode 2

; Set the options.
autobet = 1 ; Do we want to actually hit raise after we set the edit box to all-in?
increment_half_bb = 0 ; Set this to use 0.5BB increments with the scroll wheel, rather than 1BB.


; Start the timers.
SetTimer, AutoClickTimeBank, 1000
SetTimer, AutoBuyin, 1000
SetTimer, AutoRequestSummaryAndCloseFinishedSNGs, 1000

return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

~F12::
id := ""
MouseGetPos, x, y, id
if (id &lt;&gt; "")
PostRightClick(x, y, id)
return

~RButton::
CheckFold(getid())
return

~MButton::
Push(getid(),autobet)
return

~WheelUp::
AlterAmount(getid(),"up",increment_half_bb)
return

~WheelDown::
AlterAmount(getid(),"down",increment_half_bb)
return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

AutoClickTimeBank:

checkfield = AfxWnd42u37 ; AfxWnd42u37 is timebank control
LobbyWindowTitle = Poker Lobby ; identify poker lobby substring
TableWindowTitle = Buy-in. ; identify pokertable substring

WinGet, lobbyID, ID, %LobbyWindowTitle%

WinGet, pid, PID, ahk_id%lobbyID%
WinGet, rlist, LIST, %TableWindowTitle% ahk_pid%pid%
Loop %rlist%
{
this_id := rlist%a_index%
If this_id != %lobbyID%
{
WinGetTitle, name, ahk_id%this_id%
ControlGet, result, Visible, , %checkfield%, ahk_id%this_id%
if (result)
{
ControlClick %checkfield%, ahk_id%this_id% ;Click timebank
}
}
}

return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

AutoBuyin:

IfWinExist, ahk_class #32770, Tournament Buy-in
{
WinGet, idList, List, ahk_class #32770, Tournament Buy-in
Loop, %idList%
{
winID := idList%a_index%
ControlSend, Button2, {SPACE}, ahk_id%winID%
Sleep, 40
ControlSend, Button5, {SPACE}, ahk_id%winID%
}
}

return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

AutoRequestSummaryAndCloseFinishedSNGs:

; Lets try requesting the summary BEFORE we try closing the table.
IfWinExist, ahk_class #32770, Would you like a tournament summary
{
WinGet, idList, List, ahk_class #32770, Would you like a tournament summary
Loop, %idList%
{
winID := idList%a_index%
ControlSend, Button1, {ENTER}, ahk_id%winID%
}
}

; Now lets try closing the SNGs.
checkfield = Button3 ; Button3 is the "Auto Post Blind" checkbox.
LobbyWindowTitle = Poker Lobby ; identify poker lobby substring
TableWindowTitle = Buy-in. ; identify pokertable substring

WinGet, lobbyID, ID, %LobbyWindowTitle%

WinGet, pid, PID, ahk_id%lobbyID%
WinGet, rlist, LIST, %TableWindowTitle% ahk_pid%pid%
Loop %rlist%
{
this_id := rlist%a_index%
If this_id != %lobbyID%
{
WinGetTitle, name, ahk_id%this_id%

; Go through all the "Seat Open" buttons.
seats = 0
i = 3
Loop, 10
{
i++
;If they're visible, this is an empty seat.
ControlGet, is_visible, Visible, , AfxWnd42u%i%, ahk_id%this_id%
If is_visible = 1
seats++
}

; Are we not seating and is the "Auto Post Blind" checkbox not visible?
ControlGet, result, Visible, , %checkfield%, ahk_id%this_id%
if (seats = 0 AND result = 0)
{
; Lets make 100% sure and try again incase of a graphics delay.
Sleep, 150
ControlGet, result, Visible, , %checkfield%, ahk_id%this_id%
if (result = 0)
{
WinClose, ahk_id%this_id% ; Close the table.
}
}
}
}

return

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

getid()
{
id := ""
MouseGetPos, , , id
return id
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

PostRightClick(x, y, table_id, activate=1) {
; ### JUK: Send the down left click, then the mouse-up messages.
; NOTE: This is relative to the top left of the client area and NOT the top left of the
; window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!).
If activate
WinActivate, ahk_id%table_id%
PostMessage, 0x204, 0x0001, ((y&lt;&lt;16)^x), , ahk_id%table_id%
PostMessage, 0x205 , 0, ((y&lt;&lt;16)^x), , ahk_id%table_id%
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

; This will set the edit box to the maximum amount.
Push(id, autobet=0)
{
pot := 10000000
ControlSetText, Edit3, %pot%, ahk_id%id%
Sleep -1
Sleep 50
WinSet, Redraw,, ahk_id%id%
If(autobet)
{
ControlClick, AfxWnd42u19, ahk_id%id%
}
}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

; Clicks Check/Fold-in-turn or fold-in-turn button if sees it, else clicks check if sees
; it, else clicks fold.
CheckFold(id)
{

; Check/Fold checkbox.
ControlGet, v, Visible, , AfxWnd42u23, ahk_id%id%
if (v)
{
ControlFocus, AfxWnd42u23, ahk_id%id%
Sleep, -1
ControlClick, AfxWnd42u23, ahk_id%id%
return
}

; Fold checkbox.
ControlGet, v, Visible, , AfxWnd42u22, ahk_id%id%
if (v)
{
ControlFocus, AfxWnd42u22, ahk_id%id%
Sleep, -1
ControlClick, AfxWnd42u22, ahk_id%id%
return
}

; Lets see if we can see the check button.
ControlGet, v, Visible, , AfxWnd42u18, ahk_id%id%
if (v)
{
ControlGetText, text, AfxWnd42u18, ahk_id%id%
IfInString, text, Check
{
ControlFocus, AfxWnd42u18, ahk_id%id%
Sleep, -1
ControlClick, AfxWnd42u18, ahk_id%id%
return
}
}

; Lets try for fold then.
ControlGet, v, Visible, , AfxWnd42u17, ahk_id%id%
if (v)
{
ControlFocus, AfxWnd42u17, ahk_id%id%
Sleep, -1
ControlClick, AfxWnd42u17, ahk_id%id%
}

}


;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;

AlterAmount(id, dir="",increment_half_bb=1)
{
WinGetTitle, title, ahk_id%id%
amount := 0

; Get the current BB amount.
if (InStr(title, "NL") &lt;&gt; 0 AND InStr(title, "Buy-in") &lt;&gt; 0)
{
ControlGetText, text, Static6, ahk_id%id%
IfNotInString, text, Blinds-Antes
{
StringMid, bb, text, InStr(text, "/") + 1, InStr(text, ")") - InStr(text, "/") - 1
}
else
{
StringMid, bb, text, InStr(text, "/") + 1, InStr(text, "-","",InStr(text, "/")) - InStr(text, "/") - 1
}
;msgbox, %bb%
}

; Do we want to increment by a whole or a half BB?
if (increment_half_bb = 1)
amount := bb / 2
else
amount := bb

if (dir="down")
{
amount := amount - (2*amount)
}

ControlGetText, t, Edit3, ahk_id%id%
t := t + amount
if (t &lt; 0)
{
t := 0
}

; Lets round to 0DP or 1DP.
if (increment_half_bb = 1)
t := Round(t, 1)
else
t := Round(t, 0)

; Alter the edit-box.
ControlSetText, Edit3, %t%, ahk_id%id%
;WinSet, Redraw,, ahk_id%id%

}

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; ;;;;;;;;;;;;;</pre><hr />

Juk [img]/images/graemlins/smile.gif[/img]

K䲰䮥n 01-20-2007 06:30 PM

Re: AHK script for Party Poker SNGs - ALL-IN
 
After few sets the newest version works like a charm. Havent tried the 0.5xBB yet though. All I need now is a script that gives a spite call warning.

Thanks for the script! Which level you play, Juk?

jukofyork 01-20-2007 06:58 PM

Re: AHK script for Party Poker SNGs - ALL-IN
 
[ QUOTE ]
After few sets the newest version works like a charm. Havent tried the 0.5xBB yet though. All I need now is a script that gives a spite call warning.

[/ QUOTE ]
Just be careful about the table closing - it's messed up on me a few times now and either won't let me sit down or starts trying to close SNGs that haven't finished yet (I've had to disable it on mine).

[ QUOTE ]
Thanks for the script! Which level you play, Juk?

[/ QUOTE ]
Only playing Speed 11s atm, and want to build a decent sample of 1.5-2k SNGs before playing 22s. Got through about 600 since last Friday, but now I can 9 table with ease (the Party slider was horrible...) and I've stopped the client crashes I was getting, it won't take too long hopefully.

So far my impression of the 11s is VERY juicy: I lost my net connection last week while playing 9 at various stages and was severely upset to say the least (hence got dual connections now), BUT when I woke up in the morning I couldn't work out how come I'd only lost $19. After looking at the Party account page, I saw I'd come 3rd in 4/9 of them!!!

Juk [img]/images/graemlins/smile.gif[/img]

K䲰䮥n 01-21-2007 02:37 PM

Re: AHK script for Party Poker SNGs - ALL-IN
 
Okay I run into really annoying problem.

I use PartyPlanner and I 12-table with slight overlap. Today the tables started popping up like a [censored] pinball table (pinball tables pop up?). They moved on top of each other every time when there was action (any movement) on the table. So I had to shut down the script. What might cause this? Anyway to prevent this?

jukofyork 01-21-2007 03:24 PM

Re: AHK script for Party Poker SNGs - ALL-IN
 
[ QUOTE ]
Okay I run into really annoying problem.

I use PartyPlanner and I 12-table with slight overlap. Today the tables started popping up like a [censored] pinball table (pinball tables pop up?). They moved on top of each other every time when there was action (any movement) on the table. So I had to shut down the script. What might cause this? Anyway to prevent this?

[/ QUOTE ]
I don't have overlap on my setup, but I did get some weird table flashing yesterday. Since then I've disabled the auto-close tables bit of code because it didn't seem to work properly and it seems to have got rid of the table flashing too. Try just putting a return statement right before this line: "; Now lets try closing the SNGs." and see if that fixes it.

I'll have to have another go at writing the table auto-close code to be safer (it didn't even work properly when I checked 10 times in a row if I wasn't at the table).

Juk [img]/images/graemlins/smile.gif[/img]

jukofyork 01-21-2007 07:56 PM

Re: AHK script for Party Poker SNGs - ALL-IN
 
[ QUOTE ]
[ QUOTE ]
Okay I run into really annoying problem.

I use PartyPlanner and I 12-table with slight overlap. Today the tables started popping up like a [censored] pinball table (pinball tables pop up?). They moved on top of each other every time when there was action (any movement) on the table. So I had to shut down the script. What might cause this? Anyway to prevent this?

[/ QUOTE ]
I don't have overlap on my setup, but I did get some weird table flashing yesterday. Since then I've disabled the auto-close tables bit of code because it didn't seem to work properly and it seems to have got rid of the table flashing too. Try just putting a return statement right before this line: "; Now lets try closing the SNGs." and see if that fixes it.

I'll have to have another go at writing the table auto-close code to be safer (it didn't even work properly when I checked 10 times in a row if I wasn't at the table).

[/ QUOTE ]
Did that help? It seems that PartyPlanner and my script don't get on well together - I've never had any problems with PartyPlanner before and now it's started lagging the Party tables and crashing itself after an hour or so. [img]/images/graemlins/frown.gif[/img]

Juk [img]/images/graemlins/smile.gif[/img]

K䲰䮥n 01-22-2007 04:18 AM

Re: AHK script for Party Poker SNGs - ALL-IN
 
For some reason it stopped doing the pinball thing. I did nothing different. Then, it started again. Then it stopped. Bleh. I quess I can live with it since my ROI% at the 22s is 137% after I started using this piece of software. Sustainable? [img]/images/graemlins/wink.gif[/img]

K䲰䮥n 01-22-2007 10:42 AM

Re: AHK script for Party Poker SNGs - ALL-IN
 
I'm having problemos with the auto-closer. But only when I'm starting my set.

Can I disable the auto-closet from the script and run it as a separate script after after I've gotten all my tables open?

jukofyork 01-22-2007 11:30 AM

Re: AHK script for Party Poker SNGs - ALL-IN
 
[ QUOTE ]
For some reason it stopped doing the pinball thing. I did nothing different. Then, it started again. Then it stopped. Bleh. I quess I can live with it since my ROI% at the 22s is 137% after I started using this piece of software. Sustainable? [img]/images/graemlins/wink.gif[/img]

[/ QUOTE ]
Lol, it seems to have blessed me with unsustainable good luck too. I'm not sure if my fold equity went up bc of the speed of my middle button pushes now though - maybe I imagined it, but I think maybe the fish think fast push = big hand?

I've been having problems with Party planner, so the table flashing thing could be something to do with it mixed with PartyPlanner (I've adapted _dave_'s StarsPlanner to work at Party now).

jukofyork 01-22-2007 11:34 AM

Re: AHK script for Party Poker SNGs - ALL-IN
 
[ QUOTE ]
I'm having problemos with the auto-closer. But only when I'm starting my set.

Can I disable the auto-closet from the script and run it as a separate script after after I've gotten all my tables open?

[/ QUOTE ]
I don't trust t, so have turned it off atm (it tried to close non finished SNGs a few times).

To use it alone you just need to make a small script like this:

<font class="small">Code:</font><hr /><pre>
#Persistent
#NoEnv

SendMode Input

SetTitleMatchMode 2

SetTimer, AutoCloseFinishedSNGs, 1000

return

AutoCloseFinishedSNGs:

; Now lets try closing the SNGs.
checkfield = Button3 ; Button3 is the "Auto Post Blind" checkbox.
LobbyWindowTitle = Poker Lobby ; identify poker lobby substring
TableWindowTitle = Buy-in. ; identify pokertable substring

WinGet, lobbyID, ID, %LobbyWindowTitle%

WinGet, pid, PID, ahk_id%lobbyID%
WinGet, rlist, LIST, %TableWindowTitle% ahk_pid%pid%
Loop %rlist%
{
this_id := rlist%a_index%
If this_id != %lobbyID%
{
WinGetTitle, name, ahk_id%this_id%

; Make sure we are not seating.
ControlGet, result, Visible, , Seat Open, ahk_id%this_id%
if (result = 0)
{

; Is it not visible?
ControlGet, result, Visible, , %checkfield%, ahk_id%this_id%
if (result = 0)
{
; Lets make 100% sure and try again incase of a graphics delay.
Sleep, 150
ControlGet, result, Visible, , %checkfield%, ahk_id%this_id%
if (result = 0)
{
WinClose, ahk_id%this_id% ; Close the table.
}
}
}
}
}

return</pre><hr />
You can also right click on it's taskbar icon and use "Pause Script" to turn it on/off.

Juk [img]/images/graemlins/smile.gif[/img]


All times are GMT -4. The time now is 07:38 AM.

Powered by vBulletin® Version 3.8.11
Copyright ©2000 - 2024, vBulletin Solutions Inc.