![]() |
|
#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] |
|
|