Two Plus Two Publishing LLC
Two Plus Two Publishing LLC
 

Go Back   Two Plus Two Poker Forums > > >

Notices

Free Software Discussion of Free / Freeware / Donationware / Open Source poker software and Free Graphics mods

Reply
 
Thread Tools Display Modes
Old 01-07-2015, 08:38 AM   #1026
5plus5=55
centurion
 
Join Date: May 2012
Posts: 160
Re: AHK script:Stars Filtered SNG Opener

Quote:
Originally Posted by Manipur View Post
Download the script posted in

http://www.autohotkey.com/board/topi...-wininfo-menu/

Run it and click on the Register button in the Lobby. The field Control ClassNN will show you the needed PokerStarsButtonClass for regButton_PS7. Do the same with the Unregister button and unregButton_PS7.
sry not able to find the script, can you please help ?
5plus5=55 is offline   Reply With Quote
Old 01-08-2015, 06:03 AM   #1027
Manipur
newbie
 
Join Date: Jan 2011
Posts: 27
Re: AHK script:Stars Filtered SNG Opener

It's posted in the first post. Just copy and paste it into a .ahk script and convert it. Probably confusing that I wrote download. Nothing to download there.
Manipur is offline   Reply With Quote
Old 01-08-2015, 10:13 AM   #1028
5plus5=55
centurion
 
Join Date: May 2012
Posts: 160
Re: AHK script:Stars Filtered SNG Opener

I am really very sry, not getting which post you are talking ?

when i open the link u posted cant see the sng opener script
5plus5=55 is offline   Reply With Quote
Old 01-08-2015, 09:40 PM   #1029
Manipur
newbie
 
Join Date: Jan 2011
Posts: 27
Re: AHK script:Stars Filtered SNG Opener

The SNG Opener scripts are posted in this thread. One is posted here:

https://forumserver.twoplustwo.com/sh...postcount=1011

But to make it work you have to correct some lines. Read the posts following the script.
Manipur is offline   Reply With Quote
Old 01-13-2015, 08:51 AM   #1030
DigitalFeltBully
stranger
 
DigitalFeltBully's Avatar
 
Join Date: Sep 2012
Posts: 11
Re: AHK script:Stars Filtered SNG Opener

What is the main input to change for type of sng, not sure of the register button directions, do I find info of the lobby page and enter into script.
DigitalFeltBully is offline   Reply With Quote
Old 01-15-2015, 01:24 AM   #1031
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Cant get this to work for PS7.UK.

When I click register it just opens up the 'Registered in games' tab showing me any games I have running or Reg too.
OditeRussia is offline   Reply With Quote
Old 01-17-2015, 08:13 AM   #1032
khalifa
grinder
 
Join Date: Jul 2010
Posts: 506
Re: AHK script:Stars Filtered SNG Opener

It's not working for me. I just get the error message "[current time] Registration not OK_Stop Registering".

And I've used and AHK script before where I just could press the registration button and then it would register me and also submit/close all the pop-ups but unfortunately this script stopped to work. And I think the latest posted script wouldn't wait for me pressing the registering button, right?
khalifa is offline   Reply With Quote
Old 01-17-2015, 10:28 AM   #1033
Max1mums
old hand
 
Join Date: Aug 2009
Location: From Russia with code
Posts: 1,672
Re: AHK script:Stars Filtered SNG Opener

This version should work fine for both PS6 and PS7:
Code:
; Author:         Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher
; v.4.01c
; added: PS7 support
; 4.0x version fixed by Max1mums 
#NoEnv
#SingleInstance, Force
SendMode Input
SetWorkingDir %A_ScriptDir%
setwindelay,-1
setcontroldelay,-1
SetBatchLines, -1
SetTitleMatchMode, 2
SetTimer, register, off
SetTimer, safeguard, off
SetTimer, numcheck, 75
StringTrimRight, thisahk, A_ScriptName, 4

onexit,exitsub

IniRead, pspath, %thisahk%.ini, Settings, path
;;;;;;;;;;;SET YOUR pokerstars.log.0 file path below;;;;;;;;;;;;;;;
;;;;;;;;;;;eg logfile:="c:\Program Files\PokerStars\pokerstars.log.0"
logfile:= pspath . "pokerstars.log.0" ;<-
IfNotExist,%logfile%
{
Loop, %A_ProgramFiles%\* , 2
{
if instr(A_LoopFileName,"PokerStars")>0
logfile:=A_LoopFileFullPath . "\PokerStars.log.0"
}
IfNotExist,%logfile%
Loop, %A_AppData%\* , 2
if instr(A_LoopFileName,"PokerStars")>0
logfile:=A_LoopFileFullPath . "\PokerStars.log.0"
IfNotExist,%logfile%
{
StringReplace,logfile,A_AppData,Roaming,Local
Loop, %logfile%\* , 2
if instr(A_LoopFileName,"PokerStars")>0
logfile:=A_LoopFileFullPath . "\PokerStars.log.0"
}
}
IfNotExist,%logfile%
{
logfile:= pspath . "pokerstars.log.0"
IfNotExist,%logfile%
msgbox, PokerStars.log.0 file path is probably incorrect, recheck the configuration
}

IniRead, Targetnum, %thisahk%.ini, Settings, Targetnum
if Targetnum is not number
Targetnum:=0
;==============================================================
RegSofar=0
OpenTables=0
trows=17
SysGet,mon, MonitorworkArea
fivesec=0
ft:=0
two=0
ddlist4=Off|
ddlist5=Off|
ddlist6=Off|
ddlist7=Off|
LobbyList=Default|Black|
ddlist2:=ddlist2 . 1 . "|"
ddlist2:=ddlist2 . 2 . "|"
Loop 100
{
two:=two+2
ddlist3:=ddlist3 . two . "|"
ddlist:=ddlist . A_index . "|"
If (A_index<51)
{
fivesec:=fivesec+5
ddlist2:=ddlist2 . fivesec . "|"
ddlist6:=ddlist6 . fivesec . "|"
If (A_index<22)
{
ddlist7:=ddlist7 . A_Index . "|"
If (A_index<16)
{
ddlist4:=ddlist4 . A_index . "|"
}
}
}
else
{
ft:=ft+15
ddlist5:=ddlist5 . ft . "|"
}
}
ddlist3:=ddlist3 . 9999 . "|"
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 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 vLimitTime , %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, 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, 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
Gui, Submit, NoHide
displayedTime=
If (lobby="Default")
{
regButton:="PokerStarsButtonClass10"
}
Else If (lobby="Black" or lobby="Custom*")
{
regButton:="PokerStarsButtonClass10"
}
Gosub, MakeIni
PausedTime:=LimitTime
Gosub, TimeLimit
interval:=interval1*1000

If interval is not Number
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
sleep,-1
Gosub, ButtonResume
Return

Safeguard:
If (A_TimeIdle > killtime)
{
Gosub, ButtonPause
GuiControl, , cdown, Stopped  due to inactivity!!! %displayedTime%
}
Return

TimeLimit:
If LimitTime is Number
{
allowedMinutes := LimitTime
endTime := A_Now
endTime += %allowedMinutes%, Minutes
SetTimer, CountDown, 1000
}
Else
{
SetTimer, CountDown, off
sleep,-1
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
GuiControl, Disable, &Resume
GuiControl, Enable, &Pause
if LimitTime is Number
If PausedTime is Number
LimitTime:=PausedTime
Gosub, TimeLimit
GuiControl, , Register, -1
Register:=1
settimer, AutoReg,37
OpenTables:=0
tables=
OpenTables:=CountTourneys(1)
Gosub,Register
SetTimer, Register, %Interval%
sleep,-1
Return

ButtonPause:
Critical
Gui, Submit, NoHide
if LimitTime is Number
PausedTime:=remainingTime/60
Register:=0
settimer, AutoReg,off
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,,Tournament

If !LobbyID
{
Gosub, ButtonPause
GuiControl,, Status, Status: PokerStars Lobby not found
Gui, show, NoActivate, %thisahk%
Return
}

controlgettext,text,%regButton%,ahk_id%LobbyID%
if !(text="Register")
{
list=PokerStarsListClass13
WinGet,ctrls,ControlList,ahk_id%LobbyID%
Loop,Parse,ctrls,`n
{
 controlgettext,text,%A_LoopField%,ahk_id%LobbyID%
 if text=Register
 regButton:=A_LoopField
}
}
else
list=PokerStarsListClass3


If (TopReturn=1)
{
ControlSend, %list%, {NumpadUp 20}, ahk_id%lobbyid%
}
WinGet, PhysicalTables, list,Table ahk_class PokerStarsTableFrameClass
If PhysicalTables is not Number
PhysicalTables:=0
If (PhysicalTables >= KeepOpen)
{
GuiControl,, Status, Set Full waiting
Return
}
OpenTables:=CountTourneys()
If OpenTables is not Number
OpenTables:=0
GuiControl, , OpenTables, Tables open/waiting: %OpenTables%
GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%

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, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv
IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen
IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit
IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer
IniWrite, %LimitTime%, %thisahk%.ini, Settings, LimitTime
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, KeepOpen, %thisahk%.ini, Settings, KeepOpen
IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit
IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off
IniRead, LimitTime, %thisahk%.ini, Settings, LimitTime, 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%
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, %LimitTime%, %LimitTime%|
GuiControl, , LimitTime, |%ddlist5%
}
Return

#e::
gosub,NukeLobbies
Return

NukeLobbies:
SetTitleMatchMode, 2
GroupAdd, TLobbies, Lobby ahk_class PokerStarsTableFrameClass,,, 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

Format2Digits(_val) {
_val :=Round(_val) + 100
StringRight _val, _val, 2
Return _val
}

Format3Digits(_val) {
_val :=Round(_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
global list

Loop %times%
{
ControlSend, %list%, {NumpadUp 20}, ahk_id%id%
If (OpenTables >= KeepOpen)
Exit
If (OpenTables >= 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, %list%, {NumpadDown}, ahk_id%id%
} Else {
ControlSend, %list%, {NumpadUp}, ahk_id%id%
}
ClickdirectionCount:=ClickdirectionCount+1
} Else {
If (direction=0) {
direction:=1
} Else {
direction:=0
}
ClickdirectionCount:=0
}
Sleep,1000
}
If ( v = 1 ) {
wingetclass,class,A
SetTitleMatchMode, 2
ControlSend, %regButton%, {Space}, ahk_id%id%
ControlSend, %regButton%, {Space}, ahk_id%id%
WinWait, Tournament Registration ahk_class #32770,,1
{
WinGet, regid, id, Tournament Registration ahk_class #32770
controlget,vis,visible,,Button2,ahk_id%regid%
if vis
{
 If (AutoIfFull = 1)
 {
 Control,Check,,Button2, ahk_id%regid%
 ;ControlSend, Button2, {Space}, ahk_id%regid%
 Sleep, 30
 }
ControlSend, PokerStarsButtonClass1, {Space}, ahk_id%regid%
}
}
sleep,30
WinWait, Tournament Registration ahk_class #32770,,1
{
WinGet, regid, id, Tournament Registration ahk_class #32770
controlget,vis,visible,,Button2,ahk_id%regid%
if !vis
winclose,ahk_id%regid%
;ControlSend, PokerStarsButtonClass1, {Space}, ahk_id%regid%
}
GuiControl, , Status, Status: Waiting ;TEST
;if class=PokerStarsTableFrameClass
;winactivate,ahk_class PokerStarsTableFrameClass
Break
}
}
}
}
return

AutoReg:
AutoReg()
return

AutoReg()
{
global AutoIfFull
setwindelay,-1
settitlematchmode,2
IfWinExist, Tournament Registration ahk_class #32770
{
wingettext,text,
if instr(text,"Confirm")>0
{
autobtn=PokerStarsButtonClass3
okbtn=PokerStarsButtonClass2
}
else
{
autobtn=Button2
okbtn=PokerStarsButtonClass1
}
winget,id,id,
controlget,vis,visible,,%autobtn%,ahk_id%id%
if vis
{
If (AutoIfFull = 1)
{
ControlFocus, %autobtn%, ahk_id%id%
Sleep, -1
ControlSend, %autobtn%, {Space}, ahk_id%id%
Sleep, 30
}
ControlSend, %okbtn%, {Space}, ahk_id%id%
}
else
ControlSend, %okbtn%, {Space}, ahk_id%id%
;winclose,ahk_id%id%
}
}
return

CountTourneys(mode=0) {
global logfile
global RegSofar,regtourneys,tables,Targetnum
If (SetReg=1)
{
Return 0
}
if mode=0
{
log := CheckFile(logfile)
}
else
{
log := CheckFile(logfile,1)
}
;fileread,log, %logfile%
Loop, Parse, log, `n,
{
tnumber=
;If ((instr(A_loopField,"TournFrame")>0) && !(instr(A_loopField,"::")>0) && !(instr(A_loopField,"~")>0)) || (instr(A_loopField,"RT add")>0)
if (instr(A_loopField,"RT add")>0)
{
 if instr(A_loopField,"TournFrame")>0
 {
 tnumber:=RegExReplace(A_loopField, "TournFrame '", "")
 stringleft,tnumber,tnumber,instr(tnumber,A_space)-2
 }
 else
 if instr(A_loopField,"RT add")>0 
 {
 tnumber:=RegExReplace(A_loopField, "RT add ", "")
 if instr(tnumber,A_space)
 StringLeft, tnumber, tnumber, instr(tnumber,A_space)-1
 }
 tnumber:=RegExReplace(tnumber, "[`n,`r]", "")
 tnumber:=Floor(tnumber)
 ;if !instr(tables,tnumber)
 ;listadd(tables,tnumber)
 if !instr(tables,tnumber) && ((Targetnum=0) || ((Targetnum>0) && (tnumber>=(Targetnum-50000)) && (tnumber<(Targetnum+100000))))
 listadd(tables,tnumber)
}
else
;If (instr(A_loopField,"RT remove")>0) || (instr(A_loopField,"~TournFrame")>0)
If (instr(A_loopField,"RT remove")>0)
{
 if instr(A_loopField,"~TournFrame")>0
 {
 tnumber:=RegExReplace(A_loopField, "~TournFrame '", "")
 stringleft,tnumber,tnumber,instr(tnumber,A_space)-2
 }
 else
 if instr(A_loopField,"RT remove")>0
 stringtrimleft,tnumber,A_loopField,instr(A_loopField,A_space,"",0)
 tnumber:=RegExReplace(tnumber, "[`n,`r]", "")
 if instr(tables,tnumber)
 listDelItem(tables,tnumber)
}
}
log=
tcount:=0

Loop, Parse, tables, -,
{
if A_Loopfield is number
{
tcount++
if !(instr(regtourneys,A_Loopfield)>0)
{
listadd(regtourneys,A_Loopfield)
if mode=0
RegSofar++
}
}
}

return tcount
}

numcheck:
winget,nlist,list,Table ahk_class PokerStarsTableFrameClass
loop %nlist%
{
id:=nlist%A_index%
wingettitle,title,ahk_id%id%
stringtrimleft,num,title,instr(title,A_space,"",instr(title,"Tournament"))
stringleft,num,num,instr(num,A_space)-1
if num is not number
num:=0
if (num>targetnum)
targetnum:=num
StringReplace,targetnum,targetnum,A_space,,All
StringReplace,targetnum,targetnum,`n,,All
StringReplace,targetnum,targetnum,`r,,All
}
return

Ansi2Unicode(sString, CP = 0)
{
	  nSize := DllCall("MultiByteToWideChar"
		, "Uint", CP
		, "Uint", 0
		, "Uint", &sString
		, "int",  -1
		, "Uint", 0
		, "int",  0)

	VarSetCapacity(wString, nSize * 2)

	DllCall("MultiByteToWideChar"
		, "Uint", CP
		, "Uint", 0
		, "Uint", &sString
		, "int",  -1
		, "Uint", &wString
		, "int",  nSize)
return wstring
}

ReplaceByte( hayStackAddr, hayStackSize, ByteFrom=0, ByteTo=1, StartOffset=0, NumReps=-1)
{	Static fun
	IfEqual,fun,
	{
		h=
		( LTrim join
			5589E553515256579C8B4D0C8B451831D229C17E25837D1C00741F8B7D0801C70FB6451
			00FB65D14FCF2AE750D885FFF42FF4D1C740409C975EF9D89D05F5E5A595BC9C21800
		)
		VarSetCapacity(fun,StrLen(h)//2)
		Loop % StrLen(h)//2
			NumPut("0x" . SubStr(h,2*A_Index-1,2), fun, A_Index-1, "Char")
	}
	Return DllCall(&fun
		, "uint",haystackAddr, "uint",hayStackSize, "short",ByteFrom, "short",ByteTo
		, "uint",StartOffset, "int",NumReps)
}

CheckFile(File, mode=0) {
   ; THX Sean for File.ahk : http://www.autohotkey.com/forum/post-124759.html
   Static CF := ""   ; Current File
   Static FP := 0    ; File Pointer
   Static OPEN_EXISTING := 3
   Static GENERIC_READ := 0x80000000
   Static FILE_SHARE_READ := 1
   Static FILE_SHARE_WRITE := 2
   Static FILE_SHARE_DELETE := 4
   Static FILE_BEGIN := 0
   BatchLines := A_BatchLines
   SetBatchLines, -1
   If (File != CF) {
      CF := File
      FP := 0
   }
   hFile := DllCall("CreateFile"
                  , "Str",  File
                  , "Uint", GENERIC_READ
                  , "Uint", FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE
                  , "Uint", 0
                  , "Uint", OPEN_EXISTING
                  , "Uint", 0
                  , "Uint", 0)
   If (!hFile) {
      CF := ""
      FP := 0
      SetBatchLines, %BatchLines%
      Return False
   }
   DllCall("GetFileSizeEx"
         , "Uint",   hFile
         , "Int64P", nSize)
   if mode=1
   FP:=1
   If (FP = 0 Or nSize <= FP) {
      FP := nSize
      SetBatchLines, %BatchLines%
      DllCall("CloseHandle", "Uint", hFile) ; close file
     Return False
   }
   DllCall("SetFilePointerEx"
         , "Uint",  hFile
         , "Int64", FP
         , "Uint",  0
         , "Uint",  FILE_BEGIN)
   VarSetCapacity(Tail, Length := nSize - FP, 0)
   DllCall("ReadFile"
         , "Uint",  hFile
         , "Str",   Tail
         , "Uint",  Length
         , "UintP", Length
         , "Uint",  0)
   DllCall("CloseHandle", "Uint", hFile)
   FP := nSize
   if A_IsUnicode
   {
   tail:=Ansi2Unicode(tail)
   Length:=strlen(tail)
   }
   ReplaceByte( &Tail, Length)
   VarSetCapacity(Tail, -1)
   SetBatchLines, %BatchLines%
   Return Tail
}

listAdd( byRef list, item, del="-" ) {
  list:=( list!="" ? ( list . del . item ) : item )
  return list
}

listDelItem( byRef list, item, del="-") {
  ifEqual, item,, return list
  list:=del . list . del
  StringReplace, list, list, %del%%item%%del%,%del%,All
  StringTrimLeft, list, list, 1
  StringTrimRight, list, list, 1
  return list
}

lobbyStars() {
SetTitleMatchMode 2
WinGet, id, id, PokerStars Lobby - ahk_class #32770
Return id
}

;~^!Q::
;ExitApp

exitsub:
if Targetnum>0
IniWrite, %Targetnum%, %thisahk%.ini, Settings, Targetnum
exitapp
return
Max1mums is offline   Reply With Quote
Old 01-17-2015, 01:35 PM   #1034
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Thanks Max works great,

Appreciated
OditeRussia is offline   Reply With Quote
Old 01-17-2015, 08:52 PM   #1035
khalifa
grinder
 
Join Date: Jul 2010
Posts: 506
Re: AHK script:Stars Filtered SNG Opener

Thanks a lot Max1mums! Your script works great!
khalifa is offline   Reply With Quote
Old 01-21-2015, 08:06 AM   #1036
neverfold1
stranger
 
Join Date: Jan 2015
Posts: 2
Re: AHK script:Stars Filtered SNG Opener

Hello guys . I have a question. Where to write buy-in? in the programm code? or PokerStars client?
Thanks!
neverfold1 is offline   Reply With Quote
Old 01-21-2015, 09:40 AM   #1037
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Quote:
Originally Posted by neverfold1 View Post
Hello guys . I have a question. Where to write buy-in? in the programm code? or PokerStars client?
Thanks!
The PokerStars client. What ever games show up in the lobby you will be registered to so be very careful to filter the correct buy in and games before you click run or you will be registered to games you do not want.
OditeRussia is offline   Reply With Quote
Old 01-21-2015, 11:35 AM   #1038
neverfold1
stranger
 
Join Date: Jan 2015
Posts: 2
Re: AHK script:Stars Filtered SNG Opener

tywm nice boobs
neverfold1 is offline   Reply With Quote
Old 01-30-2015, 05:26 AM   #1039
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Doest work no more with the latest update
OditeRussia is offline   Reply With Quote
Old 01-30-2015, 08:46 AM   #1040
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Never mind it is working again
OditeRussia is offline   Reply With Quote
Old 01-30-2015, 08:56 AM   #1041
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Actually myself an others are having an issue...the script only registers the top game in the lobby and does not scroll down to register the others?

'Times to scroll down' OFF

This has always been off, should i change it?
OditeRussia is offline   Reply With Quote
Old 01-30-2015, 08:58 AM   #1042
clickys
grinder
 
clickys's Avatar
 
Join Date: Sep 2009
Posts: 569
Re: AHK script:Stars Filtered SNG Opener

Quote:
Originally Posted by OditeRussia View Post
Actually myself an others are having an issue...the script only registers the top game in the lobby and does not scroll down to register the others?

'Times to scroll down' OFF

This has always been off, should i change it?
i have the same problem man it doesnt scroll down to register to next sng
clickys is offline   Reply With Quote
Old 01-30-2015, 09:47 AM   #1043
Max1mums
old hand
 
Join Date: Aug 2009
Location: From Russia with code
Posts: 1,672
Re: AHK script:Stars Filtered SNG Opener

The script doesn't scroll if 'Times to scroll down' is set to "OFF". Check the tourney list class with the windowspy tool, it was PokerStarsListClass13 in the last version posted.
Max1mums is offline   Reply With Quote
Old 01-30-2015, 09:53 AM   #1044
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

I think i found a problem here it shows list class 3 a few lines below highlighted text, should we change this?

http://gyazo.com/1a9f6c5b24f221bf31a3e8bc31257cf8

It works now after editing the code and changing the advanced tab to scroll

Last edited by OditeRussia; 01-30-2015 at 10:03 AM.
OditeRussia is offline   Reply With Quote
Old 01-30-2015, 04:45 PM   #1045
aristoteles
enthusiast
 
aristoteles's Avatar
 
Join Date: Oct 2009
Location: This Is Sparta!...
Posts: 71
Re: AHK script:Stars Filtered SNG Opener

Hi everybody,

first of all thank you very much Max1mums, once again you are simply the best bro! I am in love with you!

And OditeRussia you are right you have to change the PokerStarsListClass,
my (I am in Greece with pokerstars.eu) its not PokerStarsListClass13 but
PokerStarsListClass12.

So, clickys as Max1mums said, try with the windowspy tool to find out whats yours PokerStarsListClass number there.

OditeRussia? if thats your girlfriend... you are damn lucky man!

regards
aristoteles is offline   Reply With Quote
Old 01-31-2015, 12:37 AM   #1046
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Quote:
Originally Posted by aristoteles View Post
Hi everybody,

first of all thank you very much Max1mums, once again you are simply the best bro! I am in love with you!

And OditeRussia you are right you have to change the PokerStarsListClass,
my (I am in Greece with pokerstars.eu) its not PokerStarsListClass13 but
PokerStarsListClass12.

So, clickys as Max1mums said, try with the windowspy tool to find out whats yours PokerStarsListClass number there.

OditeRussia? if thats your girlfriend... you are damn lucky man!

regards
Hey,

Mines seems to work with Pokerclass13 on.UK , so every time there is an update with the script we just have to adjust the class numbers with windows spy?
Girlfriend?
OditeRussia is offline   Reply With Quote
Old 02-04-2015, 03:19 PM   #1047
zr1xx
stranger
 
Join Date: Jun 2011
Posts: 3
Re: AHK script:Stars Filtered SNG Opener

Hey everyone,

I did change my PokerStarsListClass to 12, but it still doesn't scroll down and i have no idea why.
Plus the 2 counters doesn't count just stay on 0.
zr1xx is offline   Reply With Quote
Old 02-04-2015, 03:20 PM   #1048
OditeRussia
adept
 
OditeRussia's Avatar
 
Join Date: Oct 2012
Posts: 1,180
Re: AHK script:Stars Filtered SNG Opener

Doesnt even register for me no more, the PS software keeps updating daily...which messes up the script
OditeRussia is offline   Reply With Quote
Old 02-04-2015, 03:53 PM   #1049
zr1xx
stranger
 
Join Date: Jun 2011
Posts: 3
Re: AHK script:Stars Filtered SNG Opener

try to change the regbutton settings in the script to pokerstarsbuttonclass 149
zr1xx is offline   Reply With Quote
Old 02-04-2015, 05:33 PM   #1050
Max1mums
old hand
 
Join Date: Aug 2009
Location: From Russia with code
Posts: 1,672
Re: AHK script:Stars Filtered SNG Opener

It is still PokerStarsListClass13 for me, should be detected automatically in this version:
Code:
; Author:         Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher
; v.4.01c
; added: PS 7 support
; 4.0x version fixed by Max1mums 
#NoEnv
#SingleInstance, Force
SendMode Input
SetWorkingDir %A_ScriptDir%
setwindelay,-1
setcontroldelay,-1
SetBatchLines, -1
SetTitleMatchMode, 2
SetTimer, register, off
SetTimer, safeguard, off
SetTimer, numcheck, 75
StringTrimRight, thisahk, A_ScriptName, 4
onexit,exitsub
IniRead, pspath, %thisahk%.ini, Settings, path


;;;;;;;;;;;SET YOUR pokerstars.log.0 file path below;;;;;;;;;;;;;;;
;;;;;;;;;;;eg: logfile:="c:\Program Files\PokerStars\pokerstars.log.0"
logfile:= pspath . "pokerstars.log.0" ;<-


IfNotExist,%logfile%
{
Loop, %A_ProgramFiles%\* , 2
{
if instr(A_LoopFileName,"PokerStars")>0
logfile:=A_LoopFileFullPath . "\PokerStars.log.0"
}
IfNotExist,%logfile%
Loop, %A_AppData%\* , 2
if instr(A_LoopFileName,"PokerStars")>0
logfile:=A_LoopFileFullPath . "\PokerStars.log.0"
IfNotExist,%logfile%
{
StringReplace,logfile,A_AppData,Roaming,Local
Loop, %logfile%\* , 2
if instr(A_LoopFileName,"PokerStars")>0
logfile:=A_LoopFileFullPath . "\PokerStars.log.0"
}
}
IfNotExist,%logfile%
{
logfile:= pspath . "pokerstars.log.0"
IfNotExist,%logfile%
msgbox, PokerStars.log.0 file path is probably incorrect, recheck the configuration
}
IniRead, Targetnum, %thisahk%.ini, Settings, Targetnum
if Targetnum is not number
Targetnum:=0
;==============================================================
RegSofar=0
OpenTables=0
trows=17
SysGet,mon, MonitorworkArea
fivesec=0
ft:=0
two=0
ddlist4=Off|
ddlist5=Off|
ddlist6=Off|
ddlist7=Off|
LobbyList=Default|Black|
ddlist2:=ddlist2 . 1 . "|"
ddlist2:=ddlist2 . 2 . "|"
Loop 100
{
two:=two+2
ddlist3:=ddlist3 . two . "|"
ddlist:=ddlist . A_index . "|"
If (A_index<51)
{
fivesec:=fivesec+5
ddlist2:=ddlist2 . fivesec . "|"
ddlist6:=ddlist6 . fivesec . "|"
If (A_index<22)
{
ddlist7:=ddlist7 . A_Index . "|"
If (A_index<16)
{
ddlist4:=ddlist4 . A_index . "|"
}
}
}
else
{
ft:=ft+15
ddlist5:=ddlist5 . ft . "|"
}
}
ddlist3:=ddlist3 . 9999 . "|"
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 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 vLimitTime , %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, 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, 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
Gui, Submit, NoHide
displayedTime=
If (lobby="Default")
{
regButton:="PokerStarsButtonClass10"
}
Else If (lobby="Black" or lobby="Custom*")
{
regButton:="PokerStarsButtonClass10"
}
Gosub, MakeIni
PausedTime:=LimitTime
Gosub, TimeLimit
interval:=interval1*1000
If interval is not Number
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
sleep,-1
Gosub, ButtonResume
Return

Safeguard:
If (A_TimeIdle > killtime)
{
Gosub, ButtonPause
GuiControl, , cdown, Stopped  due to inactivity!!! %displayedTime%
}
Return

TimeLimit:
If LimitTime is Number
{
allowedMinutes := LimitTime
endTime := A_Now
endTime += %allowedMinutes%, Minutes
SetTimer, CountDown, 1000
}
Else
{
SetTimer, CountDown, off
sleep,-1
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
GuiControl, Disable, &Resume
GuiControl, Enable, &Pause
if LimitTime is Number
If PausedTime is Number
LimitTime:=PausedTime
Gosub, TimeLimit
GuiControl, , Register, -1
Register:=1
SetTitleMatchMode, 2
WinGet, LobbyID, id, PokerStars Lobby,,Tournament
wingettitle,lobbytitle,ahk_id%LobbyID%
if !instr(lobbytitle,"Logged In")>0
{
WinGet,ctrls,ControlList,ahk_id%LobbyID%
Loop,Parse,ctrls,`n
{
 if instr(A_LoopField,"PokerStarsListClass")>0
 {
 controlgetpos,,,w,h,%A_LoopField%,ahk_id%LobbyID%
 ControlGet,vis,Visible,,%A_LoopField%,ahk_id%LobbyID%
 if (w>350) && (h>300) && vis
 list:=A_LoopField
 }
 else
 {
 controlgettext,text,%A_LoopField%,ahk_id%LobbyID%
 if text=Register
 regButton:=A_LoopField
 }
}
}
else
list=PokerStarsListClass3
settimer, AutoReg,37
OpenTables:=0
tables=
OpenTables:=CountTourneys(1)
Gosub,Register
SetTimer, Register, %Interval%
sleep,-1
Return

ButtonPause:
Critical
Gui, Submit, NoHide
if LimitTime is Number
PausedTime:=remainingTime/60
Register:=0
settimer, AutoReg,off
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,,Tournament
If !LobbyID
{
Gosub, ButtonPause
GuiControl,, Status, Status: PokerStars Lobby not found
Gui, show, NoActivate, %thisahk%
Return
}
If (TopReturn=1)
{
ControlSend, %list%, {NumpadUp 20}, ahk_id%lobbyid%
}
WinGet, PhysicalTables, list,Table ahk_class PokerStarsTableFrameClass
If PhysicalTables is not Number
PhysicalTables:=0
If (PhysicalTables >= KeepOpen)
{
GuiControl,, Status, Set Full waiting
Return
}
OpenTables:=CountTourneys()
If OpenTables is not Number
OpenTables:=0
GuiControl, , OpenTables, Tables open/waiting: %OpenTables%
GuiControl, , RegSofar, SNG:s registered so far: %RegSofar%
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, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv
IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen
IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit
IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer
IniWrite, %LimitTime%, %thisahk%.ini, Settings, LimitTime
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, KeepOpen, %thisahk%.ini, Settings, KeepOpen
IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit
IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off
IniRead, LimitTime, %thisahk%.ini, Settings, LimitTime, 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%
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, %LimitTime%, %LimitTime%|
GuiControl, , LimitTime, |%ddlist5%
}
Return

#e::
gosub,NukeLobbies
Return

NukeLobbies:
SetTitleMatchMode, 2
GroupAdd, TLobbies, Lobby ahk_class PokerStarsTableFrameClass,,, 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

Format2Digits(_val) {
_val :=Round(_val) + 100
StringRight _val, _val, 2
Return _val
}

Format3Digits(_val) {
_val :=Round(_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
global list

Loop %times%
{
ControlSend, %list%, {NumpadUp 20}, ahk_id%id%
If (OpenTables >= KeepOpen)
Exit
If (OpenTables >= 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, %list%, {NumpadDown}, ahk_id%id%
} Else {
ControlSend, %list%, {NumpadUp}, ahk_id%id%
}
ClickdirectionCount:=ClickdirectionCount+1
} Else {
If (direction=0) {
direction:=1
} Else {
direction:=0
}
ClickdirectionCount:=0
}
Sleep,1000
}
If ( v = 1 ) {
wingetclass,class,A
SetTitleMatchMode, 2
ControlSend, %regButton%, {Space}, ahk_id%id%
ControlSend, %regButton%, {Space}, ahk_id%id%
WinWait, Tournament Registration ahk_class #32770,,1
{
WinGet, regid, id, Tournament Registration ahk_class #32770
wingettext,text,
if instr(text,"Confirm")>0
{
autobtn=PokerStarsButtonClass3
okbtn=PokerStarsButtonClass2
}
else
{
autobtn=Button2
okbtn=PokerStarsButtonClass1
}
controlget,vis,visible,,%autobtn%,ahk_id%regid%
if vis
{
 If (AutoIfFull = 1)
 {
 Control,Check,,%autobtn%, ahk_id%regid%
 ;ControlSend, %autobtn%, {Space}, ahk_id%regid%
 Sleep, 30
 }
ControlSend, %okbtn%, {Space}, ahk_id%regid%
}
}
sleep,30
WinWait, Tournament Registration ahk_class #32770,,1
{
WinGet, regid, id, Tournament Registration ahk_class #32770
controlget,vis,visible,,Button2,ahk_id%regid%
controlget,vis1,visible,,PokerStarsButtonClass3,ahk_id%regid%
if !vis && !vis1
winclose,ahk_id%regid%
;ControlSend, PokerStarsButtonClass1, {Space}, ahk_id%regid%
}
GuiControl, , Status, Status: Waiting ;TEST
;if class=PokerStarsTableFrameClass
;winactivate,ahk_class PokerStarsTableFrameClass
Break
}
}
}
}
return

AutoReg:
AutoReg()
return

AutoReg()
{
global AutoIfFull
setwindelay,-1
settitlematchmode,2
IfWinExist, Tournament Registration ahk_class #32770
{
wingettext,text,
if instr(text,"Confirm")>0
{
autobtn=PokerStarsButtonClass3
okbtn=PokerStarsButtonClass2
}
else
{
autobtn=Button2
okbtn=PokerStarsButtonClass1
}
winget,id,id,
controlget,vis,visible,,%autobtn%,ahk_id%id%
if vis
{
If (AutoIfFull = 1)
{
ControlFocus, %autobtn%, ahk_id%id%
Sleep, -1
ControlSend, %autobtn%, {Space}, ahk_id%id%
Sleep, 30
}
ControlSend, %okbtn%, {Space}, ahk_id%id%
}
else
ControlSend, %okbtn%, {Space}, ahk_id%id%
;winclose,ahk_id%id%
}
}
return

CountTourneys(mode=0) {
global logfile,RegSofar,regtourneys,tables,Targetnum
If (SetReg=1)
Return 0
log := CheckFile(logfile,mode)
Loop, Parse, log, `n,
{
tnumber=
if (instr(A_loopField,"RT add")>0)
{
 tnumber:=RegExReplace(A_loopField, "RT add ", "")
 if instr(tnumber,A_space)
 StringLeft, tnumber, tnumber, instr(tnumber,A_space)-1
 tnumber:=RegExReplace(tnumber, "[`n,`r]", "")
 tnumber:=Floor(tnumber)
 if !instr(tables,tnumber) && ((Targetnum=0) || ((Targetnum>0) && (tnumber>=(Targetnum-50000)) && (tnumber<(Targetnum+100000))))
 listadd(tables,tnumber)
}
else
If (instr(A_loopField,"RT remove")>0)
{
 stringtrimleft,tnumber,A_loopField,instr(A_loopField,A_space,"",0)
 tnumber:=RegExReplace(tnumber, "[`n,`r]", "")
 tnumber:=Floor(tnumber)
 if instr(tables,tnumber)
 listDelItem(tables,tnumber)
}
}
log=
tcount:=0
Loop, Parse, tables, -,
{
if A_Loopfield is number
{
tcount++
if !(instr(regtourneys,A_Loopfield)>0)
{
listadd(regtourneys,A_Loopfield)
if mode=0
RegSofar++
}
}
}
return tcount
}

numcheck:
winget,nlist,list,Table ahk_class PokerStarsTableFrameClass
loop %nlist%
{
id:=nlist%A_index%
wingettitle,title,ahk_id%id%
stringtrimleft,num,title,instr(title,A_space,"",instr(title,"Tournament"))
stringleft,num,num,instr(num,A_space)-1
if num is not number
num:=0
if (num>targetnum)
targetnum:=num
StringReplace,targetnum,targetnum,A_space,,All
StringReplace,targetnum,targetnum,`n,,All
StringReplace,targetnum,targetnum,`r,,All
}
return

Ansi2Unicode(sString, CP = 0)
{
	  nSize := DllCall("MultiByteToWideChar"
		, "Uint", CP
		, "Uint", 0
		, "Uint", &sString
		, "int",  -1
		, "Uint", 0
		, "int",  0)

	VarSetCapacity(wString, nSize * 2)

	DllCall("MultiByteToWideChar"
		, "Uint", CP
		, "Uint", 0
		, "Uint", &sString
		, "int",  -1
		, "Uint", &wString
		, "int",  nSize)
return wstring
}

ReplaceByte( hayStackAddr, hayStackSize, ByteFrom=0, ByteTo=1, StartOffset=0, NumReps=-1)
{	Static fun
	IfEqual,fun,
	{
		h=
		( LTrim join
			5589E553515256579C8B4D0C8B451831D229C17E25837D1C00741F8B7D0801C70FB6451
			00FB65D14FCF2AE750D885FFF42FF4D1C740409C975EF9D89D05F5E5A595BC9C21800
		)
		VarSetCapacity(fun,StrLen(h)//2)
		Loop % StrLen(h)//2
			NumPut("0x" . SubStr(h,2*A_Index-1,2), fun, A_Index-1, "Char")
	}
	Return DllCall(&fun
		, "uint",haystackAddr, "uint",hayStackSize, "short",ByteFrom, "short",ByteTo
		, "uint",StartOffset, "int",NumReps)
}

CheckFile(File, mode=0) {
   ; THX Sean for File.ahk : http://www.autohotkey.com/forum/post-124759.html
   Static CF := ""   ; Current File
   Static FP := 0    ; File Pointer
   Static OPEN_EXISTING := 3
   Static GENERIC_READ := 0x80000000
   Static FILE_SHARE_READ := 1
   Static FILE_SHARE_WRITE := 2
   Static FILE_SHARE_DELETE := 4
   Static FILE_BEGIN := 0
   BatchLines := A_BatchLines
   SetBatchLines, -1
   If (File != CF) {
      CF := File
      FP := 0
   }
   hFile := DllCall("CreateFile"
                  , "Str",  File
                  , "Uint", GENERIC_READ
                  , "Uint", FILE_SHARE_READ|FILE_SHARE_WRITE|FILE_SHARE_DELETE
                  , "Uint", 0
                  , "Uint", OPEN_EXISTING
                  , "Uint", 0
                  , "Uint", 0)
   If (!hFile) {
      CF := ""
      FP := 0
      SetBatchLines, %BatchLines%
      Return False
   }
   DllCall("GetFileSizeEx"
         , "Uint",   hFile
         , "Int64P", nSize)
   if mode=1
   FP:=1
   If (FP = 0 Or nSize <= FP) {
      FP := nSize
      SetBatchLines, %BatchLines%
      DllCall("CloseHandle", "Uint", hFile) ; close file
     Return False
   }
   DllCall("SetFilePointerEx"
         , "Uint",  hFile
         , "Int64", FP
         , "Uint",  0
         , "Uint",  FILE_BEGIN)
   VarSetCapacity(Tail, Length := nSize - FP, 0)
   DllCall("ReadFile"
         , "Uint",  hFile
         , "Str",   Tail
         , "Uint",  Length
         , "UintP", Length
         , "Uint",  0)
   DllCall("CloseHandle", "Uint", hFile)
   FP := nSize
   if A_IsUnicode
   {
   tail:=Ansi2Unicode(tail)
   Length:=strlen(tail)
   }
   ReplaceByte( &Tail, Length)
   VarSetCapacity(Tail, -1)
   SetBatchLines, %BatchLines%
   Return Tail
}

listAdd( byRef list, item, del="-" ) {
  list:=( list!="" ? ( list . del . item ) : item )
  return list
}

listDelItem( byRef list, item, del="-") {
  ifEqual, item,, return list
  list:=del . list . del
  StringReplace, list, list, %del%%item%%del%,%del%,All
  StringTrimLeft, list, list, 1
  StringTrimRight, list, list, 1
  return list
}

lobbyStars() {
SetTitleMatchMode 2
WinGet, id, id, PokerStars Lobby ahk_class #32770,,Tournament
Return id
}

;~^!Q::
;ExitApp

exitsub:
if Targetnum>0
IniWrite, %Targetnum%, %thisahk%.ini, Settings, Targetnum
exitapp
return
Max1mums is offline   Reply With Quote

Reply
      

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Forum Jump


All times are GMT -4. The time now is 10:51 AM.


Powered by vBulletin®
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.
Copyright © 2008-2017, Two Plus Two Interactive
 
 
Poker Players - Streaming Live Online