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-04-2010 , 04:53 PM
I can take those options from StarsHotkeys, no problem, and how about existing options?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-04-2010 , 10:58 PM
Downloaded it and tried to start it but got this msg:



?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 01:36 AM
Quote:
Originally Posted by xPeru
Downloaded it and tried to start it but got this msg:
I think you have an old version of Autohotkey, try to update
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 07:46 AM
Yes, at least 1.0.48 autohotkey version is needed. http://www.autohotkey.com/download/
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 11:16 AM
Thanks, ldo I hadn't updated AHK.

Love it, I need:

1. An assignable function to increment/decrease the bet size by 0.xbb - I use a keypad and want to change the default "betpot" bet sizes by clicking numpad+/-. Wickss starshotkeys has this function.

2. An assignable function to leave a table. Again starshotkeys has this. I stack cash tables to reduce my tilt vulnerability - if I don't see the bad beats I don't tilt! So when I decide to leave, I click sit out next blind, or unclick autopost blinds but before I can leave the table once the big blind comes round, Stars steals my focus and because I have the never sitout function enabled, I end up playing an extra orbit. Ideally, one button could be assigned to do the whole leave table process, but if this is too tricky, then it's pretty simple to add options to click sit out next blind; click autopost blinds; and click leave table.

At which point, I think you've cracked it and donations will flood in!

Now all we need is an automated cash table opener a la SNG opener
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 11:47 AM
Great program...For the betpot function...which key do i press to make a pot-sized bet based on the parameters? for instance..it says pot1 (mbutton).(what is mbutton1?).........how do i change the parameters to choose my own key to click on to make the potsized bet?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 11:48 AM
also what is ssnl and mix?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 12:10 PM
xPeru, function to increase/decrease bet size by 0.xbb can be ported easily i guess. Starshotkeys script has an option to close all tables no matter what, but not to click sit out next blind, or unclick autopost blinds additionally (and script has to identify if those had been already set on some tables), you can toggle never sitout function with hotkey then click those checkboxes manually in this version, i'll try to add automatic function in later versions.
I think Thois was going to release cash table opener http://forumserver.twoplustwo.com/45...rstars-628398/

Last edited by Max1mums; 01-05-2010 at 12:20 PM.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 12:19 PM
You can find BetPot description here: http://www.overcards.com/wiki/moin.cgi/BetPot
ssnl should give 4xbb open raise, trny 2.5xbb, mix will not adjust open raise.
mbutton is middle mouse button, xbutton1 and xbutton2 are side mouse buttons, rbutton is right mouse button.
You can set any hotkey for those functions, here is list of available hotkeys :
Code:
List of Keys, Mouse Buttons, and Joystick Controls

--------------------------------------------------------------------------------

Mouse (mouse hotkeys require Windows NT/2000/XP or later)
LButton - the left mouse button 
RButton - the right mouse button
MButton - the middle or wheel mouse button

WheelDown - this is equivalent to rotating the mouse wheel down (toward you)
WheelUp - the opposite of the above
WheelLeft and WheelRight [v1.0.48+] - these two require a mouse with left/right scrolling capability, but they have no effect on operating systems older than Windows Vista.
(See mouse wheel hotkeys to detect how far the wheel has been turned.)

Supported only in Windows 2000/XP or later:
XButton1 - a button that appears only on certain mice 
XButton2 - a button that appears only on certain mice

Keyboard
Note: The names of the letter and number keys are the same as that single letter or digit. For example: b is the "b" key and 5 is the "5" key.

Space - the spacebar
Tab
Enter (or Return)
Escape (or Esc)
Backspace (or BS)

Delete (or Del)
Insert (or Ins)
Home
End
PgUp
PgDn
Up
Down
Left
Right

ScrollLock
CapsLock
NumLock

Numlock ON Numlock OFF 
Numpad0 NumpadIns 
Numpad1 NumpadEnd 
Numpad2 NumpadDown 
Numpad3 NumpadPgDn 
Numpad4 NumpadLeft 
Numpad5 NumpadClear 
Numpad6 NumpadRight 
Numpad7 NumpadHome 
Numpad8 NumpadUp 
Numpad9 NumpadPgUp 
NumpadDot (.)  NumpadDel 
NumpadDiv (/) NumpadDiv (/) 
NumpadMult (*) NumpadMult (*) 
NumpadAdd (+) NumpadAdd (+) 
NumpadSub (-) NumpadSub (-) 
NumpadEnter NumpadEnter 


F1 through F24 - The 12 or more function keys at the top of most keyboards.

AppsKey - this is the key that invokes the right-click context menu.

LWin - the left Windows logo key
RWin - the right Windows logo key. Note: unlike Control/Alt/Shift, there is no generic/neutral "Win" key because the OS does not support it.
Control (or Ctrl)
Alt
Shift
Note: The hotkeys Shift::, Alt::, and Control:: fire upon release of the key unless they have the tilde prefix such as ~Alt::. By contrast, a specific left or right hotkey such as LAlt:: fires when it is pressed down.

Note: For the most part, these next 6 keys are not supported by Windows 95/98/Me. Use the above instead:
LControl (or LCtrl) - the left control key 
RControl (or RCtrl) - the right control key 
LShift - the left shift key
RShift - the right shift key
LAlt - the left Alt key 
RAlt - Note: If your keyboard layout has AltGr instead of RAlt, you can probably use it as a hotkey prefix via <^>! as described here. In addition, "LControl & RAlt::" would make AltGr itself into a hotkey.

PrintScreen
CtrlBreak
Pause
Break -- Since this is synonymous with Pause, use ^CtrlBreak in hotkeys instead of ^Pause or ^Break.

Help - this probably doesn't exist on most keyboards. It's usually not the same as F1.
Sleep - note that the sleep key on some keyboards might not work with this.

The following exist only on Multimedia or Internet keyboards that have extra buttons or keys:
Browser_Back
Browser_Forward
Browser_Refresh
Browser_Stop
Browser_Search
Browser_Favorites
Browser_Home
Volume_Mute
Volume_Down
Volume_Up
Media_Next
Media_Prev
Media_Stop
Media_Play_Pause
Launch_Mail
Launch_Media
Launch_App1
Launch_App2

SCnnn (where nnn is the scan code of a key) - Recognizes unusual keys not mentioned above. See Special Keys for details.

VKnn (where nn is the hexadecimal virtual key code of a key) - This rarely-used method also prevents certain types of hotkeys from requiring the keyboard hook. For example, the following hotkey does not use the keyboard hook, but as a side-effect it is triggered by pressing either Home or NumpadHome: ^VK24::MsgBox You pressed Home or NumpadHome while holding down Control.
Known limitation: VK hotkeys that are forced to use the keyboard hook, such as *VK24 or ~VK24, will fire for only one of the keys, not both (e.g. NumpadHome but not Home).
For more information about the VKnn method, see Special Keys.

Joystick
Joy1 through Joy32: The buttons of the joystick. To help determine the button numbers for your joystick, use this test script. Note that hotkey prefix symbols such as ^ (control) and + (shift) are not supported (though GetKeyState can be used as a substitute). Also note that the pressing of joystick buttons always "passes through" to the active window if that window is designed to detect the pressing of joystick buttons.

Although the following Joystick control names cannot be used as hotkeys, they can be used with GetKeyState:
JoyX, JoyY, and JoyZ: The X (horizontal), Y (vertical), and Z (altitude/depth) axes of the joystick.
JoyR: The rudder or 4th axis of the joystick. 
JoyU and JoyV: The 5th and 6th axes of the joystick. 
JoyPOV: The point-of-view (hat) control.
JoyName: The name of the joystick or its driver. 
JoyButtons: The number of buttons supported by the joystick (not always accurate). 
JoyAxes: The number of axes supported by the joystick.
JoyInfo: Provides a string consisting of zero or more of the following letters to indicate the joystick's capabilities: Z (has Z axis), R (has R axis), U (has U axis), V (has V axis), P (has POV control), D (the POV control has a limited number of discrete/distinct settings), C (the POV control is continous/fine). Example string: ZRUVPD

Multiple Joysticks: If the computer has more than one joystick and you want to use one beyond the first, include the joystick number (max 16) in front of the control name. For example, 2joy1 is the second joystick's first button.

Note: If you have trouble getting a script to recognize your joystick, one person reported needing to specify a joystick number other than 1 even though only a single joystick was present. It is unclear how this situation arises or whether it is normal, but experimenting with the joystick number in the joystick test script can help determine if this applies to your system.
And here is list of available modifiers: http://www.autohotkey.com/docs/Hotkeys.htm
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 12:36 PM
Thanks for the quick reply. I ran the script and tried the functions on the table, but the middle and right mouse button hotkeys don't work..everything else seems to work fine, but I can't get the mouse buttons to work properly? Any ideas what is wrong? Thanks
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 12:49 PM
Maybe you have custom mouse configuration, or you are using specific mouse soft (like setpoint for logitech)? Check if everything set correctly at control panel-mouse, make sure that those buttons are not being used in other scripts/programs running along with script, try setting hotkeys like ^rbutton and ^mbutton (= Ctrl+rbutton Ctrl+mbutton) for testing purposes.
You can also try this http://www.autohotkey.com/forum/topic45893.html
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 01:51 PM
absolutely newb question here:

how do I run this?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 02:00 PM
Sorry Im computer illiterate and couldnt understand half of what was written on that link...I still can't configure my settings to get my mouse to work..it seems like im using a regular mouse hooked up to a usb....i also tried to change the hotkey to shift or lwin...
for the potbet....where it says pot1, I typed in shift..but it doesnt seem to work..do i ahve to edit something as well to make the shift key work as a potbet hotkey?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 02:01 PM
Quote:
Originally Posted by GBP04
absolutely newb question here:

how do I run this?
watch video in top right corner. very easy. http://www.******************/ahk_intro/


http://www.******************/article...utohotkey.html

Last edited by syracuse44; 01-05-2010 at 02:10 PM.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 02:02 PM
Download and install (as admin if under Vista/W7) autohotkey program http://www.autohotkey.com/download/, run script, doubleclick script icon in the tray to bring Gui to the top.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 03:30 PM
btw xPeru, you can change text at line 773 (t := Round(t, 2) string) of StarsCash.ahk to t := Round(t, 3) - round amount to 3 digits in fractional number part, that will allow you using 0.3xBB increase/decrease hotkey for example.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 06:08 PM
StarsCash v1.15
  • Added Auto take reserved seat option
  • Added Auto seat on new table option
  • Few minor fixes to BetPot function
  • Binding fractional bb/sb amount for increase/decrease hotkeys available

I don't want to add alot of new functions untill i'm sure that existing functions work fine totally, but don't worry i won't forget about them so i'm still waiting for requests/bug reports.

StarsPics (needed for BetPot function only) can be found here: http://depositfiles.com/files/cgcmiearw
Unpack archieve into script folder.

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

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


#SingleInstance, Force
#NoEnv
#MaxHotkeysPerInterval 300|
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 
Menu, Tray, Add, Edit, Edit
Menu, Tray, Add 
Menu, Tray, Add, Donate, Donation
Menu, Tray, Add 
Menu, Tray, Add, Exit, ExitSub

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

SetBatchLines, -1
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
timerback:=true
timerbank:=true
timerpot:=true

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

settimer,HeroSeated,500
settimer,Popupwatcher,100

gosub,getini

winget,list,list,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
  }
 }

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

loop
{
IsTableNew()

if timerback
{
if ClickImBack
settimer,ClickBack,1500
else
settimer,ClickBack,off
timerback:=false
}

if timerbank
{
if Timebank
settimer,ClickTimebank,1500
else
settimer,ClickTimebank,off
timerbank:=false
}

if timerpot
{
settimer,BetPot,100
timerpot:=false
}

if Highlight
Highlighter()

if MoveMouse
if IsWindowNew()
MoveMouse()

sleep,100
}

;-----------------------------------------------------------------------------------------------------
IsTableNew()
{
global
 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
  {
  sleep,350
  ClickSeats(id)
  }
  seated%id%:=1
  }
 }
}
return
;-----------------------------------------------------------------------------------------------------
IsWindowNew()
{
global oldtitle
wingetactivetitle,title
if oldtitle!=%title%
{
oldtitle:=title
return 1
}
else
return 0
}
;-----------------------------------------------------------------------------------------------------
IsBetBoxNew()
{
 ; global oldid
 global
  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
;-----------------------------------------------------------------------------------------------------
Popupwatcher:
if TakeSeat
TakeSeat()

if CheckWhenFree
CheckWhenFree()


if Buyin
{
ifwinexist, Buy-in ahk_class #32770
{
winget,id,id,Buy-in ahk_class #32770
ControlGet, v, Visible,,Edit1, ahk_id %id%
if v
{
parent:=DllCall("GetParent","uint",id)
if max
{
SetControlDelay, -1
Control, Check,, Button1, ahk_id %id%
ControlClick, Button4, ahk_id %id%
}

if remembered
{
ControlClick, Button4, ahk_id %id%
}

if xbb
{
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)
ControlSetText, Edit1, %bb%, ahk_id%id%
ControlClick, Button4, ahk_id %id%
}
}
}
}
return
;-----------------------------------------------------------------------------------------------------
CheckWhenFree()
{
  IfWinExist, PokerStars, Check
  {
    ControlFocus, Check
    Sleep, -1
    ControlClick, Check
  }
}
return
;-----------------------------------------------------------------------------------------------------
HeroSeated:
winget,list1,list,ahk_class PokerStarsTableFrameClass
loop %list1%
{
  winid:=list1%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"))
  {
  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
 ;if ((checkbb=1 & instr(title,"fast")) || (uncheckbb=1 & !instr(title,"fast")))
  { 
  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)
{
global boost,xbord,ybord,cap
if boost
critical,6
setwindelay, -1
hdc_frame := DllCall( "GetDC", "UInt", id )
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) 
if colx1
{
x:=floor(((W-2*xbord)*colx1)) + xbord
y:=floor(((H-(2*ybord)-cap)*coly1)) + ybord + cap
pix1 := DllCall("GetPixel", "UInt", hdc_buffer, "Int", x, "Int", y)
}
else
pix1=
SetFormat, IntegerFast, hex
pix += 0
pix .= ""
pix1 += 0
pix1 .= ""
SetFormat, IntegerFast, d
}
if pix1
pix.="-" . pix1
sleep,1
DllCall( "gdi32.dll\DeleteObject", "Uint", hbm_buffer )
DllCall( "gdi32.dll\ReleaseDC", "Uint", hdc_frame )
DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_frame )
DllCall( "gdi32.dll\DeleteDC", "Uint", hdc_buffer )
if boost
{
critical,off
sleep,-1
}
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
}
;-----------------------------------------------------------------------------------------------------
SitOutNextAll:
;ClickImBack:=false
settimer,ClickBack,off
WinGet, list, List, 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, 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
;-----------------------------------------------------------------------------------------------------
ClickBack:
winget,list,list, ahk_class PokerStarsTableFrameClass
loop %list%
{
 back_x:=0.8125
 back_y:=0.8621 
 id:=list%A_index%
 col:=PixelColorA(back_x,back_y,id,0,0.8625,0.8621) 
 stringsplit,c,col,-
 Sittingout:=c1
 JoinWaitingList:=c2
 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)
  {
  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, 2:Add, Text,, Auto Click Im Back: %T%
Gui, 2:+ToolWindow
Gui, 2:Show, w150 h20
Sleep, 1000
Gui, 2:Destroy
return
;-----------------------------------------------------------------------------------------------------
ClickTimebank:
{
 winget,list,list, ahk_class PokerStarsTableFrameClass
 loop %list%
 {
 id:=list%A_index%
 col:=PixelColorA(0.6500,0.7670,id,1)
;FileAppend, %col%`n`n, test.txt
 if (instr(col,"13484978")) or (instr(col,"1000084"))  ;or (instr(col,"16777215"))  ; 0xdfd9ce
 {
 click_x :=0.6582
 click_y :=0.7729
 PostClickStars(click_x, click_y, id, 0)
 }
 }
}
return
;-----------------------------------------------------------------------------------------------------
Joinwaitlist:
winget,list,list, ahk_class PokerStarsTableFrameClass
loop %list%
{
id:=list%A_index% 
;col:=PixelColorA(0.6165,0.9352,id,1)
col:=PixelColorA(0.6274,0.9352,id,1)
;FileAppend, %col%`n`n, test.txt
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.6165,0.9352,id,1)
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
;-----------------------------------------------------------------------------------------------------
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.6816,id,0)
 Postclickstars(0.2299,0.6310,id,0)
 Postclickstars(0.0697,0.4250,id,0)
 Postclickstars(0.1770,0.1835,id,0)
 Postclickstars(0.3552,0.0767,id,0)
 Postclickstars(0.6550,0.0767,id,0)
 Postclickstars(0.8333,0.1910,id,0)
 Postclickstars(0.9328,0.4250,id,0)
 Postclickstars(0.7764,0.6385,id,0)
}
;-----------------------------------------------------------------------------------------------------
HighLighter(Highlight=1)  ;x_mouse=0.75, y_mouse=0.75 
{
  global last_table_id
  global border_color
  global border_size
  global trans
  global ActiveX,ActiveY,ActiveW,ActiveH

ifwinactive,ahk_class PokerStarsTableFrameClass
{  
winget,id,id,A
OldX := ActiveX
OldY := ActiveY
OldW := ActiveW
OldH := ActiveH
WinGetActiveStats,ActiveTitle, ActiveW, ActiveH, ActiveX, ActiveY
  if (id != last_table_id) || ((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 ( Highlight = 1 ) {
    
      ;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
{
      Gui, 2: Cancel
      Gui, 3: Cancel
      Gui, 4: Cancel
      Gui, 5: Cancel
      last_table_id=
}
}
return
;-----------------------------------------------------------------------------------------------------
MoveMouse(x_mouse=0.75, y_mouse=0.75)
{ 
global xbord
global cap
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 ;___so we retrieve the big blind instead
    }  
  }   
  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
    ;ControlGetText, t, %stars_editbox%, ahk_id%id%
    WinSet, Redraw,, ahk_id%id%
  } 
}

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

 ; caller_hwnd := ""
  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
  {
    PotSizeStars(id, pot, call, sb, bb, hero_bet, street, hero_position, open)
  } 

  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

  if ClassicTheme 
  {
  PotThemeDir := "classic"
  CallThemeDir := "classic"
  pot_x1:=0.4800
  pot_x2:=0.5806
  pot_y1:=0.0140
  pot_y2:=0.0585
  call_x1:=0.6943
  call_y1:=0.9342
  call_y2:=0.9802
  call_x2:=0.8143
  raise_x1:=0.8527
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9723
  }
  else 
  if HyperSimpleTheme
  {
  PotThemeDir := "hypersimple"
  CallThemeDir := "hypersimple"
  pot_x1:=0.4800
  pot_x2:=0.5806
  pot_y1:=0.0140
  pot_y2:=0.0585
  call_x1:=0.6943
  call_y1:=0.9342
  call_y2:=0.9802
  call_x2:=0.8143
  raise_x1:=0.8527
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9723
  }
  else 
  if SlickTheme
  { 
  PotThemeDir := "slick"
  CallThemeDir := "slick"
  pot_x2:=0.5566
  pot_y2:=0.1445
  pot_x1:=0.4540
  pot_y1:=0.0995
  call_y2:=0.9802
  call_y1:=0.9342
  call_x2:=0.7954
  call_x1:=0.6554
  raise_x1:=0.8274
  raise_y1:=0.9342
  raise_y2:=0.9802
  raise_x2:=0.9704
  }
  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

 ;winset,alwaysontop,on,ahk_id%id%
  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) 
 ;winset,alwaysontop,off,ahk_id%id%
  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)
 ;winset,alwaysontop,on,ahk_id%id%
    minraise := DigitSearch(raise_x1, raise_y1, raise_x2, raise_y2, id, buttonPicDir, "", 50)
 ;winset,alwaysontop,off,ahk_id%id%
    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.3615
  x2 := 0.6260
  y2 := 0.3711
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 5 )
  {
    street := "river"
    return street
  }  
  x1 := 0.5494
  y1 := 0.3615
  x2 := 0.5587
  y2 := 0.3711
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 5 )
  {
    street := "turn"
    return street
  }
  x1 := 0.3473
  y1 := 0.3615
  x2 := 0.3567
  y2 := 0.3711
  relStarsClientPoint(id, x1, y1,0,1)
  relStarsClientPoint(id, x2, y2,0,1)

  If ( GetPixelCount(x1, y1, x2, y2, 0xffffff) > 5 )
  {
    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:
winget,id,id,A
FoldStars(id)
return

call:
winget,id,id,A
CallStars(id)
return

raise:
winget,id,id,A
RaiseStars(id)
return

fold2any:
winget,id,id,A
Fold2anyStars(id)
return

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

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

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

alt1:
winget,id,id,A
if sb1
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr1, sb)
return

alt2:
winget,id,id,A
if sb2
sb:="sb"
else
sb:=""
AlterAmount(id,"down", incr2, sb)
return

alt3:
winget,id,id,A
if sb3
sb:="sb"
else
sb:=""
AlterAmount(id,"up", incr3, sb)
return

alt4:
winget,id,id,A
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, font, cOlive
Gui, add, tab, h450 w270, General|Time|Annoyances|Table moving|BetPot|Table 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 active table
Gui, add, Checkbox, y145 x180 Checked%Highlight% VHighlight
Gui, add, text, y165 x25, Move mouse to action buttons
Gui, add, Checkbox, y165 x180 Checked%MoveMouse% VMoveMouse

Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 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, y70 x190 Checked%Autopost% VAutopost
Gui, add, text, y70 x25,Auto post blinds
Gui, add, Checkbox, y100 x190 Checked%Waitbb% VWaitbb
Gui, add, text, y100 x25,Uncheck wait for big blind
;Gui, Add, Radio, x120 y90 w70 h15 Checked%checkbb% vcheckbb, check
;Gui, Add, Radio, x120 y105 w70 h15 Checked%uncheckbb% vuncheckbb, uncheck
Gui, add, Checkbox, y120 x190 Checked%CheckWhenFree% VCheckWhenFree
Gui, add, text, y120 x25,Never fold for free
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, y280 x190 Checked%autoTakeSeat% VautoTakeSeat
Gui, add, text, y280 x25,Auto Seat on new table



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

Gui, Tab, Time

Gui, add, Checkbox, y50 x180 Checked%ClickImBack% VClickImBack
Gui, add, text, y50 x25,Click Im Back automatically
Gui, Add, Text, x25 y70 ,Toggle Click Im Back
Gui, Add, Edit, x180 y67 w50 h20 vToggleImBack, %ToggleImBack%
Gui, add, Checkbox, y110 x180 Checked%Timebank% VTimebank
Gui, add, text, y110 x25,Click Timebank automatically
Gui, Add, Text, x25 y150 ,Sitout on all tables
Gui, Add, Edit, x180 y147 w50 h20 vSitOutNextAll, %SitOutNextAll%
Gui, Add, Text, x25 y175 ,Remove sitout on all tables
Gui, Add, Edit, x180 y172 w50 h20 vRemoveSitout, %RemoveSitout%

Gui, Add, Text, x25 y220 ,Join waiting list on all tables
Gui, Add, Edit, x180 y217 w50 h20 vjoinwaitlist, %joinwaitlist%
Gui, Add, Text, x25 y245 ,Unjoin waiting list on all tables
Gui, Add, Edit, x180 y242 w50 h20 vunjoinwaitlist, %unjoinwaitlist%

Gui, Add, Button, x75 y315 w55 h20 gSave,Submit
Gui, Add, Button, x135 y315 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, Text, x25 y115 ,* `% of Pot

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 w70 h15 Checked%bb1% vbb1,bb
Gui, Add, Radio, x125 y295 w70 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 w70 h15 Checked%bb2% vbb2,bb
Gui, Add, Radio, x125 y325 w70 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 w70 h15 Checked%bb3% vbb3,bb
Gui, Add, Radio, x125 y355 w70 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 w70 h15 Checked%bb4% vbb4,bb
Gui, Add, Radio, x125 y385 w70 h15 Checked%sb4% vsb4,sb
Gui, Add, Edit, x190 y372 w80 h20 valt4, %alt4%

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

Gui, Add, Button, x75 y420 w55 h20 gSave,Submit
Gui, Add, Button, x135 y420 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, w286, %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, MoveMouse, %thisahk%.ini, Settings, MoveMouse, 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, 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, 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, move, %thisahk%.ini, Settings, move, 0
IniRead, automoveback, %thisahk%.ini, Settings, automoveback, 0
IniRead, movebackByKey, %thisahk%.ini, Hotkeys, movebackByKey,%A_Space%
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, ypos, %thisahk%.ini, Variables, ypos,0
IniRead, xpos, %thisahk%.ini, Variables, xpos,0
if SitOutNextAll
Hotkey, %SitOutNextAll%,SitOutNextAll
if RemoveSitout
Hotkey, %RemoveSitout%,RemoveSitout
if joinwaitlist
Hotkey, %joinwaitlist%,joinwaitlist
if Unjoinwaitlist
Hotkey, %Unjoinwaitlist%,Unjoinwaitlist
If Toggleimback
{
HotKey, IfWinActive
Hotkey, %Toggleimback%, Toggleimback
}
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, %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, %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, %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, 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, %fold%,fold
if call
Hotkey, %call%,call
if raise
Hotkey, %raise%,raise
if fold2any
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
IniWrite, %MoveMouse%, %thisahk%.ini, Settings, MoveMouse
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, %Autopost%, %thisahk%.ini, Settings, Autopost
IniWrite, %Waitbb%, %thisahk%.ini, Settings, Waitbb
if checkbb
IniWrite, %checkbb%, %thisahk%.ini, Settings, checkbb
if uncheckbb
IniWrite, %uncheckbb%, %thisahk%.ini, Settings, uncheckbb
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
IniWrite, %move%, %thisahk%.ini, Settings, move
IniWrite, %automoveback%, %thisahk%.ini, Settings, automoveback
if moveback
IniWrite, %moveback%, %thisahk%.ini, Hotkeys, moveback
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 Toggleimback
IniWrite, %Toggleimback%, %thisahk%.ini, Hotkeys, Toggleimback 
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

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
Highlight:=0
MoveMouse:=0
TakeSeat:=0
Timebank:=0
Autopost:=0
Waitbb:=0
uncheckbb:=1
CheckWhenFree:=1
Buyin:=0
remembered:=1
bbmultiplier:=50
move:=0
ClickImBack:=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:=1
Pot3Turn:=0
Pot3River:=0
Pot1=mbutton
Pot2=xbutton1
Pot3=xbutton2
incr1:=1
incr2:=1
incr3:=1
incr4:=1
bb1:=1
bb2:=1
sb3:=1
sb4:=1
alt1=wheelup
alt2=wheeldown
alt3=^wheelup
alt4=^wheeldown

gosub, MakeIni
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
;-----------------------------------------------------------------------------------------------------
Suspend:
suspend
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:
FileDelete, %thisahk%.ini
gosub, makeini
exitApp
return
;-----------------------------------------------------------------------------------------------------
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 06:38 PM
One question to the Highlighter:
The border is also highlighted when you have folded so there is always one border around a table.
Could this be changed that there is no border after folding?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 06:47 PM
So you want to highlight tables with action only, that can be done with single exception: tables with allin in front of hero will not be highlighted (tables with betslider visible will be highlighted only), will you be satisfied with that? Or i can make it work for "allin" tables too but that might slow things down alot.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 06:58 PM
Mostly I play Fixed Limit and I have used the Stars-Assistant-AHK for the highlighter in the past.

Your StarsCash-AHK-Version has more and nearly all functions that are needed and it would be great if the highlighter also works at Fixed Limit with action only.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 07:07 PM
I noticed that too when one is 1tabling the table is lighted up always...and that sucks-)
Very nice script though as usual...
I havent tested this yet but there should be a function where after clicking the desktop or any other app. the mouse shouldnt jump to the table...

nh
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 07:18 PM
And what if you made click on desktop or any nonstars app and action goes to you on some table, wouldn't you want to move mouse there? That can be done of course, just not sure if it is needed.
And if someone is 1tabling he can turn highlighter off (why would anyone 1tabling need any script at all?).
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 07:30 PM
I don't play 1 Table.
When I play 9 tables FL or NL there is always a table highlighted, also when you have folded at this table.
This confuses me a little bit.
It would be better when you have no border after folding.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 07:34 PM
For example its really annoying when im on msn im now all of a sudden typing something to the table-)
You should be aware when you go out of the tables the script is off...but thats way better than a script who tells you when or where you can do some other stuff outside of the tables.
Anyway thats the way ive scripted my script anyway...i believe tnft has added it as well.
StarsCash - free script for PokerStars containing all functions cash player may need. Quote
01-05-2010 , 08:07 PM
Don't understand people multitabling and doing something along... well you can always turn mouse move off if msn is more important for you than playing poker.
Anyway that can be done as i said, but how about existing "main" options, are they working fine or you didn't even try using them?
StarsCash - free script for PokerStars containing all functions cash player may need. Quote

      
m