Stars SNG Opener

    • Damaxxx
      Damaxxx
      Bronze
      Dabei seit: 02.05.2007 Beiträge: 984
      Hallo Leute,
      habe bisher immer mit nem AHK Script gespielt und zwar SFSO 4.0. Seit dem neuestem Update funzt das allerdings nicht mehr.
      Gibt es eine alternative Software,am besten kostenlos oder muss ich nur etwas anderes im Script einstellen?
      Mir ist eigentlich nur wichtig, dass ich die Anzahl an SNG Tischen einstellen kann, damit immer automatisch neue Tische geöffnet werden wenn ein SNG zu Ende ist.
      Achja, spiele die 18 Mann SNG's auf Stars.

      Danke
  • 8 Antworten
    • wittenberg
      wittenberg
      Bronze
      Dabei seit: 06.10.2006 Beiträge: 964
      hab eine version die bei mir läuft
    • Damaxxx
      Damaxxx
      Bronze
      Dabei seit: 02.05.2007 Beiträge: 984
      Welche ist das und was hast du da eingestellt, wenn ich fragen darf?
    • wittenberg
      wittenberg
      Bronze
      Dabei seit: 06.10.2006 Beiträge: 964
      sfso habs aus einem forum raus
      der Code läuft bei mir


      code:
      ; Author:         Everlong@2p2 Code assembled from misc sources, thanks to _dave_, chris228, finnisher ; v.4.0a ; added: option to atuobuyin if full, hide/show window ; fixed issue with skipping first sng in lobby ; 4.0 version fixed by Max1mums  #NoEnv SendMode Input SetWorkingDir %A_ScriptDir% #SingleInstance, Force SetTitleMatchMode, 2 SetTimer, register, off SetTimer, safeguard, off StringTrimRight, thisahk, A_ScriptName, 4  ;;;;;;;;;;;SET YOUR PokerStars folder path here;;;;;;;;;;;;;;; ;pspath:="C:\Program Files\PokerStars" IniRead, pspath, %thisahk%.ini, Settings, path logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% {  If A_OSVersion in WIN_VISTA {		 IniWrite, %A_AppData%\Pokerstars\, %thisahk%.ini, Settings, path IniRead, pspath, %thisahk%.ini, Settings, path  logfile:= pspath . "pokerstars.log.0" IfNotExist %logfile% {  StringGetPos,pos, pspath,Roaming  StringLeft, pspath, pspath, %pos%  pspath:=pspath . "Local\Pokerstars"  IniWrite, %pspath%, %thisahk%.ini, Settings, path } }  Else							  IniWrite, %ProgramFiles%\Pokerstars\, %thisahk%.ini, Settings, path  IniRead, pspath, %thisahk%.ini, Settings, path } ;============================================================== tcount=0 tcounter:="tcounter.ini" IfExist, %tcounter% FileDelete, %tcounter% RegSofar=0 OpenTables=0 trows=17 SysGet,mon, MonitorworkArea fivesec=0 two=0 ddlist4=Off| ddlist5=Off| ddlist6=Off| ddlist7=Off| LobbyList=Default|Black| ddlist2:=ddlist2 . 1 . "|" Loop 100 { two:=two+2 ddlist3:=ddlist3 . two . "|" ddlist:=ddlist . A_index . "|" If (A_index<51) { fivesec:=fivesec+5 ddlist2:=ddlist2 . fivesec . "|" ddlist5:=ddlist5 . fivesec . "|" ddlist6:=ddlist6 . fivesec . "|" If (A_index<22) { ddlist7:=ddlist7 . A_Index . "|" If (A_index<16) { ddlist4:=ddlist4 . A_index . "|" } } } } ddlist3:=ddlist3 . 9999 . "|" Gosub, BuildGui Return  BuildGui: Gui, color, white Gui, font, cOlive Gui, add, tab, h340 w240, General|Advanced Settings Gui, add, text, , Auto-register Gui, add, Checkbox, yp xp+80 Check3 Checked-1 vRegister Gui, add, text, yp xp+30, Reg. next if full? Gui, add, Checkbox, yp xp+80 AutoIfFull VAutoifFull   Gui, add, text,xp-190 yp+30 , Register every (sec): Gui, add, DropDownList, w50 yp-5 xp+140  vInterval1, %ddlist2% Gui, add, text, xp-140 yp+30, No of SNG:s to keep open: Gui, add, DropDownList, w50 yp-5 xp+140 vKeepOpen , %ddlist% Gui, add, text,xp-140 yp+30, Limit total SNG:s to: Gui, add, DropDownList, w50 yp-5 xp+140 vTotalLimit , %ddlist3% Gui, add, text,xp-140 yp+30, Limit total time to (min): Gui, add, DropDownList, w50 yp-5 xp+140 vTimeLimit , %ddlist5%  Gui, add, text, xp-140 yp+30 cred vcdown w200 Gui, add, text, xp  yp+30 w200 vRegSofar, SNG:s registered so far: Gui, add, text,  w200 vOpenTables, Tables open/waiting: Gui, add, text, w200 cRed vStatus, Status: Idle Gui, add, Button, w68 ggetgui, &Submit+Run Gui, add, text, xp+72 yp+5, (Autosaves your settings) Gui, Add, Button, Disabled xp-72 yp+20 w48 h20 Center, &Resume Gui, Add, Button, Disabled  w45 h20 yp xp+48 Center, &Pause Gui, Add, Button, w80 h20 yp xp+45 Center globbyrestore, &Lobby restore Gui, Add, Button, w45 h20 yp xp+80 gDonate, &Donate Gui, tab, 2  Gui, add, Text, x25 y65 , Lobby Theme: Gui, add, DropDownList, w65 yp-5 xp+140 vLobby, %LobbyList% Gui, add, text,xp-140 yp+30 , Close lobbies every (sec): Gui, add, DropDownList, w50 yp-5 xp+140  vCloseInterv, %ddlist6% Gui, add, text, xp-140 yp+18 , (manually Close with ctrl+e) Gui, add, text, yp+30, Disable if no user Input (min): Gui, add, DropDownList, w50 yp-5 xp+140 vGuardtimer Choose1 , %ddlist4% Gui, add, text, xp-140 yp+30 ,Batch-register? Gui, add, Checkbox,yp xp+140 vBatchReg Gui, add, text, yp+20 xp-140 ,SetReg* mode? Gui, add, Checkbox,yp xp+140 vSetReg Gui, add, text, yp+20 xp-140 ,Minimize lobby? Gui, add, Checkbox,yp xp+140 vMinlob Gui, add, Text, xp-140 yp+30, Times to scroll down: Gui, add, DropDownList, w50 yp-5 xp+140 vscrldwn, %ddlist7% Gui, add, Text, xp-140 yp+25, Always start at top of lobby? Gui, add, Checkbox, yp xp+140 vTopReturn /* Gui, tab, 3 Gui, add, text, , Manually populate list: F11 Gui, Add, ListView,  r%trows%  grid gFindLobby w200 c1, Registered in Tournaments */ Gui, show, w256, %thisahk% WinGetPos, x, y, w, h, SFSO ;x:=monRight-w ;y:=monBottom-h x:=monLeft y:=monTop Gosub, GetIni Gui, show, x%x% y%y%, %thisahk% Return  getgui: GuiControl,, Register, -1 Register = 1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gui, Submit, NoHide displayedTime= If (lobby="Default") { regButton:="PokerStarsButtonClass24" } Else If (lobby="Black" or lobby="Custom*") { regButton:="PokerStarsButtonClass25" } Gosub, TimeLimit Gosub, MakeIni GuiControl, Enable, Pause GuiControl, Disable, Resume interval:=interval1*1000  If !interval interval=off  If guardtimer is not Number { SetTimer, safeguard, off } Else { killtime:=guardtimer*60000 SetTimer, safeguard, 1000 } if CloseInterv is not number SetTimer, NukeLobbies, off else { lobclose:=CloseInterv*1000 SetTimer, NukeLobbies, %lobclose% } register=1 SetTimer, Register, %interval% Gosub, ButtonResume Return  Safeguard: If (A_TimeIdle > killtime) { Gosub, ButtonPause GuiControl, , cdown, Stopped  due to inactivity!!! %displayedTime% } Return  TimeLimit: If TimeLimit is Number { allowedMinutes := timeLimit endTime := A_Now endTime += %allowedMinutes%, Minutes SetTimer, CountDown, 1000 } Else { GuiControl, , cdown, Time Limit off } Return  Countdown: remainingTime := endTime EnvSub remainingTime, %A_Now%, Seconds m := remainingTime // 60 s := Mod(remainingTime, 60) displayedTime := Format3Digits(m) ":" Format2Digits(s) GuiControl, , cdown, Running another (mm:ss): %displayedTime% If (A_now > endTime) { SetTimer, Countdown, off Gosub, ButtonPause GuiControl, , cdown, Time Limit reached. } Return  GuiClose: Gui, Submit Gosub, MakeIni ExitApp Return  ButtonResume: Gui, Submit, NoHide If PausedTime is Number { TimeLimit:=PausedTime } Gosub, TimeLimit  GuiControl, Disable, Resume GuiControl, Enable, Pause GuiControl, , Register, -1 Register=1 IfExist, %tcounter% FileDelete, %tcounter% tcount:=0 Gosub, Register SetTimer, Register, %Interval% Return  ButtonPause: Critical Gui, Submit, NoHide PausedTime:=remainingTime/60 Register:=0 SetTimer, Countdown, off SetTimer, Register, off GuiControl, Disable, Pause GuiControl, Enable, Resume GuiControl, , Register, 0 GuiControl, , cdown, Manually Paused %displayedTime% GuiControl, , Status, Status: Waiting ;TEST Return  Register: SetTitleMatchMode, 2 WinGet, LobbyID, id, PokerStars Lobby  If !LobbyID { Gosub, ButtonPause GuiControl,, Status, Status: PokerStars Lobby not found Gui, show, NoActivate, %thisahk% Return } If (TopReturn=1) { ControlSend, PokerStarsListClass6, {NumpadUp 20}, ahk_id%lobbyid% } WinGet, PhysicalTables, list,Table ahk_class PokerStarsTableFrameClass If PhysicalTables is not Number PhysicalTables:=0 If (PhysicalTables >= KeepOpen) { GuiControl,, Status, Set Full waiting Gui, show, NoActivate, %thisahk% Return } OpenTables:=CountTourneys() If OpenTables is not Number OpenTables=0 GuiControl, , OpenTables, Tables open/waiting: %OpenTables% GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% Gui, show, NoActivate, %thisahk%  If (RegSofar >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables >= TotalLimit) { Gosub, ButtonPause GuiControl, , cdown, SNG Total Limit reached GuiControl, , Status, Status: Idle ;TEST Return } If (OpenTables>=KeepOpen) { GuiControl, , OpenTables, Tables open/waiting: %OpenTables% (Set full) GuiControl, , Status, Status: Waiting ;TEST Return } Else { If (BatchReg=1) { Times:= KeepOpen - OpenTables RegSNGexec(LobbyID, Times, scrldwn) } Else { RegSNGexec(LobbyID, 1, scrldwn) } } Return MakeIni: IniWrite, %AutoIfFull%, %thisahk%.ini, Settings, AutoIfFull IniWrite, %TopReturn%, %thisahk%.ini, Settings, TopReturn IniWrite, %scrldwn%, %thisahk%.ini, Settings, scrldwn IniWrite, %Lobby%, %thisahk%.ini, Settings, Lobby IniWrite, %BatchReg%, %thisahk%.ini, Settings, BatchReg IniWrite, %Setreg%, %thisahk%.ini, Settings, SetReg IniWrite, %Minlob%, %thisahk%.ini, Settings, MinLob IniWrite, %Interval1%, %thisahk%.ini, Settings, Interval1 IniWrite, %AutoClose%, %thisahk%.ini, Settings, AutoClose IniWrite, %CloseInterv%, %thisahk%.ini, Settings, CloseInterv IniWrite, %KeepOpen%, %thisahk%.ini, Settings, KeepOpen IniWrite, %TotalLimit%, %thisahk%.ini, Settings, TotalLimit IniWrite, %GuardTimer%, %thisahk%.ini, Settings, GuardTimer IniWrite, %TimeLimit%, %thisahk%.ini, Settings, TimeLimit Return  GetIni: IfExist, %thisahk%.ini { IniRead, AutoIfFull, %thisahk%.ini, Settings, AutoIfFull IniRead, TopReturn, %thisahk%.ini, Settings, TopReturn,0 IniRead, scrldwn, %thisahk%.ini, Settings, scrldwn IniRead, Lobby, %thisahk%.ini, Settings, Lobby IniRead, BatchReg, %thisahk%.ini, Settings, BatchReg IniRead, SetReg, %thisahk%.ini, Settings, SetReg, 1 IniRead, MinLob, %thisahk%.ini, Settings, MinLob, 0 IniRead, Interval1, %thisahk%.ini, Settings, Interval1 IniRead, CloseInterv, %thisahk%.ini, Settings, CloseInterv IniRead, AutoClose, %thisahk%.ini, Settings, AutoClose IniRead, KeepOpen, %thisahk%.ini, Settings, KeepOpen IniRead, TotalLimit, %thisahk%.ini, Settings, TotalLimit IniRead, GuardTimer, %thisahk%.ini, Settings, GuardTimer, Off IniRead, TimeLimit, %thisahk%.ini, Settings, TimeLimit, Off GuiControl, , AutoIfFull, %AutoIfFull% StringReplace, ddlist7, ddlist7, %scrldwn%, %scrldwn%| GuiControl, , scrldwn, |%ddlist7% StringReplace, LobbyList, LobbyList, %Lobby%, %Lobby%| GuiControl, , Lobby, |%LobbyList% GuiControl, , BatchReg, %BatchReg% GuiControl, , SetReg, %SetReg% GuiControl, , MinLob, %MinLob% GuiControl, , TopReturn, %TopReturn% GuiControl, , AutoClose, %AutoClose% StringReplace, ddlist2, ddlist2, %interval1%, %Interval1%| GuiControl, , Interval1, |%ddlist2% StringReplace, ddlist6, ddlist6, %CloseInterv%, %CloseInterv%| GuiControl, , CloseInterv, |%ddlist6% StringReplace, ddlist, ddlist, %KeepOpen%, %KeepOpen%| GuiControl, , KeepOpen, |%ddlist% StringReplace, ddlist3, ddlist3, %TotalLimit%, %TotalLimit%|, GuiControl, , TotalLimit, |%ddlist3% StringReplace, ddlist4, ddlist4, %GuardTimer%, %GuardTimer%| GuiControl, , GuardTimer, |%ddlist4% StringReplace, ddlist5, ddlist5, %TimeLimit%, %TimeLimit%| GuiControl, , TimeLimit, |%ddlist5% } Return ^e:: NukeLobbies: SetTitleMatchMode, 2 GroupAdd, TLobbies, Lobby,,, PokerStars Lobby GroupClose, TLobbies, A Return  #H:: WinHide, %thisahk% return  #S:: WinShow, %thisahk% return  F11:: TmpSetReg:=SetReg SetReg=0 CountTourneys() SetReg:=TmpSetReg Return ManualCount: CountTourneys() Return  FindLobby: If (%A_GuiEvent% = DoubleClick) { LV_GetText(TournId,A_EventInfo) TournID:=SubStr(TournID, 1,10) WinMenuSelectItem, PokerStars Lobby,, Requests, Find a Tournament WinWait, Find Tournament ahk_class #32770, , 10 WinGet, fat, id ControlFocus, Edit1, ahk_id%fat% Sleep, -1 ControlSend, Edit1, %TournId%, ahk_id%fat% ControlFocus, Button1, ahk_id%fat% Sleep, -1 ControlSend, Button1, {Space}, ahk_id%fat% } Return  Donate: donation() Return  Format2Digits(_val) { _val += 100 StringRight _val, _val, 2 Return _val }  Format3Digits(_val) { _val += 1000 StringRight _val, _val, 3 StringTrimRight, FirstZ, _val, 2 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } StringTrimRight, FirstZ, _val, 1 If FirstZ=0 { StringTrimLeft, _val, _val, 1 } Return _val } LobbyRestore: WinGet, lobbyid, id, PokerStars Lobby WinShow, ahk_id%lobbyid% WinMove, ahk_id%lobbyid%,,0,0 return   RegSNGexec(id, times, scrldwn) { global RegSofar global Register global OpenTables global KeepOpen global TotalLimit global RegButton global AutoIfFull Loop %times% { ;Gosub, ManualCount ;Sleep, 25 ;tcount:=0 ;tcounter:="tcounter.ini" ;IfExist, %tcounter% ;FileDelete, %tcounter%  ControlSend, PokerStarsListClass6, {NumpadUp 20}, ahk_id%id%  If (OpenTables >= KeepOpen) Exit If (OpenTable >= TotalLimit) Exit ClickdirectionCount=0 direction=0 GuiControl, , Status, Status: Registering ;TEST Loop 16 { If (Register=0) { GuiControl, , Status, Status: Idle ;TEST Exit } ControlGet, v, Visible, , %regButton%, ahk_id%id% If (v = 0) If (scrldwn!="Off") { If (ClickdirectionCount<scrldwn) { If (direction=0) { ControlSend, PokerStarsListClass6, {NumpadDown}, ahk_id%id% } Else { ControlSend, PokerStarsListClass6, {NumpadUp}, ahk_id%id% } ClickdirectionCount:=ClickdirectionCount+1 } Else { If (direction=0) { direction:=1 } Else { direction:=0 } ClickdirectionCount:=0 } Sleep 1000 } If (v = 1) Break }  If ( v = 1 ) { SetTitleMatchMode, 2 ControlFocus, %regButton%, ahk_id%ID% PostMessage, 0x201, 0x0001,((20<<16)^30),%regButton% , ahk_id%id% PostMessage, 0x202 , 0,((20<<16)^30),%regButton% , ahk_id%id% WinWait, Tournament Registration ahk_class #32770, , 3 { WinGet, regid, id, Tournament Registration ControlGet, Z, Visible,,Button1, ahk_id%regid% if Z { ControlFocus, Button1, ahk_id%regID% PostMessage, 0x201, 0x0001,((10<<16)^10),Button1 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button1 , ahk_id%id% }  If (AutoIfFull = 1) { ControlFocus, Button2, ahk_id%regid% Sleep, -1 ControlSend, Button2, {Space}, ahk_id%regid% Sleep, 30 }  Control, Check,,Button3, ahk_id%regid% ControlFocus, Button3, ahk_id%regid% PostMessage, 0x201, 0x0001,((10<<16)^10),Button3 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button3 , ahk_id%id% ;RegSofar++ }  WinWait, Tournament Registration ahk_class #32770, , 3 { WinGet, regid, id, Tournament Registration WinGetPos, x, y, w, h, ahk_id%regid% ControlGetText, ctext, Button1, ahk_id%regid% If ( cText = "OK" ) { Control, Check,,Button1, ahk_id%regid% ControlFocus, Button1, ahk_id%regid% PostMessage, 0x201, 0x0001,((10<<16)^10),Button1 , ahk_id%id% PostMessage, 0x202 , 0,((10<<16)^10),Button1 , ahk_id%id% } } if h>145 RegSofar++ GuiControl, , RegSofar, SNG:s registered so far: %RegSofar% GuiControl, , Status, Status: Waiting ;TEST Gui, show, NoActivate, %thisahk% } } }  CountTourneys() { global logfile If (SetReg=1) { Return 0 } tcount:=0 Loop, Read, %logfile% { If (instr(A_LoopReadLine,"RT add")>0) || ((instr(A_LoopReadLine,"TableClientConnection")>0) && (instr(A_LoopReadLine,":connect")>0))  {  if !instr(A_LoopReadLine,"TableClientConnection")  {  tnumber:=RegExReplace(A_LoopReadLine, "RT add ", "")  if instr(tnumber,A_space)  StringLeft, tnumber, tnumber, instr(tnumber,A_space)-1  }  else  {  tnumber:=RegExReplace(A_LoopReadLine, "TableClientConnection{table.", "")  stringleft,tnumber,tnumber,instr(tnumber,A_space)-1  }  if !instr(tables,tnumber)  listadd(tables,tnumber) } else If (instr(A_LoopReadLine,"RT remove")>0) || ((instr(A_LoopReadLine,"TableClientConnection")>0) && (instr(A_LoopReadLine,":disconnect")>0)) {  if !instr(A_LoopReadLine,"TableClientConnection")  stringtrimleft,tnumber,A_LoopReadLine,instr(A_LoopReadLine,A_space,"",0)  else  {  tnumber:=RegExReplace(A_LoopReadLine, "TableClientConnection{table.", "")  stringleft,tnumber,tnumber,instr(tnumber,A_space)-1  }  if instr(tables,tnumber)  listDelItem(tables,tnumber) } tnumber= }  Loop, Parse, tables, -, { if A_Loopfield tcount++ } return tcount }  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 }  donation() { WinMenuSelectItem, PokerStars Lobby,, Requests, Transfer Funds... WinWait, Transfer Funds ahk_class #32770, , 10 WinGet, tf, id ControlFocus, Edit2, ahk_id%tf% ControlSetText, Edit2, Attilio ControlFocus, Edit1, ahk_id%tf% Sleep, -1 ControlSetText, Edit1, GuiControl, Disable, Donate }  lobbyStars() { SetTitleMatchMode 1 WinGet, id, id, PokerStars Lobby Return id } ~^!Q:: ExitApp
    • feinheit
      feinheit
      Bronze
      Dabei seit: 07.04.2008 Beiträge: 4.384
      blöde frage, aber wie kann ich den code einspielen bzw. funkt er überhaupt noch?
    • feinheit
      feinheit
      Bronze
      Dabei seit: 07.04.2008 Beiträge: 4.384
      :f_confused:
    • klausschreiber
      klausschreiber
      Bronze
      Dabei seit: 30.07.2006 Beiträge: 5.773
      Hallo feinheit,

      zum Ausführen des Codes brauchst du Autohotkey.

      Gruß,
      klausschreiber
    • feinheit
      feinheit
      Bronze
      Dabei seit: 07.04.2008 Beiträge: 4.384
      hab ich, aber wie krieg ich den code da rein? :D
    • klausschreiber
      klausschreiber
      Bronze
      Dabei seit: 30.07.2006 Beiträge: 5.773
      achso, einfach eine Textdatei erstellen und die dann aber nicht mit der Dateiendung .txt, sondern mit .ahk versehen. Es kann allerdings sein, dass du sowohl das AHK-Script als auch die Pokerseite als Admin ausführen musst.