[UTILITY] AHK script:Stars Filtered SNG Opener
Mine recently stopped working within the past week I think. Anyone else having problems?
Which version doesn't work? If you are talking about 4.0x and using windows Vista or windows7, tell me your path to pokerstars.log.0 file.
Oops I must have been using an older version. I tried the last one you posted and it works again. Kind of weird since I used my old sfso maybe a week ago now and it worked fine.
Code:
; Author: Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher ; v.4.0a ; added: option to atuobuyin if full, hide/show window ; fixed issue with skipping first sng in lobby ; 4.0 version fixed by Max1mums #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force SetTitleMatchMode, 2 SetTimer, register, off SetTimer, safeguard, off StringTrimRight, thisahk, A_ScriptName, 4 ;;;;;;;;;;;SET YOUR PokerStars folder path here;;;;;;;;;;;;;;; ;pspath:="C:\Program Files\PokerStars\" IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% { If A_OSVersion in WIN_VISTA { IniWrite, %A_AppData%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% { StringGetPos,pos, pspath,Roaming StringLeft, pspath, pspath, %pos% pspath:=pspath . "Local\Pokerstars\" IniWrite, %pspath%, %thisahk%.ini, Settings, path } } Else IniWrite, %ProgramFiles%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path } ;============================================================== tcount=0 tcounter:="tcounter.ini" IfExist, %tcounter% FileDelete, %tcounter% RegSofar=0 OpenTables=0 trows=17 SysGet,mon, MonitorworkArea fivesec=0 two=0 ddlist4=Off| ddlist5=Off| ddlist6=Off| ddlist7=Off| LobbyList=Default|Black| ddlist2:=ddlist2 . 1 . "|" Loop 100 { two:=two+2 ddlist3:=ddlist3 . two . "|" If (A_index<51) { fivesec:=fivesec+5 ddlist:=ddlist . A_index . "|" ddlist2:=ddlist2 . fivesec . "|" ddlist5:=ddlist5 . fivesec . "|" ddlist6:=ddlist6 . fivesec . "|" If (A_index<22) { ddlist7:=ddlist7 . A_Index . "|" If (A_index<16) { ddlist4:=ddlist4 . A_index . "|" } } } } ddlist3:=ddlist3 . 9999 . "|" ddlist:=ddlist . 100 . "|" Gosub, BuildGui Return BuildGui: Gui, color, white Gui, font, cOlive Gui, add, tab, h340 w240, General|Advanced Settings Gui, add, text, , Auto-register Gui, add, Checkbox, yp xp+80 Check3 Checked-1 vRegister Gui, add, text, yp xp+30, Reg. next if full? Gui, add, Checkbox, yp xp+80 AutoIfFull VAutoifFull Gui, add, text,xp-190 yp+30 , Register every (sec): Gui, add, DropDownList, w50 yp-5 xp+140 vInterval1, %ddlist2% Gui, add, text, xp-140 yp+30, No of SNG:s to keep open: Gui, add, DropDownList, w50 yp-5 xp+140 vKeepOpen , %ddlist% Gui, add, text,xp-140 yp+30, Limit total SNG:s to: Gui, add, DropDownList, w50 yp-5 xp+140 vTotalLimit , %ddlist3% Gui, add, text,xp-140 yp+30, Limit total time to (min): Gui, add, DropDownList, w50 yp-5 xp+140 vTimeLimit , %ddlist5% Gui, add, text, xp-140 yp+30 cred vcdown w200 Gui, add, text, xp yp+30 w200 vRegSofar, SNG:s registered so far: Gui, add, text, w200 vOpenTables, Tables open/waiting: Gui, add, text, w200 cRed vStatus, Status: Idle Gui, add, Button, w68 ggetgui, &Submit+Run Gui, add, text, xp+72 yp+5, (Autosaves your settings) Gui, Add, Button, Disabled xp-72 yp+20 w48 h20 Center, &Resume Gui, Add, Button, Disabled w45 h20 yp xp+48 Center, &Pause Gui, Add, Button, w80 h20 yp xp+45 Center globbyrestore, &Lobby restore Gui, Add, Button, w45 h20 yp xp+80 gDonate, &Donate Gui, tab, 2 Gui, add, Text, x25 y65 , Lobby Theme: Gui, add, DropDownList, w65 yp-5 xp+140 vLobby, %LobbyList% Gui, add, text,xp-140 yp+30 , Close lobbies every (sec): Gui, add, DropDownList, w50 yp-5 xp+140 vCloseInterv, %ddlist6% Gui, add, text, xp-140 yp+18 , (manually Close with ctrl+e) Gui, add, text, yp+30, Disable if no user Input (min): Gui, add, DropDownList, w50 yp-5 xp+140 vGuardtimer Choose1 , %ddlist4% Gui, add, text, xp-140 yp+30 ,Batch-register? Gui, add, Checkbox,yp xp+140 vBatchReg Gui, add, text, yp+20 xp-140 ,SetReg* mode? Gui, add, Checkbox,yp xp+140 vSetReg Gui, add, text, yp+20 xp-140 ,Minimize lobby? Gui, add, Checkbox,yp xp+140 vMinlob Gui, add, Text, xp-140 yp+30, Times to scroll down: Gui, add, DropDownList, w50 yp-5 xp+140 vscrldwn, %ddlist7% Gui, add, Text, xp-140 yp+25, Always start at top of lobby? Gui, add, Checkbox, yp xp+140 vTopReturn /* Gui, tab, 3 Gui, add, text, , Manually populate list: F11 Gui, Add, ListView, r%trows% grid gFindLobby w200 c1, Registered in Tournaments */ Gui, show, w256, %thisahk% WinGetPos, x, y, w, h, SFSO ;x:=monRight-w ;y:=monBottom-h x:=monLeft y:=monTop Gosub, GetIni Gui, show, x%x% y%y%, %thisahk% Return getgui: GuiControl,, Register, -1 Register = 1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gui, Submit, NoHide displayedTime= If (lobby="Default") { regButton:="PokerStarsButtonClass7" } Else If (lobby="Black" or lobby="Custom*") { regButton:="PokerStarsButtonClass8" } Gosub, TimeLimit Gosub, MakeIni GuiControl, Enable, Pause GuiControl, Disable, Resume interval:=interval1*1000 If !interval interval=off If guardtimer is not Number { SetTimer, safeguard, off } Else { killtime:=guardtimer*60000 SetTimer, safeguard, 1000 } if CloseInterv is not number SetTimer, NukeLobbies, off else { lobclose:=CloseInterv*1000 SetTimer, NukeLobbies, %lobclose% } register=1 SetTimer, Register, %interval% Gosub, ButtonResume Return Safeguard: If (A_TimeIdle > killtime) { Gosub, ButtonPause GuiControl, , cdown, Stopped due to inactivity!!! %displayedTime% } Return TimeLimit: If TimeLimit is Number { allowedMinutes := timeLimit endTime := A_Now endTime += %allowedMinutes%, Minutes SetTimer, CountDown, 1000 } Else { GuiControl, , cdown, Time Limit off } Return Countdown: remainingTime := endTime EnvSub remainingTime, %A_Now%, Seconds m := remainingTime // 60 s := Mod(remainingTime, 60) displayedTime := Format3Digits(m) ":" Format2Digits(s) GuiControl, , cdown, Running another (mm:ss): %displayedTime% If (A_now > endTime) { SetTimer, Countdown, off Gosub, ButtonPause GuiControl, , cdown, Time Limit reached. } Return GuiClose: Gui, Submit Gosub, MakeIni ExitApp Return ButtonResume: Gui, Submit, NoHide If PausedTime is Number { TimeLimit:=PausedTime } Gosub, TimeLimit GuiControl, Disable, Resume GuiControl, Enable, Pause GuiControl, , Register, -1 Register=1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gosub, Register SetTimer, Register, %Interval% Return ButtonPause: Critical Gui, Submit, NoHide PausedTime:=remainingTime/60 Register=0 SetTimer, Countdown, off SetTimer, Register, off GuiControl, Disable, Pause GuiControl, Enable, Resume GuiControl, , Register, 0 GuiControl, , cdown, Manually Paused %displayedTime% GuiControl, , Status, Status: Waiting ;TEST Return Register: SetTitleMatchMode, 2 WinGet, LobbyID, id, PokerStars Lobby If !LobbyID { Gosub, ButtonPause GuiControl,, Status, Status: PokerStars Lobby not found Gui, show, NoActivate, %thisahk% Return } If (TopReturn=1) { ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%lobbyid% } WinGet, PhysicalTables, list, ahk_class PokerStarsTableFrameClass If PhysicalTables is not Number PhysicalTables=0 If (PhysicalTables >= KeepOpen) { GuiControl,, Status, Set Full waiting Gui, show, NoActivate, %thisahk% Return } OpenTables:=CountTourneys() If OpenTables is not Number OpenTables=0 GuiControl, , OpenTables, Tables open/waiting: %OpenTables% GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% Gui, show, NoActivate, %thisahk% If (RegSofar >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= KeepOpen) { GuiControl, , OpenTables, Tables open/waiting: %OpenTables% (Set full) GuiControl, , Status, Status: Waiting ;TEST Return } Else { If (BatchReg=1) { Times:= KeepOpen - OpenTables RegSNGexec(LobbyID, Times, scrldwn) } Else { RegSNGexec(LobbyID, 1, scrldwn) } } Return MakeIni: IniWrite, %AutoIfFull%, %thisahk%.ini, Settings, AutoIfFull IniWrite, %TopReturn%, %thisahk%.ini, Settings, TopReturn IniWrite, %scrldwn%, %thisahk%.ini, Settings, scrldwn IniWrite, %Lobby%, %thisahk%.ini, Settings, Lobby IniWrite, %BatchReg%, %thisahk%.ini, Settings, BatchReg IniWrite, %Setreg%, %thisahk%.ini, Settings, SetReg IniWrite, %Minlob%, %thisahk%.ini, Settings, MinLob IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1 IniWrite, %AutoClose%, %thisahk%.ini, Settings, AutoClose IniWrite, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer IniWrite, %TimeLimit%, %thisahk%.ini, Settings, TimeLimit Return GetIni: IfExist, %thisahk%.ini { IniRead, AutoIfFull, %thisahk%.ini, Settings, AutoIfFull IniRead, TopReturn, %thisahk%.ini, Settings, TopReturn,0 IniRead, scrldwn, %thisahk%.ini, Settings, scrldwn IniRead, Lobby, %thisahk%.ini, Settings, Lobby IniRead, BatchReg, %thisahk%.ini, Settings, BatchReg IniRead, SetReg, %thisahk%.ini, Settings, SetReg, 1 IniRead, MinLob, %thisahk%.ini, Settings, MinLob, 0 IniRead, Interval1, %thisahk%.ini, Settings, Interval1 IniRead, CloseInterv, %thisahk%.ini, Settings, CloseInterv IniRead, AutoClose, %thisahk%.ini, Settings, AutoClose IniRead, KeepOpen, %thisahk%.ini, Settings, KeepOpen IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off IniRead, TimeLimit, %thisahk%.ini, Settings, TimeLimit, Off GuiControl, , AutoIfFull, %AutoIfFull% StringReplace, ddlist7, ddlist7, %scrldwn%, %scrldwn%| GuiControl, , scrldwn, |%ddlist7% StringReplace, LobbyList, LobbyList, %Lobby%, %Lobby%| GuiControl, , Lobby, |%LobbyList% GuiControl, , BatchReg, %BatchReg% GuiControl, , SetReg, %SetReg% GuiControl, , MinLob, %MinLob% GuiControl, , TopReturn, %TopReturn% GuiControl, , AutoClose, %AutoClose% StringReplace, ddlist2, ddlist2, %interval1%, %Interval1%| GuiControl, , Interval1, |%ddlist2% StringReplace, ddlist6, ddlist6, %CloseInterv%, %CloseInterv%| GuiControl, , CloseInterv, |%ddlist6% StringReplace, ddlist, ddlist, %KeepOpen%, %KeepOpen%| GuiControl, , KeepOpen, |%ddlist% StringReplace, ddlist3, ddlist3, %TotalLimit%, %TotalLimit%|, GuiControl, , TotalLimit, |%ddlist3% StringReplace, ddlist4, ddlist4, %GuardTimer%, %GuardTimer%| GuiControl, , GuardTimer, |%ddlist4% StringReplace, ddlist5, ddlist5, %TimeLimit%, %TimeLimit%| GuiControl, , TimeLimit, |%ddlist5% } Return ^e:: NukeLobbies: SetTitleMatchMode, 2 GroupAdd, TLobbies, Lobby,,, PokerStars Lobby GroupClose, TLobbies, A Return #H:: WinHide, %thisahk% return #S:: WinShow, %thisahk% return F11:: TmpSetReg:=SetReg SetReg=0 CountTourneys() SetReg:=TmpSetReg Return ManualCount: CountTourneys() Return FindLobby: If (%A_GuiEvent% = DoubleClick) { LV_GetText(TournId,A_EventInfo) TournID:=SubStr(TournID, 1,10) WinMenuSelectItem, PokerStars Lobby,, Requests, Find a Tournament WinWait, Find Tournament ahk_class #32770, , 10 WinGet, fat, id ControlFocus, Edit1, ahk_id%fat% Sleep, -1 ControlSend, Edit1, %TournId%, ahk_id%fat% ControlFocus, Button1, ahk_id%fat% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%fat% } Return Donate: donation() Return Format2Digits(_val) { _val += 100 StringRight _val, _val, 2 Return _val } Format3Digits(_val) { _val += 1000 StringRight _val, _val, 3 StringTrimRight, FirstZ, _val, 2 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } StringTrimRight, FirstZ, _val, 1 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } Return _val } LobbyRestore: WinGet, lobbyid, id, PokerStars Lobby WinShow, ahk_id%lobbyid% WinMove, ahk_id%lobbyid%,,0,0 return RegSNGexec(id, times, scrldwn) { global RegSofar global Register global OpenTables global KeepOpen global TotalLimit global RegButton global AutoIfFull Loop %times% { Gosub, ManualCount Sleep, 25 ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%id% If (OpenTables >= KeepOpen) Exit If (OpenTable >= TotalLimit) Exit ClickdirectionCount=0 direction=0 GuiControl, , Status, Status: Registering ;TEST Loop 16 { If (Register=0) { GuiControl, , Status, Status: Idle ;TEST Exit } ControlGet, v, Visible, , %regButton%, ahk_id%id% If (v = 0) If (scrldwn!="Off") { If (ClickdirectionCount<=scrldwn) { If (direction=0) { ControlSend, PokerStarsListClass5, {NumpadDown}, ahk_id%id% } Else { ControlSend, PokerStarsListClass5, {NumpadUp}, ahk_id%id% } ClickdirectionCount:=ClickdirectionCount+1 } Else { If (direction=0) { direction:=1 } Else { direction:=0 } ClickdirectionCount:=0 } Sleep 1000 } If (v = 1) Break } If ( v = 1 ) { SetTitleMatchMode, 2 ControlClick, %regButton%, ahk_id%id% WinWait, Tournament Registration ahk_class #32770, , 10 { WinGet, regid, id, Tournament Registration ;ControlFocus, Button1, ahk_id%regid% ;Sleep, -1 ;ControlSend, Button1, {Space}, ahk_id%regid% ;Sleep, 10 ControlGet, Z, Visible,,Button1, ahk_id%regid% if Z { Control, Check,,Button1, ahk_id%regid% ControlClick, Button1, ahk_id%regid% } If (AutoIfFull = 1) { ControlFocus, Button2, ahk_id%regid% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%regid% Sleep, 30 } ;ControlFocus, Button3, ahk_id%regid% ;Sleep, -1 ;ControlSend, Button3, {Space}, ahk_id%regid% Control, Check,,Button3, Tournament Registration ControlClick, Button3, Tournament Registration } WinWait, Tournament Registration ahk_class #32770, , 10 { WinGet, regid, id, Tournament Registration WinGetPos, x, y, w, h, ahk_id%regid% ControlGetText, ctext, Button1, ahk_id%regid% If ( cText = "OK" ) { ;ControlFocus, Button1, ahk_id%regid% ;Sleep, -1 ;ControlSend, Button1, {Space}, ahk_id%regid% Control, Check,,Button1, ahk_id%regid% ControlClick, Button1, ahk_id%regid% if h>=145 { RegSofar++ GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% GuiControl, , Status, Status: Waiting ;TEST Gui, show, NoActivate, %thisahk% } } ; if h>=145 ; { ; RegSofar++ ; GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% ; GuiControl, , Status, Status: Waiting ;TEST ; Gui, show, NoActivate, %thisahk% ; } } } } } CountTourneys() { global If (SetReg=1) { Return 0 } SetTitleMatchMode, 2 logfile:= pspath . "pokerstars.log.0" Loop, Read, %logfile%, tourlist.txt { Ifinstring,A_LoopReadLine, RT add { StringTrimLeft, templine, A_LoopReadLine, 7 Needle:=" " StringGetPos,pos, templine,%Needle% If pos>=0 StringLeft, templine, templine, %pos% IniRead, tregistered,tcounter.ini, RegInT, %templine% if tregistered=ERROR { tcount ++ IniWrite, %tcount%,tcounter.ini, RegInT, Tourneycount IniWrite, %tcount%,tcounter.ini, RegInT, %templine% } } Ifinstring,A_LoopReadLine, RT remove { StringTrimLeft, templine2, A_LoopReadLine, 10 IniRead, tremove,tcounter.ini, RegInT, %templine2% if tremove<>ERROR { IniDelete, tcounter.ini, RegInT , %templine2% if tcount>0 tcount -- IniWrite, %tcount%, tcounter.ini, RegInT, Tourneycount } } } return tcount } donation() { WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds... WinWait, Transfer Funds ahk_class #32770, , 10 WinGet, tf, id ControlFocus, Edit2, ahk_id%tf% ControlSetText, Edit2, Attilio ControlFocus, Edit1, ahk_id%tf% Sleep, -1 ControlSetText, Edit1, GuiControl, Disable, Donate } lobbyStars() { SetTitleMatchMode 1 WinGet, id, id, PokerStars Lobby Return id } ~^!Q:: ExitApp
Hey all I'm new to AHK,
I tried running this script with several different combinations of settings and every time it never actually registers me for any SNG, I am in a Sit & Go tab in the pokerstars lobby. It always just pops up my cashier..
If it helps I'm on Windows Vista.
If this is a common problem and I didn't read well enough through the thread I apologize!
any help would be appreciated,
thanks!
I tried running this script with several different combinations of settings and every time it never actually registers me for any SNG, I am in a Sit & Go tab in the pokerstars lobby. It always just pops up my cashier..
If it helps I'm on Windows Vista.
If this is a common problem and I didn't read well enough through the thread I apologize!
any help would be appreciated,
thanks!
Uninstall-install autohotkey program as admin, make sure that correct Lobby theme is chosen on Advanced settings tab.
This still works correct?
Works fine for me. Noone asking for help means people don't need it or it works fine.
I can't seem to get version 4.0a to work
Try running script as admin if you are under Vista/W7 (uninstalling-installing autohotkey program as admin is the easiest way http://www.autohotkey.com/download/ ), tell me your path to pokerstars.log.0 file if that doesn't help.
Not sure if this is the reason, but on my debustifier file it says the path is Path=C:\Users\Brett\AppData\Local\PokerStars/pokerstars.log.0
And for the sfso that doesn't work, it says the path is
path=C:\Users\Brett\AppData\Local\Pokerstars\
And for the sfso that doesn't work, it says the path is
path=C:\Users\Brett\AppData\Local\Pokerstars\
btw is correct lobby theme chosen on advanced setting tab for you?
Script sets path correctly.
Script sets path correctly.
Yea, I have the default one
Try changing both to black then ) And what doesn't work exactly? Does it cycle through sngs, does registered number get changed? I'd say that's "run as admin" issue.
It seems stars changed buttons on default lobby theme, i'll try to fix script for default theme, you can use it with black theme for now.
It seems stars changed buttons on default lobby theme, i'll try to fix script for default theme, you can use it with black theme for now.
Try now:
Code:
; Author: Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher ; v.4.0a ; added: option to atuobuyin if full, hide/show window ; fixed issue with skipping first sng in lobby ; 4.0 version fixed by Max1mums #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force SetTitleMatchMode, 2 SetTimer, register, off SetTimer, safeguard, off StringTrimRight, thisahk, A_ScriptName, 4 ;;;;;;;;;;;SET YOUR PokerStars folder path here;;;;;;;;;;;;;;; ;pspath:="C:\Program Files\PokerStars\" IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% { If A_OSVersion in WIN_VISTA { IniWrite, %A_AppData%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% { StringGetPos,pos, pspath,Roaming StringLeft, pspath, pspath, %pos% pspath:=pspath . "Local\Pokerstars\" IniWrite, %pspath%, %thisahk%.ini, Settings, path } } Else IniWrite, %ProgramFiles%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path } ;============================================================== tcount=0 tcounter:="tcounter.ini" IfExist, %tcounter% FileDelete, %tcounter% RegSofar=0 OpenTables=0 trows=17 SysGet,mon, MonitorworkArea fivesec=0 two=0 ddlist4=Off| ddlist5=Off| ddlist6=Off| ddlist7=Off| LobbyList=Default|Black| ddlist2:=ddlist2 . 2 . "|" Loop 100 { two:=two+2 ddlist3:=ddlist3 . two . "|" If (A_index<51) { fivesec:=fivesec+5 ddlist:=ddlist . A_index . "|" ddlist2:=ddlist2 . fivesec . "|" ddlist5:=ddlist5 . fivesec . "|" ddlist6:=ddlist6 . fivesec . "|" If (A_index<22) { ddlist7:=ddlist7 . A_Index . "|" If (A_index<16) { ddlist4:=ddlist4 . A_index . "|" } } } } ddlist3:=ddlist3 . 9999 . "|" ddlist:=ddlist . 100 . "|" Gosub, BuildGui Return BuildGui: Gui, color, white Gui, font, cOlive Gui, add, tab, h340 w240, General|Advanced Settings Gui, add, text, , Auto-register Gui, add, Checkbox, yp xp+80 Check3 Checked-1 vRegister Gui, add, text, yp xp+30, Reg. next if full? Gui, add, Checkbox, yp xp+80 AutoIfFull VAutoifFull Gui, add, text,xp-190 yp+30 , Register every (sec): Gui, add, DropDownList, w50 yp-5 xp+140 vInterval1, %ddlist2% Gui, add, text, xp-140 yp+30, No of SNG:s to keep open: Gui, add, DropDownList, w50 yp-5 xp+140 vKeepOpen , %ddlist% Gui, add, text,xp-140 yp+30, Limit total SNG:s to: Gui, add, DropDownList, w50 yp-5 xp+140 vTotalLimit , %ddlist3% Gui, add, text,xp-140 yp+30, Limit total time to (min): Gui, add, DropDownList, w50 yp-5 xp+140 vTimeLimit , %ddlist5% Gui, add, text, xp-140 yp+30 cred vcdown w200 Gui, add, text, xp yp+30 w200 vRegSofar, SNG:s registered so far: Gui, add, text, w200 vOpenTables, Tables open/waiting: Gui, add, text, w200 cRed vStatus, Status: Idle Gui, add, Button, w68 ggetgui, &Submit+Run Gui, add, text, xp+72 yp+5, (Autosaves your settings) Gui, Add, Button, Disabled xp-72 yp+20 w48 h20 Center, &Resume Gui, Add, Button, Disabled w45 h20 yp xp+48 Center, &Pause Gui, Add, Button, w80 h20 yp xp+45 Center globbyrestore, &Lobby restore Gui, Add, Button, w45 h20 yp xp+80 gDonate, &Donate Gui, tab, 2 Gui, add, Text, x25 y65 , Lobby Theme: Gui, add, DropDownList, w65 yp-5 xp+140 vLobby, %LobbyList% Gui, add, text,xp-140 yp+30 , Close lobbies every (sec): Gui, add, DropDownList, w50 yp-5 xp+140 vCloseInterv, %ddlist6% Gui, add, text, xp-140 yp+18 , (manually Close with ctrl+e) Gui, add, text, yp+30, Disable if no user Input (min): Gui, add, DropDownList, w50 yp-5 xp+140 vGuardtimer Choose1 , %ddlist4% Gui, add, text, xp-140 yp+30 ,Batch-register? Gui, add, Checkbox,yp xp+140 vBatchReg Gui, add, text, yp+20 xp-140 ,SetReg* mode? Gui, add, Checkbox,yp xp+140 vSetReg Gui, add, text, yp+20 xp-140 ,Minimize lobby? Gui, add, Checkbox,yp xp+140 vMinlob Gui, add, Text, xp-140 yp+30, Times to scroll down: Gui, add, DropDownList, w50 yp-5 xp+140 vscrldwn, %ddlist7% Gui, add, Text, xp-140 yp+25, Always start at top of lobby? Gui, add, Checkbox, yp xp+140 vTopReturn /* Gui, tab, 3 Gui, add, text, , Manually populate list: F11 Gui, Add, ListView, r%trows% grid gFindLobby w200 c1, Registered in Tournaments */ Gui, show, w256, %thisahk% WinGetPos, x, y, w, h, SFSO ;x:=monRight-w ;y:=monBottom-h x:=monLeft y:=monTop Gosub, GetIni Gui, show, x%x% y%y%, %thisahk% Return getgui: GuiControl,, Register, -1 Register = 1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gui, Submit, NoHide displayedTime= If (lobby="Default") { ;regButton:="PokerStarsButtonClass7" regButton:="PokerStarsButtonClass8" } Else If (lobby="Black" or lobby="Custom*") { regButton:="PokerStarsButtonClass8" } Gosub, TimeLimit Gosub, MakeIni GuiControl, Enable, Pause GuiControl, Disable, Resume interval:=interval1*1000 If !interval interval=off If guardtimer is not Number { SetTimer, safeguard, off } Else { killtime:=guardtimer*60000 SetTimer, safeguard, 1000 } if CloseInterv is not number SetTimer, NukeLobbies, off else { lobclose:=CloseInterv*1000 SetTimer, NukeLobbies, %lobclose% } register=1 SetTimer, Register, %interval% Gosub, ButtonResume Return Safeguard: If (A_TimeIdle > killtime) { Gosub, ButtonPause GuiControl, , cdown, Stopped due to inactivity!!! %displayedTime% } Return TimeLimit: If TimeLimit is Number { allowedMinutes := timeLimit endTime := A_Now endTime += %allowedMinutes%, Minutes SetTimer, CountDown, 1000 } Else { GuiControl, , cdown, Time Limit off } Return Countdown: remainingTime := endTime EnvSub remainingTime, %A_Now%, Seconds m := remainingTime // 60 s := Mod(remainingTime, 60) displayedTime := Format3Digits(m) ":" Format2Digits(s) GuiControl, , cdown, Running another (mm:ss): %displayedTime% If (A_now > endTime) { SetTimer, Countdown, off Gosub, ButtonPause GuiControl, , cdown, Time Limit reached. } Return GuiClose: Gui, Submit Gosub, MakeIni ExitApp Return ButtonResume: Gui, Submit, NoHide If PausedTime is Number { TimeLimit:=PausedTime } Gosub, TimeLimit GuiControl, Disable, Resume GuiControl, Enable, Pause GuiControl, , Register, -1 Register=1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gosub, Register SetTimer, Register, %Interval% Return ButtonPause: Critical Gui, Submit, NoHide PausedTime:=remainingTime/60 Register:=0 SetTimer, Countdown, off SetTimer, Register, off GuiControl, Disable, Pause GuiControl, Enable, Resume GuiControl, , Register, 0 GuiControl, , cdown, Manually Paused %displayedTime% GuiControl, , Status, Status: Waiting ;TEST Return Register: SetTitleMatchMode, 2 WinGet, LobbyID, id, PokerStars Lobby If !LobbyID { Gosub, ButtonPause GuiControl,, Status, Status: PokerStars Lobby not found Gui, show, NoActivate, %thisahk% Return } If (TopReturn=1) { ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%lobbyid% } WinGet, PhysicalTables, list, ahk_class PokerStarsTableFrameClass If PhysicalTables is not Number PhysicalTables=0 If (PhysicalTables >= KeepOpen) { GuiControl,, Status, Set Full waiting Gui, show, NoActivate, %thisahk% Return } OpenTables:=CountTourneys() If OpenTables is not Number OpenTables=0 GuiControl, , OpenTables, Tables open/waiting: %OpenTables% GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% Gui, show, NoActivate, %thisahk% If (RegSofar >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= KeepOpen) { GuiControl, , OpenTables, Tables open/waiting: %OpenTables% (Set full) GuiControl, , Status, Status: Waiting ;TEST Return } Else { If (BatchReg=1) { Times:= KeepOpen - OpenTables RegSNGexec(LobbyID, Times, scrldwn) } Else { RegSNGexec(LobbyID, 1, scrldwn) } } Return MakeIni: IniWrite, %AutoIfFull%, %thisahk%.ini, Settings, AutoIfFull IniWrite, %TopReturn%, %thisahk%.ini, Settings, TopReturn IniWrite, %scrldwn%, %thisahk%.ini, Settings, scrldwn IniWrite, %Lobby%, %thisahk%.ini, Settings, Lobby IniWrite, %BatchReg%, %thisahk%.ini, Settings, BatchReg IniWrite, %Setreg%, %thisahk%.ini, Settings, SetReg IniWrite, %Minlob%, %thisahk%.ini, Settings, MinLob IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1 IniWrite, %AutoClose%, %thisahk%.ini, Settings, AutoClose IniWrite, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer IniWrite, %TimeLimit%, %thisahk%.ini, Settings, TimeLimit Return GetIni: IfExist, %thisahk%.ini { IniRead, AutoIfFull, %thisahk%.ini, Settings, AutoIfFull IniRead, TopReturn, %thisahk%.ini, Settings, TopReturn,0 IniRead, scrldwn, %thisahk%.ini, Settings, scrldwn IniRead, Lobby, %thisahk%.ini, Settings, Lobby IniRead, BatchReg, %thisahk%.ini, Settings, BatchReg IniRead, SetReg, %thisahk%.ini, Settings, SetReg, 1 IniRead, MinLob, %thisahk%.ini, Settings, MinLob, 0 IniRead, Interval1, %thisahk%.ini, Settings, Interval1 IniRead, CloseInterv, %thisahk%.ini, Settings, CloseInterv IniRead, AutoClose, %thisahk%.ini, Settings, AutoClose IniRead, KeepOpen, %thisahk%.ini, Settings, KeepOpen IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off IniRead, TimeLimit, %thisahk%.ini, Settings, TimeLimit, Off GuiControl, , AutoIfFull, %AutoIfFull% StringReplace, ddlist7, ddlist7, %scrldwn%, %scrldwn%| GuiControl, , scrldwn, |%ddlist7% StringReplace, LobbyList, LobbyList, %Lobby%, %Lobby%| GuiControl, , Lobby, |%LobbyList% GuiControl, , BatchReg, %BatchReg% GuiControl, , SetReg, %SetReg% GuiControl, , MinLob, %MinLob% GuiControl, , TopReturn, %TopReturn% GuiControl, , AutoClose, %AutoClose% StringReplace, ddlist2, ddlist2, %interval1%, %Interval1%| GuiControl, , Interval1, |%ddlist2% StringReplace, ddlist6, ddlist6, %CloseInterv%, %CloseInterv%| GuiControl, , CloseInterv, |%ddlist6% StringReplace, ddlist, ddlist, %KeepOpen%, %KeepOpen%| GuiControl, , KeepOpen, |%ddlist% StringReplace, ddlist3, ddlist3, %TotalLimit%, %TotalLimit%|, GuiControl, , TotalLimit, |%ddlist3% StringReplace, ddlist4, ddlist4, %GuardTimer%, %GuardTimer%| GuiControl, , GuardTimer, |%ddlist4% StringReplace, ddlist5, ddlist5, %TimeLimit%, %TimeLimit%| GuiControl, , TimeLimit, |%ddlist5% } Return ^e:: NukeLobbies: SetTitleMatchMode, 2 GroupAdd, TLobbies, Lobby,,, PokerStars Lobby GroupClose, TLobbies, A Return #H:: WinHide, %thisahk% return #S:: WinShow, %thisahk% return F11:: TmpSetReg:=SetReg SetReg=0 CountTourneys() SetReg:=TmpSetReg Return ManualCount: CountTourneys() Return FindLobby: If (%A_GuiEvent% = DoubleClick) { LV_GetText(TournId,A_EventInfo) TournID:=SubStr(TournID, 1,10) WinMenuSelectItem, PokerStars Lobby,, Requests, Find a Tournament WinWait, Find Tournament ahk_class #32770, , 10 WinGet, fat, id ControlFocus, Edit1, ahk_id%fat% Sleep, -1 ControlSend, Edit1, %TournId%, ahk_id%fat% ControlFocus, Button1, ahk_id%fat% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%fat% } Return Donate: donation() Return Format2Digits(_val) { _val += 100 StringRight _val, _val, 2 Return _val } Format3Digits(_val) { _val += 1000 StringRight _val, _val, 3 StringTrimRight, FirstZ, _val, 2 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } StringTrimRight, FirstZ, _val, 1 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } Return _val } LobbyRestore: WinGet, lobbyid, id, PokerStars Lobby WinShow, ahk_id%lobbyid% WinMove, ahk_id%lobbyid%,,0,0 return RegSNGexec(id, times, scrldwn) { global RegSofar global Register global OpenTables global KeepOpen global TotalLimit global RegButton global AutoIfFull Loop %times% { Gosub, ManualCount Sleep, 25 ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%id% If (OpenTables >= KeepOpen) Exit If (OpenTable >= TotalLimit) Exit ClickdirectionCount=0 direction=0 GuiControl, , Status, Status: Registering ;TEST Loop 16 { If (Register=0) { GuiControl, , Status, Status: Idle ;TEST Exit } ControlGet, v, Visible, , %regButton%, ahk_id%id% If (v = 0) If (scrldwn!="Off") { If (ClickdirectionCount<=scrldwn) { If (direction=0) { ControlSend, PokerStarsListClass5, {NumpadDown}, ahk_id%id% } Else { ControlSend, PokerStarsListClass5, {NumpadUp}, ahk_id%id% } ClickdirectionCount:=ClickdirectionCount+1 } Else { If (direction=0) { direction:=1 } Else { direction:=0 } ClickdirectionCount:=0 } Sleep 1000 } If (v = 1) Break } If ( v = 1 ) { SetTitleMatchMode, 2 ControlFocus, %regButton%, ahk_id%ID% PostMessage, 0x201, 0x0001,((20<<16)^30),%regButton% , ahk_id%id% PostMessage, 0x202 , 0,((20<<16)^30),%regButton% , ahk_id%id% WinWait, Tournament Registration ahk_class #32770, , 3 { WinGet, regid, id, Tournament Registration ControlGet, Z, Visible,,Button1, ahk_id%regid% if Z { ControlFocus, Button1, ahk_id%regID% PostMessage, 0x201, 0x0001,((10<<16)^10),Button1 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button1 , ahk_id%id% } If (AutoIfFull = 1) { ControlFocus, Button2, ahk_id%regid% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%regid% Sleep, 30 } Control, Check,,Button3, ahk_id%regid% ControlFocus, Button3, ahk_id%regid% PostMessage, 0x201, 0x0001,((10<<16)^10),Button3 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button3 , ahk_id%id% ;RegSofar++ } WinWait, Tournament Registration ahk_class #32770, , 3 { WinGet, regid, id, Tournament Registration WinGetPos, x, y, w, h, ahk_id%regid% ControlGetText, ctext, Button1, ahk_id%regid% If ( cText = "OK" ) { Control, Check,,Button1, ahk_id%regid% ControlFocus, Button1, ahk_id%regid% PostMessage, 0x201, 0x0001,((10<<16)^10),Button1 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button1 , ahk_id%id% } } if h>145 RegSofar++ GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% GuiControl, , Status, Status: Waiting ;TEST Gui, show, NoActivate, %thisahk% } } } CountTourneys() { global If (SetReg=1) { Return 0 } SetTitleMatchMode, 2 logfile:= pspath . "pokerstars.log.0" Loop, Read, %logfile%, tourlist.txt { Ifinstring,A_LoopReadLine, RT add { StringTrimLeft, templine, A_LoopReadLine, 7 StringLeft, templine, templine, instr(templine,A_space) IniRead, tregistered,tcounter.ini, RegInT, %templine% if tregistered=ERROR { tcount ++ IniWrite, %tcount%,tcounter.ini, RegInT, Tourneycount IniWrite, %tcount%,tcounter.ini, RegInT, %templine% } } Ifinstring,A_LoopReadLine, RT remove { StringTrimLeft, templine2, A_LoopReadLine, 10 IniRead, tremove,tcounter.ini, RegInT, %templine2% if tremove<>ERROR { IniDelete, tcounter.ini, RegInT , %templine2% if tcount>0 tcount -- IniWrite, %tcount%, tcounter.ini, RegInT, Tourneycount } } } return tcount } donation() { WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds... WinWait, Transfer Funds ahk_class #32770, , 10 WinGet, tf, id ControlFocus, Edit2, ahk_id%tf% ControlSetText, Edit2, Attilio ControlFocus, Edit1, ahk_id%tf% Sleep, -1 ControlSetText, Edit1, GuiControl, Disable, Donate } lobbyStars() { SetTitleMatchMode 1 WinGet, id, id, PokerStars Lobby Return id } ~^!Q:: ExitApp
works ty
Try now:
Code:
; Author: Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher ; v.4.0a ; added: option to atuobuyin if full, hide/show window ; fixed issue with skipping first sng in lobby ; 4.0 version fixed by Max1mums #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force SetTitleMatchMode, 2 SetTimer, register, off SetTimer, safeguard, off StringTrimRight, thisahk, A_ScriptName, 4 ;;;;;;;;;;;SET YOUR PokerStars folder path here;;;;;;;;;;;;;;; ;pspath:="C:\Program Files\PokerStars\" IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% { If A_OSVersion in WIN_VISTA { IniWrite, %A_AppData%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% { StringGetPos,pos, pspath,Roaming StringLeft, pspath, pspath, %pos% pspath:=pspath . "Local\Pokerstars\" IniWrite, %pspath%, %thisahk%.ini, Settings, path } } Else IniWrite, %ProgramFiles%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path } ;============================================================== tcount=0 tcounter:="tcounter.ini" IfExist, %tcounter% FileDelete, %tcounter% RegSofar=0 OpenTables=0 trows=17 SysGet,mon, MonitorworkArea fivesec=0 two=0 ddlist4=Off| ddlist5=Off| ddlist6=Off| ddlist7=Off| LobbyList=Default|Black| ddlist2:=ddlist2 . 2 . "|" Loop 100 { two:=two+2 ddlist3:=ddlist3 . two . "|" If (A_index<51) { fivesec:=fivesec+5 ddlist:=ddlist . A_index . "|" ddlist2:=ddlist2 . fivesec . "|" ddlist5:=ddlist5 . fivesec . "|" ddlist6:=ddlist6 . fivesec . "|" If (A_index<22) { ddlist7:=ddlist7 . A_Index . "|" If (A_index<16) { ddlist4:=ddlist4 . A_index . "|" } } } } ddlist3:=ddlist3 . 9999 . "|" ddlist:=ddlist . 100 . "|" Gosub, BuildGui Return BuildGui: Gui, color, white Gui, font, cOlive Gui, add, tab, h340 w240, General|Advanced Settings Gui, add, text, , Auto-register Gui, add, Checkbox, yp xp+80 Check3 Checked-1 vRegister Gui, add, text, yp xp+30, Reg. next if full? Gui, add, Checkbox, yp xp+80 AutoIfFull VAutoifFull Gui, add, text,xp-190 yp+30 , Register every (sec): Gui, add, DropDownList, w50 yp-5 xp+140 vInterval1, %ddlist2% Gui, add, text, xp-140 yp+30, No of SNG:s to keep open: Gui, add, DropDownList, w50 yp-5 xp+140 vKeepOpen , %ddlist% Gui, add, text,xp-140 yp+30, Limit total SNG:s to: Gui, add, DropDownList, w50 yp-5 xp+140 vTotalLimit , %ddlist3% Gui, add, text,xp-140 yp+30, Limit total time to (min): Gui, add, DropDownList, w50 yp-5 xp+140 vTimeLimit , %ddlist5% Gui, add, text, xp-140 yp+30 cred vcdown w200 Gui, add, text, xp yp+30 w200 vRegSofar, SNG:s registered so far: Gui, add, text, w200 vOpenTables, Tables open/waiting: Gui, add, text, w200 cRed vStatus, Status: Idle Gui, add, Button, w68 ggetgui, &Submit+Run Gui, add, text, xp+72 yp+5, (Autosaves your settings) Gui, Add, Button, Disabled xp-72 yp+20 w48 h20 Center, &Resume Gui, Add, Button, Disabled w45 h20 yp xp+48 Center, &Pause Gui, Add, Button, w80 h20 yp xp+45 Center globbyrestore, &Lobby restore Gui, Add, Button, w45 h20 yp xp+80 gDonate, &Donate Gui, tab, 2 Gui, add, Text, x25 y65 , Lobby Theme: Gui, add, DropDownList, w65 yp-5 xp+140 vLobby, %LobbyList% Gui, add, text,xp-140 yp+30 , Close lobbies every (sec): Gui, add, DropDownList, w50 yp-5 xp+140 vCloseInterv, %ddlist6% Gui, add, text, xp-140 yp+18 , (manually Close with ctrl+e) Gui, add, text, yp+30, Disable if no user Input (min): Gui, add, DropDownList, w50 yp-5 xp+140 vGuardtimer Choose1 , %ddlist4% Gui, add, text, xp-140 yp+30 ,Batch-register? Gui, add, Checkbox,yp xp+140 vBatchReg Gui, add, text, yp+20 xp-140 ,SetReg* mode? Gui, add, Checkbox,yp xp+140 vSetReg Gui, add, text, yp+20 xp-140 ,Minimize lobby? Gui, add, Checkbox,yp xp+140 vMinlob Gui, add, Text, xp-140 yp+30, Times to scroll down: Gui, add, DropDownList, w50 yp-5 xp+140 vscrldwn, %ddlist7% Gui, add, Text, xp-140 yp+25, Always start at top of lobby? Gui, add, Checkbox, yp xp+140 vTopReturn /* Gui, tab, 3 Gui, add, text, , Manually populate list: F11 Gui, Add, ListView, r%trows% grid gFindLobby w200 c1, Registered in Tournaments */ Gui, show, w256, %thisahk% WinGetPos, x, y, w, h, SFSO ;x:=monRight-w ;y:=monBottom-h x:=monLeft y:=monTop Gosub, GetIni Gui, show, x%x% y%y%, %thisahk% Return getgui: GuiControl,, Register, -1 Register = 1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gui, Submit, NoHide displayedTime= If (lobby="Default") { ;regButton:="PokerStarsButtonClass7" regButton:="PokerStarsButtonClass8" } Else If (lobby="Black" or lobby="Custom*") { regButton:="PokerStarsButtonClass8" } Gosub, TimeLimit Gosub, MakeIni GuiControl, Enable, Pause GuiControl, Disable, Resume interval:=interval1*1000 If !interval interval=off If guardtimer is not Number { SetTimer, safeguard, off } Else { killtime:=guardtimer*60000 SetTimer, safeguard, 1000 } if CloseInterv is not number SetTimer, NukeLobbies, off else { lobclose:=CloseInterv*1000 SetTimer, NukeLobbies, %lobclose% } register=1 SetTimer, Register, %interval% Gosub, ButtonResume Return Safeguard: If (A_TimeIdle > killtime) { Gosub, ButtonPause GuiControl, , cdown, Stopped due to inactivity!!! %displayedTime% } Return TimeLimit: If TimeLimit is Number { allowedMinutes := timeLimit endTime := A_Now endTime += %allowedMinutes%, Minutes SetTimer, CountDown, 1000 } Else { GuiControl, , cdown, Time Limit off } Return Countdown: remainingTime := endTime EnvSub remainingTime, %A_Now%, Seconds m := remainingTime // 60 s := Mod(remainingTime, 60) displayedTime := Format3Digits(m) ":" Format2Digits(s) GuiControl, , cdown, Running another (mm:ss): %displayedTime% If (A_now > endTime) { SetTimer, Countdown, off Gosub, ButtonPause GuiControl, , cdown, Time Limit reached. } Return GuiClose: Gui, Submit Gosub, MakeIni ExitApp Return ButtonResume: Gui, Submit, NoHide If PausedTime is Number { TimeLimit:=PausedTime } Gosub, TimeLimit GuiControl, Disable, Resume GuiControl, Enable, Pause GuiControl, , Register, -1 Register=1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gosub, Register SetTimer, Register, %Interval% Return ButtonPause: Critical Gui, Submit, NoHide PausedTime:=remainingTime/60 Register:=0 SetTimer, Countdown, off SetTimer, Register, off GuiControl, Disable, Pause GuiControl, Enable, Resume GuiControl, , Register, 0 GuiControl, , cdown, Manually Paused %displayedTime% GuiControl, , Status, Status: Waiting ;TEST Return Register: SetTitleMatchMode, 2 WinGet, LobbyID, id, PokerStars Lobby If !LobbyID { Gosub, ButtonPause GuiControl,, Status, Status: PokerStars Lobby not found Gui, show, NoActivate, %thisahk% Return } If (TopReturn=1) { ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%lobbyid% } WinGet, PhysicalTables, list, ahk_class PokerStarsTableFrameClass If PhysicalTables is not Number PhysicalTables=0 If (PhysicalTables >= KeepOpen) { GuiControl,, Status, Set Full waiting Gui, show, NoActivate, %thisahk% Return } OpenTables:=CountTourneys() If OpenTables is not Number OpenTables=0 GuiControl, , OpenTables, Tables open/waiting: %OpenTables% GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% Gui, show, NoActivate, %thisahk% If (RegSofar >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= KeepOpen) { GuiControl, , OpenTables, Tables open/waiting: %OpenTables% (Set full) GuiControl, , Status, Status: Waiting ;TEST Return } Else { If (BatchReg=1) { Times:= KeepOpen - OpenTables RegSNGexec(LobbyID, Times, scrldwn) } Else { RegSNGexec(LobbyID, 1, scrldwn) } } Return MakeIni: IniWrite, %AutoIfFull%, %thisahk%.ini, Settings, AutoIfFull IniWrite, %TopReturn%, %thisahk%.ini, Settings, TopReturn IniWrite, %scrldwn%, %thisahk%.ini, Settings, scrldwn IniWrite, %Lobby%, %thisahk%.ini, Settings, Lobby IniWrite, %BatchReg%, %thisahk%.ini, Settings, BatchReg IniWrite, %Setreg%, %thisahk%.ini, Settings, SetReg IniWrite, %Minlob%, %thisahk%.ini, Settings, MinLob IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1 IniWrite, %AutoClose%, %thisahk%.ini, Settings, AutoClose IniWrite, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer IniWrite, %TimeLimit%, %thisahk%.ini, Settings, TimeLimit Return GetIni: IfExist, %thisahk%.ini { IniRead, AutoIfFull, %thisahk%.ini, Settings, AutoIfFull IniRead, TopReturn, %thisahk%.ini, Settings, TopReturn,0 IniRead, scrldwn, %thisahk%.ini, Settings, scrldwn IniRead, Lobby, %thisahk%.ini, Settings, Lobby IniRead, BatchReg, %thisahk%.ini, Settings, BatchReg IniRead, SetReg, %thisahk%.ini, Settings, SetReg, 1 IniRead, MinLob, %thisahk%.ini, Settings, MinLob, 0 IniRead, Interval1, %thisahk%.ini, Settings, Interval1 IniRead, CloseInterv, %thisahk%.ini, Settings, CloseInterv IniRead, AutoClose, %thisahk%.ini, Settings, AutoClose IniRead, KeepOpen, %thisahk%.ini, Settings, KeepOpen IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off IniRead, TimeLimit, %thisahk%.ini, Settings, TimeLimit, Off GuiControl, , AutoIfFull, %AutoIfFull% StringReplace, ddlist7, ddlist7, %scrldwn%, %scrldwn%| GuiControl, , scrldwn, |%ddlist7% StringReplace, LobbyList, LobbyList, %Lobby%, %Lobby%| GuiControl, , Lobby, |%LobbyList% GuiControl, , BatchReg, %BatchReg% GuiControl, , SetReg, %SetReg% GuiControl, , MinLob, %MinLob% GuiControl, , TopReturn, %TopReturn% GuiControl, , AutoClose, %AutoClose% StringReplace, ddlist2, ddlist2, %interval1%, %Interval1%| GuiControl, , Interval1, |%ddlist2% StringReplace, ddlist6, ddlist6, %CloseInterv%, %CloseInterv%| GuiControl, , CloseInterv, |%ddlist6% StringReplace, ddlist, ddlist, %KeepOpen%, %KeepOpen%| GuiControl, , KeepOpen, |%ddlist% StringReplace, ddlist3, ddlist3, %TotalLimit%, %TotalLimit%|, GuiControl, , TotalLimit, |%ddlist3% StringReplace, ddlist4, ddlist4, %GuardTimer%, %GuardTimer%| GuiControl, , GuardTimer, |%ddlist4% StringReplace, ddlist5, ddlist5, %TimeLimit%, %TimeLimit%| GuiControl, , TimeLimit, |%ddlist5% } Return ^e:: NukeLobbies: SetTitleMatchMode, 2 GroupAdd, TLobbies, Lobby,,, PokerStars Lobby GroupClose, TLobbies, A Return #H:: WinHide, %thisahk% return #S:: WinShow, %thisahk% return F11:: TmpSetReg:=SetReg SetReg=0 CountTourneys() SetReg:=TmpSetReg Return ManualCount: CountTourneys() Return FindLobby: If (%A_GuiEvent% = DoubleClick) { LV_GetText(TournId,A_EventInfo) TournID:=SubStr(TournID, 1,10) WinMenuSelectItem, PokerStars Lobby,, Requests, Find a Tournament WinWait, Find Tournament ahk_class #32770, , 10 WinGet, fat, id ControlFocus, Edit1, ahk_id%fat% Sleep, -1 ControlSend, Edit1, %TournId%, ahk_id%fat% ControlFocus, Button1, ahk_id%fat% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%fat% } Return Donate: donation() Return Format2Digits(_val) { _val += 100 StringRight _val, _val, 2 Return _val } Format3Digits(_val) { _val += 1000 StringRight _val, _val, 3 StringTrimRight, FirstZ, _val, 2 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } StringTrimRight, FirstZ, _val, 1 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } Return _val } LobbyRestore: WinGet, lobbyid, id, PokerStars Lobby WinShow, ahk_id%lobbyid% WinMove, ahk_id%lobbyid%,,0,0 return RegSNGexec(id, times, scrldwn) { global RegSofar global Register global OpenTables global KeepOpen global TotalLimit global RegButton global AutoIfFull Loop %times% { Gosub, ManualCount Sleep, 25 ControlSend, PokerStarsListClass5, {NumpadUp 20}, ahk_id%id% If (OpenTables >= KeepOpen) Exit If (OpenTable >= TotalLimit) Exit ClickdirectionCount=0 direction=0 GuiControl, , Status, Status: Registering ;TEST Loop 16 { If (Register=0) { GuiControl, , Status, Status: Idle ;TEST Exit } ControlGet, v, Visible, , %regButton%, ahk_id%id% If (v = 0) If (scrldwn!="Off") { If (ClickdirectionCount<=scrldwn) { If (direction=0) { ControlSend, PokerStarsListClass5, {NumpadDown}, ahk_id%id% } Else { ControlSend, PokerStarsListClass5, {NumpadUp}, ahk_id%id% } ClickdirectionCount:=ClickdirectionCount+1 } Else { If (direction=0) { direction:=1 } Else { direction:=0 } ClickdirectionCount:=0 } Sleep 1000 } If (v = 1) Break } If ( v = 1 ) { SetTitleMatchMode, 2 ControlFocus, %regButton%, ahk_id%ID% PostMessage, 0x201, 0x0001,((20<<16)^30),%regButton% , ahk_id%id% PostMessage, 0x202 , 0,((20<<16)^30),%regButton% , ahk_id%id% WinWait, Tournament Registration ahk_class #32770, , 3 { WinGet, regid, id, Tournament Registration ControlGet, Z, Visible,,Button1, ahk_id%regid% if Z { ControlFocus, Button1, ahk_id%regID% PostMessage, 0x201, 0x0001,((10<<16)^10),Button1 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button1 , ahk_id%id% } If (AutoIfFull = 1) { ControlFocus, Button2, ahk_id%regid% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%regid% Sleep, 30 } Control, Check,,Button3, ahk_id%regid% ControlFocus, Button3, ahk_id%regid% PostMessage, 0x201, 0x0001,((10<<16)^10),Button3 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button3 , ahk_id%id% ;RegSofar++ } WinWait, Tournament Registration ahk_class #32770, , 3 { WinGet, regid, id, Tournament Registration WinGetPos, x, y, w, h, ahk_id%regid% ControlGetText, ctext, Button1, ahk_id%regid% If ( cText = "OK" ) { Control, Check,,Button1, ahk_id%regid% ControlFocus, Button1, ahk_id%regid% PostMessage, 0x201, 0x0001,((10<<16)^10),Button1 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button1 , ahk_id%id% } } if h>145 RegSofar++ GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% GuiControl, , Status, Status: Waiting ;TEST Gui, show, NoActivate, %thisahk% } } } CountTourneys() { global If (SetReg=1) { Return 0 } SetTitleMatchMode, 2 logfile:= pspath . "pokerstars.log.0" Loop, Read, %logfile%, tourlist.txt { Ifinstring,A_LoopReadLine, RT add { StringTrimLeft, templine, A_LoopReadLine, 7 StringLeft, templine, templine, instr(templine,A_space) IniRead, tregistered,tcounter.ini, RegInT, %templine% if tregistered=ERROR { tcount ++ IniWrite, %tcount%,tcounter.ini, RegInT, Tourneycount IniWrite, %tcount%,tcounter.ini, RegInT, %templine% } } Ifinstring,A_LoopReadLine, RT remove { StringTrimLeft, templine2, A_LoopReadLine, 10 IniRead, tremove,tcounter.ini, RegInT, %templine2% if tremove<>ERROR { IniDelete, tcounter.ini, RegInT , %templine2% if tcount>0 tcount -- IniWrite, %tcount%, tcounter.ini, RegInT, Tourneycount } } } return tcount } donation() { WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds... WinWait, Transfer Funds ahk_class #32770, , 10 WinGet, tf, id ControlFocus, Edit2, ahk_id%tf% ControlSetText, Edit2, Attilio ControlFocus, Edit1, ahk_id%tf% Sleep, -1 ControlSetText, Edit1, GuiControl, Disable, Donate } lobbyStars() { SetTitleMatchMode 1 WinGet, id, id, PokerStars Lobby Return id } ~^!Q:: ExitApp
Thanks, that finally made it work for me.
I'm not sure how I feel about this. I love everything about it, almost. I just tried it for the first time and loaded up a set and I only cashed in one (though I have one still going). So, on the one hand, the most stressful part of mass-multitabling has been removed, but so have my profits. I think profits > stress, but I am not sure.
Other than that, this is amazing! Thank you, Everlong and all who have contributed!
Other than that, this is amazing! Thank you, Everlong and all who have contributed!
Let's say I want to open 10 tables every 30 minutes. I want to play set of 10 tables every 30 minutes.
Does anyone know a script that opens "X" number of tables every 30 minutes?
SFSO doesn't seem do this...and Stars SNG Opener v.0.01 by _dave_ isn't working for me. The one by _dave_ seems perfect, but it doesn't register.
Does anyone know a script that opens "X" number of tables every 30 minutes?
SFSO doesn't seem do this...and Stars SNG Opener v.0.01 by _dave_ isn't working for me. The one by _dave_ seems perfect, but it doesn't register.
I'd like to keep more than 50 tables open.
Is this possible w/ just editing some line?
If yes - which ones?
thank YoU vM!!
Is this possible w/ just editing some line?
If yes - which ones?
thank YoU vM!!
I added 100 there as maximum number of tables to keep open and 9999 for total limit in last version i posted here, which version are you using?
sorry for the stupid question. I tried to download this, but it only opens up a file with text in it. What do I do with this, and how do I get this to run?
Any one have an executable file for this like there is for stars hotkeys?
Sorry I am obv computer challenged (and embarassed that noone else has asked this before so apparently its pretty simple?)
Thanks !!
Any one have an executable file for this like there is for stars hotkeys?
Sorry I am obv computer challenged (and embarassed that noone else has asked this before so apparently its pretty simple?)
Thanks !!
Download and install (as admin if under Vista/W7) autohotkey program http://www.autohotkey.com/download/A...keyInstall.exe, run .ahk file.
Thanks scalf that version works for me. Does anyone else have a problem with the counter not working at all for counting sngs regged?
That happened to me while using auto-register function of another script, check if you will still have that problem running SFSO alone.
Feedback is used for internal purposes. LEARN MORE