Open Side Menu Go to the Top
Register
StarsCash - free script for PokerStars containing all functions cash player may need. StarsCash - free script for PokerStars containing all functions cash player may need.

01-12-2010 , 10:32 AM
Quote:
Originally Posted by Max1mums
And why not? It is a possibility which should be added (it is optional anyway), i'm using it at least while testing script , i don't have that much time to wait for big blind.
Well it is a possiblity but why would anyone throw their money away? It is a script with all functions cash player may need but I don't think anyone will use that. It's just my opinion. Great job anyway.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 12:00 PM
TY, It would be nice an option to go sit out with there is less than X players playing
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 05:45 PM
Quote:
Originally Posted by Max1mums
nostrakhan, that was discussed earlier, you need autohotkey version 1.0.48 at least, latest version can be found here: http://www.autohotkey.com/download/
I have version 1.0.48.05. I checked to see if I had any old versions installed as well and I couldn't find any. Not sure what to do, any idea?

Thanks
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 05:51 PM
Integerfast function was first implemented in Autohotkey version 1.0.48 so it is outdated version problem if you still get that message. Download and install autohotkey program from link i mentioned overwriting current version (whatever it is). You may also try uninstalling autohotkey program first (maybe with some external uninstaller like Revo Uninstaller Pro for example).
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 06:40 PM
Quote:
Originally Posted by Max1mums
Integerfast function was first implemented in Autohotkey version 1.0.48 so it is outdated version problem if you still get that message. Download and install autohotkey program from link i mentioned overwriting current version (whatever it is). You may also try uninstalling autohotkey program first (maybe with some external uninstaller like Revo Uninstaller Pro for example).
Strange, I uninstalled it with revo uninstaller pro, then redownloaded the newest version of ahk from the link you posted and I'm still getting the same error. Any other idea what could be making this error popup?

Thanks
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 07:01 PM
Maybe you have another version of autohotkey program installed on different hdd/partition?
You can just replace all entries of "integerfast" with "integer" for now.

Last edited by Max1mums; 01-12-2010 at 07:06 PM.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 07:40 PM
Hey great program, one question.

Under the time tab where it says "Join waitlist on all tables"
how exactly does this option work? I enter "Right" on the white box but when I click the right button nothing happens. I have to open the table and then the hotkey works but only joins the waitlist for that particular table. How do I get it to join the waitlist on all tables? Thanks.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 07:51 PM
That hotkey should press "join" button on all opened tables (in case you are not sure if there are any full unseated tables you missed). I was having some problems with that hotkey with hypersimple theme though, it might just highlight but not press button sometimes so few presses with some delay should do the job.

Last edited by Max1mums; 01-12-2010 at 07:59 PM.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 09:36 PM
Another hotkey would be nice:
Auto Post Blinds Off (All Tables)
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 09:55 PM
You guys ask for more and more options (i'll remember all requests) but what about existing options, does everything work fine or is there anything what should be fixed (works incorrectly)?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-12-2010 , 11:02 PM
just downloaded this, not sure it i set something up wrong, left all the bet sizing default on betpot but when i click the button binded to bet pot it always takes my raise to zero. mouse wheel betting works fine just cant get betpot to work.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 05:06 AM
Quote:
Originally Posted by Max1mums
You guys ask for more and more options (i'll remember all requests) but what about existing options, does everything work fine or is there anything what should be fixed (works incorrectly)?
The betpot amounts are wrong. For example, pot is 7.15 and pot amount set to 55 percent, and it bets 3.50. Should bet 4.

Also have some trouble with the preflop amounts, not sure exactly where, but the numbers come up different than dave's betpot. Would like to see an improvement in how it handles preflop raise sizes. Would like something like Xbb + 1bb per limper as the first raiser and X times (or a percentage of pot) if there is a raise prior. n9-monk has something similiar in his iPoker betpot.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 07:11 AM
Quote:
Originally Posted by D. Andrew
The betpot amounts are wrong. For example, pot is 7.15 and pot amount set to 55 percent, and it bets 3.50. Should bet 4.
It seems as if dave's bet pot also come up with 3.50, so I guess its fine.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 08:41 AM
I dont use a lot of the features, but so far haven't encountered any bugs.

A few new suggestions:

#1) Hot key to close all tournament Lobby's

#2) An option to auto-close all tables/lobbies when you bust out of tournament

thx!
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 08:52 AM
K00PASC00PA, did you download starspics and put them into the same folder as ahk file? Did you choose correct table theme on general tab? Note that there isn't Black Theme support for BetPot function atm, you can also get 0 if you changed fonts size manually.
D. Andrew, BetPot function was taken from BetPot.ahk without any changes, you shouldn't get different bets compared to it, tell me if you still get them.
DeNutza, this iscript is called StarsCash not StarsSng or StarsMtt so no, i won't add such functions here. There is hotkey to close tourney lobbies in StarsHotkeys.ahk and you can use debustifier for closing finished tourneys.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 01:44 PM
StarsCash v1.4
  • Added option to suspend all script hotkeys for chat/notes area
  • Added Timebank clicker with specified delay
  • Added option to uncheck Auto post blinds on all tables
  • Added hotkey for joining/unjoining waitlist from main lobby
  • Added hotkey for joining specified number of waitlists counting from selected table in main lobby (not very reliable for now since list is being updated in real time)

StarsPics (needed for BetPot function only) can be found here: http://depositfiles.com/en/files/cgcmiearw
Put StarsPics folder to the folder with ahk file.
Don't forget to choose correct table theme on General tab.
BetPot function won't be efficient with aero theme on, easiest way to disable aero theme just for PokerStars: rightclick PokerStarsUpdate.exe, choose Properties - Compatibility - Disable desktop composition.

Code:
; #### StarsCash ####

; AHK version: 1.0.48.05
; date: January 13,2010
  version := "1.4"
; author: Max1mums (max1mums@overcards.com)


#SingleInstance, Force
#NoEnv
#MaxHotkeysPerInterval 500|
Settitlematchmode, 2
OnExit exitSub

debug:=0

StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%

Menu, Tray, NoStandard
Menu, Tray, Add, Settings, menugui
Menu, Tray, Add 
Menu, Tray, Add, Reload, reload
Menu, Tray, Default, Settings
Menu, Tray, Add 
Menu, Tray, Add, Suspend, Suspend
Menu, Tray, Add, Pause, TogglePause
Menu, Tray, Add 
Menu, Tray, Add, Edit, Edit 
Menu, Tray, Add 
Menu, Tray, Add, Donate, Donation
Menu, Tray, Add, Exit, ExitSub

OnMessage(0x112,"WM_SYSCOMMAND")
WM_SYSCOMMAND(wParam)
{
  if (A_Gui && wParam = 0xF020) ; SC_MINIMIZE
  {
    Gui, destroy
    return 0
  }
}

SetBatchLines,1ms
SetWinDelay,-1
SendMode Input

SysGet, xbord, 32
SysGet, border, 32
SysGet, ybord, 33
SysGet, cap, 4
SysGet, caption, 4

; Border of the "Highlighter"
border_color := "ff0000"
border_size := 5
trans := 255

boost:=false

;betpot stuff
stars_editbox = PokerStarsSliderEditorClass1
ddlist=
ddlist.="ssnl" . "|"
ddlist.="trny" . "|"
ddlist.="mix" . "|"
ddlist.="----" . "|"


ddlist1=
Loop 14
ddlist1:=ddlist1 . A_index . "|"

gosub,getini

Gui 11:Show, w1 1 x1 y1, PokerWindow
WinGet,PokerWindowID, id, PokerWindow
Gui 11:Show,hide, w1 h1 x1 y1, PokerWindow

Init()

;;;;;;;;;;;;;;End of init;;;;;;;;;;;;;;

settimer,HeroSeated,1103
settimer,Popupwatcher,139
if CheckWhenFree
settimer,FreeCheck,77
if ClickImBack
settimer,ClickBack,2033
if Timebank
settimer,ClickTimebank,1555
settimer,BetPot,37
settimer,clickwithdelay,93
settimer,NewTable,67
if Highlight
settimer,Highlighter,70
if activatetableundermouse
settimer,activateundermouse,133
if MoveMouse
settimer,MouseMove,119
if leavetable
settimer,closetable,249
if suspendforchatall
settimer,suspendallforchat,24

return
;-----------------------------------------------------------------------------------------------------
Init()
{
local list,winid
winget,list,list,Logged In ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index%
 if seated%id% is not number
 {
 loop %list%
  {
   id:=list%A_index%
   seated%id%:=2
  }
 break
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
NewTable:
IsTableNew()
return

IsTableNew()
{
local list,id
winget,list,list,ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index%
 if seated%id% is not number
 {
  wingetpos,xstart%id%,ystart%id%,,,ahk_id%id%
  if move
  WinMove, ahk_id%id%,, xpos,ypos
  if autotakeseat
  {
   if !InStr(tablequeue,id)
   movetolist(id,A_TickCount)
  }
 seated%id%:=1
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
IsWindowNew()
{
global oldwinid,stealfocus
winget,id,id,A
wingetclass,class,ahk_id%oldwinid%
if id!=%oldwinid%
{
 oldwinid:=id
 if stealfocus
 return 1
 else
 {
  if class=PokerStarsTableFrameClass
  return 1
  else
  return 0
 }
}
else
return 0
}
;-----------------------------------------------------------------------------------------------------
IsBetBoxNew()
{
global oldid,PotDefPre,PotDefFlop,PotDefTurn,PotDefRiver,RoundDef,OpenDef,FixDef
winget winid,id,A
if (winid<>oldid)
{
 ControlGet, Z, Visible,,PokerStarsSliderClass1, ahk_id %winid%
 if Z
 {
  oldid:=winid
  if RoundDef
  Roundsb:="smallblind"
  else
  Roundsb:=0.2
  Pot(winid,PotDefPre A_space PotDefFlop A_space PotDefTurn A_space PotDefRiver, Roundsb, OpenDef, FixDef)
 }
 else
 oldid=
 }
else
{
 ControlGet, Z, Visible,,PokerStarsSliderClass1, ahk_id %winid%
 if !Z
 oldid=
}
}
return
;-----------------------------------------------------------------------------------------------------
IsMouseInChat(id)
{
wingetpos,,,w,h,ahk_id%id%
coordmode,mouse,relative
mousegetpos,x1,y1
mousex:=0.5000
mousey:=0.7477
relstarsclientpoint(id,mousex,mousey,0)
if ((x1<mousex) and (y1>mousey)) & ((x1>0) & (y1>0) & (y1<h) & (x1<w))
return 1
else
return 0
}
;-----------------------------------------------------------------------------------------------------
suspendallforchat:
if suspended!=on
suspendall()
return

suspendall()
{
wingetclass,class,A
if class=PokerStarsTableFrameClass
{
 winget,id,id,A
 if IsMouseInChat(id)
 suspend,on
 else
 if A_isSuspended
 suspend,off 
}
}
return
;-----------------------------------------------------------------------------------------------------
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, %item%%del%
  StringTrimLeft, list, list, 1
  StringTrimRight, list, list, 1
  return list
}
;-----------------------------------------------------------------------------------------------------
movetolist(winid,time)
{
global tablequeue
listAdd(tablequeue, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
removefromlist(winid)
{
global tablequeue
Loop, Parse, tablequeue, `,
{
if InStr(A_loopfield,winid)
listDelItem(tablequeue, A_Loopfield)
}
}
return
;-----------------------------------------------------------------------------------------------------
movetolisttimebank(winid,time)
{
global tablequeuetimebank
listAdd(tablequeuetimebank, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
removefromlisttimebank(winid)
{
global tablequeuetimebank
Loop, Parse, tablequeuetimebank, `,
{
if InStr(A_loopfield,winid)
listDelItem(tablequeuetimebank, A_Loopfield)
}
}
return
;-----------------------------------------------------------------------------------------------------
clickwithdelay:
clickdelay()
clickdelaytimebank()
return
;-----------------------------------------------------------------------------------------------------
clickdelay()
{
global tablequeue
Loop, Parse, tablequeue, `,
{
stringsplit,tab,A_loopfield,-
if abs(tab2-A_TickCount)>500
{
ClickSeats(tab1)
listDelItem(tablequeue, A_Loopfield) 
}
}
}
return
;-----------------------------------------------------------------------------------------------------
clickdelaytimebank()
{
global tablequeuetimebank,interval1,BlackTheme,SlickTheme
interval:=interval1*1000
Loop, Parse, tablequeuetimebank, `,
{
 stringsplit,tab,A_loopfield,-
 if abs(tab2-A_TickCount)>interval
 {
  if BlackTheme
  { 
  click_x :=0.5875
  click_y :=0.7531
  }
  else
  if SlickTheme
  { 
  click_x :=0.5047
  click_y :=0.8256
  }
  else
  {
  click_x :=0.6582
  click_y :=0.7729
  }
  PostClickStars(click_x, click_y, tab1, 0)
  listDelItem(tablequeuetimebank, A_Loopfield)
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
clickok()
{
ifwinexist,PokerStars ahk_class #32770
{
ControlGet, Z, Visible,,Button2, PokerStars ahk_class #32770
if !z
ControlGet, Z, Visible,,Button3, PokerStars ahk_class #32770
if !z
controlclick,Button1,PokerStars ahk_class #32770
}
}
return
;-----------------------------------------------------------------------------------------------------
autobuy()
{
global max,remembered,xbb,bbmultiplier
ifwinexist, Buy-in ahk_class #32770
{
 winget,id,id,Buy-in ahk_class #32770
 ControlGet, v, Visible,,Edit1, ahk_id %id%
 if v
 {
  SetControlDelay, -1
  if max
  {
   Control, Check,, Button1, ahk_id %id%
   sleep,-1
   ControlClick, OK, ahk_id %id%
  }
  if remembered
  {
   ControlClick, OK, ahk_id %id%
  }
  if xbb
  {
   parent:=DllCall("GetParent","uint",id)
   wingettitle,title,ahk_id %parent%
   stringtrimleft,hero,title,InStr(title, A_space,false,0)
   If ((InStr(title, "No Limit") OR InStr(title, "Pot Limit")) AND InStr(title, "Tournament") = 0)
   {
    StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
   }
   else if (InStr(title, "No Limit") <> 0 AND InStr(title, "Tournament") <> 0)
   {
    StringMid, bb, title, InStr(title, "/", "", InStr(title, "Blinds")) + 1, InStr(title, a_space, "", InStr(title, "Blinds") + 8) - InStr(title, "/", "", InStr(title, "Blinds")) - 1 ;___so we retrieve the big blind instead
   }
   StringReplace,bb,bb,$,,1  
   StringReplace,bb,bb,€,,1 
   StringReplace,bb,bb,Ђ,,1
   StringReplace,bb,bb,Ј,,1
   bb*=bbmultiplier
   bb := Round(bb, 2)
   Control, Check,, Button2, ahk_id %id%
   sleep,-1
   ControlSetText, Edit1, %bb%, ahk_id%id%
   ControlClick, OK, ahk_id %id%
   winwaitclose,ahk_id %id%,,1.5
   if errorlevel
   ControlClick, Cancel, ahk_id %id%
  }
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
Popupwatcher:

if TakeSeat
TakeSeat()

if Buyin
autobuy()

if closeOKwindow
clickok()

return
;-----------------------------------------------------------------------------------------------------
FreeCheck:
IfWinExist, PokerStars, Check
{
 SetControlDelay, -1
 ControlFocus, Check
 Sleep, -1
 ControlClick, Check
 Sleep, -1
 ControlSend, Check, {SPACE}
}
return
;-----------------------------------------------------------------------------------------------------
HeroSeated:
IsHeroSeared()
return

IsHeroSeared()
{
local list,winid,title
local col,click_x,click_y
winget,list,list,ahk_class PokerStarsTableFrameClass
loop %list%
{
 winid:=list%A_index%
 wingettitle,title,ahk_id%winid%
 col:=PixelColorA(0.0115,0.6800,winid,1)
 if seated%winid%=1
 if instr(title,"Logged In")
 if (instr(col,"15193294")) or (instr(col,"-0-")) or (instr(col,"16777215") or (instr(col,"65331")))
 {
  if move
  {
   if AutoMoveBack 
   {
   WinMove, ahk_id%winid%,, xstart%winid%,ystart%winid%
   seated%winid%:=2
   }
  } 
  if Autopost
  {
   if !instr(title,"fast")
   {
    click_x :=0.0142
    click_y :=0.7224
    PostclickStars(click_x,click_y,winid,0)
   }
  }
  if waitbb
  { 
   click_x :=0.6629
   click_y :=0.8555
   PostclickStars(click_x,click_y,winid,0)
  }
 if seated%winid%!=2
 seated%winid%:=3
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
relStarsClientPoint(id, ByRef x, ByRef y, client=1,screen=0)
{
global xbord,ybord,cap
WinGetPos,x1,y1,w,h,ahk_id%id%
w-=2*xbord
h-=(2*ybord)+cap
x:=floor(W*x)
y:=floor(H*y)
if !client
{
 x+=xbord
 y+=ybord+cap
}
if screen
{
 x+=x1
 y+=y1
}
}
return
;-----------------------------------------------------------------------------------------------------
PostLeftClick(x, y, table_id, activate=1, control_class="") {
; ### JUK: Send the down left click, then the mouse-up messages.
; NOTE: This is relative to the top left of the client area and NOT the top left of the
;       window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!).
If activate
 WinActivate, ahk_id%table_id%
critical,6
PostMessage, 0x201, 0x0001, ((y<<16)^x), %control_class%, ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), %control_class%, ahk_id%table_id%
critical,off
sleep,-1
}
return
;-----------------------------------------------------------------------------------------------------
PostclickStars(x,y,winid,activate=1,client=1)
{
relStarsClientPoint(winid, x, y,client)
DllCall("SetCapture","Uint",winid)
PostLeftClick(x, y, winid, activate)
DllCall("ReleaseCapture")
}
return
;-----------------------------------------------------------------------------------------------------
PixelColorA(colx,coly,id,region=0,colx1=0,coly1=0,region1=0)
{
global xbord,ybord,cap
hdc_frame := DllCall( "GetDC", "UInt",PokerWindowID)
hdc_buffer := DllCall("gdi32.dll\CreateCompatibleDC","UInt",hdc_frame)
WinGetPos,,,W,H,ahk_id %id%
hbm_buffer := DllCall("gdi32.dll\CreateCompatibleBitmap", "UInt",hdc_frame, "Int",w, "Int",h)
DllCall( "gdi32.dll\SelectObject", "UInt",hdc_buffer, "UInt",hbm_buffer)
DllCall( "PrintWindow", "UInt" , id , "UInt" , hdc_buffer , "UInt" , 0 )
WinGet,ctrls,ControlList,ahk_id %id%
Loop,Parse,ctrls,`n
{
 class:=A_LoopField
 ControlGet,ctrlid,Hwnd,,%class%,ahk_id %id%
 ControlGet,visible,Visible,,,ahk_id %ctrlid%
 If visible=1
 DllCall("RedrawWindow","UInt",ctrlid,"UInt",0,"UInt",0,"UInt", 1|4|64|1024)
}
DllCall("RedrawWindow","UInt",id,"UInt",0,"UInt",0,"UInt", 1|4|64|1024) 
x:=floor(((W-2*xbord)*colx)) + xbord
y:=floor(((H-(2*ybord)-cap)*coly)) + ybord + cap
if region
{
loop 10
{
delta:=A_index
loop 10
{
delta1:=A_index
p := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x+delta , "Int", y+delta1)
;p1:=p
;SetFormat, IntegerFast, hex
;p += 0
;p .= ""
;SetFormat, IntegerFast, d
;pix.=p . "*" . p1 . "-"
pix.=p . "-"
}
}
}
else
{
pix := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
SetFormat, IntegerFast, hex
pix += 0
pix .= ""
SetFormat, IntegerFast, d
}

if colx1
{
x:=floor(((W-2*xbord)*colx1)) + xbord
y:=floor(((H-(2*ybord)-cap)*coly1)) + ybord + cap
if region1
{
loop 10
{
delta:=A_index
loop 10
{
delta1:=A_index
p := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x+delta , "Int", y+delta1)
pix1.=p . "-"
}
}
}
else
{
pix1 := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
SetFormat, IntegerFast, hex
pix1 += 0
pix1 .= ""
SetFormat, IntegerFast, d
}
}


if region1
pix.="*" . pix1
else
if colx1
pix.="-" . pix1
sleep,1
DllCall( "gdi32.dll\DeleteObject","Uint",hbm_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_frame)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_frame)
return pix
}
;-----------------------------------------------------------------------------------------------------
CompareColors(ByRef bgr1, ByRef bgr2, ByRef variation) {
c1 := bgr1 & 0xff
c2 := bgr2 & 0xff
if (abs(c1 - c2) > variation)
	return false
c1 := (bgr1 >> 8) & 0xff
c2 := (bgr2 >> 8) & 0xff
if (abs(c1 - c2) > variation)
	return false
c1 := (bgr1 >> 16) & 0xff
c2 := (bgr2 >> 16) & 0xff
if (abs(c1 - c2) > variation)
	return false
return true
}
;-----------------------------------------------------------------------------------------------------
CloseAllWithNoAction:
settimer,ClickBack,off
SetControlDelay, -1
WinGet, list, List, ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 winid:=list%A_Index%
 wingettitle,title,ahk_id%winid%
 Sittingout:=PixelColorA(0.8125,0.8621,winid)
 If !instr(title,"Logged In") OR ((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 WinKill,ahk_id%winid%
}
WinGet, list, List, ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 winid:=list%A_Index%
 Sittingout:=PixelColorA(0.8125,0.8621,winid)
 If !((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 {
  back_x:=0.0141
  back_y:=0.6860
  PostClickStars(back_x, back_y, winid, 0) 
 }   
}
sleep,1000
WinGet, list, List, ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 winid:=list%A_Index%
 Sittingout:=PixelColorA(0.8125,0.8621,winid)
 If ((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 WinKill,ahk_id%winid%
}  
WinGet, list, List,Table ahk_class #32770
Loop, %list%
{
 winid:=list%A_Index%
 ControlFocus,Button1, ahk_id%winid%
 Sleep, -1
 ControlClick,Button1, ahk_id%winid%
 Sleep, -1
 ControlSend,Button1, {SPACE}, ahk_id%winid%
}
return
;-----------------------------------------------------------------------------------------------------
closeTable:
LeaveTable()
return

LeaveTable()
{
settitlematchmode,2
SetControlDelay, -1  
ifwinexist,Table ahk_class #32770
{
winget,winid,id,Table ahk_class #32770
ControlGet, v, Visible,,Button2, ahk_id %winid%
ControlGet, z, Visible,,Button3, ahk_id %winid%
if (v) & (!z)
{
 ControlFocus,Button1, ahk_id%winid%
 Sleep, -1
 ControlClick,Button1, ahk_id%winid%
 Sleep, -1
 ControlSend,Button1, {SPACE}, ahk_id%winid%
}
}
}
return
;-----------------------------------------------------------------------------------------------------
SitOutNextAll:
;ClickImBack:=false
settimer,ClickBack,off
WinGet, list, List,Logged In ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 Z:=list%A_Index%
 WinGetPos,,, W, H, ahk_id %Z%
 Sittingout:=PixelColorA(0.8125,0.8621,Z)
 If !((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 {
  back_x:=0.0141
  back_y:=0.6860
  PostClickStars(back_x, back_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
RemoveSitout:
;ClickImBack:=true
if ClickImBack
settimer,ClickBack,1500
WinGet, list, List,Logged In ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 Z:=list%A_Index%
 WinGetPos,,, W, H, ahk_id %Z%
 Sittingout:=PixelColorA(0.8125,0.8621,Z)
 JoinWaitingList:=PixelColorA(0.8625,0.8621,Z)
 If (Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333)
  If (JoinWaitingList!=0x000000) AND (JoinWaitingList!=0xDFD9CE) AND (JoinWaitingList!=0xDEDBCE) AND (JoinWaitingList!=0x0xB5A29c) AND (JoinWaitingList!=0xBDAEAD)  AND (JoinWaitingList!=0x1f1f1f)  AND (JoinWaitingList!=0x343434) AND (JoinWaitingList!=0x0202020)  AND (JoinWaitingList!=0xe6e6e6) AND (JoinWaitingList!=0xdddddd)  AND (JoinWaitingList!=0x1e1e1e) AND (JoinWaitingList!=0xb0b0b0)
 {
  back_x :=0.7515
  back_y :=0.8468
  PostClickStars(back_x, back_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
UncheckAutopostAll:
sitx:=0.0126
sity:=0.7201
click_x:=sitx+0.0070
click_y:=sity+0.0070
WinGet, list, List,Logged In ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 Z:=list%A_Index%
 wingettitle,title,ahk_id%Z%
 if !instr(title,"fast")
 {
  Sittingout:=PixelColorA(sitx,sity,Z,1)
  if (instr(Sittingout,"-0-"))  ; & !(instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
  {
   PostClickStars(click_x, click_y, Z, 0) 
  }
 }        
}
return
;-----------------------------------------------------------------------------------------------------
ClickBack:
imback()
return
;-----------------------------------------------------------------------------------------------------
imback()
{
winget,list,list,Logged In ahk_class PokerStarsTableFrameClass
back_x:=0.8031
back_y:=0.8405
join_x:=0.8631
join_y:=0.8405
loop %list%
{
id:=list%A_index%
col:=PixelColorA(back_x,back_y,id,1,join_x,join_y,1)
stringsplit,col,col,*
Sittingout:=col1
JoinWaitingList:=col2 
if (instr(Sittingout,"4473924")) or (instr(Sittingout,"14670286")) or (instr(Sittingout,"-0-")) or (instr(Sittingout,"-0x0-"))
 if !((instr(JoinWaitingList,"3684408")) or (instr(JoinWaitingList,"4473924")) or (instr(JoinWaitingList,"14670286")) or (instr(JoinWaitingList,"-0-")) or (instr(JoinWaitingList,"-0x0-")))
 {
  postclickstars(back_x,back_y,id,0)
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
Toggleimback:
If (ClickImBack=true)
{
 ClickImBack:=false
 settimer,ClickBack,off
 T=Off
}
else
{
 ClickImBack:=true
 settimer,ClickBack,1500
 T=On
}
Gui, 12:Add, Text,, Auto Click Im Back: %T%
Gui, 12:+ToolWindow
Gui, 12:Show, w150 h20
Sleep, 1000
Gui, 12:Destroy
return
;-----------------------------------------------------------------------------------------------------
ClickTimebank:
clicktime()
return
;-----------------------------------------------------------------------------------------------------
clicktime()
{
global SlickTheme,BlackTheme,tablequeuetimebank
if BlackTheme
{
timex:=0.5775
timey:=0.7431
click_x:=0.5875
click_y:=0.7531
}
else
if SlickTheme
{
timex:=0.4920
timey:=0.7958
click_x:=0.5047
click_y:=0.8256
}
else 
{
timex:=0.6500
timey:=0.7670
click_x:=0.6582
click_y:=0.7729
}
winget,list,list,Logged In ahk_class PokerStarsTableFrameClass
loop %list%
 {
  id:=list%A_index%
  col:=PixelColorA(timex,timey,id,1) 
  if (instr(col,"13484978")) or (instr(col,"1000084")) or (instr(col,"16777215")) 
  {  
   if !InStr(tablequeuetimebank,id)
   movetolisttimebank(id,A_TickCount)
  }
  else
  if InStr(tablequeuetimebank,id)
  removefromlisttimebank(id)
 }
}
return
;-----------------------------------------------------------------------------------------------------
Joinwaitlist:
winget,list,list, ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index% 
 col:=PixelColorA(0.6274,0.9352,id,1)
 if !(instr(col,"15921906")) & !(instr(col,"16777215"))
 {
  click_x :=0.8625
  click_y :=0.8621
  PostclickStars(click_x,click_y,id,0)
 }
}
return
;-----------------------------------------------------------------------------------------------------
Unjoinwaitlist:
winget,list,list, ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index%
 col:=PixelColorA(0.6274,0.9352,id,1)
 if InStr(col,"15921906") or (instr(col,"16777215"))
 {
  click_x :=0.8625
  click_y :=0.8621
  PostclickStars(click_x,click_y,id,0)
 }
}
return
;-----------------------------------------------------------------------------------------------------
JoinWaitlistlobby:
ControlGet, Black, Visible,, PokerStarsButtonClass1, PokerStars Lobby
If black
{
ControlGet, Join, Visible,, PokerStarsButtonClass4, PokerStars Lobby
ControlGet, Leave, Visible,, PokerStarsButtonClass3, PokerStars Lobby
If (Join=1)
{
ControlClick, PokerStarsButtonClass4, PokerStars Lobby
SetControlDelay -1
ControlClick, Button1, Waiting List

}
else
{
If (Leave=1)
ControlClick, PokerStarsButtonClass3, PokerStars Lobby
}
}
else
{
ControlGet, Join, Visible,, PokerStarsButtonClass3, PokerStars Lobby
ControlGet, Leave, Visible,, PokerStarsButtonClass2, PokerStars Lobby
If (Join=1)
{
ControlClick, PokerStarsButtonClass3, PokerStars Lobby
SetControlDelay -1
ControlClick, Button1, Waiting List

}
else
{
If (Leave=1)
ControlClick, PokerStarsButtonClass2, PokerStars Lobby
}
}
return
;-----------------------------------------------------------------------------------------------------
JoinWaitlistlobbyGroup:
joingroup(waitlists)
return

joingroup(waitinglists)
{
winget,id,id,PokerStars Lobby - ahk_class #32770
ifwinactive, ahk_id%id%
{
 ControlGet, Black, Visible,, PokerStarsButtonClass1, ahk_id%id%
 If Black
 {
  joinbutton=PokerStarsButtonClass4
  unjoinbutton=PokerStarsButtonClass3
 }
 else
 {
  joinbutton=PokerStarsButtonClass3
  unjoinbutton=PokerStarsButtonClass2
 }
 list=PokerStarsListClass1
 loop %waitinglists%
 {
  SetControlDelay,-1
  ControlGet, Join, Visible,, %joinbutton%, ahk_id%id%
  If (Join=1)
  {
   controlfocus,%joinbutton%,,ahk_id%id%
   sleep,-1
   PostLeftClick(50,25,id,0,joinbutton)
  }
  controlfocus,PokerStarsListClass1,,ahk_id%id%
  sleep,-1
  controlsend,PokerStarsListClass1,{Down},ahk_id%id%
  sleep,600
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
MoveBackByKey:
ifwinactive, ahk_class PokerStarsTableFrameClass
{
 winget,id,id,A
 if (seated%id%=1) or (seated%id%=3)
 {
  wingettitle,title,ahk_id%id%
  seated%id%:=2
  WinMove, ahk_id%id%,, xstart%id%,ystart%id%
 }
}
return
;-----------------------------------------------------------------------------------------------------
TakeSeat() 
{
global AutoReservedSeat
IfWinExist, PokerStars ahk_class #32770
{
 WinGet, list, list, Seat Available ahk_class #32770
 Loop, %list%
 {
  This_id := list%A_Index%
  ControlFocus, Button2, ahk_id%this_id%
  Sleep, -1
  ControlSend, Button2, {SPACE}, ahk_id%this_id% 
 }
 setwindelay,-1
 if AutoReservedSeat
 if list>0
 {
  sleep,400
  winget,id,id,ahk_class PokerStarsTableFrameClass
  ClickSeats(id)
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
ClickSeats(id)
{ 
 Postclickstars(0.5000,0.6903,id,0)
 Postclickstars(0.2299,0.6536,id,0)
 Postclickstars(0.0697,0.4250,id,0)
 Postclickstars(0.1770,0.1835,id,0)
 Postclickstars(0.3401,0.0867,id,0)
 Postclickstars(0.6566,0.0867,id,0)
 Postclickstars(0.8333,0.1910,id,0)
 Postclickstars(0.9328,0.4250,id,0)
 Postclickstars(0.7764,0.6513,id,0)

 Postclickstars(0.1028,0.5114,id,0)
 Postclickstars(0.1028,0.2591,id,0)
 Postclickstars(0.8876,0.2591,id,0)
 Postclickstars(0.8876,0.5114,id,0)
}
return
;-----------------------------------------------------------------------------------------------------
FindTableToAct:
findactivetable()
return
;-----------------------------------------------------------------------------------------------------
findactivetable()
{
WinGet, l, List, ahk_class PokerStarsTableFrameClass
found:=false
v:=30
foldx:=0.5575
foldy:=0.9846
foldx1:=0.5063
foldy1:=0.9846
Loop, %l%
{
  winid:=l%A_Index%
  ControlGet, Z, Visible,,PokerStarsSliderClass1, ahk_id %winid%
  If Z
  {
    WinActivate, ahk_id %winid%
    found:=true
    Break
  }
}
if !found
Loop, %l%
{
  winid:=l%A_Index%
  col:=PixelColorA(foldx,foldy,winid,0,foldx1,foldy1,0)
  stringsplit,col,col,-
  if comparecolors(col1,col2,v)=0
  {
  WinActivate, ahk_id %winid%
  break
  }
}
}
return
;-----------------------------------------------------------------------------------------------------
ActivateBottomWindow:
GroupActivate, StarsTables
return
;-----------------------------------------------------------------------------------------------------
activateundermouse:
activatetableundermouse()
return

activatetableundermouse()
{
  If winactive("ahk_class PokerStarsTableFrameClass") or winactive("PokerStars Lobby")
  {
    MousegetPos,,,WinID
    WinGetClass, class, ahk_id %WinID%
    WinGetTitle, title, ahk_id %WinID%
    if (class="PokerStarsTableFrameClass") or (instr(title,"PokerStars Lobby"))
    winactivate, ahk_id %WinID%
  }
}
return
;-----------------------------------------------------------------------------------------------------
Cashier:
IfWinExist Cashier ahk_class #32770
{
WinActivate Cashier ahk_class #32770
SetControlDelay -1
ControlClick, PokerStarsButtonClass8, Cashier
}
else
{
WinActivate PokerStars Lobby
WinMenuSelectItem, PokerStars Lobby,, Lobby, Cashier...
}
return
;-----------------------------------------------------------------------------------------------------
Layout1:
layx:=0.5047
layy:=0.1880
layy1:=0.0940
WinGet, WinId, ID, ahk_class PokerStarsTableFrameClass 
if Winid
{
winactivate,ahk_id%winid%
if HyperSimpleTheme
{
relstarsclientpoint(winid,layx,layy1,0)
ControlClick,x%layx% y%layy1%,ahk_id %WinID%,,,,NA
}
else
{
relstarsclientpoint(winid,layx,layy,0)
ControlClick,x%layx% y%layy%,ahk_id %WinID%,,,,NA
}
Loop
{
WinWait, Options
Winactivate, Options
SetControlDelay, -1
ControlClick, Button13, Options,,,,NA
sleep 100
Send {down 5}
Send {Enter}
WinWaitClose, Options,,1
If (!ErrorLevel)	
	Break
}
}
return
;-----------------------------------------------------------------------------------------------------
Layout2:
layx:=0.5047
layy:=0.1880
layy1:=0.0940
WinGet, WinId, ID, ahk_class PokerStarsTableFrameClass 
if Winid
{
winactivate,ahk_id%winid%
if HyperSimpleTheme
{
relstarsclientpoint(winid,layx,layy1,0)
ControlClick,x%layx% y%layy1%,ahk_id %WinID%,,,,NA
}
else
{
relstarsclientpoint(winid,layx,layy,0)
ControlClick,x%layx% y%layy%,ahk_id %WinID%,,,,NA
}
Loop
{
WinWait, Options
Winactivate, Options
SetControlDelay, -1
ControlClick, Button13, Options,,,,NA
sleep 100
Send {down 6}
Send {Enter}
WinWaitClose, Options,,1
If (!ErrorLevel)	
	Break
}
}
return
;-----------------------------------------------------------------------------------------------------
Layout3:
layx:=0.5047
layy:=0.1880
layy1:=0.0940
WinGet, WinId, ID, ahk_class PokerStarsTableFrameClass 
if Winid
{
winactivate,ahk_id%winid%
if HyperSimpleTheme
{
relstarsclientpoint(winid,layx,layy1,0)
ControlClick,x%layx% y%layy1%,ahk_id %WinID%,,,,NA
}
else
{
relstarsclientpoint(winid,layx,layy,0)
ControlClick,x%layx% y%layy%,ahk_id %WinID%,,,,NA
}
Loop
{
WinWait, Options
Winactivate, Options
SetControlDelay, -1
ControlClick, Button13, Options,,,,NA
sleep 100
Send {down 7}
Send {Enter}
WinWaitClose, Options,,1
If (!ErrorLevel)	
	Break
}
}
return
;-----------------------------------------------------------------------------------------------------
Highlighter:
HighLighter(1)
return

HighLighter(Highlight=1) 
{
global last_table_id
global border_color
global border_size
global trans
global OldX,OldY,OldW,OldH
global highlighthero

foldx:=0.5575
foldx1:=0.5079
foldy:=0.9846
foldy1:=0.9846
v:=25

ifwinactive,ahk_class PokerStarsTableFrameClass
{  
 winget,id,id,A
 WinGetActiveStats,ActiveTitle, ActiveW, ActiveH, ActiveX, ActiveY
  relstarsclientpoint(id,foldx,foldy,0)
  pixelgetcolor,fold,foldx,foldy,ahk_id%id%
  relstarsclientpoint(id,foldx1,foldy1,0)
  pixelgetcolor,bacgr,foldx1,foldy1,ahk_id%id%
 if (id != last_table_id) || ((OldX <> ActiveX || OldY <> ActiveY || OldW <> ActiveW || OldH <> ActiveH))    
 {
  OldX:=ActiveX
  OldY:=ActiveY
  OldW:=ActiveW
  OldH:=ActiveH
  mouse_last:=last_table_id
  last_table_id:=id  
  if(!id)
  {
   Gui, 2: Cancel
   Gui, 3: Cancel
   Gui, 4: Cancel
   Gui, 5: Cancel
   return
  }  
  WinGetPos, x, y, w, h, ahk_id%id%
  global xbord
  global cap
  x := x + xbord
  y := y + xbord + cap
  w := w - (2*xbord)
  h := h - (2*xbord) - cap
 
  ;Makes Border around urgent table
  if (highlighthero=0) || (highlighthero=1 & comparecolors(fold,bacgr,v)=0)
  { 
   ;top
   guinum := 2
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y% NoActivate    
   ;left
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%border_size% h%h% x%x% y%y% NoActivate    
   ;bottom
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   y2 := y + h - border_size
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y2% NoActivate    
   ;right
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   x2 := x + w - border_size
   Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate   
  }   
  else 
  if highlighthero
  last_table_id=       
 }
 else
 if highlighthero 
 if comparecolors(fold,bacgr,v)=1
 {
  Gui, 2: Cancel
  Gui, 3: Cancel
  Gui, 4: Cancel
  Gui, 5: Cancel
  last_table_id=
 } 
}
else
{
   Gui, 2: Cancel
   Gui, 3: Cancel
   Gui, 4: Cancel
   Gui, 5: Cancel
   last_table_id=
}
}
return
;-----------------------------------------------------------------------------------------------------
MouseMove:
MoveMouse()
return

MoveMouse(x_mouse=0.75, y_mouse=0.75)
{
if IsWindowNew()
{ 
wingetclass,class,A
wingetactivetitle,title
if class=PokerStarsTableFrameClass 
if instr(title,"Logged In") 
{
 winget,id,id,A
 relStarsClientPoint(id, x_mouse, y_mouse,0,1)
 DllCall("SetCursorPos", int, x_mouse, int, y_mouse)
}  
}
}
return
;-----------------------------------------------------------------------------------------------------
AlterAmount(id, dir="", frac=1, unit="")
{
 global stars_editbox
  WinGetTitle, title, ahk_id%id%
  amount := 0
  StringTrimRight, tablename, title, ( StrLen(title) - (InStr(title, " - ")-1) )
  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    If ((InStr(title, "No Limit") OR InStr(title, "Pot Limit")) AND InStr(title, "Tournament") = 0)
    {
      StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
    }
    else if (InStr(title, "No Limit") <> 0 AND InStr(title, "Tournament") <> 0)
    {
      StringMid, bb, title, InStr(title, "/", "", InStr(title, "Blinds")) + 1, InStr(title, a_space, "", InStr(title, "Blinds") + 8) - InStr(title, "/", "", InStr(title, "Blinds")) - 1
    }  
  }   
  StringReplace,bb,bb,$,,1
  StringReplace,bb,bb,Ј,,1
  StringReplace,bb,bb,Ђ,,1
  StringReplace,bb,bb,€,,1 

  ;bb++
  ;bb--
  sb := sb(bb)
  If (unit = "" or unit = "bb")
  {
    unit := bb
  }
  Else If (unit = "sb")
  {
    unit := sb
  }
  Else If (unit = "pot")
  {
    pot := 0
    call := 0
    hero_bet := 0
    street := "pre"
    hero_position := ""
    open := 0
    max := 10000000
    IfWinExist, ahk_id%id% ahk_group StarsTables
    {
      PotSizeStars(id, pot, call, sb, bb, hero_bet, street, hero_position, open)
    } 
    pot := ((pot + call + hero_bet) )+ call
    unit := pot
  }
  amount := unit * frac
  if (dir="down")
  {
    amount := amount - (2*amount)
  }
  a:=floor(amount)
  if amount-a=0
  amount:=a
  
  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    ControlGetText, t, %stars_editbox%, ahk_id%id%
    t := t + amount
    if (t < 0)
    {
      t := 0
    }
    t1 := Round(t, 2)
    t := Round(t, 3)
    if t-t1=0
    t:=t1
    ControlSetText, %stars_editbox%, %t%, ahk_id%id%
    Sleep, -1
    WinSet, Redraw,, ahk_id%id%
  } 
}

Pot(id, frac=1, round_bet=0.2, open_adjust="", fixblinds=0)
{
  global debug
  global stars_editbox
  global attempts

  if attempts<=0
  attempts:=1
  pot := 0
  call := 0
  sb := 0
  bb := 0
  hero_bet := 0
  street := ""
  hero_position := ""
  open := 1
  max := 10000000

  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    loop %attempts%
    {
     PotSizeStars(id, pot, call, sb, bb, hero_bet, street, hero_position, open)
     if pot>0
     break
     sleep,20 
    }
  } 

  Else
  {
    return
  }
 
  StringSplit, fr, frac, %A_SPACE%
  if (fr0 < 4)
  {
    times := 4 - fr0
    Loop, %times%
    {
      n := 5 - A_Index
      fr%n% := fr%fr0% 
    }
  }
  
  if (street = "pre")
  {
    frac:= Round(fr1/100,2)
  }
  else if (street = "flop")
  {
    frac:= Round(fr2/100,2)
  }
  else if (street = "turn")
  {
    frac:= Round(fr3/100,2)
  }
  else if (street = "river")
  {
    frac:= Round(fr4/100,2)
  }
  if (debug)
  {
    TrayTip, BetPot, Pot:`t`t%pot%`nCall:`t`t%call%`nHero_bet:`t%hero_bet%`n`nPosition:`t%hero_position%`n`nBlinds:`t$%sb%/$%bb%`n`nStreet:`t%street%`n`n%fr0%`n%fr1% %fr2% %fr3% %fr4%`n`n%frac%,10,17
  }
   ; listvars
  if (fixblinds AND open AND street="pre")
  {
    if (hero_position = "sb" )
    {
      pot := pot - sb
      call := call + sb
    }
    else if (hero_position = "bb")
    {
      pot := pot - bb
      call := call + bb
    }
  }

  pot := ((pot + call + hero_bet)* (frac)) + call  

  if (open=1 AND open_adjust="ssnl" )
  {
    pot := pot + bb - sb
  }
  else if (open=1 AND open_adjust="trny" )
  {
    pot := pot - bb
  }
  else if (open=1 AND open_adjust="mix" )
  {
    if (bb=2)
    {
      pot := pot + bb - sb
    }
  ;  pot := pot + bb + sb
  }
  
  if(round_bet = "smallblind")
  {
    pot := Round((Floor((pot / sb)) * sb),2)
  }
  else if(round_bet = "bigblind")
  {
    pot := Round((Floor((pot / bb)) * bb),2)
  }
  else if (round_bet < 1)
  {
    places := round_bet*10
    pot := Round(pot, (places))
  }
  else if (round_bet >= 1)
  {
    pot := Floor(pot / round_bet) * round_bet
  }
 
  p:=floor(pot)
  if pot-p=0
  pot:=p
    
  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    ControlSetText, %stars_editbox%, %pot%, ahk_id%id%
    Sleep, -1
  }
}

PotSizeStars(id, ByRef pot, ByRef call, ByRef sb, ByRef bb, ByRef hero_bet, ByRef street, ByRef hero_position, ByRef open)
{
  global use_old_stars_buttons, stars_editbox , ClassicTheme , HyperSimpleTheme, SlickTheme
  CoordMode, Pixel, Screen
  setwindelay,-1
  if ClassicTheme 
  {
  PotThemeDir := "classic"
  CallThemeDir := "classic"
  pot_x1:=0.4400
  pot_x2:=0.5706
  pot_y1:=0.0140
  pot_y2:=0.0685
  call_x1:=0.7143
  call_y1:=0.9342
  call_y2:=0.9802
  call_x2:=0.7843
  raise_x1:=0.8727
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9423
  }
  else 
  if HyperSimpleTheme
  {
  PotThemeDir := "hypersimple"
  CallThemeDir := "hypersimple"
  pot_x1:=0.4900
  pot_x2:=0.5706
  pot_y1:=0.0140
  pot_y2:=0.0885
  call_x1:=0.7143
  call_y1:=0.9342
  call_y2:=0.9802
  call_x2:=0.7843
  raise_x1:=0.8727
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9423
  }
  else 
  if SlickTheme
  { 
  PotThemeDir := "slick"
  CallThemeDir := "slick"
  pot_x2:=0.5466
  pot_y2:=0.1645
  pot_x1:=0.4640
  pot_y1:=0.0895
  call_y2:=0.9802
  call_y1:=0.9342
  call_x2:=0.7454
  call_x1:=0.6754
  raise_x1:=0.8474
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9304
  }
  else
  {
   return
  }
  if (use_old_stars_buttons)
  {
    CallThemeDir := CallThemeDir . "\old"
  }
  street := GetStreetStars(id)

  WinGetPos, x, y, w, h, ahk_id%id%
  if (w <= 526)
  {
    SizeDir := 0
  }
  else if (w <= 621)
  {
    SizeDir := 1
  }
  else if (w <= 736)
  {
    SizeDir := 2
  }
  else if (w <= 875)
  {
    SizeDir := 3
  }
  else if (w <= 1037)
  {
    SizeDir := 4
  }
  else if (w <= 1227)
  {
    SizeDir := 5
  }
  else
  {
    SizeDir := 6
  } 

  PicDir := "StarsPics"
  potPicDir := PicDir . "\" . PotThemeDir . "\pot\" . SizeDir
  buttonPicDir := PicDir . "\" . CallThemeDir . "\call\" . SizeDir

  relStarsclientPoint(id, pot_x1, pot_y1,0)
  relStarsclientPoint(id, pot_x2, pot_y2,0)
  pot := DigitSearch(pot_x1, pot_y1, pot_x2, pot_y2, id, potPicDir, "", 50)

  relStarsclientPoint(id, call_x1, call_y1,0)
  relStarsclientPoint(id, call_x2, call_y2,0)
  call := DigitSearch(call_x1, call_y1, call_x2, call_y2, id, buttonPicDir, "", 50)
  call := iif( call, call, 0 )
  bb := GetBBStars(id, GameTypeStars(WinGetTitle(id)))
  sb := sb(bb) 
  
  if (street = "pre")
  {
    ControlGetText, t, %stars_editbox%, ahk_id%id%
    ControlSetText, %stars_editbox%, 0, ahk_id%id%
  relStarsclientPoint(id, raise_x1, raise_y1,0)
  relStarsclientPoint(id, raise_x2, raise_y2,0)
   minraise := DigitSearch(raise_x1, raise_y1, raise_x2, raise_y2, id, buttonPicDir, "", 50)
    t := Round(t, 2)
    ControlSetText, %stars_editbox%, %t%, ahk_id%id%
    Sleep, -1 
    if (minraise > (2*bb))
    {
      ;pot has been raised
      if (call = bb)
      {
        ;pot was minraised, and we are the BB
        hero_bet := bb
        hero_position := "bb"
      }
      else if (call < (bb*2))
      {
        ;pot was minraised, and we are the SB
        hero_bet := sb
        hero_position := "sb"
      }
    }
    else if (call = bb)
    {
      ;hero is not a blind, unraised pot, do nothing
    }
    else if (call = 0)
    {
      ;unraised pot, hero is the BB
      hero_bet := bb
      hero_position := "bb"
    }
    else if (call < bb)
    {
      ;unraised pot, hero is the SB
      hero_bet := sb
      hero_position := "sb"

    }
    else
    {
      ;pot has been raised, we are not opening
      open := 0
    }
  }
  else
  {
    ;not pre-flop, no need for open adjustment
    open := 0
  } 
  return
}

DigitSearch(startX,startY,endX,endY,win,dir,ex="",shades=1) {
If ex =
 ex = bmp
batchlines = %A_BatchLines%
SetBatchLines -1
WinGetPos,Xwin,Ywin,,,ahk_id%win%
CoordMode, Pixel, Screen
Loop, 11 {
  i = %a_index%
  If i = 10
    i = 0
  else if i = 11
    i = -1
  lastXpos := startX + Xwin
  Loop { 
    x1 := lastXpos + 1
    y1 := startY + Ywin
    x2 :=  endX + Xwin
    y2 := endY + Ywin    
    ImageSearch, lastXpos,, x1, y1, x2, y2, *%shades% %dir%\%i%.%ex%   
    If ( errorLevel )
    {
      break
    }
    p++
    p%p% = %lastXpos%
    If i = -1
      t = .
    else
      t = %i%
    StringReplace, xpos, lastXpos, -, _
    c%xpos% = %t%
   }
 }
Loop, %p%
 p_all := p_all "," p%a_index%
Sort, p_all, N D, U
Loop, Parse, p_all, `,
{
 StringReplace, xpos, a_loopfield, -, _
    
 amount := amount "" c%xpos%
} 
CoordMode, Pixel, Relative
SetBatchLines %batchlines%
return amount
}

; finds number of specified pixels in a region
GetPixelCount(x1, y1, x2, y2, color, options="")
{
  CoordMode, Pixel, Screen
  pixels := (x2 - x1 + 1)*(y2 - y1 + 1)
  If ( pixels <= 0 )
  {
    ErrorLevel = 1
    return
  }
  count = 0
  x = %x1%
  Loop
  {
    If ( x > x2 )
    {
      break
    }
    y = %y1%
    Loop
    {
      If ( y > y2 )
      {
        break
      }
      PixelGetColor, c, x, y, %options%
      If ( c = color )
      {
        count++
      }
      y++
    }
    x++
  }
  return count
}

GetBBStars(id, game_type) {
WinGetTitle, title, ahk_id%id% 
  StringReplace,title,title,€,,1 
  StringReplace,title,title,Ђ,,1 
  StringReplace,title,title,Ј,,1
If (game_type = "NL Ring")
 return StrRep(StrMid(title,"/",a_space), "$")
else if (game_type = "NL Tourney")
 return StrRep(StrMid(title,"/",a_space,InStr(title," - Blinds")),"$")
}

GameTypeStars(title) {
If InStr(title, " - Limit Stud")
 return "Stud"
else if ((InStr(title, "NL Hold'em") || InStr(title, " - Pot Limit Hold'em") || InStr(title, " - No Limit Hold'em") || InStr(title, "PL Hold'em"))
  && InStr(title, "Tournament"))
 return "NL Tourney"
else if (InStr(title, " - No Limit Hold'em") || InStr(title, " - Pot Limit Hold'em"))
 return "NL Ring"
else
 return "Limit"
}

sb(bb) {
If bb = .25
 sb := .10
else if bb = 15
 sb = 10
else if bb = 0.05
 sb = 0.02
else
 sb := bb/2
if (sb > 1)
{
  sb := Round(sb, 0)
}
else
{
  sb := Round(sb, 2)
}
return sb
}

GetStreetStars(id)
{
  global debug
  CoordMode, Pixel, Screen
  street := "pre" 
  x1 := 0.6168
  y1 := 0.3315
  x2 := 0.6660
  y2 := 0.3811
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 10 )
  {
    street := "river"
    return street
  }  
  x1 := 0.5394
  y1 := 0.3315
  x2 := 0.5887
  y2 := 0.3811
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 10 )
  {
    street := "turn"
    return street
  }
  x1 := 0.3373
  y1 := 0.3315
  x2 := 0.3867
  y2 := 0.3811
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 10 )
  {
    street := "flop"
  }
  return street
}

StrRep(str,char,rep_char="",all=1)
{
  StringReplace,str,str,%char%,%rep_char%,%all%
  return str
}

StrMid(str,str1,str2,startPos1=1,startPos2=1,caseSense=0){
If startPos1 =
 startPos1 = 1
If startPos2 =
 startPos2 = 1
StringTrimLeft,o,str,InStr(str,str1,cS,startPos1) + StrLen(str1) - 1
StringLeft,o,o,InStr(o,str2,caseSense,startPos2)-1
return o
}

IIf(_boolExpr, _exprTrue, _exprFalse) {
If _boolExpr
 Return _exprTrue
else
 return _exprFalse
}

WinGetTitle(win) {
WinGetTitle, title, ahk_id%win%
return title
}

FoldStars(id)
{
  PostClickStars(0.59,0.9241,id)
 ; Sleep, 20
 ; PostStarsClickpot(416,478,id)
}
CallStars(id)
{
  PostClickStars(0.7462,0.9241,id)
}
RaiseStars(id)
{
  PostClickStars(0.8860,0.9241,id)
}
Fold2anyStars(id)
{
  PostClickStars(0.0158,0.6467,id)
}


fold:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %fold%, ahk_id%id%
  }
  else
  FoldStars(id)
 }
 else
 FoldStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%fold%,ahk_id%id%
}
return



call:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %call%, ahk_id%id%
  }
  else
  callStars(id)
 }
 else
 callStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%call%,ahk_id%id%
}
return

raise:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %raise%, ahk_id%id%
  }
  else
  raiseStars(id)
 }
 else
 raiseStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%raise%,ahk_id%id%
}
return

fold2any:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %fold2any%, ahk_id%id%
  }
  else
  fold2anyStars(id)
 }
 else
 fold2anyStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%fold2any%,ahk_id%id%
}
return

pot1:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if Round1
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot1Pre A_space Pot1Flop A_space Pot1Turn A_space Pot1River, Roundsb, Open1, fix1)
if autobet
raisestars(id)
return

pot2:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if Round2
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot2Pre A_space Pot2Flop A_space Pot2Turn A_space Pot2River, Roundsb, Open2, fix2)
if autobet
raisestars(id)
return

pot3:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if Round3
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot3Pre A_space Pot3Flop A_space Pot3Turn A_space Pot3River, Roundsb, Open3, fix3)
if autobet
raisestars(id)
return

alt1:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb1
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr1, sb)
return

alt2:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb2
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr2, sb)
return

alt3:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb3
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr3, sb)
return

alt4:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb4
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr4, sb)
return

;-----------------------------------------------------------------------------------------------------
BetPot:
GroupAdd, StarsTables, ahk_class PokerStarsTableFrameClass ,,, PokerStars Lobby
if autopot
{
isbetboxnew()
}
return
;-----------------------------------------------------------------------------------------------------
BuildGui:
Gui, color, white
Gui, add, tab, h490 w290, General|Time|Annoyances|Table moving|BetPot|Table hotkeys|Global hotkeys
Gui, Tab, General
Gui, Add, Radio, x26 y50 w180 h20 Checked%ClassicTheme% vClassicTheme, Classic Theme
Gui, Add, Radio, x26 y70 w180 h20 Checked%HyperSimpleTheme% vHyperSimpleTheme, HyperSimple Theme
Gui, Add, Radio, x26 y90 w180 h20 Checked%BlackTheme% vBlackTheme, Black Theme
Gui, Add, Radio, x26 y110 w180 h20 Checked%SlickTheme% vSlickTheme, Slick Theme
Gui, add, text, y145 x25, Highlight table
Gui, add, Checkbox, y145 x100 Checked%Highlight% VHighlight
Gui, Add, Radio, x126 y140 w120 h15 Checked%highlightactive% vhighlightactive, Active
Gui, Add, Radio, x126 y155 w120 h15 Checked%highlighthero% vhighlighthero, With action on hero
Gui, add, text, y185 x25, Move mouse to action buttons
Gui, add, Checkbox, y185 x230 Checked%MoveMouse% VMoveMouse
Gui, add, text, y205 x65, Move mouse from nonstars app
Gui, add, Checkbox, y205 x230 Checked%stealfocus% Vstealfocus
Gui, add, text, y235 x25, Suspend table hotkeys for chat/notes area
Gui, add, Checkbox, y235 x230 Checked%suspendforchat% Vsuspendforchat
Gui, add, text, y255 x25, Suspend all hotkeys for chat/notes area
Gui, add, Checkbox, y255 x230 Checked%suspendforchatall% Vsuspendforchatall
Gui, Add, Radio, x26 y280 w220 h15 Checked%ActOnActiveTable% vActOnActiveTable, Send actions to active table
Gui, Add, Radio, x26 y295 w220 h15 Checked%sendundermouse% vsendundermouse, Send actions to table under mouse
Gui, add, text, y315 x25, Activate table under mouse
Gui, add, Checkbox, y315 x230 Checked%activatetableundermouse% Vactivatetableundermouse

Gui, Add, Button, x75 y395 w55 h20 gSave,Submit
Gui, Add, Button, x135 y395 w55 h20 gCancel,Cancel

Gui, Tab, Global hotkeys

Gui, Add, Text, x25 y105 ,Find table needing action
Gui, Add, Edit, x220 y102 w50 h20 vfindtabletoact, %findtabletoact%
Gui, Add, Text, x25 y125 ,Activate next table
Gui, Add, Edit, x220 y122 w50 h20 vActivateBottomWindow, %ActivateBottomWindow%
Gui, Add, Text, x25 y155 ,Close all tables with hero not in a hand
Gui, Add, Edit, x220 y152 w50 h20 vCloseAllWithNoAction, %CloseAllWithNoAction%
Gui, Add, Text, x25 y55 ,Suspend all hotkeys
Gui, Add, Edit, x220 y52 w50 h20 vsuspend, %suspend%
Gui, Add, Text, x25 y75 ,Pause/unpause
Gui, Add, Edit, x220 y72 w50 h20 vTogglePause, %TogglePause%
Gui, Add, Text, x25 y185 ,Cashier
Gui, Add, Edit, x220 y182 w50 h20 vCashier, %Cashier%
Gui, Add, Text, x25 y225 ,Custom layout 1
Gui, Add, Edit, x220 y222 w50 h20 vlayout1, %layout1%
Gui, Add, Text, x25 y245 ,Custom layout 2
Gui, Add, Edit, x220 y242 w50 h20 vlayout2, %layout2%
Gui, Add, Text, x25 y265 ,Custom layout 3
Gui, Add, Edit, x220 y262 w50 h20 vlayout3, %layout3%
Gui, Add, Text, x25 y295 ,Join/unjoin Waitlist from lobby
Gui, Add, Edit, x220 y292 w50 h20 vJoinWaitlistlobby, %JoinWaitlistlobby%
Gui, Add, Text, x25 y315 ,Join 
Gui, Add, Edit, x50 y312 w20 h20 vwaitlists, %waitlists%
Gui, Add, Text, x70 y315 ,waitlists counting from selected
Gui, Add, Edit, x220 y312 w50 h20 vJoinWaitlistlobbyGroup, %JoinWaitlistlobbyGroup%


Gui, Add, Button, x75 y415 w55 h20 gSave,Submit
Gui, Add, Button, x135 y415 w55 h20 gCancel,Cancel

Gui, Tab, Table moving
Gui, add, text, y55 x25, Move new table
Gui, add, Checkbox, y55 x120 Checked%move% Vmove
Gui, add, text, y75 x35, to position
Gui, Add, Text, x25 y95 w120 h20 , x
Gui, Add, Edit, x50 y95 w50 h20 vxpos, %xpos%
Gui, Add, Text, x25 y115 ,y
Gui, Add, Edit, x50 y115 w50 h20 vypos, %ypos%
Gui, add, Checkbox, y145 x180 Checked%automoveback% Vautomoveback
Gui, add, text, y145 x25,Move table back automatically
Gui, Add, Text, x25 y165 ,Move table back manually
Gui, Add, Edit, x180 y162 w50 h20 vmovebackByKey, %movebackByKey%

Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 w55 h20 gCancel,Cancel

Gui, Tab, Annoyances

Gui, add, Checkbox, y55 x190 Checked%Autopost% VAutopost
Gui, add, text, y55 x25,Auto post blinds
Gui, add, Checkbox, y75 x190 Checked%Waitbb% VWaitbb
Gui, add, text, y75 x25,Uncheck wait for big blind
Gui, add, Checkbox, y100 x190 Checked%CheckWhenFree% VCheckWhenFree
Gui, add, text, y100 x25,Never fold for free
Gui, add, Checkbox, y120 x250 Checked%closeOKwindow% VcloseOKwindow
Gui, add, text, y120 x25,Close PokerStars windows with just OK button
Gui, add, Checkbox, y160 x90 Checked%Buyin% VBuyin
Gui, add, text, y160 x25,Auto Buy-in
Gui, Add, Radio, x120 y150 w100 h20 Checked%max% vmax, Maximum
Gui, Add, Radio, x120 y170 w120 h20 Checked%remembered% vremembered, Remembered/default
Gui, Add, Radio, x120 y190 w20 h20 Checked%xbb% vxbb
Gui, Add, Edit, x140 y190 w30 h20 vbbmultiplier, %bbmultiplier%
Gui, Add, Text, x170 y193,BB
Gui, add, Checkbox, y220 x190 Checked%TakeSeat% VTakeSeat
Gui, add, text, y220 x25,Auto Take Seat (from waiting list)
Gui, add, Checkbox, y240 x190 Checked%AutoReservedSeat% VAutoReservedSeat
Gui, add, text, y240 x55,Auto take reserved seat
Gui, add, Checkbox, y265 x190 Checked%autoTakeSeat% VautoTakeSeat
Gui, add, text, y265 x25,Auto Seat on new table
Gui, add, Checkbox, y290 x190 Checked%leavetable% Vleavetable
Gui, add, text, y290 x25,Auto leaving table confirmation


Gui, Add, Button, x75 y365 w55 h20 gSave,Submit
Gui, Add, Button, x135 y365 w55 h20 gCancel,Cancel

Gui, Tab, Time

Gui, add, Checkbox, y50 x220 Checked%ClickImBack% VClickImBack
Gui, add, text, y50 x25,Click Im Back automatically
Gui, Add, Text, x25 y70 ,Toggle Click Im Back
Gui, Add, Edit, x220 y67 w50 h20 vToggleImBack, %ToggleImBack%
Gui, add, Checkbox, y100 x180 Checked%Timebank% VTimebank
Gui, add, text, y100 x25,Click Timebank automatically
Gui, add, Text, w220 y115 x25, Time delay for pressing Time button 
Gui, add, DropDownList, w40 y107 x220  vInterval1, %ddlist1%
Gui, Add, Text, x25 y150 ,Sitout on all tables
Gui, Add, Edit, x220 y147 w50 h20 vSitOutNextAll, %SitOutNextAll%
Gui, Add, Text, x25 y175 ,Remove sitout on all tables
Gui, Add, Edit, x220 y172 w50 h20 vRemoveSitout, %RemoveSitout%

Gui, Add, Text, x25 y220 ,Join waiting list on all tables
Gui, Add, Edit, x220 y217 w50 h20 vjoinwaitlist, %joinwaitlist%
Gui, Add, Text, x25 y245 ,Unjoin waiting list on all tables
Gui, Add, Edit, x220 y242 w50 h20 vunjoinwaitlist, %unjoinwaitlist%
Gui, Add, Text, x25 y275 ,Uncheck auto post blinds on all tables
Gui, Add, Edit, x220 y272 w50 h20 vUncheckAutopostAll, %UncheckAutopostAll%

Gui, Add, Button, x75 y415 w55 h20 gSave,Submit
Gui, Add, Button, x135 y415 w55 h20 gCancel,Cancel


Gui, Tab, BetPot

Gui, add, Checkbox, y55 x180 Checked%autopot% Vautopot
Gui, add, text, y55 x25,Auto put bet into bet box
Gui, Add, Text, x15 y70 ,Pre*
Gui, Add, Edit, x15 y85 w25 h20 vPotDefPre, %PotDefPre%
Gui, Add, Text, x45 y70 ,Flop*
Gui, Add, Edit, x45 y85 w25 h20 vPotDefFlop, %PotDefFlop%
Gui, Add, Text, x75 y70 ,Turn*
Gui, Add, Edit, x75 y85 w25 h20 vPotDefTurn, %PotDefTurn%
Gui, Add, Text, x105 y70 ,River*
Gui, Add, Edit, x105 y85 w25 h20 vPotDefRiver, %PotDefRiver%
Gui, Add, Text, x140 y70 ,Open
Gui, add, DropDownList, w45 y85 x140  vOpenDef, %ddlist%
Gui, Add, Text, x175 y70 ,Round(sb)
Gui, add, Checkbox, y85 x200 Checked%RoundDef% VRoundDef
Gui, Add, Text, x230 y70 ,Fix blinds
Gui, add, Checkbox, y85 x250 Checked%FixDef% VFixDef

Gui, Add, Edit, x60 y107 w80 h20 vpot1, %pot1%
Gui, Add, Text, x15 y110 ,Pot1
Gui, Add, Text, x15 y130 ,Pre*
Gui, Add, Edit, x15 y145 w25 h20 vPot1Pre, %Pot1Pre%
Gui, Add, Text, x45 y130 ,Flop*
Gui, Add, Edit, x45 y145 w25 h20 vPot1Flop, %Pot1Flop%
Gui, Add, Text, x75 y130 ,Turn*
Gui, Add, Edit, x75 y145 w25 h20 vPot1Turn, %Pot1Turn%
Gui, Add, Text, x105 y130 ,River*
Gui, Add, Edit, x105 y145 w25 h20 vPot1River, %Pot1River%
Gui, Add, Text, x140 y130 ,Open
Gui, add, DropDownList, w45 y145 x140  vOpen1, %ddlist%
Gui, Add, Text, x175 y130 ,Round(sb)
Gui, add, Checkbox, y145 x200 Checked%Round1% VRound1
Gui, Add, Text, x230 y130 ,Fix blinds
Gui, add, Checkbox, y145 x250 Checked%Fix1% VFix1

Gui, Add, Edit, x60 y167 w80 h20 vpot2, %pot2%
Gui, Add, Text, x15 y170 ,Pot2
Gui, Add, Edit, x15 y190 w25 h20 vPot2Pre, %Pot2Pre%
Gui, Add, Edit, x45 y190 w25 h20 vPot2Flop, %Pot2Flop%
Gui, Add, Edit, x75 y190 w25 h20 vPot2Turn, %Pot2Turn%
Gui, Add, Edit, x105 y190 w25 h20 vPot2River, %Pot2River%
Gui, add, DropDownList, w45 y190 x140  vOpen2, %ddlist%
Gui, add, Checkbox, y190 x200 Checked%Round2% VRound2
Gui, add, Checkbox, y190 x250 Checked%Fix2% VFix2

Gui, Add, Edit, x60 y212 w80 h20 vpot3, %pot3%
Gui, Add, Text, x15 y215 ,Pot3
Gui, Add, Edit, x15 y235 w25 h20 vPot3Pre, %Pot3Pre%
Gui, Add, Edit, x45 y235 w25 h20 vPot3Flop, %Pot3Flop%
Gui, Add, Edit, x75 y235 w25 h20 vPot3Turn, %Pot3Turn%
Gui, Add, Edit, x105 y235 w25 h20 vPot3River, %Pot3River%
Gui, add, DropDownList, w45 y235 x140  vOpen3, %ddlist%
Gui, add, Checkbox, y235 x200 Checked%Round3% VRound3
Gui, add, Checkbox, y235 x250 Checked%Fix3% VFix3

Gui, add, Checkbox, y260 x210 Checked%autobet% Vautobet
Gui, add, text, y260 x55,Additionally press bet button

Gui, Add, Edit, x80 y282 w40 h20 vincr1, %incr1%
Gui, Add, Text, x15 y285 ,Increase by
Gui, Add, Radio, x125 y280 w40 h15 Checked%bb1% vbb1,bb
Gui, Add, Radio, x125 y295 w40 h15 Checked%sb1% vsb1,sb
Gui, Add, Edit, x190 y282 w80 h20 valt1, %alt1%

Gui, Add, Edit, x80 y312 w40 h20 vincr2, %incr2%
Gui, Add, Text, x15 y315 ,Decrease by
Gui, Add, Radio, x125 y310 w40 h15 Checked%bb2% vbb2,bb
Gui, Add, Radio, x125 y325 w40 h15 Checked%sb2% vsb2,sb
Gui, Add, Edit, x190 y312 w80 h20 valt2, %alt2%

Gui, Add, Edit, x80 y342 w40 h20 vincr3, %incr3%
Gui, Add, Text, x15 y345 ,Increase by
Gui, Add, Radio, x125 y340 w40 h15 Checked%bb3% vbb3,bb
Gui, Add, Radio, x125 y355 w40 h15 Checked%sb3% vsb3,sb
Gui, Add, Edit, x190 y342 w80 h20 valt3, %alt3%

Gui, Add, Edit, x80 y372 w40 h20 vincr4, %incr4%
Gui, Add, Text, x15 y375 ,Decrease by
Gui, Add, Radio, x125 y370 w40 h15 Checked%bb4% vbb4,bb
Gui, Add, Radio, x125 y385 w40 h15 Checked%sb4% vsb4,sb
Gui, Add, Edit, x190 y372 w80 h20 valt4, %alt4%

Gui, Add, Text, x15 y410 ,Attempts to read Pot amount from screen
Gui, Add, Edit, x230 y407 w25 h20 vattempts, %attempts%

Gui, Add, Text, x15 y440 ,* Pot percent

Gui, Add, Button, x75 y465 w55 h20 gSave,Submit
Gui, Add, Button, x135 y465 w55 h20 gCancel,Cancel

Gui, Tab, Table hotkeys

Gui, Add, Edit, x180 y67 w50 h20 vfold, %fold%
Gui, Add, Text, x25 y70 ,Fold
Gui, Add, Edit, x180 y87 w50 h20 vcall, %call%
Gui, Add, Text, x25 y90 ,Check/Call
Gui, Add, Edit, x180 y107 w50 h20 vraise, %raise%
Gui, Add, Text, x25 y110 ,Bet/Raise
Gui, Add, Edit, x180 y127 w50 h20 vfold2any, %fold2any%
Gui, Add, Text, x25 y130 ,Fold to any

Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 w55 h20 gCancel,Cancel

gosub,getini
Gui, show, w306, %thisahk%
Return
;-----------------------------------------------------------------------------------------------------
GetIni:
IfNotExist, %thisahk%.ini
gosub, CreateIni
IniRead, ClassicTheme,%thisahk%.ini, Options, ClassicTheme,0
IniRead, HyperSimpleTheme,%thisahk%.ini, Options, HyperSimpleTheme,0
IniRead, SlickTheme,%thisahk%.ini, Options, SlickTheme,0
IniRead, BlackTheme,%thisahk%.ini, Options, BlackTheme,0
IniRead, Highlight, %thisahk%.ini, Settings, Highlight, 0
IniRead, highlighthero, %thisahk%.ini, Options, highlighthero, 0
IniRead, highlightactive, %thisahk%.ini, Options, highlightactive, 0
IniRead, MoveMouse, %thisahk%.ini, Settings, MoveMouse, 0
IniRead, stealfocus, %thisahk%.ini, Settings, stealfocus, 0
IniRead, suspendforchat, %thisahk%.ini, Settings, suspendforchat, 0
IniRead, suspendforchatall, %thisahk%.ini, Settings, suspendforchatall, 0
IniRead, ActOnActiveTable, %thisahk%.ini, Options, ActOnActiveTable, 0
IniRead, sendundermouse, %thisahk%.ini, Options, sendundermouse, 0
IniRead, activatetableundermouse, %thisahk%.ini, Settings, activatetableundermouse, 0
IniRead, ActivateBottomWindow, %thisahk%.ini, Hotkeys, ActivateBottomWindow,%A_Space%
if ActivateBottomWindow
Hotkey, %ActivateBottomWindow%,ActivateBottomWindow
IniRead, findtabletoact, %thisahk%.ini, Hotkeys, findtabletoact,%A_Space%
if findtabletoact
Hotkey, %findtabletoact%,findtabletoact
IniRead, suspend, %thisahk%.ini, Hotkeys, suspend,%A_Space%
if suspend
Hotkey, %suspend%,suspend
IniRead, TogglePause, %thisahk%.ini, Hotkeys, TogglePause,%A_Space%
if TogglePause
Hotkey, %TogglePause%,TogglePause
IniRead, CloseAllWithNoAction, %thisahk%.ini, Hotkeys, CloseAllWithNoAction,%A_Space%
if CloseAllWithNoAction
Hotkey, %CloseAllWithNoAction%,CloseAllWithNoAction
IniRead, Cashier, %thisahk%.ini, Hotkeys, Cashier,%A_Space%
if Cashier
Hotkey, %Cashier%,Cashier
IniRead, layout1, %thisahk%.ini, Hotkeys, layout1,%A_Space%
if layout1
Hotkey, %layout1%,layout1
IniRead, layout2, %thisahk%.ini, Hotkeys, layout2,%A_Space%
if layout2
Hotkey, %layout2%,layout2
IniRead, layout3, %thisahk%.ini, Hotkeys, layout3,%A_Space%
if layout3
Hotkey, %layout3%,layout3JoinWaitlistlobby
IniRead, JoinWaitlistlobby, %thisahk%.ini, Hotkeys, JoinWaitlistlobby,%A_Space%
if JoinWaitlistlobby
Hotkey, %JoinWaitlistlobby%,JoinWaitlistlobby
IniRead, JoinWaitlistlobbyGroup, %thisahk%.ini, Hotkeys, JoinWaitlistlobbyGroup,%A_Space%
if JoinWaitlistlobbyGroup
Hotkey, %JoinWaitlistlobbyGroup%,JoinWaitlistlobbyGroup
IniRead, waitlists, %thisahk%.ini, Settings, waitlists, 0

IniRead, ClickImBack, %thisahk%.ini, Settings, ClickImBack, 0
IniRead, Toggleimback, %thisahk%.ini, Hotkeys, Toggleimback,%A_Space%
IniRead, TakeSeat, %thisahk%.ini, Settings, TakeSeat, 0
IniRead, autoTakeSeat, %thisahk%.ini, Settings, autoTakeSeat, 0
IniRead, AutoReservedSeat, %thisahk%.ini, Settings, AutoReservedSeat, 0
IniRead, Timebank, %thisahk%.ini, Settings, Timebank, 0
IniRead, Interval1, %thisahk%.ini, Settings, Interval1
StringReplace, ddlist1, ddlist1, %interval1%, %Interval1%|
GuiControl, , Interval1, |%ddlist1%
StringReplace, ddlist1, ddlist1, %interval1%|, %Interval1%
IniRead, Autopost, %thisahk%.ini, Settings, Autopost, 0 
IniRead, Waitbb, %thisahk%.ini, Settings, Waitbb, 0
IniRead, CheckWhenFree, %thisahk%.ini, Settings, CheckWhenFree, 0
IniRead, checkbb, %thisahk%.ini, Settings, checkbb, 0
IniRead, uncheckbb, %thisahk%.ini, Settings, uncheckbb, 0
IniRead, closeOKwindow, %thisahk%.ini, Settings, closeOKwindow, 0
IniRead, Buyin, %thisahk%.ini, Settings, Buyin, 0
IniRead, max, %thisahk%.ini, Settings, max, 0
IniRead, remembered, %thisahk%.ini, Settings, remembered, 0
IniRead, xbb, %thisahk%.ini, Settings, xbb, 0
IniRead, bbmultiplier, %thisahk%.ini, Variables, bbmultiplier,0
IniRead, SitOutNextAll, %thisahk%.ini, Hotkeys, SitOutNextAll,%A_Space%
IniRead, RemoveSitout, %thisahk%.ini, Hotkeys, RemoveSitout,%A_Space%
IniRead, joinwaitlist, %thisahk%.ini, Hotkeys, joinwaitlist,%A_Space%
IniRead, unjoinwaitlist, %thisahk%.ini, Hotkeys, unjoinwaitlist,%A_Space%
IniRead, UncheckAutopostAll, %thisahk%.ini, Hotkeys, UncheckAutopostAll,%A_Space%
if SitOutNextAll
Hotkey, %SitOutNextAll%,SitOutNextAll
if RemoveSitout
Hotkey, %RemoveSitout%,RemoveSitout
if joinwaitlist
Hotkey, %joinwaitlist%,joinwaitlist
if Unjoinwaitlist
Hotkey, %Unjoinwaitlist%,Unjoinwaitlist
if UncheckAutopostAll
Hotkey, %UncheckAutopostAll%,UncheckAutopostAll
If Toggleimback
{
HotKey, IfWinActive
Hotkey, %Toggleimback%, Toggleimback
}
IniRead, leavetable, %thisahk%.ini, Settings, leavetable,0
IniRead, move, %thisahk%.ini, Settings, move, 0
IniRead, automoveback, %thisahk%.ini, Settings, automoveback, 0
IniRead, movebackByKey, %thisahk%.ini, Hotkeys, movebackByKey,%A_Space%
IniRead, ypos, %thisahk%.ini, Variables, ypos,0
IniRead, xpos, %thisahk%.ini, Variables, xpos,0
if MoveBackByKey
Hotkey, %MoveBackByKey%,MoveBackByKey

IniRead, OpenDef, %thisahk%.ini, BetPotSettings, OpenDef
StringReplace, ddlist, ddlist, %OpenDef%, %OpenDef%|
GuiControl, , OpenDef, |%ddlist%
StringReplace, ddlist, ddlist, %OpenDef%|, %OpenDef%
IniRead, RoundDef, %thisahk%.ini, BetPotSettings, RoundDef, 0
IniRead, FixDef, %thisahk%.ini, BetPotSettings, FixDef, 0
IniRead, PotDefPre, %thisahk%.ini, BetPotSettings, PotDefPre, 0
IniRead, PotDefFlop, %thisahk%.ini, BetPotSettings, PotDefFlop, 0
IniRead, PotDefTurn, %thisahk%.ini, BetPotSettings, PotDefTurn, 0
IniRead, PotDefRiver, %thisahk%.ini, BetPotSettings, PotDefRiver, 0

IniRead, Open1, %thisahk%.ini, BetPotSettings, Open1
StringReplace, ddlist, ddlist, %Open1%, %Open1%|
GuiControl, , Open1, |%ddlist%
StringReplace, ddlist, ddlist, %Open1%|, %Open1%
IniRead, Round1, %thisahk%.ini, BetPotSettings, Round1, 0
IniRead, Fix1, %thisahk%.ini, BetPotSettings, Fix1, 0
IniRead, Pot1Pre, %thisahk%.ini, BetPotSettings, Pot1Pre, 0
IniRead, Pot1Flop, %thisahk%.ini, BetPotSettings, Pot1Flop, 0
IniRead, Pot1Turn, %thisahk%.ini, BetPotSettings, Pot1Turn, 0
IniRead, Pot1River, %thisahk%.ini, BetPotSettings, Pot1River, 0
IniRead, pot1, %thisahk%.ini, BetPotHotkeys, pot1,%A_Space%
if pot1
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %pot1%,pot1
}
IniRead, Open2, %thisahk%.ini, BetPotSettings, Open2
StringReplace, ddlist, ddlist, %Open2%, %Open2%|
GuiControl, , Open2, |%ddlist%
StringReplace, ddlist, ddlist, %Open2%|, %Open2%
IniRead, Round2, %thisahk%.ini, BetPotSettings, Round2, 0
IniRead, Fix2, %thisahk%.ini, BetPotSettings, Fix2, 0
IniRead, Pot2Pre, %thisahk%.ini, BetPotSettings, Pot2Pre, 0
IniRead, Pot2Flop, %thisahk%.ini, BetPotSettings, Pot2Flop, 0
IniRead, Pot2Turn, %thisahk%.ini, BetPotSettings, Pot2Turn, 0
IniRead, Pot2River, %thisahk%.ini, BetPotSettings, Pot2River, 0
IniRead, pot2, %thisahk%.ini, BetPotHotkeys, pot2,%A_Space%
if pot2
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %pot2%,pot2
}
IniRead, Open3, %thisahk%.ini, BetPotSettings, Open3
StringReplace, ddlist, ddlist, %Open3%, %Open3%|
GuiControl, , Open3, |%ddlist%
StringReplace, ddlist, ddlist, %Open3%|, %Open3%
IniRead, Round3, %thisahk%.ini, BetPotSettings, Round3, 0
IniRead, Fix3, %thisahk%.ini, BetPotSettings, Fix3, 0
IniRead, Pot3Pre, %thisahk%.ini, BetPotSettings, Pot3Pre, 0
IniRead, Pot3Flop, %thisahk%.ini, BetPotSettings, Pot3Flop, 0
IniRead, Pot3Turn, %thisahk%.ini, BetPotSettings, Pot3Turn, 0
IniRead, Pot3River, %thisahk%.ini, BetPotSettings, Pot3River, 0
IniRead, pot3, %thisahk%.ini, BetPotHotkeys, pot3,%A_Space%
if pot3
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %pot3%,pot3
}

IniRead, incr1, %thisahk%.ini, BetPotSettings, incr1, 0
IniRead, bb1, %thisahk%.ini, BetPotSettings, bb1, 0
IniRead, sb1, %thisahk%.ini, BetPotSettings, sb1, 0
IniRead, alt1, %thisahk%.ini, BetPotHotkeys, alt1, %A_Space%
if alt1
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt1%,alt1
}
IniRead, incr2, %thisahk%.ini, BetPotSettings, incr2, 0
IniRead, bb2, %thisahk%.ini, BetPotSettings, bb2, 0
IniRead, sb2, %thisahk%.ini, BetPotSettings, sb2, 0
IniRead, alt2, %thisahk%.ini, BetPotHotkeys, alt2, %A_Space%
if alt2
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt2%,alt2
}
IniRead, incr3, %thisahk%.ini, BetPotSettings, incr3, 0
IniRead, bb3, %thisahk%.ini, BetPotSettings, bb3, 0
IniRead, sb3, %thisahk%.ini, BetPotSettings, sb3, 0
IniRead, alt3, %thisahk%.ini, BetPotHotkeys, alt3, %A_Space%
if alt3
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt3%,alt3
}
IniRead, incr4, %thisahk%.ini, BetPotSettings, incr4, 0
IniRead, bb4, %thisahk%.ini, BetPotSettings, bb4, 0
IniRead, sb4, %thisahk%.ini, BetPotSettings, sb4, 0
IniRead, alt4, %thisahk%.ini, BetPotHotkeys, alt4, %A_Space%
if alt4
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt4%,alt4
}

IniRead, autopot, %thisahk%.ini, BetPotSettings, autopot, 0
IniRead, autobet, %thisahk%.ini, BetPotSettings, autobet, 0
IniRead, attempts, %thisahk%.ini, Variables, attempts, 0

IniRead, fold, %thisahk%.ini, Hotkeys, fold,%A_Space%
IniRead, call, %thisahk%.ini, Hotkeys, call,%A_Space%
IniRead, raise, %thisahk%.ini, Hotkeys, raise,%A_Space%
IniRead, fold2any, %thisahk%.ini, Hotkeys, fold2any,%A_Space%
if fold
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %fold%,fold
}
if call
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %call%,call
}
if raise
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %raise%,raise
}
if fold2any
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %fold2any%,fold2any
}
Return
;-----------------------------------------------------------------------------------------------------
MakeIni:
If ClassicTheme
IniWrite, %ClassicTheme%, %thisahk%.ini, Options, ClassicTheme
If HyperSimpleTheme
IniWrite, %HyperSimpleTheme%, %thisahk%.ini, Options, HyperSimpleTheme
If SlickTheme
IniWrite, %SlickTheme%, %thisahk%.ini, Options, SlickTheme 
If BlackTheme
IniWrite, %BlackTheme%, %thisahk%.ini, Options, BlackTheme
IniWrite, %Highlight%, %thisahk%.ini, Settings, Highlight
if highlighthero
IniWrite, %highlighthero%, %thisahk%.ini, Options, highlighthero
if highlightactive
IniWrite, %highlightactive%, %thisahk%.ini, Options, highlightactive
IniWrite, %MoveMouse%, %thisahk%.ini, Settings, MoveMouse
IniWrite, %stealfocus%, %thisahk%.ini, Settings, stealfocus
IniWrite, %suspendforchat%, %thisahk%.ini, Settings, suspendforchat
IniWrite, %suspendforchatall%, %thisahk%.ini, Settings, suspendforchatall
if ActOnActiveTable
IniWrite, %ActOnActiveTable%, %thisahk%.ini, Options, ActOnActiveTable
if sendundermouse
IniWrite, %sendundermouse%, %thisahk%.ini, Options, sendundermouse
IniWrite, %activatetableundermouse%, %thisahk%.ini, Settings, activatetableundermouse
if ActivateBottomWindow
IniWrite, %ActivateBottomWindow%, %thisahk%.ini, Hotkeys, ActivateBottomWindow
if findtabletoact
IniWrite, %findtabletoact%, %thisahk%.ini, Hotkeys, findtabletoact
if suspend
IniWrite, %suspend%, %thisahk%.ini, Hotkeys, suspend
if TogglePause
IniWrite, %TogglePause%, %thisahk%.ini, Hotkeys, TogglePause
if CloseAllWithNoAction
IniWrite, %CloseAllWithNoAction%, %thisahk%.ini, Hotkeys, CloseAllWithNoAction
if Cashier
IniWrite, %Cashier%, %thisahk%.ini, Hotkeys, Cashier
if layout1
IniWrite, %layout1%, %thisahk%.ini, Hotkeys, layout1
if layout2
IniWrite, %layout2%, %thisahk%.ini, Hotkeys, layout2
if layout3
IniWrite, %layout3%, %thisahk%.ini, Hotkeys, layout3
if JoinWaitlistlobby
IniWrite, %JoinWaitlistlobby%, %thisahk%.ini, Hotkeys, JoinWaitlistlobby
if JoinWaitlistlobbyGroup
IniWrite, %JoinWaitlistlobbyGroup%, %thisahk%.ini, Hotkeys, JoinWaitlistlobbyGroup
IniWrite, %waitlists%, %thisahk%.ini, Settings, waitlists

IniWrite, %ClickImBack%, %thisahk%.ini, Settings, ClickImBack
IniWrite, %TakeSeat%, %thisahk%.ini, Settings, TakeSeat
IniWrite, %autoTakeSeat%, %thisahk%.ini, Settings, autoTakeSeat
IniWrite, %AutoReservedSeat%, %thisahk%.ini, Settings, AutoReservedSeat
IniWrite, %Timebank%, %thisahk%.ini, Settings, Timebank
IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1
IniWrite, %Autopost%, %thisahk%.ini, Settings, Autopost
IniWrite, %Waitbb%, %thisahk%.ini, Settings, Waitbb
IniWrite, %closeOKwindow%, %thisahk%.ini, Settings, closeOKwindow
IniWrite, %CheckWhenFree%, %thisahk%.ini, Settings, CheckWhenFree
IniWrite, %Buyin%, %thisahk%.ini, Settings, Buyin
if max
IniWrite, %max%, %thisahk%.ini, Settings, max
if remembered
IniWrite, %remembered%, %thisahk%.ini, Settings, remembered
if xbb
IniWrite, %xbb%, %thisahk%.ini, Settings, xbb
IniWrite, %bbmultiplier%, %thisahk%.ini, Variables, bbmultiplier
if SitOutNextAll
IniWrite, %SitOutNextAll%, %thisahk%.ini, Hotkeys, SitOutNextAll
if RemoveSitout
IniWrite, %RemoveSitout%, %thisahk%.ini, Hotkeys, RemoveSitout
if joinwaitlist
IniWrite, %joinwaitlist%, %thisahk%.ini, Hotkeys, joinwaitlist
if Unjoinwaitlist
IniWrite, %unjoinwaitlist%, %thisahk%.ini, Hotkeys, unjoinwaitlist
if UncheckAutopostAll
IniWrite, %UncheckAutopostAll%, %thisahk%.ini, Hotkeys, UncheckAutopostAll
if Toggleimback
IniWrite, %Toggleimback%, %thisahk%.ini, Hotkeys, Toggleimback 
IniWrite, %leavetable%, %thisahk%.ini, Settings, leavetable
IniWrite, %move%, %thisahk%.ini, Settings, move
IniWrite, %automoveback%, %thisahk%.ini, Settings, automoveback
if moveback
IniWrite, %moveback%, %thisahk%.ini, Hotkeys, moveback
if MoveBackByKey
IniWrite, %MoveBackByKey%, %thisahk%.ini, Hotkeys, MoveBackByKey
IniWrite, %ypos%, %thisahk%.ini, Variables, ypos
IniWrite, %xpos%, %thisahk%.ini, Variables, xpos

IniWrite, %OpenDef%, %thisahk%.ini, BetPotSettings, OpenDef
IniWrite, %RoundDef%, %thisahk%.ini, BetPotSettings, RoundDef
IniWrite, %FixDef%, %thisahk%.ini, BetPotSettings, FixDef
IniWrite, %PotDefPre%, %thisahk%.ini, BetPotSettings, PotDefPre
IniWrite, %PotDefFlop%, %thisahk%.ini, BetPotSettings, PotDefFlop
IniWrite, %PotDefTurn%, %thisahk%.ini, BetPotSettings, PotDefTurn
IniWrite, %PotDefRiver%, %thisahk%.ini, BetPotSettings, PotDefRiver

IniWrite, %Open1%, %thisahk%.ini, BetPotSettings, Open1
IniWrite, %Round1%, %thisahk%.ini, BetPotSettings, Round1
IniWrite, %Fix1%, %thisahk%.ini, BetPotSettings, Fix1
IniWrite, %Pot1Pre%, %thisahk%.ini, BetPotSettings, Pot1Pre
IniWrite, %Pot1Flop%, %thisahk%.ini, BetPotSettings, Pot1Flop
IniWrite, %Pot1Turn%, %thisahk%.ini, BetPotSettings, Pot1Turn
IniWrite, %Pot1River%, %thisahk%.ini, BetPotSettings, Pot1River
if pot1
IniWrite, %pot1%, %thisahk%.ini, BetPotHotkeys, pot1

IniWrite, %Open2%, %thisahk%.ini, BetPotSettings, Open2
IniWrite, %Round2%, %thisahk%.ini, BetPotSettings, Round2
IniWrite, %Fix2%, %thisahk%.ini, BetPotSettings, Fix2
IniWrite, %Pot2Pre%, %thisahk%.ini, BetPotSettings, Pot2Pre
IniWrite, %Pot2Flop%, %thisahk%.ini, BetPotSettings, Pot2Flop
IniWrite, %Pot2Turn%, %thisahk%.ini, BetPotSettings, Pot2Turn
IniWrite, %Pot2River%, %thisahk%.ini, BetPotSettings, Pot2River
if pot2
IniWrite, %pot2%, %thisahk%.ini, BetPotHotkeys, pot2

IniWrite, %Open3%, %thisahk%.ini, BetPotSettings, Open3
IniWrite, %Round3%, %thisahk%.ini, BetPotSettings, Round3
IniWrite, %Fix3%, %thisahk%.ini, BetPotSettings, Fix3
IniWrite, %Pot3Pre%, %thisahk%.ini, BetPotSettings, Pot3Pre
IniWrite, %Pot3Flop%, %thisahk%.ini, BetPotSettings, Pot3Flop
IniWrite, %Pot3Turn%, %thisahk%.ini, BetPotSettings, Pot3Turn
IniWrite, %Pot3River%, %thisahk%.ini, BetPotSettings, Pot3River
if pot3
IniWrite, %pot3%, %thisahk%.ini, BetPotHotkeys, pot3


IniWrite, %incr1%, %thisahk%.ini, BetPotSettings, incr1
if bb1
IniWrite, %bb1%, %thisahk%.ini, BetPotSettings, bb1
if sb1
IniWrite, %sb1%, %thisahk%.ini, BetPotSettings, sb1
if alt1
IniWrite, %alt1%, %thisahk%.ini, BetPotHotkeys, alt1

IniWrite, %incr2%, %thisahk%.ini, BetPotSettings, incr2
if bb2
IniWrite, %bb2%, %thisahk%.ini, BetPotSettings, bb2
if sb2
IniWrite, %sb2%, %thisahk%.ini, BetPotSettings, sb2
if alt2
IniWrite, %alt2%, %thisahk%.ini, BetPotHotkeys, alt2

IniWrite, %incr3%, %thisahk%.ini, BetPotSettings, incr3
if bb3
IniWrite, %bb3%, %thisahk%.ini, BetPotSettings, bb3
if sb3
IniWrite, %sb3%, %thisahk%.ini, BetPotSettings, sb3
if alt3
IniWrite, %alt3%, %thisahk%.ini, BetPotHotkeys, alt3

IniWrite, %incr4%, %thisahk%.ini, BetPotSettings, incr4
if bb4
IniWrite, %bb4%, %thisahk%.ini, BetPotSettings, bb4
if sb4
IniWrite, %sb4%, %thisahk%.ini, BetPotSettings, sb4
if alt4
IniWrite, %alt4%, %thisahk%.ini, BetPotHotkeys, alt4


IniWrite, %autopot%, %thisahk%.ini, BetPotSettings, autopot
IniWrite, %autobet%, %thisahk%.ini, BetPotSettings, autobet
IniWrite, %attempts%, %thisahk%.ini, Variables, attempts

if fold
IniWrite, %fold%, %thisahk%.ini, Hotkeys, fold
if call
IniWrite, %call%, %thisahk%.ini, Hotkeys, call
if raise
IniWrite, %raise%, %thisahk%.ini, Hotkeys, raise
if fold2any
IniWrite, %fold2any%, %thisahk%.ini, Hotkeys, fold2any
Return
;-----------------------------------------------------------------------------------------------------
CreateIni:
HyperSimpleTheme:=1
ClassicTheme:=0
SlickTheme:=0
BlackTheme:=0
Highlight:=0
highlightactive:=1
highlighthero:=0
MoveMouse:=0
stealfocus:=1
ActOnActiveTable:=1
sendundermouse:=0
activatetableundermouse:=0
suspendforchat:=0
suspendforchatall:=0
waitlists:=5
TakeSeat:=0
autoTakeSeat:=0
AutoReservedSeat:=0
Timebank:=0
Interval1:=1
Autopost:=0
Waitbb:=0
closeOKwindow:=1
CheckWhenFree:=1
Buyin:=0
remembered:=1
bbmultiplier:=50
ClickImBack:=0
leavetable:=0
move:=0
automoveback:=0
xpos:=100
ypos:=100
autopot:=0
autobet:=0
OpenDef=ssnl
Open1=ssnl
Open2=trny
Open3=----
RoundDef:=1
Round1:=1
Round2:=1
Round3:=1
fixDef:=1
fix1:=1
fix2:=1
fix3:=1
PotDefPre:=75
PotDefFlop:=75
PotDefTurn:=66
PotDefRiver:=66
Pot1Pre:=75
Pot1Flop:=75
Pot1Turn:=66
Pot1River:=66
Pot2Pre:=100
Pot2Flop:=80
Pot2Turn:=80
Pot2River:=80
Pot3Pre:=999
Pot3Flop:=100
Pot3Turn:=100
Pot3River:=100
Pot1=mbutton
Pot2=xbutton1
Pot3=xbutton2
incr1:=1
incr2:=1
incr3:=1
incr4:=1
bb1:=1
sb1:=0
bb2:=1
sb2:=0
bb3:=0
sb3:=1
bb4:=0
sb4:=1
alt1=wheelup
alt2=wheeldown
alt3=^wheelup
alt4=^wheeldown
attempts:=1
gosub, MakeIni
gosub, buildgui
return
;-----------------------------------------------------------------------------------------------------
GuiClose:
gosub, cancel
return
;-----------------------------------------------------------------------------------------------------
menuGui:
gosub, getini
winget,id,id, %thisahk% ahk_class AutoHotkeyGUI
if !DllCall( "IsWindowVisible", "UInt",id)
gosub, buildgui
Gui, Submit,nohide
return
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Save:
Gui, Submit
FileDelete, %thisahk%.ini
gosub, MakeIni
Reload
return
;-----------------------------------------------------------------------------------------------------
Cancel:
Gui, Destroy
Return
;-----------------------------------------------------------------------------------------------------
TogglePause:
pause,toggle
return
;-----------------------------------------------------------------------------------------------------
Suspend:
suspend
if A_IsSuspended=0
{
 suspended=Off
}
else
{
 suspended=On
}
Gui, 13:Add, Text,,Suspend: %suspended%
Gui, 13:+ToolWindow
Gui, 13:Show, w150 h20
Sleep, 1500
Gui, 13:Destroy
return
;-----------------------------------------------------------------------------------------------------
Edit:
edit
return
;-----------------------------------------------------------------------------------------------------
donation:
WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds...
WinWait, Transfer Funds ahk_class #32770, , 10
WinGet, tf, id
ControlFocus, Edit2, ahk_id%tf%
ControlSetText, Edit2, Max1mums
ControlFocus, Edit1, ahk_id%tf%
Sleep, -1
ControlSetText, Edit1,
GuiControl, Disable, Donate
return
;-----------------------------------------------------------------------------------------------------
exitSub:
exitApp
return
;-----------------------------------------------------------------------------------------------------
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 06:01 PM
finally got the betpot function working, but after downloading the latest release using the mouse wheel to increase/decrease amount is messed up, either way i turn the mouse wheel it decreases the amount, i checked the settings and they are right for increasing and decreasing amounts?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-13-2010 , 07:04 PM
Ok, quick fix:
Code:
; #### StarsCash ####

; AHK version: 1.0.48.05
; date: January 13,2010
  version := "1.4"
; author: Max1mums (max1mums@overcards.com)


#SingleInstance, Force
#NoEnv
#MaxHotkeysPerInterval 500|
Settitlematchmode, 2
OnExit exitSub

debug:=0

StringTrimRight, thisahk, A_ScriptName, 4
SetWorkingDir %A_ScriptDir%

Menu, Tray, NoStandard
Menu, Tray, Add, Settings, menugui
Menu, Tray, Add 
Menu, Tray, Add, Reload, reload
Menu, Tray, Default, Settings
Menu, Tray, Add 
Menu, Tray, Add, Suspend, Suspend
Menu, Tray, Add, Pause, TogglePause
Menu, Tray, Add 
Menu, Tray, Add, Edit, Edit 
Menu, Tray, Add 
Menu, Tray, Add, Donate, Donation
Menu, Tray, Add, Exit, ExitSub

OnMessage(0x112,"WM_SYSCOMMAND")
WM_SYSCOMMAND(wParam)
{
  if (A_Gui && wParam = 0xF020) ; SC_MINIMIZE
  {
    Gui, destroy
    return 0
  }
}

SetBatchLines,1ms
SetWinDelay,-1
SendMode Input

SysGet, xbord, 32
SysGet, border, 32
SysGet, ybord, 33
SysGet, cap, 4
SysGet, caption, 4

; Border of the "Highlighter"
border_color := "ff0000"
border_size := 5
trans := 255

boost:=false

;betpot stuff
stars_editbox = PokerStarsSliderEditorClass1
ddlist=
ddlist.="ssnl" . "|"
ddlist.="trny" . "|"
ddlist.="mix" . "|"
ddlist.="----" . "|"


ddlist1=
Loop 14
ddlist1:=ddlist1 . A_index . "|"

gosub,getini

Gui 11:Show, w1 1 x1 y1, PokerWindow
WinGet,PokerWindowID, id, PokerWindow
Gui 11:Show,hide, w1 h1 x1 y1, PokerWindow

Init()

;;;;;;;;;;;;;;End of init;;;;;;;;;;;;;;

settimer,HeroSeated,1103
settimer,Popupwatcher,139
if CheckWhenFree
settimer,FreeCheck,77
if ClickImBack
settimer,ClickBack,2033
if Timebank
settimer,ClickTimebank,1555
settimer,BetPot,37
settimer,clickwithdelay,93
settimer,NewTable,67
if Highlight
settimer,Highlighter,70
if activatetableundermouse
settimer,activateundermouse,133
if MoveMouse
settimer,MouseMove,119
if leavetable
settimer,closetable,249
if suspendforchatall
settimer,suspendallforchat,24

return
;-----------------------------------------------------------------------------------------------------
Init()
{
local list,winid
winget,list,list,Logged In ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index%
 if seated%id% is not number
 {
 loop %list%
  {
   id:=list%A_index%
   seated%id%:=2
  }
 break
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
NewTable:
IsTableNew()
return

IsTableNew()
{
local list,id
winget,list,list,ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index%
 if seated%id% is not number
 {
  wingetpos,xstart%id%,ystart%id%,,,ahk_id%id%
  if move
  WinMove, ahk_id%id%,, xpos,ypos
  if autotakeseat
  {
   if !InStr(tablequeue,id)
   movetolist(id,A_TickCount)
  }
 seated%id%:=1
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
IsWindowNew()
{
global oldwinid,stealfocus
winget,id,id,A
wingetclass,class,ahk_id%oldwinid%
if id!=%oldwinid%
{
 oldwinid:=id
 if stealfocus
 return 1
 else
 {
  if class=PokerStarsTableFrameClass
  return 1
  else
  return 0
 }
}
else
return 0
}
;-----------------------------------------------------------------------------------------------------
IsBetBoxNew()
{
global oldid,PotDefPre,PotDefFlop,PotDefTurn,PotDefRiver,RoundDef,OpenDef,FixDef
winget winid,id,A
if (winid<>oldid)
{
 ControlGet, Z, Visible,,PokerStarsSliderClass1, ahk_id %winid%
 if Z
 {
  oldid:=winid
  if RoundDef
  Roundsb:="smallblind"
  else
  Roundsb:=0.2
  Pot(winid,PotDefPre A_space PotDefFlop A_space PotDefTurn A_space PotDefRiver, Roundsb, OpenDef, FixDef)
 }
 else
 oldid=
 }
else
{
 ControlGet, Z, Visible,,PokerStarsSliderClass1, ahk_id %winid%
 if !Z
 oldid=
}
}
return
;-----------------------------------------------------------------------------------------------------
IsMouseInChat(id)
{
wingetpos,,,w,h,ahk_id%id%
coordmode,mouse,relative
mousegetpos,x1,y1
mousex:=0.5000
mousey:=0.7477
relstarsclientpoint(id,mousex,mousey,0)
if ((x1<mousex) and (y1>mousey)) & ((x1>0) & (y1>0) & (y1<h) & (x1<w))
return 1
else
return 0
}
;-----------------------------------------------------------------------------------------------------
suspendallforchat:
if suspended!=on
suspendall()
return

suspendall()
{
wingetclass,class,A
if class=PokerStarsTableFrameClass
{
 winget,id,id,A
 if IsMouseInChat(id)
 suspend,on
 else
 if A_isSuspended
 suspend,off 
}
}
return
;-----------------------------------------------------------------------------------------------------
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, %item%%del%
  StringTrimLeft, list, list, 1
  StringTrimRight, list, list, 1
  return list
}
;-----------------------------------------------------------------------------------------------------
movetolist(winid,time)
{
global tablequeue
listAdd(tablequeue, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
removefromlist(winid)
{
global tablequeue
Loop, Parse, tablequeue, `,
{
if InStr(A_loopfield,winid)
listDelItem(tablequeue, A_Loopfield)
}
}
return
;-----------------------------------------------------------------------------------------------------
movetolisttimebank(winid,time)
{
global tablequeuetimebank
listAdd(tablequeuetimebank, winid . "-" . time) 
}
return
;-----------------------------------------------------------------------------------------------------
removefromlisttimebank(winid)
{
global tablequeuetimebank
Loop, Parse, tablequeuetimebank, `,
{
if InStr(A_loopfield,winid)
listDelItem(tablequeuetimebank, A_Loopfield)
}
}
return
;-----------------------------------------------------------------------------------------------------
clickwithdelay:
clickdelay()
clickdelaytimebank()
return
;-----------------------------------------------------------------------------------------------------
clickdelay()
{
global tablequeue
Loop, Parse, tablequeue, `,
{
stringsplit,tab,A_loopfield,-
if abs(tab2-A_TickCount)>500
{
ClickSeats(tab1)
listDelItem(tablequeue, A_Loopfield) 
}
}
}
return
;-----------------------------------------------------------------------------------------------------
clickdelaytimebank()
{
global tablequeuetimebank,interval1,BlackTheme,SlickTheme
interval:=interval1*1000
Loop, Parse, tablequeuetimebank, `,
{
 stringsplit,tab,A_loopfield,-
 if abs(tab2-A_TickCount)>interval
 {
  if BlackTheme
  { 
  click_x :=0.5875
  click_y :=0.7531
  }
  else
  if SlickTheme
  { 
  click_x :=0.5047
  click_y :=0.8256
  }
  else
  {
  click_x :=0.6582
  click_y :=0.7729
  }
  PostClickStars(click_x, click_y, tab1, 0)
  listDelItem(tablequeuetimebank, A_Loopfield)
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
clickok()
{
ifwinexist,PokerStars ahk_class #32770
{
ControlGet, Z, Visible,,Button2, PokerStars ahk_class #32770
if !z
ControlGet, Z, Visible,,Button3, PokerStars ahk_class #32770
if !z
controlclick,Button1,PokerStars ahk_class #32770
}
}
return
;-----------------------------------------------------------------------------------------------------
autobuy()
{
global max,remembered,xbb,bbmultiplier
ifwinexist, Buy-in ahk_class #32770
{
 winget,id,id,Buy-in ahk_class #32770
 ControlGet, v, Visible,,Edit1, ahk_id %id%
 if v
 {
  SetControlDelay, -1
  if max
  {
   Control, Check,, Button1, ahk_id %id%
   sleep,-1
   ControlClick, OK, ahk_id %id%
  }
  if remembered
  {
   ControlClick, OK, ahk_id %id%
  }
  if xbb
  {
   parent:=DllCall("GetParent","uint",id)
   wingettitle,title,ahk_id %parent%
   stringtrimleft,hero,title,InStr(title, A_space,false,0)
   If ((InStr(title, "No Limit") OR InStr(title, "Pot Limit")) AND InStr(title, "Tournament") = 0)
   {
    StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
   }
   else if (InStr(title, "No Limit") <> 0 AND InStr(title, "Tournament") <> 0)
   {
    StringMid, bb, title, InStr(title, "/", "", InStr(title, "Blinds")) + 1, InStr(title, a_space, "", InStr(title, "Blinds") + 8) - InStr(title, "/", "", InStr(title, "Blinds")) - 1 ;___so we retrieve the big blind instead
   }
   StringReplace,bb,bb,$,,1  
   StringReplace,bb,bb,€,,1 
   StringReplace,bb,bb,Ђ,,1
   StringReplace,bb,bb,Ј,,1
   bb*=bbmultiplier
   bb := Round(bb, 2)
   Control, Check,, Button2, ahk_id %id%
   sleep,-1
   ControlSetText, Edit1, %bb%, ahk_id%id%
   ControlClick, OK, ahk_id %id%
   winwaitclose,ahk_id %id%,,1.5
   if errorlevel
   ControlClick, Cancel, ahk_id %id%
  }
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
Popupwatcher:

if TakeSeat
TakeSeat()

if Buyin
autobuy()

if closeOKwindow
clickok()

return
;-----------------------------------------------------------------------------------------------------
FreeCheck:
IfWinExist, PokerStars, Check
{
 SetControlDelay, -1
 ControlFocus, Check
 Sleep, -1
 ControlClick, Check
 Sleep, -1
 ControlSend, Check, {SPACE}
}
return
;-----------------------------------------------------------------------------------------------------
HeroSeated:
IsHeroSeared()
return

IsHeroSeared()
{
local list,winid,title
local col,click_x,click_y
winget,list,list,ahk_class PokerStarsTableFrameClass
loop %list%
{
 winid:=list%A_index%
 wingettitle,title,ahk_id%winid%
 col:=PixelColorA(0.0115,0.6800,winid,1)
 if seated%winid%=1
 if instr(title,"Logged In")
 if (instr(col,"15193294")) or (instr(col,"-0-")) or (instr(col,"16777215") or (instr(col,"65331")))
 {
  if move
  {
   if AutoMoveBack 
   {
   WinMove, ahk_id%winid%,, xstart%winid%,ystart%winid%
   seated%winid%:=2
   }
  } 
  if Autopost
  {
   if !instr(title,"fast")
   {
    click_x :=0.0142
    click_y :=0.7224
    PostclickStars(click_x,click_y,winid,0)
   }
  }
  if waitbb
  { 
   click_x :=0.6629
   click_y :=0.8555
   PostclickStars(click_x,click_y,winid,0)
  }
 if seated%winid%!=2
 seated%winid%:=3
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
relStarsClientPoint(id, ByRef x, ByRef y, client=1,screen=0)
{
global xbord,ybord,cap
WinGetPos,x1,y1,w,h,ahk_id%id%
w-=2*xbord
h-=(2*ybord)+cap
x:=floor(W*x)
y:=floor(H*y)
if !client
{
 x+=xbord
 y+=ybord+cap
}
if screen
{
 x+=x1
 y+=y1
}
}
return
;-----------------------------------------------------------------------------------------------------
PostLeftClick(x, y, table_id, activate=1, control_class="") {
; ### JUK: Send the down left click, then the mouse-up messages.
; NOTE: This is relative to the top left of the client area and NOT the top left of the
;       window (ie: It *doesn't* include the title-bar like AHK's MouseClick does!!!).
If activate
 WinActivate, ahk_id%table_id%
critical,6
PostMessage, 0x201, 0x0001, ((y<<16)^x), %control_class%, ahk_id%table_id%
PostMessage, 0x202 , 0, ((y<<16)^x), %control_class%, ahk_id%table_id%
critical,off
sleep,-1
}
return
;-----------------------------------------------------------------------------------------------------
PostclickStars(x,y,winid,activate=1,client=1)
{
relStarsClientPoint(winid, x, y,client)
DllCall("SetCapture","Uint",winid)
PostLeftClick(x, y, winid, activate)
DllCall("ReleaseCapture")
}
return
;-----------------------------------------------------------------------------------------------------
PixelColorA(colx,coly,id,region=0,colx1=0,coly1=0,region1=0)
{
global xbord,ybord,cap
hdc_frame := DllCall( "GetDC", "UInt",PokerWindowID)
hdc_buffer := DllCall("gdi32.dll\CreateCompatibleDC","UInt",hdc_frame)
WinGetPos,,,W,H,ahk_id %id%
hbm_buffer := DllCall("gdi32.dll\CreateCompatibleBitmap", "UInt",hdc_frame, "Int",w, "Int",h)
DllCall( "gdi32.dll\SelectObject", "UInt",hdc_buffer, "UInt",hbm_buffer)
DllCall( "PrintWindow", "UInt" , id , "UInt" , hdc_buffer , "UInt" , 0 )
WinGet,ctrls,ControlList,ahk_id %id%
Loop,Parse,ctrls,`n
{
 class:=A_LoopField
 ControlGet,ctrlid,Hwnd,,%class%,ahk_id %id%
 ControlGet,visible,Visible,,,ahk_id %ctrlid%
 If visible=1
 DllCall("RedrawWindow","UInt",ctrlid,"UInt",0,"UInt",0,"UInt", 1|4|64|1024)
}
DllCall("RedrawWindow","UInt",id,"UInt",0,"UInt",0,"UInt", 1|4|64|1024) 
x:=floor(((W-2*xbord)*colx)) + xbord
y:=floor(((H-(2*ybord)-cap)*coly)) + ybord + cap
if region
{
loop 10
{
delta:=A_index
loop 10
{
delta1:=A_index
p := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x+delta , "Int", y+delta1)
;p1:=p
;SetFormat, IntegerFast, hex
;p += 0
;p .= ""
;SetFormat, IntegerFast, d
;pix.=p . "*" . p1 . "-"
pix.=p . "-"
}
}
}
else
{
pix := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y) 
SetFormat, IntegerFast, hex
pix += 0
pix .= ""
SetFormat, IntegerFast, d
}

if colx1
{
x:=floor(((W-2*xbord)*colx1)) + xbord
y:=floor(((H-(2*ybord)-cap)*coly1)) + ybord + cap
if region1
{
loop 10
{
delta:=A_index
loop 10
{
delta1:=A_index
p := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x+delta , "Int", y+delta1)
pix1.=p . "-"
}
}
}
else
{
pix1 := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
SetFormat, IntegerFast, hex
pix1 += 0
pix1 .= ""
SetFormat, IntegerFast, d
}
}


if region1
pix.="*" . pix1
else
if colx1
pix.="-" . pix1
sleep,1
DllCall( "gdi32.dll\DeleteObject","Uint",hbm_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_buffer)
DllCall( "gdi32.dll\ReleaseDC","Uint",hdc_frame)
DllCall( "gdi32.dll\DeleteDC","Uint",hdc_frame)
return pix
}
;-----------------------------------------------------------------------------------------------------
CompareColors(ByRef bgr1, ByRef bgr2, ByRef variation) {
c1 := bgr1 & 0xff
c2 := bgr2 & 0xff
if (abs(c1 - c2) > variation)
	return false
c1 := (bgr1 >> 8) & 0xff
c2 := (bgr2 >> 8) & 0xff
if (abs(c1 - c2) > variation)
	return false
c1 := (bgr1 >> 16) & 0xff
c2 := (bgr2 >> 16) & 0xff
if (abs(c1 - c2) > variation)
	return false
return true
}
;-----------------------------------------------------------------------------------------------------
CloseAllWithNoAction:
settimer,ClickBack,off
SetControlDelay, -1
WinGet, list, List, ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 winid:=list%A_Index%
 wingettitle,title,ahk_id%winid%
 Sittingout:=PixelColorA(0.8125,0.8621,winid)
 If !instr(title,"Logged In") OR ((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 WinKill,ahk_id%winid%
}
WinGet, list, List, ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 winid:=list%A_Index%
 Sittingout:=PixelColorA(0.8125,0.8621,winid)
 If !((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 {
  back_x:=0.0141
  back_y:=0.6860
  PostClickStars(back_x, back_y, winid, 0) 
 }   
}
sleep,1000
WinGet, list, List, ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 winid:=list%A_Index%
 Sittingout:=PixelColorA(0.8125,0.8621,winid)
 If ((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 WinKill,ahk_id%winid%
}  
WinGet, list, List,Table ahk_class #32770
Loop, %list%
{
 winid:=list%A_Index%
 ControlFocus,Button1, ahk_id%winid%
 Sleep, -1
 ControlClick,Button1, ahk_id%winid%
 Sleep, -1
 ControlSend,Button1, {SPACE}, ahk_id%winid%
}
return
;-----------------------------------------------------------------------------------------------------
closeTable:
LeaveTable()
return

LeaveTable()
{
settitlematchmode,2
SetControlDelay, -1  
ifwinexist,Table ahk_class #32770
{
winget,winid,id,Table ahk_class #32770
ControlGet, v, Visible,,Button2, ahk_id %winid%
ControlGet, z, Visible,,Button3, ahk_id %winid%
if (v) & (!z)
{
 ControlFocus,Button1, ahk_id%winid%
 Sleep, -1
 ControlClick,Button1, ahk_id%winid%
 Sleep, -1
 ControlSend,Button1, {SPACE}, ahk_id%winid%
}
}
}
return
;-----------------------------------------------------------------------------------------------------
SitOutNextAll:
;ClickImBack:=false
settimer,ClickBack,off
WinGet, list, List,Logged In ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 Z:=list%A_Index%
 WinGetPos,,, W, H, ahk_id %Z%
 Sittingout:=PixelColorA(0.8125,0.8621,Z)
 If !((Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333))
 {
  back_x:=0.0141
  back_y:=0.6860
  PostClickStars(back_x, back_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
RemoveSitout:
;ClickImBack:=true
if ClickImBack
settimer,ClickBack,1500
WinGet, list, List,Logged In ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 Z:=list%A_Index%
 WinGetPos,,, W, H, ahk_id %Z%
 Sittingout:=PixelColorA(0.8125,0.8621,Z)
 JoinWaitingList:=PixelColorA(0.8625,0.8621,Z)
 If (Sittingout=0x000000) OR (Sittingout=0xDFD9CE) OR (Sittingout=0xD2EBF3) OR (Sittingout=0xB3A39D) OR (Sittingout=0x9D9D9D) OR (Sittingout=0xCCCCCC) OR (Sittingout=0xDEDBCE) OR (Sittingout=0xB5A29c) OR (Sittingout=0xBDAEAD) OR (Sittingout=0x343434)  OR (Sittingout=0x444444)  OR (Sittingout=0x333333)
  If (JoinWaitingList!=0x000000) AND (JoinWaitingList!=0xDFD9CE) AND (JoinWaitingList!=0xDEDBCE) AND (JoinWaitingList!=0x0xB5A29c) AND (JoinWaitingList!=0xBDAEAD)  AND (JoinWaitingList!=0x1f1f1f)  AND (JoinWaitingList!=0x343434) AND (JoinWaitingList!=0x0202020)  AND (JoinWaitingList!=0xe6e6e6) AND (JoinWaitingList!=0xdddddd)  AND (JoinWaitingList!=0x1e1e1e) AND (JoinWaitingList!=0xb0b0b0)
 {
  back_x :=0.7515
  back_y :=0.8468
  PostClickStars(back_x, back_y, Z, 0) 
 }       
}
return
;-----------------------------------------------------------------------------------------------------
UncheckAutopostAll:
sitx:=0.0126
sity:=0.7201
click_x:=sitx+0.0070
click_y:=sity+0.0070
WinGet, list, List,Logged In ahk_class PokerStarsTableFrameClass
Loop, %list%
{
 Z:=list%A_Index%
 wingettitle,title,ahk_id%Z%
 if !instr(title,"fast")
 {
  Sittingout:=PixelColorA(sitx,sity,Z,1)
  if (instr(Sittingout,"-0-"))  ; & !(instr(Sittingout,"1710618"))  ; & !(instr(Sittingout,"16777215"))
  {
   PostClickStars(click_x, click_y, Z, 0) 
  }
 }        
}
return
;-----------------------------------------------------------------------------------------------------
ClickBack:
imback()
return
;-----------------------------------------------------------------------------------------------------
imback()
{
winget,list,list,Logged In ahk_class PokerStarsTableFrameClass
back_x:=0.8031
back_y:=0.8405
join_x:=0.8631
join_y:=0.8405
loop %list%
{
id:=list%A_index%
col:=PixelColorA(back_x,back_y,id,1,join_x,join_y,1)
stringsplit,col,col,*
Sittingout:=col1
JoinWaitingList:=col2 
if (instr(Sittingout,"4473924")) or (instr(Sittingout,"14670286")) or (instr(Sittingout,"-0-")) or (instr(Sittingout,"-0x0-"))
 if !((instr(JoinWaitingList,"3684408")) or (instr(JoinWaitingList,"4473924")) or (instr(JoinWaitingList,"14670286")) or (instr(JoinWaitingList,"-0-")) or (instr(JoinWaitingList,"-0x0-")))
 {
  postclickstars(back_x,back_y,id,0)
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
Toggleimback:
If (ClickImBack=true)
{
 ClickImBack:=false
 settimer,ClickBack,off
 T=Off
}
else
{
 ClickImBack:=true
 settimer,ClickBack,1500
 T=On
}
Gui, 12:Add, Text,, Auto Click Im Back: %T%
Gui, 12:+ToolWindow
Gui, 12:Show, w150 h20
Sleep, 1000
Gui, 12:Destroy
return
;-----------------------------------------------------------------------------------------------------
ClickTimebank:
clicktime()
return
;-----------------------------------------------------------------------------------------------------
clicktime()
{
global SlickTheme,BlackTheme,tablequeuetimebank
if BlackTheme
{
timex:=0.5775
timey:=0.7431
click_x:=0.5875
click_y:=0.7531
}
else
if SlickTheme
{
timex:=0.4920
timey:=0.7958
click_x:=0.5047
click_y:=0.8256
}
else 
{
timex:=0.6500
timey:=0.7670
click_x:=0.6582
click_y:=0.7729
}
winget,list,list,Logged In ahk_class PokerStarsTableFrameClass
loop %list%
 {
  id:=list%A_index%
  col:=PixelColorA(timex,timey,id,1) 
  if (instr(col,"13484978")) or (instr(col,"1000084")) or (instr(col,"16777215")) 
  {  
   if !InStr(tablequeuetimebank,id)
   movetolisttimebank(id,A_TickCount)
  }
  else
  if InStr(tablequeuetimebank,id)
  removefromlisttimebank(id)
 }
}
return
;-----------------------------------------------------------------------------------------------------
Joinwaitlist:
winget,list,list, ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index% 
 col:=PixelColorA(0.6274,0.9352,id,1)
 if !(instr(col,"15921906")) & !(instr(col,"16777215"))
 {
  click_x :=0.8625
  click_y :=0.8621
  PostclickStars(click_x,click_y,id,0)
 }
}
return
;-----------------------------------------------------------------------------------------------------
Unjoinwaitlist:
winget,list,list, ahk_class PokerStarsTableFrameClass
loop %list%
{
 id:=list%A_index%
 col:=PixelColorA(0.6274,0.9352,id,1)
 if InStr(col,"15921906") or (instr(col,"16777215"))
 {
  click_x :=0.8625
  click_y :=0.8621
  PostclickStars(click_x,click_y,id,0)
 }
}
return
;-----------------------------------------------------------------------------------------------------
JoinWaitlistlobby:
ControlGet, Black, Visible,, PokerStarsButtonClass1, PokerStars Lobby
If black
{
ControlGet, Join, Visible,, PokerStarsButtonClass4, PokerStars Lobby
ControlGet, Leave, Visible,, PokerStarsButtonClass3, PokerStars Lobby
If (Join=1)
{
ControlClick, PokerStarsButtonClass4, PokerStars Lobby
SetControlDelay -1
ControlClick, Button1, Waiting List

}
else
{
If (Leave=1)
ControlClick, PokerStarsButtonClass3, PokerStars Lobby
}
}
else
{
ControlGet, Join, Visible,, PokerStarsButtonClass3, PokerStars Lobby
ControlGet, Leave, Visible,, PokerStarsButtonClass2, PokerStars Lobby
If (Join=1)
{
ControlClick, PokerStarsButtonClass3, PokerStars Lobby
SetControlDelay -1
ControlClick, Button1, Waiting List

}
else
{
If (Leave=1)
ControlClick, PokerStarsButtonClass2, PokerStars Lobby
}
}
return
;-----------------------------------------------------------------------------------------------------
JoinWaitlistlobbyGroup:
joingroup(waitlists)
return

joingroup(waitinglists)
{
winget,id,id,PokerStars Lobby - ahk_class #32770
ifwinactive, ahk_id%id%
{
 ControlGet, Black, Visible,, PokerStarsButtonClass1, ahk_id%id%
 If Black
 {
  joinbutton=PokerStarsButtonClass4
  unjoinbutton=PokerStarsButtonClass3
 }
 else
 {
  joinbutton=PokerStarsButtonClass3
  unjoinbutton=PokerStarsButtonClass2
 }
 list=PokerStarsListClass1
 loop %waitinglists%
 {
  SetControlDelay,-1
  ControlGet, Join, Visible,, %joinbutton%, ahk_id%id%
  If (Join=1)
  {
   controlfocus,%joinbutton%,,ahk_id%id%
   sleep,-1
   PostLeftClick(50,25,id,0,joinbutton)
  }
  controlfocus,PokerStarsListClass1,,ahk_id%id%
  sleep,-1
  controlsend,PokerStarsListClass1,{Down},ahk_id%id%
  sleep,600
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
MoveBackByKey:
ifwinactive, ahk_class PokerStarsTableFrameClass
{
 winget,id,id,A
 if (seated%id%=1) or (seated%id%=3)
 {
  wingettitle,title,ahk_id%id%
  seated%id%:=2
  WinMove, ahk_id%id%,, xstart%id%,ystart%id%
 }
}
return
;-----------------------------------------------------------------------------------------------------
TakeSeat() 
{
global AutoReservedSeat
IfWinExist, PokerStars ahk_class #32770
{
 WinGet, list, list, Seat Available ahk_class #32770
 Loop, %list%
 {
  This_id := list%A_Index%
  ControlFocus, Button2, ahk_id%this_id%
  Sleep, -1
  ControlSend, Button2, {SPACE}, ahk_id%this_id% 
 }
 setwindelay,-1
 if AutoReservedSeat
 if list>0
 {
  sleep,400
  winget,id,id,ahk_class PokerStarsTableFrameClass
  ClickSeats(id)
 }
}
}
return
;-----------------------------------------------------------------------------------------------------
ClickSeats(id)
{ 
 Postclickstars(0.5000,0.6903,id,0)
 Postclickstars(0.2299,0.6536,id,0)
 Postclickstars(0.0697,0.4250,id,0)
 Postclickstars(0.1770,0.1835,id,0)
 Postclickstars(0.3401,0.0867,id,0)
 Postclickstars(0.6566,0.0867,id,0)
 Postclickstars(0.8333,0.1910,id,0)
 Postclickstars(0.9328,0.4250,id,0)
 Postclickstars(0.7764,0.6513,id,0)

 Postclickstars(0.1028,0.5114,id,0)
 Postclickstars(0.1028,0.2591,id,0)
 Postclickstars(0.8876,0.2591,id,0)
 Postclickstars(0.8876,0.5114,id,0)
}
return
;-----------------------------------------------------------------------------------------------------
FindTableToAct:
findactivetable()
return
;-----------------------------------------------------------------------------------------------------
findactivetable()
{
WinGet, l, List, ahk_class PokerStarsTableFrameClass
found:=false
v:=30
foldx:=0.5575
foldy:=0.9846
foldx1:=0.5063
foldy1:=0.9846
Loop, %l%
{
  winid:=l%A_Index%
  ControlGet, Z, Visible,,PokerStarsSliderClass1, ahk_id %winid%
  If Z
  {
    WinActivate, ahk_id %winid%
    found:=true
    Break
  }
}
if !found
Loop, %l%
{
  winid:=l%A_Index%
  col:=PixelColorA(foldx,foldy,winid,0,foldx1,foldy1,0)
  stringsplit,col,col,-
  if comparecolors(col1,col2,v)=0
  {
  WinActivate, ahk_id %winid%
  break
  }
}
}
return
;-----------------------------------------------------------------------------------------------------
ActivateBottomWindow:
GroupActivate, StarsTables
return
;-----------------------------------------------------------------------------------------------------
activateundermouse:
activatetableundermouse()
return

activatetableundermouse()
{
  If winactive("ahk_class PokerStarsTableFrameClass") or winactive("PokerStars Lobby")
  {
    MousegetPos,,,WinID
    WinGetClass, class, ahk_id %WinID%
    WinGetTitle, title, ahk_id %WinID%
    if (class="PokerStarsTableFrameClass") or (instr(title,"PokerStars Lobby"))
    winactivate, ahk_id %WinID%
  }
}
return
;-----------------------------------------------------------------------------------------------------
Cashier:
IfWinExist Cashier ahk_class #32770
{
WinActivate Cashier ahk_class #32770
SetControlDelay -1
ControlClick, PokerStarsButtonClass8, Cashier
}
else
{
WinActivate PokerStars Lobby
WinMenuSelectItem, PokerStars Lobby,, Lobby, Cashier...
}
return
;-----------------------------------------------------------------------------------------------------
Layout1:
layx:=0.5047
layy:=0.1880
layy1:=0.0940
WinGet, WinId, ID, ahk_class PokerStarsTableFrameClass 
if Winid
{
winactivate,ahk_id%winid%
if HyperSimpleTheme
{
relstarsclientpoint(winid,layx,layy1,0)
ControlClick,x%layx% y%layy1%,ahk_id %WinID%,,,,NA
}
else
{
relstarsclientpoint(winid,layx,layy,0)
ControlClick,x%layx% y%layy%,ahk_id %WinID%,,,,NA
}
Loop
{
WinWait, Options
Winactivate, Options
SetControlDelay, -1
ControlClick, Button13, Options,,,,NA
sleep 100
Send {down 5}
Send {Enter}
WinWaitClose, Options,,1
If (!ErrorLevel)	
	Break
}
}
return
;-----------------------------------------------------------------------------------------------------
Layout2:
layx:=0.5047
layy:=0.1880
layy1:=0.0940
WinGet, WinId, ID, ahk_class PokerStarsTableFrameClass 
if Winid
{
winactivate,ahk_id%winid%
if HyperSimpleTheme
{
relstarsclientpoint(winid,layx,layy1,0)
ControlClick,x%layx% y%layy1%,ahk_id %WinID%,,,,NA
}
else
{
relstarsclientpoint(winid,layx,layy,0)
ControlClick,x%layx% y%layy%,ahk_id %WinID%,,,,NA
}
Loop
{
WinWait, Options
Winactivate, Options
SetControlDelay, -1
ControlClick, Button13, Options,,,,NA
sleep 100
Send {down 6}
Send {Enter}
WinWaitClose, Options,,1
If (!ErrorLevel)	
	Break
}
}
return
;-----------------------------------------------------------------------------------------------------
Layout3:
layx:=0.5047
layy:=0.1880
layy1:=0.0940
WinGet, WinId, ID, ahk_class PokerStarsTableFrameClass 
if Winid
{
winactivate,ahk_id%winid%
if HyperSimpleTheme
{
relstarsclientpoint(winid,layx,layy1,0)
ControlClick,x%layx% y%layy1%,ahk_id %WinID%,,,,NA
}
else
{
relstarsclientpoint(winid,layx,layy,0)
ControlClick,x%layx% y%layy%,ahk_id %WinID%,,,,NA
}
Loop
{
WinWait, Options
Winactivate, Options
SetControlDelay, -1
ControlClick, Button13, Options,,,,NA
sleep 100
Send {down 7}
Send {Enter}
WinWaitClose, Options,,1
If (!ErrorLevel)	
	Break
}
}
return
;-----------------------------------------------------------------------------------------------------
Highlighter:
HighLighter(1)
return

HighLighter(Highlight=1) 
{
global last_table_id
global border_color
global border_size
global trans
global OldX,OldY,OldW,OldH
global highlighthero

foldx:=0.5575
foldx1:=0.5079
foldy:=0.9846
foldy1:=0.9846
v:=25

ifwinactive,ahk_class PokerStarsTableFrameClass
{  
 winget,id,id,A
 WinGetActiveStats,ActiveTitle, ActiveW, ActiveH, ActiveX, ActiveY
  relstarsclientpoint(id,foldx,foldy,0)
  pixelgetcolor,fold,foldx,foldy,ahk_id%id%
  relstarsclientpoint(id,foldx1,foldy1,0)
  pixelgetcolor,bacgr,foldx1,foldy1,ahk_id%id%
 if (id != last_table_id) || ((OldX <> ActiveX || OldY <> ActiveY || OldW <> ActiveW || OldH <> ActiveH))    
 {
  OldX:=ActiveX
  OldY:=ActiveY
  OldW:=ActiveW
  OldH:=ActiveH
  mouse_last:=last_table_id
  last_table_id:=id  
  if(!id)
  {
   Gui, 2: Cancel
   Gui, 3: Cancel
   Gui, 4: Cancel
   Gui, 5: Cancel
   return
  }  
  WinGetPos, x, y, w, h, ahk_id%id%
  global xbord
  global cap
  x := x + xbord
  y := y + xbord + cap
  w := w - (2*xbord)
  h := h - (2*xbord) - cap
 
  ;Makes Border around urgent table
  if (highlighthero=0) || (highlighthero=1 & comparecolors(fold,bacgr,v)=0)
  { 
   ;top
   guinum := 2
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y% NoActivate    
   ;left
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   Gui, %guinum%: Show, w%border_size% h%h% x%x% y%y% NoActivate    
   ;bottom
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   y2 := y + h - border_size
   Gui, %guinum%: Show, w%w% h%border_size% x%x% y%y2% NoActivate    
   ;right
   guinum++
   Gui, %guinum%: +Alwaysontop +Lastfound +Owner
   Gui, %guinum%: Color, %border_color%
   WinSet, Transparent, %trans%
   Gui, %guinum%: -Caption
   x2 := x + w - border_size
   Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate   
  }   
  else 
  if highlighthero
  last_table_id=       
 }
 else
 if highlighthero 
 if comparecolors(fold,bacgr,v)=1
 {
  Gui, 2: Cancel
  Gui, 3: Cancel
  Gui, 4: Cancel
  Gui, 5: Cancel
  last_table_id=
 } 
}
else
{
   Gui, 2: Cancel
   Gui, 3: Cancel
   Gui, 4: Cancel
   Gui, 5: Cancel
   last_table_id=
}
}
return
;-----------------------------------------------------------------------------------------------------
MouseMove:
MoveMouse()
return

MoveMouse(x_mouse=0.75, y_mouse=0.75)
{
if IsWindowNew()
{ 
wingetclass,class,A
wingetactivetitle,title
if class=PokerStarsTableFrameClass 
if instr(title,"Logged In") 
{
 winget,id,id,A
 relStarsClientPoint(id, x_mouse, y_mouse,0,1)
 DllCall("SetCursorPos", int, x_mouse, int, y_mouse)
}  
}
}
return
;-----------------------------------------------------------------------------------------------------
AlterAmount(id, dir="", frac=1, unit="")
{
 global stars_editbox
  WinGetTitle, title, ahk_id%id%
  amount := 0
  StringTrimRight, tablename, title, ( StrLen(title) - (InStr(title, " - ")-1) )
  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    If ((InStr(title, "No Limit") OR InStr(title, "Pot Limit")) AND InStr(title, "Tournament") = 0)
    {
      StringMid, bb, title, InStr(title, "/") + 1, InStr(title, a_space,"", InStr(title, "/")) - InStr(title, "/") - 1
    }
    else if (InStr(title, "No Limit") <> 0 AND InStr(title, "Tournament") <> 0)
    {
      StringMid, bb, title, InStr(title, "/", "", InStr(title, "Blinds")) + 1, InStr(title, a_space, "", InStr(title, "Blinds") + 8) - InStr(title, "/", "", InStr(title, "Blinds")) - 1
    }  
  }   
  StringReplace,bb,bb,$,,1
  StringReplace,bb,bb,Ј,,1
  StringReplace,bb,bb,Ђ,,1
  StringReplace,bb,bb,€,,1 

  ;bb++
  ;bb--
  sb := sb(bb)
  If (unit = "" or unit = "bb")
  {
    unit := bb
  }
  Else If (unit = "sb")
  {
    unit := sb
  }
  Else If (unit = "pot")
  {
    pot := 0
    call := 0
    hero_bet := 0
    street := "pre"
    hero_position := ""
    open := 0
    max := 10000000
    IfWinExist, ahk_id%id% ahk_group StarsTables
    {
      PotSizeStars(id, pot, call, sb, bb, hero_bet, street, hero_position, open)
    } 
    pot := ((pot + call + hero_bet) )+ call
    unit := pot
  }
  amount := unit * frac
  if (dir="down")
  {
    amount := amount - (2*amount)
  }
  a:=floor(amount)
  if amount-a=0
  amount:=a
  
  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    ControlGetText, t, %stars_editbox%, ahk_id%id%
    t := t + amount
    if (t < 0)
    {
      t := 0
    }
    t1 := Round(t, 2)
    t := Round(t, 3)
    if t-t1=0
    t:=t1
    ControlSetText, %stars_editbox%, %t%, ahk_id%id%
    Sleep, -1
    WinSet, Redraw,, ahk_id%id%
  } 
}

Pot(id, frac=1, round_bet=0.2, open_adjust="", fixblinds=0)
{
  global debug
  global stars_editbox
  global attempts

  if attempts<=0
  attempts:=1
  pot := 0
  call := 0
  sb := 0
  bb := 0
  hero_bet := 0
  street := ""
  hero_position := ""
  open := 1
  max := 10000000

  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    loop %attempts%
    {
     PotSizeStars(id, pot, call, sb, bb, hero_bet, street, hero_position, open)
     if pot>0
     break
     sleep,20 
    }
  } 

  Else
  {
    return
  }
 
  StringSplit, fr, frac, %A_SPACE%
  if (fr0 < 4)
  {
    times := 4 - fr0
    Loop, %times%
    {
      n := 5 - A_Index
      fr%n% := fr%fr0% 
    }
  }
  
  if (street = "pre")
  {
    frac:= Round(fr1/100,2)
  }
  else if (street = "flop")
  {
    frac:= Round(fr2/100,2)
  }
  else if (street = "turn")
  {
    frac:= Round(fr3/100,2)
  }
  else if (street = "river")
  {
    frac:= Round(fr4/100,2)
  }
  if (debug)
  {
    TrayTip, BetPot, Pot:`t`t%pot%`nCall:`t`t%call%`nHero_bet:`t%hero_bet%`n`nPosition:`t%hero_position%`n`nBlinds:`t$%sb%/$%bb%`n`nStreet:`t%street%`n`n%fr0%`n%fr1% %fr2% %fr3% %fr4%`n`n%frac%,10,17
  }
   ; listvars
  if (fixblinds AND open AND street="pre")
  {
    if (hero_position = "sb" )
    {
      pot := pot - sb
      call := call + sb
    }
    else if (hero_position = "bb")
    {
      pot := pot - bb
      call := call + bb
    }
  }

  pot := ((pot + call + hero_bet)* (frac)) + call  

  if (open=1 AND open_adjust="ssnl" )
  {
    pot := pot + bb - sb
  }
  else if (open=1 AND open_adjust="trny" )
  {
    pot := pot - bb
  }
  else if (open=1 AND open_adjust="mix" )
  {
    if (bb=2)
    {
      pot := pot + bb - sb
    }
  ;  pot := pot + bb + sb
  }
  
  if(round_bet = "smallblind")
  {
    pot := Round((Floor((pot / sb)) * sb),2)
  }
  else if(round_bet = "bigblind")
  {
    pot := Round((Floor((pot / bb)) * bb),2)
  }
  else if (round_bet < 1)
  {
    places := round_bet*10
    pot := Round(pot, (places))
  }
  else if (round_bet >= 1)
  {
    pot := Floor(pot / round_bet) * round_bet
  }
 
  p:=floor(pot)
  if pot-p=0
  pot:=p
    
  IfWinExist, ahk_id%id% ahk_group StarsTables
  {
    ControlSetText, %stars_editbox%, %pot%, ahk_id%id%
    Sleep, -1
  }
}

PotSizeStars(id, ByRef pot, ByRef call, ByRef sb, ByRef bb, ByRef hero_bet, ByRef street, ByRef hero_position, ByRef open)
{
  global use_old_stars_buttons, stars_editbox , ClassicTheme , HyperSimpleTheme, SlickTheme
  CoordMode, Pixel, Screen
  setwindelay,-1
  if ClassicTheme 
  {
  PotThemeDir := "classic"
  CallThemeDir := "classic"
  pot_x1:=0.4400
  pot_x2:=0.5706
  pot_y1:=0.0140
  pot_y2:=0.0685
  call_x1:=0.7143
  call_y1:=0.9342
  call_y2:=0.9802
  call_x2:=0.7843
  raise_x1:=0.8727
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9423
  }
  else 
  if HyperSimpleTheme
  {
  PotThemeDir := "hypersimple"
  CallThemeDir := "hypersimple"
  pot_x1:=0.4900
  pot_x2:=0.5706
  pot_y1:=0.0140
  pot_y2:=0.0885
  call_x1:=0.7143
  call_y1:=0.9342
  call_y2:=0.9802
  call_x2:=0.7843
  raise_x1:=0.8727
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9423
  }
  else 
  if SlickTheme
  { 
  PotThemeDir := "slick"
  CallThemeDir := "slick"
  pot_x2:=0.5466
  pot_y2:=0.1645
  pot_x1:=0.4640
  pot_y1:=0.0895
  call_y2:=0.9802
  call_y1:=0.9342
  call_x2:=0.7454
  call_x1:=0.6754
  raise_x1:=0.8474
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9304
  }
  else
  {
   return
  }
  if (use_old_stars_buttons)
  {
    CallThemeDir := CallThemeDir . "\old"
  }
  street := GetStreetStars(id)

  WinGetPos, x, y, w, h, ahk_id%id%
  if (w <= 526)
  {
    SizeDir := 0
  }
  else if (w <= 621)
  {
    SizeDir := 1
  }
  else if (w <= 736)
  {
    SizeDir := 2
  }
  else if (w <= 875)
  {
    SizeDir := 3
  }
  else if (w <= 1037)
  {
    SizeDir := 4
  }
  else if (w <= 1227)
  {
    SizeDir := 5
  }
  else
  {
    SizeDir := 6
  } 

  PicDir := "StarsPics"
  potPicDir := PicDir . "\" . PotThemeDir . "\pot\" . SizeDir
  buttonPicDir := PicDir . "\" . CallThemeDir . "\call\" . SizeDir

  relStarsclientPoint(id, pot_x1, pot_y1,0)
  relStarsclientPoint(id, pot_x2, pot_y2,0)
  pot := DigitSearch(pot_x1, pot_y1, pot_x2, pot_y2, id, potPicDir, "", 50)

  relStarsclientPoint(id, call_x1, call_y1,0)
  relStarsclientPoint(id, call_x2, call_y2,0)
  call := DigitSearch(call_x1, call_y1, call_x2, call_y2, id, buttonPicDir, "", 50)
  call := iif( call, call, 0 )
  bb := GetBBStars(id, GameTypeStars(WinGetTitle(id)))
  sb := sb(bb) 
  
  if (street = "pre")
  {
    ControlGetText, t, %stars_editbox%, ahk_id%id%
    ControlSetText, %stars_editbox%, 0, ahk_id%id%
  relStarsclientPoint(id, raise_x1, raise_y1,0)
  relStarsclientPoint(id, raise_x2, raise_y2,0)
   minraise := DigitSearch(raise_x1, raise_y1, raise_x2, raise_y2, id, buttonPicDir, "", 50)
    t := Round(t, 2)
    ControlSetText, %stars_editbox%, %t%, ahk_id%id%
    Sleep, -1 
    if (minraise > (2*bb))
    {
      ;pot has been raised
      if (call = bb)
      {
        ;pot was minraised, and we are the BB
        hero_bet := bb
        hero_position := "bb"
      }
      else if (call < (bb*2))
      {
        ;pot was minraised, and we are the SB
        hero_bet := sb
        hero_position := "sb"
      }
    }
    else if (call = bb)
    {
      ;hero is not a blind, unraised pot, do nothing
    }
    else if (call = 0)
    {
      ;unraised pot, hero is the BB
      hero_bet := bb
      hero_position := "bb"
    }
    else if (call < bb)
    {
      ;unraised pot, hero is the SB
      hero_bet := sb
      hero_position := "sb"

    }
    else
    {
      ;pot has been raised, we are not opening
      open := 0
    }
  }
  else
  {
    ;not pre-flop, no need for open adjustment
    open := 0
  } 
  return
}

DigitSearch(startX,startY,endX,endY,win,dir,ex="",shades=1) {
If ex =
 ex = bmp
batchlines = %A_BatchLines%
SetBatchLines -1
WinGetPos,Xwin,Ywin,,,ahk_id%win%
CoordMode, Pixel, Screen
Loop, 11 {
  i = %a_index%
  If i = 10
    i = 0
  else if i = 11
    i = -1
  lastXpos := startX + Xwin
  Loop { 
    x1 := lastXpos + 1
    y1 := startY + Ywin
    x2 :=  endX + Xwin
    y2 := endY + Ywin    
    ImageSearch, lastXpos,, x1, y1, x2, y2, *%shades% %dir%\%i%.%ex%   
    If ( errorLevel )
    {
      break
    }
    p++
    p%p% = %lastXpos%
    If i = -1
      t = .
    else
      t = %i%
    StringReplace, xpos, lastXpos, -, _
    c%xpos% = %t%
   }
 }
Loop, %p%
 p_all := p_all "," p%a_index%
Sort, p_all, N D, U
Loop, Parse, p_all, `,
{
 StringReplace, xpos, a_loopfield, -, _
    
 amount := amount "" c%xpos%
} 
CoordMode, Pixel, Relative
SetBatchLines %batchlines%
return amount
}

; finds number of specified pixels in a region
GetPixelCount(x1, y1, x2, y2, color, options="")
{
  CoordMode, Pixel, Screen
  pixels := (x2 - x1 + 1)*(y2 - y1 + 1)
  If ( pixels <= 0 )
  {
    ErrorLevel = 1
    return
  }
  count = 0
  x = %x1%
  Loop
  {
    If ( x > x2 )
    {
      break
    }
    y = %y1%
    Loop
    {
      If ( y > y2 )
      {
        break
      }
      PixelGetColor, c, x, y, %options%
      If ( c = color )
      {
        count++
      }
      y++
    }
    x++
  }
  return count
}

GetBBStars(id, game_type) {
WinGetTitle, title, ahk_id%id% 
  StringReplace,title,title,€,,1 
  StringReplace,title,title,Ђ,,1 
  StringReplace,title,title,Ј,,1
If (game_type = "NL Ring")
 return StrRep(StrMid(title,"/",a_space), "$")
else if (game_type = "NL Tourney")
 return StrRep(StrMid(title,"/",a_space,InStr(title," - Blinds")),"$")
}

GameTypeStars(title) {
If InStr(title, " - Limit Stud")
 return "Stud"
else if ((InStr(title, "NL Hold'em") || InStr(title, " - Pot Limit Hold'em") || InStr(title, " - No Limit Hold'em") || InStr(title, "PL Hold'em"))
  && InStr(title, "Tournament"))
 return "NL Tourney"
else if (InStr(title, " - No Limit Hold'em") || InStr(title, " - Pot Limit Hold'em"))
 return "NL Ring"
else
 return "Limit"
}

sb(bb) {
If bb = .25
 sb := .10
else if bb = 15
 sb = 10
else if bb = 0.05
 sb = 0.02
else
 sb := bb/2
if (sb > 1)
{
  sb := Round(sb, 0)
}
else
{
  sb := Round(sb, 2)
}
return sb
}

GetStreetStars(id)
{
  global debug
  CoordMode, Pixel, Screen
  street := "pre" 
  x1 := 0.6168
  y1 := 0.3315
  x2 := 0.6660
  y2 := 0.3811
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 10 )
  {
    street := "river"
    return street
  }  
  x1 := 0.5394
  y1 := 0.3315
  x2 := 0.5887
  y2 := 0.3811
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 10 )
  {
    street := "turn"
    return street
  }
  x1 := 0.3373
  y1 := 0.3315
  x2 := 0.3867
  y2 := 0.3811
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 10 )
  {
    street := "flop"
  }
  return street
}

StrRep(str,char,rep_char="",all=1)
{
  StringReplace,str,str,%char%,%rep_char%,%all%
  return str
}

StrMid(str,str1,str2,startPos1=1,startPos2=1,caseSense=0){
If startPos1 =
 startPos1 = 1
If startPos2 =
 startPos2 = 1
StringTrimLeft,o,str,InStr(str,str1,cS,startPos1) + StrLen(str1) - 1
StringLeft,o,o,InStr(o,str2,caseSense,startPos2)-1
return o
}

IIf(_boolExpr, _exprTrue, _exprFalse) {
If _boolExpr
 Return _exprTrue
else
 return _exprFalse
}

WinGetTitle(win) {
WinGetTitle, title, ahk_id%win%
return title
}

FoldStars(id)
{
  PostClickStars(0.59,0.9241,id)
 ; Sleep, 20
 ; PostStarsClickpot(416,478,id)
}
CallStars(id)
{
  PostClickStars(0.7462,0.9241,id)
}
RaiseStars(id)
{
  PostClickStars(0.8860,0.9241,id)
}
Fold2anyStars(id)
{
  PostClickStars(0.0158,0.6467,id)
}


fold:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %fold%, ahk_id%id%
  }
  else
  FoldStars(id)
 }
 else
 FoldStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%fold%,ahk_id%id%
}
return



call:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %call%, ahk_id%id%
  }
  else
  callStars(id)
 }
 else
 callStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%call%,ahk_id%id%
}
return

raise:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %raise%, ahk_id%id%
  }
  else
  raiseStars(id)
 }
 else
 raiseStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%raise%,ahk_id%id%
}
return

fold2any:
If ActOnActiveTable
WinGet, Id, ID, A
else
MousegetPos,,,ID
wingetclass,class,ahk_id%id%
if class=PokerStarsTableFrameClass
{
 if suspendforchat
 {
 ; If ActOnActiveTable
  if IsMouseInChat(id)
  {
   ControlGetFocus, ctrl, ahk_id%id%
   ControlSend,%ctrl% , %fold2any%, ahk_id%id%
  }
  else
  fold2anyStars(id)
 }
 else
 fold2anyStars(id)
}
else
{
ControlGetFocus,ctrl,ahk_id%id%
ControlSend,%ctrl%,%fold2any%,ahk_id%id%
}
return

pot1:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if Round1
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot1Pre A_space Pot1Flop A_space Pot1Turn A_space Pot1River, Roundsb, Open1, fix1)
if autobet
raisestars(id)
return

pot2:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if Round2
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot2Pre A_space Pot2Flop A_space Pot2Turn A_space Pot2River, Roundsb, Open2, fix2)
if autobet
raisestars(id)
return

pot3:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if Round3
Roundsb:="smallblind"
else
Roundsb:=0.2
Pot(id,Pot3Pre A_space Pot3Flop A_space Pot3Turn A_space Pot3River, Roundsb, Open3, fix3)
if autobet
raisestars(id)
return

alt1:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb1
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr1, sb)
return

alt2:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb2
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr2, sb)
return

alt3:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb3
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr3, sb)
return

alt4:
If ActOnActiveTable
WinGet, id, id, A
else
MousegetPos,,,id
if sb4
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr4, sb)
return

;-----------------------------------------------------------------------------------------------------
BetPot:
GroupAdd, StarsTables, ahk_class PokerStarsTableFrameClass ,,, PokerStars Lobby
if autopot
{
isbetboxnew()
}
return
;-----------------------------------------------------------------------------------------------------
BuildGui:
Gui, color, white
Gui, add, tab, h490 w290, General|Time|Annoyances|Table moving|BetPot|Table hotkeys|Global hotkeys
Gui, Tab, General
Gui, Add, Radio, x26 y50 w180 h20 Checked%ClassicTheme% vClassicTheme, Classic Theme
Gui, Add, Radio, x26 y70 w180 h20 Checked%HyperSimpleTheme% vHyperSimpleTheme, HyperSimple Theme
Gui, Add, Radio, x26 y90 w180 h20 Checked%BlackTheme% vBlackTheme, Black Theme
Gui, Add, Radio, x26 y110 w180 h20 Checked%SlickTheme% vSlickTheme, Slick Theme
Gui, add, text, y145 x25, Highlight table
Gui, add, Checkbox, y145 x100 Checked%Highlight% VHighlight
Gui, Add, Radio, x126 y140 w120 h15 Checked%highlightactive% vhighlightactive, Active
Gui, Add, Radio, x126 y155 w120 h15 Checked%highlighthero% vhighlighthero, With action on hero
Gui, add, text, y185 x25, Move mouse to action buttons
Gui, add, Checkbox, y185 x230 Checked%MoveMouse% VMoveMouse
Gui, add, text, y205 x65, Move mouse from nonstars app
Gui, add, Checkbox, y205 x230 Checked%stealfocus% Vstealfocus
Gui, add, text, y235 x25, Suspend table hotkeys for chat/notes area
Gui, add, Checkbox, y235 x230 Checked%suspendforchat% Vsuspendforchat
Gui, add, text, y255 x25, Suspend all hotkeys for chat/notes area
Gui, add, Checkbox, y255 x230 Checked%suspendforchatall% Vsuspendforchatall
Gui, Add, Radio, x26 y280 w220 h15 Checked%ActOnActiveTable% vActOnActiveTable, Send actions to active table
Gui, Add, Radio, x26 y295 w220 h15 Checked%sendundermouse% vsendundermouse, Send actions to table under mouse
Gui, add, text, y315 x25, Activate table under mouse
Gui, add, Checkbox, y315 x230 Checked%activatetableundermouse% Vactivatetableundermouse

Gui, Add, Button, x75 y395 w55 h20 gSave,Submit
Gui, Add, Button, x135 y395 w55 h20 gCancel,Cancel

Gui, Tab, Global hotkeys

Gui, Add, Text, x25 y105 ,Find table needing action
Gui, Add, Edit, x220 y102 w50 h20 vfindtabletoact, %findtabletoact%
Gui, Add, Text, x25 y125 ,Activate next table
Gui, Add, Edit, x220 y122 w50 h20 vActivateBottomWindow, %ActivateBottomWindow%
Gui, Add, Text, x25 y155 ,Close all tables with hero not in a hand
Gui, Add, Edit, x220 y152 w50 h20 vCloseAllWithNoAction, %CloseAllWithNoAction%
Gui, Add, Text, x25 y55 ,Suspend all hotkeys
Gui, Add, Edit, x220 y52 w50 h20 vsuspend, %suspend%
Gui, Add, Text, x25 y75 ,Pause/unpause
Gui, Add, Edit, x220 y72 w50 h20 vTogglePause, %TogglePause%
Gui, Add, Text, x25 y185 ,Cashier
Gui, Add, Edit, x220 y182 w50 h20 vCashier, %Cashier%
Gui, Add, Text, x25 y225 ,Custom layout 1
Gui, Add, Edit, x220 y222 w50 h20 vlayout1, %layout1%
Gui, Add, Text, x25 y245 ,Custom layout 2
Gui, Add, Edit, x220 y242 w50 h20 vlayout2, %layout2%
Gui, Add, Text, x25 y265 ,Custom layout 3
Gui, Add, Edit, x220 y262 w50 h20 vlayout3, %layout3%
Gui, Add, Text, x25 y295 ,Join/unjoin Waitlist from lobby
Gui, Add, Edit, x220 y292 w50 h20 vJoinWaitlistlobby, %JoinWaitlistlobby%
Gui, Add, Text, x25 y315 ,Join 
Gui, Add, Edit, x50 y312 w20 h20 vwaitlists, %waitlists%
Gui, Add, Text, x70 y315 ,waitlists counting from selected
Gui, Add, Edit, x220 y312 w50 h20 vJoinWaitlistlobbyGroup, %JoinWaitlistlobbyGroup%


Gui, Add, Button, x75 y415 w55 h20 gSave,Submit
Gui, Add, Button, x135 y415 w55 h20 gCancel,Cancel

Gui, Tab, Table moving
Gui, add, text, y55 x25, Move new table
Gui, add, Checkbox, y55 x120 Checked%move% Vmove
Gui, add, text, y75 x35, to position
Gui, Add, Text, x25 y95 w120 h20 , x
Gui, Add, Edit, x50 y95 w50 h20 vxpos, %xpos%
Gui, Add, Text, x25 y115 ,y
Gui, Add, Edit, x50 y115 w50 h20 vypos, %ypos%
Gui, add, Checkbox, y145 x180 Checked%automoveback% Vautomoveback
Gui, add, text, y145 x25,Move table back automatically
Gui, Add, Text, x25 y165 ,Move table back manually
Gui, Add, Edit, x180 y162 w50 h20 vmovebackByKey, %movebackByKey%

Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 w55 h20 gCancel,Cancel

Gui, Tab, Annoyances

Gui, add, Checkbox, y55 x190 Checked%Autopost% VAutopost
Gui, add, text, y55 x25,Auto post blinds
Gui, add, Checkbox, y75 x190 Checked%Waitbb% VWaitbb
Gui, add, text, y75 x25,Uncheck wait for big blind
Gui, add, Checkbox, y100 x190 Checked%CheckWhenFree% VCheckWhenFree
Gui, add, text, y100 x25,Never fold for free
Gui, add, Checkbox, y120 x250 Checked%closeOKwindow% VcloseOKwindow
Gui, add, text, y120 x25,Close PokerStars windows with just OK button
Gui, add, Checkbox, y160 x90 Checked%Buyin% VBuyin
Gui, add, text, y160 x25,Auto Buy-in
Gui, Add, Radio, x120 y150 w100 h20 Checked%max% vmax, Maximum
Gui, Add, Radio, x120 y170 w120 h20 Checked%remembered% vremembered, Remembered/default
Gui, Add, Radio, x120 y190 w20 h20 Checked%xbb% vxbb
Gui, Add, Edit, x140 y190 w30 h20 vbbmultiplier, %bbmultiplier%
Gui, Add, Text, x170 y193,BB
Gui, add, Checkbox, y220 x190 Checked%TakeSeat% VTakeSeat
Gui, add, text, y220 x25,Auto Take Seat (from waiting list)
Gui, add, Checkbox, y240 x190 Checked%AutoReservedSeat% VAutoReservedSeat
Gui, add, text, y240 x55,Auto take reserved seat
Gui, add, Checkbox, y265 x190 Checked%autoTakeSeat% VautoTakeSeat
Gui, add, text, y265 x25,Auto Seat on new table
Gui, add, Checkbox, y290 x190 Checked%leavetable% Vleavetable
Gui, add, text, y290 x25,Auto leaving table confirmation


Gui, Add, Button, x75 y365 w55 h20 gSave,Submit
Gui, Add, Button, x135 y365 w55 h20 gCancel,Cancel

Gui, Tab, Time

Gui, add, Checkbox, y50 x220 Checked%ClickImBack% VClickImBack
Gui, add, text, y50 x25,Click Im Back automatically
Gui, Add, Text, x25 y70 ,Toggle Click Im Back
Gui, Add, Edit, x220 y67 w50 h20 vToggleImBack, %ToggleImBack%
Gui, add, Checkbox, y100 x180 Checked%Timebank% VTimebank
Gui, add, text, y100 x25,Click Timebank automatically
Gui, add, Text, w220 y115 x25, Time delay for pressing Time button 
Gui, add, DropDownList, w40 y107 x220  vInterval1, %ddlist1%
Gui, Add, Text, x25 y150 ,Sitout on all tables
Gui, Add, Edit, x220 y147 w50 h20 vSitOutNextAll, %SitOutNextAll%
Gui, Add, Text, x25 y175 ,Remove sitout on all tables
Gui, Add, Edit, x220 y172 w50 h20 vRemoveSitout, %RemoveSitout%

Gui, Add, Text, x25 y220 ,Join waiting list on all tables
Gui, Add, Edit, x220 y217 w50 h20 vjoinwaitlist, %joinwaitlist%
Gui, Add, Text, x25 y245 ,Unjoin waiting list on all tables
Gui, Add, Edit, x220 y242 w50 h20 vunjoinwaitlist, %unjoinwaitlist%
Gui, Add, Text, x25 y275 ,Uncheck auto post blinds on all tables
Gui, Add, Edit, x220 y272 w50 h20 vUncheckAutopostAll, %UncheckAutopostAll%

Gui, Add, Button, x75 y415 w55 h20 gSave,Submit
Gui, Add, Button, x135 y415 w55 h20 gCancel,Cancel


Gui, Tab, BetPot

Gui, add, Checkbox, y55 x180 Checked%autopot% Vautopot
Gui, add, text, y55 x25,Auto put bet into bet box
Gui, Add, Text, x15 y70 ,Pre*
Gui, Add, Edit, x15 y85 w25 h20 vPotDefPre, %PotDefPre%
Gui, Add, Text, x45 y70 ,Flop*
Gui, Add, Edit, x45 y85 w25 h20 vPotDefFlop, %PotDefFlop%
Gui, Add, Text, x75 y70 ,Turn*
Gui, Add, Edit, x75 y85 w25 h20 vPotDefTurn, %PotDefTurn%
Gui, Add, Text, x105 y70 ,River*
Gui, Add, Edit, x105 y85 w25 h20 vPotDefRiver, %PotDefRiver%
Gui, Add, Text, x140 y70 ,Open
Gui, add, DropDownList, w45 y85 x140  vOpenDef, %ddlist%
Gui, Add, Text, x175 y70 ,Round(sb)
Gui, add, Checkbox, y85 x200 Checked%RoundDef% VRoundDef
Gui, Add, Text, x230 y70 ,Fix blinds
Gui, add, Checkbox, y85 x250 Checked%FixDef% VFixDef

Gui, Add, Edit, x60 y107 w80 h20 vpot1, %pot1%
Gui, Add, Text, x15 y110 ,Pot1
Gui, Add, Text, x15 y130 ,Pre*
Gui, Add, Edit, x15 y145 w25 h20 vPot1Pre, %Pot1Pre%
Gui, Add, Text, x45 y130 ,Flop*
Gui, Add, Edit, x45 y145 w25 h20 vPot1Flop, %Pot1Flop%
Gui, Add, Text, x75 y130 ,Turn*
Gui, Add, Edit, x75 y145 w25 h20 vPot1Turn, %Pot1Turn%
Gui, Add, Text, x105 y130 ,River*
Gui, Add, Edit, x105 y145 w25 h20 vPot1River, %Pot1River%
Gui, Add, Text, x140 y130 ,Open
Gui, add, DropDownList, w45 y145 x140  vOpen1, %ddlist%
Gui, Add, Text, x175 y130 ,Round(sb)
Gui, add, Checkbox, y145 x200 Checked%Round1% VRound1
Gui, Add, Text, x230 y130 ,Fix blinds
Gui, add, Checkbox, y145 x250 Checked%Fix1% VFix1

Gui, Add, Edit, x60 y167 w80 h20 vpot2, %pot2%
Gui, Add, Text, x15 y170 ,Pot2
Gui, Add, Edit, x15 y190 w25 h20 vPot2Pre, %Pot2Pre%
Gui, Add, Edit, x45 y190 w25 h20 vPot2Flop, %Pot2Flop%
Gui, Add, Edit, x75 y190 w25 h20 vPot2Turn, %Pot2Turn%
Gui, Add, Edit, x105 y190 w25 h20 vPot2River, %Pot2River%
Gui, add, DropDownList, w45 y190 x140  vOpen2, %ddlist%
Gui, add, Checkbox, y190 x200 Checked%Round2% VRound2
Gui, add, Checkbox, y190 x250 Checked%Fix2% VFix2

Gui, Add, Edit, x60 y212 w80 h20 vpot3, %pot3%
Gui, Add, Text, x15 y215 ,Pot3
Gui, Add, Edit, x15 y235 w25 h20 vPot3Pre, %Pot3Pre%
Gui, Add, Edit, x45 y235 w25 h20 vPot3Flop, %Pot3Flop%
Gui, Add, Edit, x75 y235 w25 h20 vPot3Turn, %Pot3Turn%
Gui, Add, Edit, x105 y235 w25 h20 vPot3River, %Pot3River%
Gui, add, DropDownList, w45 y235 x140  vOpen3, %ddlist%
Gui, add, Checkbox, y235 x200 Checked%Round3% VRound3
Gui, add, Checkbox, y235 x250 Checked%Fix3% VFix3

Gui, add, Checkbox, y260 x210 Checked%autobet% Vautobet
Gui, add, text, y260 x55,Additionally press bet button

Gui, Add, Edit, x80 y282 w40 h20 vincr1, %incr1%
Gui, Add, Text, x15 y285 ,Increase by
Gui, Add, Radio, x125 y280 w40 h15 Checked%bb1% vbb1,bb
Gui, Add, Radio, x125 y295 w40 h15 Checked%sb1% vsb1,sb
Gui, Add, Edit, x190 y282 w80 h20 valt1, %alt1%

Gui, Add, Edit, x80 y312 w40 h20 vincr2, %incr2%
Gui, Add, Text, x15 y315 ,Decrease by
Gui, Add, Radio, x125 y310 w40 h15 Checked%bb2% vbb2,bb
Gui, Add, Radio, x125 y325 w40 h15 Checked%sb2% vsb2,sb
Gui, Add, Edit, x190 y312 w80 h20 valt2, %alt2%

Gui, Add, Edit, x80 y342 w40 h20 vincr3, %incr3%
Gui, Add, Text, x15 y345 ,Increase by
Gui, Add, Radio, x125 y340 w40 h15 Checked%bb3% vbb3,bb
Gui, Add, Radio, x125 y355 w40 h15 Checked%sb3% vsb3,sb
Gui, Add, Edit, x190 y342 w80 h20 valt3, %alt3%

Gui, Add, Edit, x80 y372 w40 h20 vincr4, %incr4%
Gui, Add, Text, x15 y375 ,Decrease by
Gui, Add, Radio, x125 y370 w40 h15 Checked%bb4% vbb4,bb
Gui, Add, Radio, x125 y385 w40 h15 Checked%sb4% vsb4,sb
Gui, Add, Edit, x190 y372 w80 h20 valt4, %alt4%

Gui, Add, Text, x15 y410 ,Attempts to read Pot amount from screen
Gui, Add, Edit, x230 y407 w25 h20 vattempts, %attempts%

Gui, Add, Text, x15 y440 ,* Pot percent

Gui, Add, Button, x75 y465 w55 h20 gSave,Submit
Gui, Add, Button, x135 y465 w55 h20 gCancel,Cancel

Gui, Tab, Table hotkeys

Gui, Add, Edit, x180 y67 w50 h20 vfold, %fold%
Gui, Add, Text, x25 y70 ,Fold
Gui, Add, Edit, x180 y87 w50 h20 vcall, %call%
Gui, Add, Text, x25 y90 ,Check/Call
Gui, Add, Edit, x180 y107 w50 h20 vraise, %raise%
Gui, Add, Text, x25 y110 ,Bet/Raise
Gui, Add, Edit, x180 y127 w50 h20 vfold2any, %fold2any%
Gui, Add, Text, x25 y130 ,Fold to any

Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 w55 h20 gCancel,Cancel

gosub,getini
Gui, show, w306, %thisahk%
Return
;-----------------------------------------------------------------------------------------------------
GetIni:
IfNotExist, %thisahk%.ini
gosub, CreateIni
IniRead, ClassicTheme,%thisahk%.ini, Options, ClassicTheme,0
IniRead, HyperSimpleTheme,%thisahk%.ini, Options, HyperSimpleTheme,0
IniRead, SlickTheme,%thisahk%.ini, Options, SlickTheme,0
IniRead, BlackTheme,%thisahk%.ini, Options, BlackTheme,0
IniRead, Highlight, %thisahk%.ini, Settings, Highlight, 0
IniRead, highlighthero, %thisahk%.ini, Options, highlighthero, 0
IniRead, highlightactive, %thisahk%.ini, Options, highlightactive, 0
IniRead, MoveMouse, %thisahk%.ini, Settings, MoveMouse, 0
IniRead, stealfocus, %thisahk%.ini, Settings, stealfocus, 0
IniRead, suspendforchat, %thisahk%.ini, Settings, suspendforchat, 0
IniRead, suspendforchatall, %thisahk%.ini, Settings, suspendforchatall, 0
IniRead, ActOnActiveTable, %thisahk%.ini, Options, ActOnActiveTable, 0
IniRead, sendundermouse, %thisahk%.ini, Options, sendundermouse, 0
IniRead, activatetableundermouse, %thisahk%.ini, Settings, activatetableundermouse, 0
IniRead, ActivateBottomWindow, %thisahk%.ini, Hotkeys, ActivateBottomWindow,%A_Space%
if ActivateBottomWindow
Hotkey, %ActivateBottomWindow%,ActivateBottomWindow
IniRead, findtabletoact, %thisahk%.ini, Hotkeys, findtabletoact,%A_Space%
if findtabletoact
Hotkey, %findtabletoact%,findtabletoact
IniRead, suspend, %thisahk%.ini, Hotkeys, suspend,%A_Space%
if suspend
Hotkey, %suspend%,suspend
IniRead, TogglePause, %thisahk%.ini, Hotkeys, TogglePause,%A_Space%
if TogglePause
Hotkey, %TogglePause%,TogglePause
IniRead, CloseAllWithNoAction, %thisahk%.ini, Hotkeys, CloseAllWithNoAction,%A_Space%
if CloseAllWithNoAction
Hotkey, %CloseAllWithNoAction%,CloseAllWithNoAction
IniRead, Cashier, %thisahk%.ini, Hotkeys, Cashier,%A_Space%
if Cashier
Hotkey, %Cashier%,Cashier
IniRead, layout1, %thisahk%.ini, Hotkeys, layout1,%A_Space%
if layout1
Hotkey, %layout1%,layout1
IniRead, layout2, %thisahk%.ini, Hotkeys, layout2,%A_Space%
if layout2
Hotkey, %layout2%,layout2
IniRead, layout3, %thisahk%.ini, Hotkeys, layout3,%A_Space%
if layout3
Hotkey, %layout3%,layout3JoinWaitlistlobby
IniRead, JoinWaitlistlobby, %thisahk%.ini, Hotkeys, JoinWaitlistlobby,%A_Space%
if JoinWaitlistlobby
Hotkey, %JoinWaitlistlobby%,JoinWaitlistlobby
IniRead, JoinWaitlistlobbyGroup, %thisahk%.ini, Hotkeys, JoinWaitlistlobbyGroup,%A_Space%
if JoinWaitlistlobbyGroup
Hotkey, %JoinWaitlistlobbyGroup%,JoinWaitlistlobbyGroup
IniRead, waitlists, %thisahk%.ini, Settings, waitlists, 0

IniRead, ClickImBack, %thisahk%.ini, Settings, ClickImBack, 0
IniRead, Toggleimback, %thisahk%.ini, Hotkeys, Toggleimback,%A_Space%
IniRead, TakeSeat, %thisahk%.ini, Settings, TakeSeat, 0
IniRead, autoTakeSeat, %thisahk%.ini, Settings, autoTakeSeat, 0
IniRead, AutoReservedSeat, %thisahk%.ini, Settings, AutoReservedSeat, 0
IniRead, Timebank, %thisahk%.ini, Settings, Timebank, 0
IniRead, Interval1, %thisahk%.ini, Settings, Interval1
StringReplace, ddlist1, ddlist1, %interval1%, %Interval1%|
GuiControl, , Interval1, |%ddlist1%
StringReplace, ddlist1, ddlist1, %interval1%|, %Interval1%
IniRead, Autopost, %thisahk%.ini, Settings, Autopost, 0 
IniRead, Waitbb, %thisahk%.ini, Settings, Waitbb, 0
IniRead, CheckWhenFree, %thisahk%.ini, Settings, CheckWhenFree, 0
IniRead, checkbb, %thisahk%.ini, Settings, checkbb, 0
IniRead, uncheckbb, %thisahk%.ini, Settings, uncheckbb, 0
IniRead, closeOKwindow, %thisahk%.ini, Settings, closeOKwindow, 0
IniRead, Buyin, %thisahk%.ini, Settings, Buyin, 0
IniRead, max, %thisahk%.ini, Settings, max, 0
IniRead, remembered, %thisahk%.ini, Settings, remembered, 0
IniRead, xbb, %thisahk%.ini, Settings, xbb, 0
IniRead, bbmultiplier, %thisahk%.ini, Variables, bbmultiplier,0
IniRead, SitOutNextAll, %thisahk%.ini, Hotkeys, SitOutNextAll,%A_Space%
IniRead, RemoveSitout, %thisahk%.ini, Hotkeys, RemoveSitout,%A_Space%
IniRead, joinwaitlist, %thisahk%.ini, Hotkeys, joinwaitlist,%A_Space%
IniRead, unjoinwaitlist, %thisahk%.ini, Hotkeys, unjoinwaitlist,%A_Space%
IniRead, UncheckAutopostAll, %thisahk%.ini, Hotkeys, UncheckAutopostAll,%A_Space%
if SitOutNextAll
Hotkey, %SitOutNextAll%,SitOutNextAll
if RemoveSitout
Hotkey, %RemoveSitout%,RemoveSitout
if joinwaitlist
Hotkey, %joinwaitlist%,joinwaitlist
if Unjoinwaitlist
Hotkey, %Unjoinwaitlist%,Unjoinwaitlist
if UncheckAutopostAll
Hotkey, %UncheckAutopostAll%,UncheckAutopostAll
If Toggleimback
{
HotKey, IfWinActive
Hotkey, %Toggleimback%, Toggleimback
}
IniRead, leavetable, %thisahk%.ini, Settings, leavetable,0
IniRead, move, %thisahk%.ini, Settings, move, 0
IniRead, automoveback, %thisahk%.ini, Settings, automoveback, 0
IniRead, movebackByKey, %thisahk%.ini, Hotkeys, movebackByKey,%A_Space%
IniRead, ypos, %thisahk%.ini, Variables, ypos,0
IniRead, xpos, %thisahk%.ini, Variables, xpos,0
if MoveBackByKey
Hotkey, %MoveBackByKey%,MoveBackByKey

IniRead, OpenDef, %thisahk%.ini, BetPotSettings, OpenDef
StringReplace, ddlist, ddlist, %OpenDef%, %OpenDef%|
GuiControl, , OpenDef, |%ddlist%
StringReplace, ddlist, ddlist, %OpenDef%|, %OpenDef%
IniRead, RoundDef, %thisahk%.ini, BetPotSettings, RoundDef, 0
IniRead, FixDef, %thisahk%.ini, BetPotSettings, FixDef, 0
IniRead, PotDefPre, %thisahk%.ini, BetPotSettings, PotDefPre, 0
IniRead, PotDefFlop, %thisahk%.ini, BetPotSettings, PotDefFlop, 0
IniRead, PotDefTurn, %thisahk%.ini, BetPotSettings, PotDefTurn, 0
IniRead, PotDefRiver, %thisahk%.ini, BetPotSettings, PotDefRiver, 0

IniRead, Open1, %thisahk%.ini, BetPotSettings, Open1
StringReplace, ddlist, ddlist, %Open1%, %Open1%|
GuiControl, , Open1, |%ddlist%
StringReplace, ddlist, ddlist, %Open1%|, %Open1%
IniRead, Round1, %thisahk%.ini, BetPotSettings, Round1, 0
IniRead, Fix1, %thisahk%.ini, BetPotSettings, Fix1, 0
IniRead, Pot1Pre, %thisahk%.ini, BetPotSettings, Pot1Pre, 0
IniRead, Pot1Flop, %thisahk%.ini, BetPotSettings, Pot1Flop, 0
IniRead, Pot1Turn, %thisahk%.ini, BetPotSettings, Pot1Turn, 0
IniRead, Pot1River, %thisahk%.ini, BetPotSettings, Pot1River, 0
IniRead, pot1, %thisahk%.ini, BetPotHotkeys, pot1,%A_Space%
if pot1
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %pot1%,pot1
}
IniRead, Open2, %thisahk%.ini, BetPotSettings, Open2
StringReplace, ddlist, ddlist, %Open2%, %Open2%|
GuiControl, , Open2, |%ddlist%
StringReplace, ddlist, ddlist, %Open2%|, %Open2%
IniRead, Round2, %thisahk%.ini, BetPotSettings, Round2, 0
IniRead, Fix2, %thisahk%.ini, BetPotSettings, Fix2, 0
IniRead, Pot2Pre, %thisahk%.ini, BetPotSettings, Pot2Pre, 0
IniRead, Pot2Flop, %thisahk%.ini, BetPotSettings, Pot2Flop, 0
IniRead, Pot2Turn, %thisahk%.ini, BetPotSettings, Pot2Turn, 0
IniRead, Pot2River, %thisahk%.ini, BetPotSettings, Pot2River, 0
IniRead, pot2, %thisahk%.ini, BetPotHotkeys, pot2,%A_Space%
if pot2
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %pot2%,pot2
}
IniRead, Open3, %thisahk%.ini, BetPotSettings, Open3
StringReplace, ddlist, ddlist, %Open3%, %Open3%|
GuiControl, , Open3, |%ddlist%
StringReplace, ddlist, ddlist, %Open3%|, %Open3%
IniRead, Round3, %thisahk%.ini, BetPotSettings, Round3, 0
IniRead, Fix3, %thisahk%.ini, BetPotSettings, Fix3, 0
IniRead, Pot3Pre, %thisahk%.ini, BetPotSettings, Pot3Pre, 0
IniRead, Pot3Flop, %thisahk%.ini, BetPotSettings, Pot3Flop, 0
IniRead, Pot3Turn, %thisahk%.ini, BetPotSettings, Pot3Turn, 0
IniRead, Pot3River, %thisahk%.ini, BetPotSettings, Pot3River, 0
IniRead, pot3, %thisahk%.ini, BetPotHotkeys, pot3,%A_Space%
if pot3
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %pot3%,pot3
}

IniRead, incr1, %thisahk%.ini, BetPotSettings, incr1, 0
IniRead, bb1, %thisahk%.ini, BetPotSettings, bb1, 0
IniRead, sb1, %thisahk%.ini, BetPotSettings, sb1, 0
IniRead, alt1, %thisahk%.ini, BetPotHotkeys, alt1, %A_Space%
if alt1
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt1%,alt1
}
IniRead, incr2, %thisahk%.ini, BetPotSettings, incr2, 0
IniRead, bb2, %thisahk%.ini, BetPotSettings, bb2, 0
IniRead, sb2, %thisahk%.ini, BetPotSettings, sb2, 0
IniRead, alt2, %thisahk%.ini, BetPotHotkeys, alt2, %A_Space%
if alt2
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt2%,alt2
}
IniRead, incr3, %thisahk%.ini, BetPotSettings, incr3, 0
IniRead, bb3, %thisahk%.ini, BetPotSettings, bb3, 0
IniRead, sb3, %thisahk%.ini, BetPotSettings, sb3, 0
IniRead, alt3, %thisahk%.ini, BetPotHotkeys, alt3, %A_Space%
if alt3
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt3%,alt3
}
IniRead, incr4, %thisahk%.ini, BetPotSettings, incr4, 0
IniRead, bb4, %thisahk%.ini, BetPotSettings, bb4, 0
IniRead, sb4, %thisahk%.ini, BetPotSettings, sb4, 0
IniRead, alt4, %thisahk%.ini, BetPotHotkeys, alt4, %A_Space%
if alt4
{
HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
Hotkey, %alt4%,alt4
}

IniRead, autopot, %thisahk%.ini, BetPotSettings, autopot, 0
IniRead, autobet, %thisahk%.ini, BetPotSettings, autobet, 0
IniRead, attempts, %thisahk%.ini, Variables, attempts, 0

IniRead, fold, %thisahk%.ini, Hotkeys, fold,%A_Space%
IniRead, call, %thisahk%.ini, Hotkeys, call,%A_Space%
IniRead, raise, %thisahk%.ini, Hotkeys, raise,%A_Space%
IniRead, fold2any, %thisahk%.ini, Hotkeys, fold2any,%A_Space%
if fold
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %fold%,fold
}
if call
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %call%,call
}
if raise
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %raise%,raise
}
if fold2any
{
;HotKey, IfWinActive, ahk_class PokerStarsTableFrameClass
HotKey, IfWinActive
Hotkey, %fold2any%,fold2any
}
Return
;-----------------------------------------------------------------------------------------------------
MakeIni:
If ClassicTheme
IniWrite, %ClassicTheme%, %thisahk%.ini, Options, ClassicTheme
If HyperSimpleTheme
IniWrite, %HyperSimpleTheme%, %thisahk%.ini, Options, HyperSimpleTheme
If SlickTheme
IniWrite, %SlickTheme%, %thisahk%.ini, Options, SlickTheme 
If BlackTheme
IniWrite, %BlackTheme%, %thisahk%.ini, Options, BlackTheme
IniWrite, %Highlight%, %thisahk%.ini, Settings, Highlight
if highlighthero
IniWrite, %highlighthero%, %thisahk%.ini, Options, highlighthero
if highlightactive
IniWrite, %highlightactive%, %thisahk%.ini, Options, highlightactive
IniWrite, %MoveMouse%, %thisahk%.ini, Settings, MoveMouse
IniWrite, %stealfocus%, %thisahk%.ini, Settings, stealfocus
IniWrite, %suspendforchat%, %thisahk%.ini, Settings, suspendforchat
IniWrite, %suspendforchatall%, %thisahk%.ini, Settings, suspendforchatall
if ActOnActiveTable
IniWrite, %ActOnActiveTable%, %thisahk%.ini, Options, ActOnActiveTable
if sendundermouse
IniWrite, %sendundermouse%, %thisahk%.ini, Options, sendundermouse
IniWrite, %activatetableundermouse%, %thisahk%.ini, Settings, activatetableundermouse
if ActivateBottomWindow
IniWrite, %ActivateBottomWindow%, %thisahk%.ini, Hotkeys, ActivateBottomWindow
if findtabletoact
IniWrite, %findtabletoact%, %thisahk%.ini, Hotkeys, findtabletoact
if suspend
IniWrite, %suspend%, %thisahk%.ini, Hotkeys, suspend
if TogglePause
IniWrite, %TogglePause%, %thisahk%.ini, Hotkeys, TogglePause
if CloseAllWithNoAction
IniWrite, %CloseAllWithNoAction%, %thisahk%.ini, Hotkeys, CloseAllWithNoAction
if Cashier
IniWrite, %Cashier%, %thisahk%.ini, Hotkeys, Cashier
if layout1
IniWrite, %layout1%, %thisahk%.ini, Hotkeys, layout1
if layout2
IniWrite, %layout2%, %thisahk%.ini, Hotkeys, layout2
if layout3
IniWrite, %layout3%, %thisahk%.ini, Hotkeys, layout3
if JoinWaitlistlobby
IniWrite, %JoinWaitlistlobby%, %thisahk%.ini, Hotkeys, JoinWaitlistlobby
if JoinWaitlistlobbyGroup
IniWrite, %JoinWaitlistlobbyGroup%, %thisahk%.ini, Hotkeys, JoinWaitlistlobbyGroup
IniWrite, %waitlists%, %thisahk%.ini, Settings, waitlists

IniWrite, %ClickImBack%, %thisahk%.ini, Settings, ClickImBack
IniWrite, %TakeSeat%, %thisahk%.ini, Settings, TakeSeat
IniWrite, %autoTakeSeat%, %thisahk%.ini, Settings, autoTakeSeat
IniWrite, %AutoReservedSeat%, %thisahk%.ini, Settings, AutoReservedSeat
IniWrite, %Timebank%, %thisahk%.ini, Settings, Timebank
IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1
IniWrite, %Autopost%, %thisahk%.ini, Settings, Autopost
IniWrite, %Waitbb%, %thisahk%.ini, Settings, Waitbb
IniWrite, %closeOKwindow%, %thisahk%.ini, Settings, closeOKwindow
IniWrite, %CheckWhenFree%, %thisahk%.ini, Settings, CheckWhenFree
IniWrite, %Buyin%, %thisahk%.ini, Settings, Buyin
if max
IniWrite, %max%, %thisahk%.ini, Settings, max
if remembered
IniWrite, %remembered%, %thisahk%.ini, Settings, remembered
if xbb
IniWrite, %xbb%, %thisahk%.ini, Settings, xbb
IniWrite, %bbmultiplier%, %thisahk%.ini, Variables, bbmultiplier
if SitOutNextAll
IniWrite, %SitOutNextAll%, %thisahk%.ini, Hotkeys, SitOutNextAll
if RemoveSitout
IniWrite, %RemoveSitout%, %thisahk%.ini, Hotkeys, RemoveSitout
if joinwaitlist
IniWrite, %joinwaitlist%, %thisahk%.ini, Hotkeys, joinwaitlist
if Unjoinwaitlist
IniWrite, %unjoinwaitlist%, %thisahk%.ini, Hotkeys, unjoinwaitlist
if UncheckAutopostAll
IniWrite, %UncheckAutopostAll%, %thisahk%.ini, Hotkeys, UncheckAutopostAll
if Toggleimback
IniWrite, %Toggleimback%, %thisahk%.ini, Hotkeys, Toggleimback 
IniWrite, %leavetable%, %thisahk%.ini, Settings, leavetable
IniWrite, %move%, %thisahk%.ini, Settings, move
IniWrite, %automoveback%, %thisahk%.ini, Settings, automoveback
if moveback
IniWrite, %moveback%, %thisahk%.ini, Hotkeys, moveback
if MoveBackByKey
IniWrite, %MoveBackByKey%, %thisahk%.ini, Hotkeys, MoveBackByKey
IniWrite, %ypos%, %thisahk%.ini, Variables, ypos
IniWrite, %xpos%, %thisahk%.ini, Variables, xpos

IniWrite, %OpenDef%, %thisahk%.ini, BetPotSettings, OpenDef
IniWrite, %RoundDef%, %thisahk%.ini, BetPotSettings, RoundDef
IniWrite, %FixDef%, %thisahk%.ini, BetPotSettings, FixDef
IniWrite, %PotDefPre%, %thisahk%.ini, BetPotSettings, PotDefPre
IniWrite, %PotDefFlop%, %thisahk%.ini, BetPotSettings, PotDefFlop
IniWrite, %PotDefTurn%, %thisahk%.ini, BetPotSettings, PotDefTurn
IniWrite, %PotDefRiver%, %thisahk%.ini, BetPotSettings, PotDefRiver

IniWrite, %Open1%, %thisahk%.ini, BetPotSettings, Open1
IniWrite, %Round1%, %thisahk%.ini, BetPotSettings, Round1
IniWrite, %Fix1%, %thisahk%.ini, BetPotSettings, Fix1
IniWrite, %Pot1Pre%, %thisahk%.ini, BetPotSettings, Pot1Pre
IniWrite, %Pot1Flop%, %thisahk%.ini, BetPotSettings, Pot1Flop
IniWrite, %Pot1Turn%, %thisahk%.ini, BetPotSettings, Pot1Turn
IniWrite, %Pot1River%, %thisahk%.ini, BetPotSettings, Pot1River
if pot1
IniWrite, %pot1%, %thisahk%.ini, BetPotHotkeys, pot1

IniWrite, %Open2%, %thisahk%.ini, BetPotSettings, Open2
IniWrite, %Round2%, %thisahk%.ini, BetPotSettings, Round2
IniWrite, %Fix2%, %thisahk%.ini, BetPotSettings, Fix2
IniWrite, %Pot2Pre%, %thisahk%.ini, BetPotSettings, Pot2Pre
IniWrite, %Pot2Flop%, %thisahk%.ini, BetPotSettings, Pot2Flop
IniWrite, %Pot2Turn%, %thisahk%.ini, BetPotSettings, Pot2Turn
IniWrite, %Pot2River%, %thisahk%.ini, BetPotSettings, Pot2River
if pot2
IniWrite, %pot2%, %thisahk%.ini, BetPotHotkeys, pot2

IniWrite, %Open3%, %thisahk%.ini, BetPotSettings, Open3
IniWrite, %Round3%, %thisahk%.ini, BetPotSettings, Round3
IniWrite, %Fix3%, %thisahk%.ini, BetPotSettings, Fix3
IniWrite, %Pot3Pre%, %thisahk%.ini, BetPotSettings, Pot3Pre
IniWrite, %Pot3Flop%, %thisahk%.ini, BetPotSettings, Pot3Flop
IniWrite, %Pot3Turn%, %thisahk%.ini, BetPotSettings, Pot3Turn
IniWrite, %Pot3River%, %thisahk%.ini, BetPotSettings, Pot3River
if pot3
IniWrite, %pot3%, %thisahk%.ini, BetPotHotkeys, pot3


IniWrite, %incr1%, %thisahk%.ini, BetPotSettings, incr1
if bb1
IniWrite, %bb1%, %thisahk%.ini, BetPotSettings, bb1
if sb1
IniWrite, %sb1%, %thisahk%.ini, BetPotSettings, sb1
if alt1
IniWrite, %alt1%, %thisahk%.ini, BetPotHotkeys, alt1

IniWrite, %incr2%, %thisahk%.ini, BetPotSettings, incr2
if bb2
IniWrite, %bb2%, %thisahk%.ini, BetPotSettings, bb2
if sb2
IniWrite, %sb2%, %thisahk%.ini, BetPotSettings, sb2
if alt2
IniWrite, %alt2%, %thisahk%.ini, BetPotHotkeys, alt2

IniWrite, %incr3%, %thisahk%.ini, BetPotSettings, incr3
if bb3
IniWrite, %bb3%, %thisahk%.ini, BetPotSettings, bb3
if sb3
IniWrite, %sb3%, %thisahk%.ini, BetPotSettings, sb3
if alt3
IniWrite, %alt3%, %thisahk%.ini, BetPotHotkeys, alt3

IniWrite, %incr4%, %thisahk%.ini, BetPotSettings, incr4
if bb4
IniWrite, %bb4%, %thisahk%.ini, BetPotSettings, bb4
if sb4
IniWrite, %sb4%, %thisahk%.ini, BetPotSettings, sb4
if alt4
IniWrite, %alt4%, %thisahk%.ini, BetPotHotkeys, alt4


IniWrite, %autopot%, %thisahk%.ini, BetPotSettings, autopot
IniWrite, %autobet%, %thisahk%.ini, BetPotSettings, autobet
IniWrite, %attempts%, %thisahk%.ini, Variables, attempts

if fold
IniWrite, %fold%, %thisahk%.ini, Hotkeys, fold
if call
IniWrite, %call%, %thisahk%.ini, Hotkeys, call
if raise
IniWrite, %raise%, %thisahk%.ini, Hotkeys, raise
if fold2any
IniWrite, %fold2any%, %thisahk%.ini, Hotkeys, fold2any
Return
;-----------------------------------------------------------------------------------------------------
CreateIni:
HyperSimpleTheme:=1
ClassicTheme:=0
SlickTheme:=0
BlackTheme:=0
Highlight:=0
highlightactive:=1
highlighthero:=0
MoveMouse:=0
stealfocus:=1
ActOnActiveTable:=1
sendundermouse:=0
activatetableundermouse:=0
suspendforchat:=0
suspendforchatall:=0
waitlists:=5
TakeSeat:=0
autoTakeSeat:=0
AutoReservedSeat:=0
Timebank:=0
Interval1:=1
Autopost:=0
Waitbb:=0
closeOKwindow:=1
CheckWhenFree:=1
Buyin:=0
remembered:=1
bbmultiplier:=50
ClickImBack:=0
leavetable:=0
move:=0
automoveback:=0
xpos:=100
ypos:=100
autopot:=0
autobet:=0
OpenDef=ssnl
Open1=ssnl
Open2=trny
Open3=----
RoundDef:=1
Round1:=1
Round2:=1
Round3:=1
fixDef:=1
fix1:=1
fix2:=1
fix3:=1
PotDefPre:=75
PotDefFlop:=75
PotDefTurn:=66
PotDefRiver:=66
Pot1Pre:=75
Pot1Flop:=75
Pot1Turn:=66
Pot1River:=66
Pot2Pre:=100
Pot2Flop:=80
Pot2Turn:=80
Pot2River:=80
Pot3Pre:=999
Pot3Flop:=100
Pot3Turn:=100
Pot3River:=100
Pot1=mbutton
Pot2=xbutton1
Pot3=xbutton2
incr1:=1
incr2:=1
incr3:=1
incr4:=1
bb1:=1
sb1:=0
bb2:=1
sb2:=0
bb3:=0
sb3:=1
bb4:=0
sb4:=1
alt1=wheelup
alt2=wheeldown
alt3=^wheelup
alt4=^wheeldown
attempts:=1
gosub, MakeIni
gosub, buildgui
return
;-----------------------------------------------------------------------------------------------------
GuiClose:
gosub, cancel
return
;-----------------------------------------------------------------------------------------------------
menuGui:
gosub, getini
winget,id,id, %thisahk% ahk_class AutoHotkeyGUI
if !DllCall( "IsWindowVisible", "UInt",id)
gosub, buildgui
Gui, Submit,nohide
return
;-----------------------------------------------------------------------------------------------------
reload:
reload
return
;-----------------------------------------------------------------------------------------------------
Save:
Gui, Submit
FileDelete, %thisahk%.ini
gosub, MakeIni
Reload
return
;-----------------------------------------------------------------------------------------------------
Cancel:
Gui, Destroy
Return
;-----------------------------------------------------------------------------------------------------
TogglePause:
pause,toggle
return
;-----------------------------------------------------------------------------------------------------
Suspend:
suspend
if A_IsSuspended=0
{
 suspended=Off
}
else
{
 suspended=On
}
Gui, 13:Add, Text,,Suspend: %suspended%
Gui, 13:+ToolWindow
Gui, 13:Show, w150 h20
Sleep, 1500
Gui, 13:Destroy
return
;-----------------------------------------------------------------------------------------------------
Edit:
edit
return
;-----------------------------------------------------------------------------------------------------
donation:
WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds...
WinWait, Transfer Funds ahk_class #32770, , 10
WinGet, tf, id
ControlFocus, Edit2, ahk_id%tf%
ControlSetText, Edit2, Max1mums
ControlFocus, Edit1, ahk_id%tf%
Sleep, -1
ControlSetText, Edit1,
GuiControl, Disable, Donate
return
;-----------------------------------------------------------------------------------------------------
exitSub:
exitApp
return
;-----------------------------------------------------------------------------------------------------
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 09:56 AM
hi Max1mums
how add TakeSeat&AutoReservedSeat&Auto Seat on new table function to other ahk,plz ty
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 10:57 AM
What do you want exactly?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 03:49 PM
Hi Max1mums,

When I read the title of your topics, I said "WHAOUH!! He realized my dream, a complete integrated tool for cash players".

I currently actively test your script since 1 week on PS (NL50 FR) and I have some comments (and of course some requirements...).

Pro:

- It's a very good base, integrating a lot of interesting function

- I use "bet pot" menu. I previously used the bet pot ahk script. It Works perfectly for me.

- In "annoyances" menu, I use the auto take seat and reserved seat. It works perfectly and is more efficient and powerful than the equivalent in the starsplanner script.

- I particularly appreciate the "table moving" menu. I didn't find this function on any other ahk scripts. It's completely transparent for me now. Well done!!


Cons and requirement:

- I use the "No image" theme on PS. I selected the "classic theme" on your script. Is it OK? If not, would it be possible to add this theme in your script?

- I don't use your highlight table function because it doesn't work properly for me: it highlights the active table (if option selected) but, if you click on another windows, you loose this active table and it doesn’t come back. You have to search for it manually. I prefer using the "star assistant v0.88" script with the option highlight table and activate urgent table. You can't loose the active table by this way. If you can modify this point, it would be perfect for me!!!

- When you seat at classical table (not 50BB min) you have to click on "wait for big blind". Would it be possible to add an option that click on “wait for big blind” and then after activate “auto post blinds”? I don't want to activate your option "auto post blinds" only because I want to wait for big blind to post it.

- I also use a script to move tables at a desired position, typically by using the following instruction:

SetTitleMatchMode, 2

F1::
WinGetActiveTitle, Title1
WinMove, %Title1%,, 0, 0
return


It's a manual way for stack and tile. If you can propose this possibility, it's also very nice. Perhaps the simplest way is to add these lines directly in the script (I didn’t try). Perhaps then just add a dedicated place in your script.

- Finally, the top would be a stack and tile automatic function by defining some slots (as in stackandtile script currently under development on 2+2). To stack again when you fold, it would be nice that it's done automatically when you click "fold" instead of having to use a special hotkey. I don't know if it's possible but we can exchange more in details if you are interested. I think there are a lot of things to do on this topic which could really help a CG player.

Sorry if it was a bit longer but this was my “review” on you very good job. Thanks again for that!!
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 04:26 PM
tabata, No images theme is based on Classic theme so choosing "Classic" on general tab is correct.
Hmm, if you click on another window it becomes active so of course highlighter will be removed from previous table i think that's logical.
I'm not that common with all those cash tables, i'll think about option to check "wait for bb" but i need to know at which kind of tables it is unchecked by default?
You can insert
Code:
F1::
WinGetActiveTitle, Title1
WinMove, %Title1%,, 0, 0
return
at the end of script for example - that won't hurt anything, just make sure you are not using f1 for any of script's functions.
As you said there is StackAndTile already, there is TOI also, i don't see any point of making third version of that, maybe i can add hotkey to move table aside and move table back but that's all.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 06:30 PM
I know I'm stupid but I can't get this to run either.

I have Vista 32, just installed latest version of AHK and am certainly copying the entire script(all the latest ones)

When I did it in regular notepad, saving as unicode, it says this line does not contain a recognized action at line 1.

I used notepad+ and did it and now it does this



I don't get it?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 07:00 PM
Script can't find exitsub function and it is at the very bottom of the script, check if it is present in your version and add it if not. I'd suggest creating new txt file, copying code there, renaming file to .ahk
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-15-2010 , 07:08 PM
Sorry, but it's my last wish for another hotkey.
Sit out next Blind if possible
Would be nice because Auto-Post Blind Off All Tables will not stop all tables before the blinds on some tables.
So I have to press 2 hotkeys when I want to leave the tables before the blinds.
By the way: I also use the tablehighlighter and I have no problems with it.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote

      
m