![]() |
#11
|
|||
|
|||
![]()
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_ & 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 <> "") 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<<16)^x), , ahk_id%table_id% PostMessage, 0x205 , 0, ((y<<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") <> 0 AND InStr(title, "Buy-in") <> 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 < 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] |
#12
|
|||
|
|||
![]()
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? |
#13
|
|||
|
|||
![]()
[ 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] |
#14
|
|||
|
|||
![]()
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? |
#15
|
|||
|
|||
![]()
[ 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] |
#16
|
|||
|
|||
![]()
[ 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] |
#17
|
|||
|
|||
![]()
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]
|
#18
|
|||
|
|||
![]()
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? |
#19
|
|||
|
|||
![]()
[ 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). |
#20
|
|||
|
|||
![]()
[ 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] |
![]() |
|
|