[UTILITY] AHK script:Stars Filtered SNG Opener
So I guess no one else had problems with the software not sitting in all registered tournaments like I had a couple of posts back. It freaked me out and I have stopped using the script until I get a definitive answer.
And my question is i just started trying to use this opener and when it should register me for anothe sng it just opens my cashier, i am kindof dumb with scripts but any help is appreciated.
i remember seeing a script that makes sure all ur registered tournaments are open but i forget the name, sorry i cant help more.
And my question is i just started trying to use this opener and when it should register me for anothe sng it just opens my cashier, i am kindof dumb with scripts but any help is appreciated.
And my question is i just started trying to use this opener and when it should register me for anothe sng it just opens my cashier, i am kindof dumb with scripts but any help is appreciated.
Great program but sometimes it stops registering for me. Say if I want 24 registered continously, it registers me for 12 then stops registering. Another problem on my laptop is when I want 12 registered, sometimes it doesn't stop registering even after 12 tables is already running.
Is there any way to filter for 180 man tournaments but not 18 man ones?
No. Search the thread, this has been asked many times.
Yes there is. You just have to filter out the buyins for the 18-mans. They're different from the 180-man buyins. for example, here is my filter to show only turbo 45s and 180s in the low bracket ($12 180s/45s): turbo -90 -$6.50 -$16
For me, the software caused the PokerStars client to use 100% CPU, slowing the entire system down before throwing up a never-seen-before (by me) internal error in the PS client and closing.
Before this, it managed to autoregister in two SnG's in about 15min, despite there being at least 10 in the lobby at any one time, and despite me setting it to keep open 8 tables and selecting setreg and batch reg.
Nice idea at least
Before this, it managed to autoregister in two SnG's in about 15min, despite there being at least 10 in the lobby at any one time, and despite me setting it to keep open 8 tables and selecting setreg and batch reg.
Nice idea at least
For me, the software caused the PokerStars client to use 100% CPU, slowing the entire system down before throwing up a never-seen-before (by me) internal error in the PS client and closing.
Before this, it managed to autoregister in two SnG's in about 15min, despite there being at least 10 in the lobby at any one time, and despite me setting it to keep open 8 tables and selecting setreg and batch reg.
Nice idea at least
Before this, it managed to autoregister in two SnG's in about 15min, despite there being at least 10 in the lobby at any one time, and despite me setting it to keep open 8 tables and selecting setreg and batch reg.
Nice idea at least
For me, the software caused the PokerStars client to use 100% CPU, slowing the entire system down before throwing up a never-seen-before (by me) internal error in the PS client and closing.
Before this, it managed to autoregister in two SnG's in about 15min, despite there being at least 10 in the lobby at any one time, and despite me setting it to keep open 8 tables and selecting setreg and batch reg.
Nice idea at least
Before this, it managed to autoregister in two SnG's in about 15min, despite there being at least 10 in the lobby at any one time, and despite me setting it to keep open 8 tables and selecting setreg and batch reg.
Nice idea at least
Also: Everyone please post all your gripes/issues - I need karma bad and have decided to overhaul/update SFSO. Yes really this time.
Post bugs and feature requests and I will get to work within a day two.
To do:
Minimize to tray
Lock function /w password
Option to buy in to similar if that is available
You do, in fact, have more than three lines of instructions on your website, but these instructions are not written with the new user in mind, they are more like developer notes to another developer. You need a proper help file with a decent, clear explanation of the usage of each option and importantly, you need to include example setups.
LawJik: I fiddled with it for ages before it started crashing stuff and nearly hung my system. All settings were tried off and on etc. I don't see why I should turn setreg off when the instructions tell me to turn it on if I want to play a set. It's a Bill O'Reilly from me I'm afraid. (****ing Thing Sucks!).
Is three lines adequate for explaining the use of a software product to a new user? Do you think three lines can ever constitute adequate software documentation?
You do, in fact, have more than three lines of instructions on your website, but these instructions are not written with the new user in mind, they are more like developer notes to another developer. You need a proper help file with a decent, clear explanation of the usage of each option and importantly, you need to include example setups.
LawJik: I fiddled with it for ages before it started crashing stuff and nearly hung my system. All settings were tried off and on etc. I don't see why I should turn setreg off when the instructions tell me to turn it on if I want to play a set. It's a Bill O'Reilly from me I'm afraid. (****ing Thing Sucks!).
You do, in fact, have more than three lines of instructions on your website, but these instructions are not written with the new user in mind, they are more like developer notes to another developer. You need a proper help file with a decent, clear explanation of the usage of each option and importantly, you need to include example setups.
LawJik: I fiddled with it for ages before it started crashing stuff and nearly hung my system. All settings were tried off and on etc. I don't see why I should turn setreg off when the instructions tell me to turn it on if I want to play a set. It's a Bill O'Reilly from me I'm afraid. (****ing Thing Sucks!).
Apology accepted. </sarc>
(Someone deleted my first reply)
(Someone deleted my first reply)
dont mean to be stupid but how do i download this program?
For those of you that grind all the time; is the Auto register if full option there on every sng buyin dialogue now??
edit; working on 3.2.3 right now so keep suggestions coming.
minmize to tray is done, buyin if full is kinda done.
edit; working on 3.2.3 right now so keep suggestions coming.
minmize to tray is done, buyin if full is kinda done.
I am really sorry to be so ******ed and please dont flame me...
but.... I cannot for the life of me see where to download this cool looking program from
I click on the .ahk flile linke and download and then windows asks me wtf to open it wiht
please help and apologies for being an idiot
but.... I cannot for the life of me see where to download this cool looking program from
I click on the .ahk flile linke and download and then windows asks me wtf to open it wiht
please help and apologies for being an idiot
You need to download/install autohotkey before you can use any .ahk scripts.
ahhh ok thanks
3.2.3 beta for those that would like to help test, please report back any problems with registering:
* Added option to check the auto buyin in next if full option
* Minimize to tray with Win+H, unhide with Win+S
* Fixed issue with first SNG in lobby being skipped
* Added option to check the auto buyin in next if full option
* Minimize to tray with Win+H, unhide with Win+S
* Fixed issue with first SNG in lobby being skipped
Code:
; Author: Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher ; v.3.2.3 ; added: option to atuobuyin if full, hide/show window ; fixed issue with skipping first sng in lobby #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force SetTitleMatchMode, 2 SetTimer, register, off SetTimer, safeguard, off StringTrimRight, thisahk, A_ScriptName, 4 RegSofar=0 OpenTables=0 trows=17 SysGet,mon, MonitorworkArea fivesec=0 two=0 ddlist4=Off| ddlist5=Off| ddlist6=Off| ddlist7=Off| LobbyList=Default|Black| 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 . "|" } } } } Gosub, BuildGui Return BuildGui: Gui, color, white Gui, font, cOlive Gui, add, tab, h340 w240, General|Advanced Settings|Registered in Tournaments 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 Gosub, GetIni Gui, show, x%x% y%y%, %thisahk% Return getgui: GuiControl,, Register, -1 Register = 1 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 } 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 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 >0 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 ) { ControlClick, %regButton%, ahk_id%id% WinWait, Tournament Registration ahk_class #32770, , 10 { WinGet, regid, id ControlFocus, Button1, ahk_id%regid% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%regid% Sleep, 10 If (AutoIfFull = 1) { ControlFocus, Button2, ahk_id%regid% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%regid% Sleep, 30 } ;WinGet, clist , ControlList, ahk_id%regid% ;IfInString, clist, Button4 ;{ ControlFocus, Button3, ahk_id%regid% Sleep, -1 ControlSend, Button3, {Space}, ahk_id%regid% RegSofar++ GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% GuiControl, , Status, Status: Waiting ;TEST Gui, show, NoActivate, %thisahk% ;} ;Else ;{ ;ControlFocus, Button2, ahk_id%regid% ;Sleep, -1 ;ControlSend, Button2, {Space}, ahk_id%regid% ;RegSofar++ ;GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% ;GuiControl, , Status, Status: Waiting ;TEST ;Gui, show, NoActivate, %thisahk% ;} } WinWait, Tournament Registration ahk_class #32770, , 10 { WinGet, regid, id ControlGetText, ctext, Button1, ahk_id%regid% If ( cText = "OK" ) { ControlFocus, Button1, ahk_id%regid% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%regid% } } } } } CountTourneys() { global If (SetReg=1) { Return 0 } WinMenuSelectItem, PokerStars Lobby,, Requests, Registered In Tournaments WinWait, Registered In Tournaments ahk_class #32770, , 10 WinGet, ritw, id ControlGetText, nf, Button1, ahk_id%ritw% If (nf = "OK") { ControlFocus, Button1, ahk_id%ritw% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%ritw% { If (minlob=1) WinMinimize, PokerStars Lobby } Return 0 } ControlGet, Tlist, List,, ListBox1, ahk_id%ritw% ControlFocus, Button2, ahk_id%ritw% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%ritw% { If (minlob=1) WinMinimize, PokerStars Lobby } StringSplit, tlist, tlist, `n If (tlist0 > 4) trows:=tlist0 GuiControl, , trows, %trows% Loop %tlist0% { t:=tlist%A_index% If A_index=1 LV_Delete() LV_Add("", t) LV_ModifyCol() LV_DeleteCol(2) } Gui, show, NoActivate, %thisahk% Return tlist0 } 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
Found the possible explanation;
At the start of registration SFSO checks the registered in tournaments menu to see if it needs to register. When you do this (you can try i manually) the register button on the SNG you are on disappears, hence SFSO scrolls down one sng.
Edit: found a way around this. It now reigsters for the first one in the new beta. (Look one post up).
3.2.3 beta for those that would like to help test, please report back any problems with registering:
* Added option to check the auto buyin in next if full option
* Minimize to tray with Win+H, unhide with Win+S
* Fixed issue with first SNG in lobby being skipped
* Added option to check the auto buyin in next if full option
* Minimize to tray with Win+H, unhide with Win+S
* Fixed issue with first SNG in lobby being skipped
Code:
; Author: Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher ; v.3.2.3 ; added: option to atuobuyin if full, hide/show window ; fixed issue with skipping first sng in lobby #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force SetTitleMatchMode, 2 SetTimer, register, off SetTimer, safeguard, off StringTrimRight, thisahk, A_ScriptName, 4 RegSofar=0 OpenTables=0 trows=17 SysGet,mon, MonitorworkArea fivesec=0 two=0 ddlist4=Off| ddlist5=Off| ddlist6=Off| ddlist7=Off| LobbyList=Default|Black| 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 . "|" } } } } Gosub, BuildGui Return BuildGui: Gui, color, white Gui, font, cOlive Gui, add, tab, h340 w240, General|Advanced Settings|Registered in Tournaments 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 Gosub, GetIni Gui, show, x%x% y%y%, %thisahk% Return getgui: GuiControl,, Register, -1 Register = 1 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 } 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 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 >0 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 ) { ControlClick, %regButton%, ahk_id%id% WinWait, Tournament Registration ahk_class #32770, , 10 { WinGet, regid, id ControlFocus, Button1, ahk_id%regid% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%regid% Sleep, 10 If (AutoIfFull = 1) { ControlFocus, Button2, ahk_id%regid% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%regid% Sleep, 30 } ;WinGet, clist , ControlList, ahk_id%regid% ;IfInString, clist, Button4 ;{ ControlFocus, Button3, ahk_id%regid% Sleep, -1 ControlSend, Button3, {Space}, ahk_id%regid% RegSofar++ GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% GuiControl, , Status, Status: Waiting ;TEST Gui, show, NoActivate, %thisahk% ;} ;Else ;{ ;ControlFocus, Button2, ahk_id%regid% ;Sleep, -1 ;ControlSend, Button2, {Space}, ahk_id%regid% ;RegSofar++ ;GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% ;GuiControl, , Status, Status: Waiting ;TEST ;Gui, show, NoActivate, %thisahk% ;} } WinWait, Tournament Registration ahk_class #32770, , 10 { WinGet, regid, id ControlGetText, ctext, Button1, ahk_id%regid% If ( cText = "OK" ) { ControlFocus, Button1, ahk_id%regid% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%regid% } } } } } CountTourneys() { global If (SetReg=1) { Return 0 } WinMenuSelectItem, PokerStars Lobby,, Requests, Registered In Tournaments WinWait, Registered In Tournaments ahk_class #32770, , 10 WinGet, ritw, id ControlGetText, nf, Button1, ahk_id%ritw% If (nf = "OK") { ControlFocus, Button1, ahk_id%ritw% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%ritw% { If (minlob=1) WinMinimize, PokerStars Lobby } Return 0 } ControlGet, Tlist, List,, ListBox1, ahk_id%ritw% ControlFocus, Button2, ahk_id%ritw% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%ritw% { If (minlob=1) WinMinimize, PokerStars Lobby } StringSplit, tlist, tlist, `n If (tlist0 > 4) trows:=tlist0 GuiControl, , trows, %trows% Loop %tlist0% { t:=tlist%A_index% If A_index=1 LV_Delete() LV_Add("", t) LV_ModifyCol() LV_DeleteCol(2) } Gui, show, NoActivate, %thisahk% Return tlist0 } 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
The only problem I have is the Registered In Tournaments window staying open sometimes and taking focus away from the tables (not just 3.2.3). I use StarsHotkeys and a gamepad to play, so it can really mess me up sometimes.
i will try and make the whole checking thing less obtrusive
"Love the minimize to tray thing" => what's that ?
I have tested this script too ; but to register, i need to select a stt in the lobby. I mean if the first one is slow to be full, the script wont register others stt until this one is launched except if I select another one in the lobby . Is this normal / can you change this ?
Sorry for my english, hope this is clear !
Thx !
I have tested this script too ; but to register, i need to select a stt in the lobby. I mean if the first one is slow to be full, the script wont register others stt until this one is launched except if I select another one in the lobby . Is this normal / can you change this ?
Sorry for my english, hope this is clear !
Thx !
Hey all, I am having trouble getting this program to work properly. The first time I ran it it worked fine but now it says it is registering for sngs but is actually not. Here is a screen shot of my settings. If any1 can help I would greatly appreciate it thanks.
Feedback is used for internal purposes. LEARN MORE