StarsUrgentTable - PS - FL

    • MorphAH
      MorphAH
      Bronze
      Dabei seit: 15.05.2007 Beiträge: 29
      Hi,
      funktioniert bei jemandem das AHK-Script StarsUrgentTable oder StarsAssistant auf Pokerstars bei den FixedLimit-Tischen?
      Bei mir funktionieren beide Scripte nicht im FL-Bereich,
      allerdings funktionieren sie im NoLimit-Bereich problemlos...
      Kann das jemand bestätigen bzw. hat jemand Lösungsvorschläge, das Script auch für FL nutzen zu können?
      Jemand ´ne Idee, wie das Script umgeschrieben werden müsste?
      MfG



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

      code:
      ; #### StarsBuddyList ####
      
      ; AHK version: 1.0.46.03
      ; date: May 24,2007
      ; version: 0.75
      ; author: _dave_ @ 2p2 forums
      ; revised by: JBOPoker @ earthlink.net
      ; thx to Roland & JukofYork for some of the functions
      
      
      ;--------------- SETTINGS -----------------------
      
      border_colour := "ff0000"
      border_size := 10
      trans := 255
      timebank_min := 10
      timebank_max := 13
      refresh_interval := 333
      
      ;--------------- END OF SETTINGS ----------------
      
      
      #NoEnv
      #SingleInstance, Force
      SendMode Input
      SysGet, border, 32
      SysGet, caption, 4
      last_table_id := ""
      tablequeue := ""
      SetTimer, refreshqueue, %refresh_interval%
      return
      
      refreshqueue:
      ids := TableIDListStars()
      Loop, Parse, tablequeue, `,
      {
        StringTrimLeft, this_id, A_LoopField, InStr(A_LoopField, "_")
        if (!InStr(ids, this_id))
        {
          StringReplace, tablequeue, tablequeue, %A_LoopField%, , All
        }
      }
      Loop, Parse, ids, `,
      {
        ControlGet, v, Visible, , PokerStarsSliderEditorClass1, ahk_id%A_LoopField%
        if (v)
        {  
          ;table is waiting
          if (!InStr(tablequeue, A_LoopField))
          {
            DllCall("QueryPerformanceCounter", "Int64 *", CurrentQPC)
            tablequeue := tablequeue . "," . CurrentQPC . "-" . A_TickCount . "_" . A_LoopField
          }
        }
        else
        {
          if (InStr(tablequeue, A_LoopField))
          {
            StringReplace, tablequeue, tablequeue, %A_LoopField%, , All
          }
        }
      }
      tmp := ""
      Loop, Parse, tablequeue, `,
      {
        if (InStr(A_LoopField, "0x"))
        {
          tmp := tmp . "," . A_LoopField 
        }
      }
      Sort, tmp, N D`,
      tablequeue := CleanList(tmp)
      
      ;Msgbox, %tablequeue%
      most_urgent_table := ""
      Loop, Parse, tablequeue, `,
      {
        StringTrimLeft, most_urgent_table, A_LoopField, InStr(A_LoopField, "_")
        break
      }
      tc := A_TickCount
      Loop, Parse, tablequeue, `,
      {
        StringTrimLeft, waiting_time, A_LoopField, InStr(A_LoopField, "-")
        StringTrimRight, waiting_time, waiting_time, ( StrLen(waiting_time) - (InStr(waiting_time, "_")-1) )
        waiting_time := (tc - waiting_time) / 1000
        ;MsgBox, %waiting_time%
        if (waiting_time > 10 && waiting_time < 13)
        {
          StringTrimLeft, waiting_table, A_LoopField, InStr(A_LoopField, "_")
          timebank_x := 570
          timebank_y := 440
          relStarsClientPoint(waiting_table, timebank_x, timebank_y)
          PostLeftClick(timebank_x, timebank_y, waiting_table, 0)
        }
        
      }
      
      ;Msgbox, %most_urgent_table%
      makegui(most_urgent_table)
      return
      
      
      
      
      
      TableIDListStars()
      {
        SetTitleMatchMode 2
        WinGet, id, id, PokerStars Lobby
        WinGet, pid, PID, ahk_id%id%
        WinGet, list, list, $ ahk_pid%pid%
        Loop %list%
        {
          this_id := list%a_index%
          If (this_id != id)
          {
            ids = %ids%,%this_id%
          }
        }
        WinGet, list, list, MiniFT ahk_class AutoHotkeyGUI
        Loop %list%
        {
          this_id := list%a_index%
          ids = %ids%,%this_id%
          
        }
        StringTrimLeft, ids, ids, 1
        return ids
      }
      
      ;removes empty items (and trailing delimiters)
      CleanList(list, del="") {
      del := del="" ? "," : del
      Loop {
        StringReplace, list, list, %del%%del%, %del%, UseErrorLevel
        If ! ErrorLevel
         break
       }
      If InStr(list, del) = 1
       StringTrimLeft, list, list, 1
      If InStr(list, del,0,0) = StrLen(list)
       StringTrimRight, list, list, 1
      return list
      }
      
      makegui(id="")
      {
        ;Msgbox, %id%
        global last_table_id
        global border_colour
        global border_size
        global trans
        
        if (id != last_table_id)
        {
          last_table_id := id
          
          if(!id)
          {
            Gui, 1: Cancel
            Gui, 2: Cancel
            Gui, 3: Cancel
            Gui, 4: Cancel
            return
          }
        
          WinGetPos, x, y, w, h, ahk_id%id%
          global border
          global caption
          x := x + border
          y := y + border + caption
          w := w - (2*border)
          h := h - (2*border) - caption
          
          
          
          ;top
          guinum := 1
          Gui, %guinum%: +Alwaysontop +Lastfound +Owner
          Gui, %guinum%: Color, %border_colour%
          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_colour%
          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_colour%
          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_colour%
          WinSet, Transparent, %trans%
          Gui, %guinum%: -Caption
          x2 := x + w - border_size
          Gui, %guinum%: Show, w%border_size% h%h% x%x2% y%y% NoActivate
      ;Puts mouse pointer nearer the bet buttons
          x3 := x + (w * .75)
          y3 := y + (h * .75)
          ;x3 := x + (w/2)
          ;y3 := y + (h/2)
          ;SoundBeep, 750, 100
          Coordmode, Mouse, Screen
          ;MouseMove, x3, y3, 0
        }
      }
      
      
      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%
      PostMessage, 0x201, 0x0001, ((y<<16)^x), %control_class%, ahk_id%table_id%
      PostMessage, 0x202 , 0, ((y<<16)^x), %control_class%, ahk_id%table_id%
      }
      
      relStarsClientPoint(id, ByRef x, ByRef y)
      {
        global border
        global caption
        rw := 792
        rh := 546
        WinGetPos, , , w, h, ahk_id%id%
        w := w - (2*border)
        h := h - (2*border) - caption
        
        x := Floor( (x / rw ) * w )
        y := Floor( (y / rh) * h  )
        
      }
      
      
      
      
  • 2 Antworten
    • Caramba1988
      Caramba1988
      Bronze
      Dabei seit: 12.05.2008 Beiträge: 89
      also wenn ich den quelltext richtig durchschaue dann ist Script dazu da um die Stacks aufzufüllen und Notes zu öffnen?
      ich bin mir nicht sicher, aber ist das nicht eine vereinfachung(manipulation) der software und somit verboten?
    • MorphAH
      MorphAH
      Bronze
      Dabei seit: 15.05.2007 Beiträge: 29
      Nene, den Quelltext hast du nicht richtig durchschaut,
      bei diesem Script geht es einzig und allein darum,
      den Tisch hervorzuheben (roter Rahmen), an dem der Spieler eine Aktion tätigen muss,
      besonders geeignet für´s Multitabling...
      Hat mit dem eigenenStack nix zu tun...

      Und wie gesagt, Problem besteht darin, dass es zwar für NL, nicht aber für FL funktioniert, was müsste ich ändern, finde die prägnante Stelle im QT nicht...