Open Side Menu Go to the Top
Register
Full Tilt Buddies (New AHK script) Full Tilt Buddies (New AHK script)

12-04-2006 , 01:53 PM

Yeah, i just noticed the disappearing buddies on the weekend as well! I'll look into why it might be happening and get a fix in for it asap.

cheers,
runstop
Full Tilt Buddies (New AHK script) Quote
12-04-2006 , 06:57 PM
runstop -

just want to say thanks for the work you've put into this script!

Full Tilt Buddies (New AHK script) Quote
12-07-2006 , 11:37 PM
nevermind - problem resolved I think... awesome script btw
Full Tilt Buddies (New AHK script) Quote
12-12-2006 , 11:11 AM
So, you have to have a table open with the player on it to find the player? Because right now I just get a - in the "online" column for all of my buddies. Am I supposed to run the script first or Full Titl First? Should I just open fulltilt then open a crap load of tables and hope the program finds him in all of the tables?

I'm stupid and confused apparently.

Ray
Full Tilt Buddies (New AHK script) Quote
12-12-2006 , 11:26 AM
Press Ctrl + F?
Full Tilt Buddies (New AHK script) Quote
12-12-2006 , 02:05 PM

Hi RayPowers,

Yeah, finding the buddies is a manual (and kinda long) process now (you have to hit ctrl-f to start it). The next version might have a quicker (or more in the background) way of searching. Still trying to find time to get some work done on it.

Let me know if you're still having any problems with it!

Cheers,
runstop
Full Tilt Buddies (New AHK script) Quote
12-12-2006 , 02:06 PM

Oh, I just noticed the thank yous from a few peeps. I'll just say "Thanks for using it!!" back to all of you.
Full Tilt Buddies (New AHK script) Quote
12-12-2006 , 05:31 PM
I am stupid and never knew I had to press Ctrl F.

Thanks for the info and thanks for the script!

Ray
Full Tilt Buddies (New AHK script) Quote
12-14-2006 , 12:00 AM
Mine doesn't seem to be reporting their online status or if they are online, what tables they are at. Any ideas? Thanks for a sweet script.
Full Tilt Buddies (New AHK script) Quote
12-28-2006 , 10:26 AM
Well, after using it successfuly for a while now, it just wiped out my buddy list.

This is free and I appreciate it a ton so I'm not really here to yell or complain, just whine a little bit and ask, if you have time, to check into fixing this.

If it helps, it happened when I loaded Full Tilt Buddy BEFORE loading Full Tilt.

Ray
Full Tilt Buddies (New AHK script) Quote
12-31-2006 , 08:25 PM
Had been using the program successfully since it was released.

It just wiped out my buddy list.
*a&%kdoiij*k$oifoikhdh*&*fkdoih!!!

All my precious fishes gone! [Golem]Precious, return the precious!![/Golem]

I still like the script, just gotta make sure you backup your buddy list.
Full Tilt Buddies (New AHK script) Quote
01-22-2007 , 12:38 PM

Hey everyone.. First update in a while. Sorry about the bug with wiping out buddies.. I have no idea why/how this is happening. I really have to figure it out. for now, be sure to keep multiple backups of your .ini file. not the best solution, but for now, please do that.

I have updated to version 1.4b1 (guess this should've been version 1.5b1.. but whatever).
I have added a new variable called 'Auto_Purge_If_Greater_Than_Days'. this defaults to 30 days and if the option is selected under options, will delete buddies that have not been seen in x number of days. Please treat this as a beta, make .ini backups, etc, etc!!

Please let me know how it works. I have a todo list that keeps growing everytime i find an hour to work on this.. so more updates coming soon!

cheers,
runstop
Full Tilt Buddies (New AHK script) Quote
01-24-2007 , 05:44 PM
hi runstop,

Probably a stupid question, but how do I get the new version to find my old buddy list?
Full Tilt Buddies (New AHK script) Quote
01-24-2007 , 06:29 PM
A stupid question ive downloaded this,i now have a file in "my downloads" folder how do I get it to work?
Full Tilt Buddies (New AHK script) Quote
01-25-2007 , 10:35 AM

Hey everyone,

zook - you should be able to just copy your old FullTiltBuddies.ini to where you put the new 1.4b1 file

riverruss - download AHK from www.autohotkey.com and then double click on the .ahk file.

runstop
Full Tilt Buddies (New AHK script) Quote
01-25-2007 , 12:46 PM
is there any way i can make it so that fulltiltbuddy only shows CASH tables, and not show tournaments?

i will run my search and have maybe 15 people online, 12 of them being in tournaments, and only 3 on cashies. obviously the cash table is what i am looking for.

lemme know, thanks
Full Tilt Buddies (New AHK script) Quote
01-25-2007 , 10:11 PM
Just to clarify...

The program can't save your buddies; you have to add all of them every time you want to search?
Full Tilt Buddies (New AHK script) Quote
01-26-2007 , 11:55 AM
Quote:
is there any way i can make it so that fulltiltbuddy only shows CASH tables, and not show tournaments?

This is next up on my todo..
Full Tilt Buddies (New AHK script) Quote
01-26-2007 , 11:55 AM
Quote:
Just to clarify...

The program can't save your buddies; you have to add all of them every time you want to search?
Umm, no Are you observing this with the latest beta? Perhaps there's a bug with the WriteIni() function..

runstop
Full Tilt Buddies (New AHK script) Quote
01-27-2007 , 01:41 PM
This is what i get when i click the download link. Anyone know what im doing wrong?Thanks


;
; FullTiltBuddies.ahk version 1.4b1
; Language: English
; Platform: Win9x/NT
; Author: runstop@2p2 (john AT underthegun.ca)
;
; This script will maintain and find buddies for Full Tilt poker.
;
; It relies on %FullTilt_Path% to find the current players for open tables.
;

#NoEnv ; Recommended for performance and compatibility with future AutoHotkey releases.
SendMode Input ; Recommended for new scripts due to its superior speed and reliability.

;Purge If Buddies should be removed if not seen for %Auto_Purge_If_Greater_Than_Days% days
Auto_Purge_If_Greater_Than_Days = 30

;our global vars
FullTilt_Path := "C:\Program Files\Full Tilt Poker"
TableArray_Length := 0
PlayerArray_Length := 0
BuddyArray_Length := 0

SelectedTable := ; the currently selected table

;our options
ShowOnlyOnline := False
PurgeOldBuddies := False

;
; Returns TRUE if fulltilt is running, false otherwise
;
FullTilt_IsRunning()
{
IfWinExist, Full Tilt Poker - Logged In As
{
return TRUE
}
else
{
return FALSE
}
}

;
;Searches for Buddies.
;Populates the global 'TableArray' array
;
FullTilt_FindPlayer(names)
{
global
if FullTilt_IsRunning()
{
Gui, ListView, MyBuddyList
LV_Delete()

;close 'find' if it's open and any OK dialogs
WinClose, Find Player ahk_class #32770
PostMessage, 0x112, 0xF060,,, Full Tilt Poker, OK ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE

WinActivate ; use the window found above
Send ^f

WinWait, Find Player ahk_class #32770,,5

; minimize it
;WinMinimize, Find Player ahk_class #32770
;WinMinimize, Full Tilt Poker ahk_class FTCLobby

Loop, %BuddyArray_Length%
{
if BuddyArray%A_Index%=
continue

name := BuddyArray%A_Index%
encName := Hex(name)
WinRestore, Find Player ahk_class #32770
;input the name
ControlSetText, Edit1, , Find Player ahk_class #32770
ControlSend, Edit1, %name%{ENTER}, Find Player ahk_class #32770
BuddyCount += 1

WinWait,Full Tilt Poker, OK, 1

WinRestore, Full Tilt Poker ahk_class FTCLobby
ControlGet, Countit, List, Selected, ListBox1, Find Player ahk_class #32770
if Countit=
{
;not found
TableArray%encName% = Offline
TableArray%encName%_Length := 0
; close it
PostMessage, 0x112, 0xF060,,, Full Tilt Poker, OK ; 0x112 = WM_SYSCOMMAND, 0xF060 = SC_CLOSE
}
else
{
;found
indexA = %A_Index%

ControlGet, List, List, Selected, ListBox1, Find Player ahk_class #32770
Loop, Parse, List, `n
{
TableArray%encName% := "Online"
TableArray%encName%_Length := A_Index
TableArray%encName%_%A_Index% := A_LoopField
}

;set the last seen
BuddyArray%A_Index%_Last := A_Now
}
}

WinRestore, Full Tilt Poker ahk_class FTCLobby
WinClose, Find Player ahk_class #32770
}
}

;
; Returns the currently logged in username
;
FullTilt_LoggedInAs()
{
if FullTilt_IsRunning()
{
WinGetTitle, Name, Full Tilt Poker - Logged In As
Length := StrLen(Name)
StringRight, Name, Name, Length-31
return %Name%
} else {
return "N/A"
}
}

;
; Returns the HH Path of the currently logged in user
;
FullTilt_GetHHPath()
{
global
;user := FullTilt_LoggedInAs()
hhpath := FullTilt_Path . "\HandHistory\"
return % hhpath
}

;
; Gets all the players for a table
; sets the global 'PlayerArray' array
;
FullTilt_GetPlayersForTable(name)
{
global

if name=
return

;recurses through all files
files := FullTilt_GetHHPath() . "*"
PlayerArray_Length := 0
Found := false
Loop, %files%, 1 , 1
{
;open this and find the name of the players
FileRead, Contents, %A_LoopFileFullPath%
if not ErrorLevel ; Successfully loaded.
{
StringGetPos, pos, Contents, Table %name%, R
If ErrorLevel
continue

StringGetPos, posend, Contents, *** SUMMARY, L, %pos%
If ErrorLevel
len := StrLen(Contents)-pos
else
len := posend-pos

StringMid, Game, Contents, pos, len

if Game<>
{
PlayerArray_Length := 0
;find all the seats
Loop, 9
{
seat := "Seat " . A_Index . ":"
IfInString, Game, %seat%
{
Space := "("
StringGetPos, pos, Game, %seat%
pos := pos + StrLen(seat) + 2
StringGetPos, len, Game, %Space%, L, %pos%
len := len - pos
StringMid, Seat, Game, %pos%, %len%

PlayerArray_Length := PlayerArray_Length + 1
PlayerArray%PlayerArray_Length% := Seat
Found := true
}
}

if Found
{
break
}
}
}
}
}

;
; Finds open tables
; Populates the global 'OpenTableArray' array
;
FullTilt_FindOpenTables()
{
global
if FullTilt_IsRunning()
{
;find out what tables we're on
WinGet, id, list, ahk_class FTC_TableViewFull
OpenTableArray_Length := id
Loop, %id%
{
this_id := id%A_Index%
WinGetClass, this_class, ahk_id %this_id%
WinGetTitle, this_title, ahk_id %this_id%
OpenTableArray%A_Index% := this_title
}
}
}

;
; opens a table by name
;
FullTilt_OpenTableByName(Name)
{
if Name=
{
return
}

if FullTilt_IsRunning()
{
;Activate the main table
WinActivate, Full Tilt Poker - Logged In As

;make sure Real Money is checked
ControlClick, , Full Tilt Poker - Logged In As,,LEFT,1

;sort by name
Click 71, 281

;send a home
Send {HOME}

;ensure we're sorted
ControlGet, List, List,, SysListView323, Full Tilt Poker - Logged In As
Loop, Parse, List, `n
{
RowNumber := A_Index
StringSplit, Columns, A_LoopField, %A_Tab% ; split on A_Tab
StringLeft, ColFirstChar, Columns2, 1

; resort it by A on the first loop
if ColFirstChar = Z
{
if RowNumber = 1
{
;resort
Click 71, 281
Send {HOME}
}
}
}

ControlGet, List, List,, SysListView323, Full Tilt Poker - Logged In As
Loop, Parse, List, `n
{
RowNumber := A_Index
StringSplit, Columns, A_LoopField, %A_Tab% ; split on A_Tab

IfInString, Name, %Columns2%
{
Send {ENTER}
break
}
else
{
Send {Down}
}
}
}
}

;
; reads the FullTiltBuddies.ini file and populates the 'names'
;
ReadIni()
{
global
IniRead, names, FullTiltBuddies.ini, BuddyList, Buddies
;populate the list
Loop, parse, names, `,
{
if A_LoopField=
continue

encName := Hex(A_LoopField)
index := A_Index
BuddyArray_Length := A_Index
TableArray%encName% := "Unscanned"

IfInString, A_LoopField, |
{
StringSplit, FieldArray, A_LoopField, |
BuddyArray%index% := FieldArray1
BuddyArray%index%_Last := FieldArray2
}
else
{
BuddyArray%index% := A_LoopField
BuddyArray%index%_Last :=
}
}

; read any options
IniRead, ShowOnlyOnline, FullTiltBuddies.ini, Options, ShowOnlyOnline
IniRead, PurgeOldBuddies, FullTiltBuddies.ini, Options, PurgeOldBuddies
setSetting(ShowOnlyOnline, "OptionsMenu", "&Show Online Buddies Only")
Menu = &Purge Buddies After %Auto_Purge_If_Greater_Than_Days% Days
setSetting(PurgeOldBuddies, "OptionsMenu", Menu)
}

;
; rewrites the FullTiltBuddies.ini file
;
WriteIni()
{
global
names:=""
Loop, %BuddyArray_Length%
{
Gui, ListView, MyBuddyList
if BuddyArray%A_Index%_Last =
{
names := names . BuddyArray%A_Index% . "|" . A_Now . ","
}
else if !PurgeBuddy(BuddyArray%A_Index%_Last)
{
names := names . BuddyArray%A_Index% . "|" . BuddyArray%A_Index%_Last . ","
}
}

IniWrite, %names%, FullTiltBuddies.ini, BuddyList, Buddies

; write any options
IniWrite, %ShowOnlyOnline%, FullTiltBuddies.ini, Options, ShowOnlyOnline
IniWrite, %PurgeOldBuddies%, FullTiltBuddies.ini, Options, PurgeOldBuddies
}

;
; purges buddies if they are older than x days
;
PurgeBuddy(NumberOfDays)
{
global

if PurgeOldBuddies
{
Now := A_Now
EnvSub, NumberOfDays, Now, Days ; this does a date calc, in days
NumberOfDays := Abs(NumberOfDays)
If NumberOfDays > %Auto_Purge_If_Greater_Than_Days%
{
Return TRUE
}
}

Return FALSE
}

;
; populate the Buddy View List from the OpenTableArray
;
PopulateOpenTableList()
{
global
Gui, ListView, MyTablesList
LV_Delete()

Loop, % OpenTableArray_Length
{
name := OpenTableArray%A_Index%
LV_Add("",name)
; reselect the previously selected

IfInString, name, %SelectedTable%
{
LV_Modify(A_Index, "+Select")
FullTilt_GetPlayersForTable(SelectedTable)
}
}

PopulatePlayerList()
}

;
; populate the Player List with the PlayerArray
;
PopulatePlayerList()
{
global
Gui, ListView, MyPlayersList
LV_Delete()

Loop, % PlayerArray_Length
{
LV_Add("", PlayerArray%A_Index%)
}
}

;
; populate the Buddy View List by using the global BuddyArray
;
PopulateBuddyList()
{
global
Gui, ListView, MyBuddyList
;ImageListID := IL_Create(10) ; Create an ImageList to hold 10 small icons.
;LV_SetImageList(ImageListID) ; Assign the above ImageList to the current ListView.
LV_Delete()

;populate the list
Loop, %BuddyArray_Length%
{
;IL_Add(ImageListID, "C:\development\poker\Check.gif", 0xFFFFFF, 1)
Gui, ListView, MyBuddyList
Name := BuddyArray%A_Index%

LastSeen := BuddyArray%A_Index%_Last

if LastSeen =
{
LastSeen := "-"
}
else
{
FormatTime, TimeString, %LastSeen%, MM-dd-yyyy hh:mm:ss tt
LastSeen := TimeString
}

encName := Hex(Name)

if TableArray%encName% = Unscanned
{
LV_Add("", "-", Name, LastSeen)
}
else if TableArray%encName% = Offline
{
if NOT ShowOnlyOnline
LV_Add("", "No", Name, LastSeen)
}
else
{
LV_Add("", "Yes", Name, LastSeen)
}
}

LV_ModifyCol("Hdr") ; Auto-adjust the column widths.
return
}

;
; remove a buddy from the BuddyArray
;
RemoveBuddy(name)
{
global
;StringReplace, names, names, %Text%
newIndex := BuddyArray_Length
BuddyArray_Length := 0

Loop, %newIndex%
{
if BuddyArray%A_Index% = %name%
continue

BuddyArray_Length := BuddyArray_Length + 1
BuddyArray%BuddyArray_Length% := BuddyArray%A_Index%
}

PopulateBuddyList()
WriteIni()
}

;
; add a buddy to the BuddyArray
;
AddBuddy(name)
{
global
;make sure we don't have duplicates
Loop, %BuddyArray_Length%
{
if BuddyArray%A_Index% = %name%
{
MsgBox Buddy %name% already exists!
return
}
}

BuddyArray_Length := BuddyArray_Length + 1
BuddyArray%BuddyArray_Length% := name

encName := Hex(name)
TableArray%encName% = Unscanned
PopulateBuddyList()
WriteIni()
}

;
; a loop to wait for active windows
;
WaitForActiveFTWindows()
{
global
Loop
{
;wait 10 seconds
WinWait, ahk_group FT_OpenTables,, 10
FullTilt_FindOpenTables()
PopulateOpenTableList()
Sleep 5000
}
}

; toggle a setting by name and update the checkbox
toggleSetting(ByRef var, menuName, menuItem)
{
var := !var
If var = 0
prefix = Un
Menu, %menuName%, %prefix%Check, %menuItem%
}

; set a setting by name and update the checkbox
setSetting(ByRef var, menuName, menuItem)
{
If var = 0
prefix = Un
Menu, %menuName%, %prefix%Check, %menuItem%
}

; Converts full string from ASC to Hex
Hex(Inp,UC = 0)
{
OldFmt = %A_FormatInteger%
SetFormat, Integer, hex

Loop, Parse, Inp
{
TransForm, Asc, Asc, %A_LoopField%
Asc += 0
StringTrimLeft, Hex, Asc, 2
IfEqual, UC, 0
Result = %Result%%Hex%
Else
Result = %Result%%Hex%00
}
SetFormat, Integer, %OldFmt%
StringUpper, Result, Result

Return Result
}

;setup the gui shiet

;Gui, +Resize
;Gui, Add, StatusBar,,Hello
Gui, Add, GroupBox, w400 h230, Buddy List
Gui, Add, ListView, AltSubmit yp+20 xp+5 h180 w190 vMyBuddyList gMyBuddyList, Online|Buddy Name|Last Seen
Gui, Add, ListView, yp xp+200 h180 w190 vMyBuddiesTableList gMyBuddiesTableList, Tables

gui, add, text, section xm+5 y+8, Quick Add: ; Save this control's position and start a new section.
gui, add, edit, w100 ys-3 vQuickAdd ; Start a new column within this section.
Gui, Add, Button, ys-3 Default, OK

Gui, Add, GroupBox, xm w400 h210, My Current Tables
Gui, Add, ListView, AltSubmit yp+20 xp+5 h180 w190 vMyTablesList gMyTablesList, Table Name
Gui, Add, ListView, yp xp+200 h180 w190 vMyPlayersList gMyPlayersList, Players (Double Click to Add Buddy)

GuiControl, focus, Edit1

GroupAdd, FT_OpenTables, ahk_class FTC_TableViewFull

;menu
Menu, FileMenu, Add, &Find Buddies Ctrl+F, SearchForBuddies
Menu, FileMenu, Add, &Remove Selected Ctrl+R, RemoveSelected
Menu, MyMenuBar, Add, &Buddies, :FileMenu ; Attach the two sub-menus that were created above.
Menu, OptionsMenu, Add, &Show Online Buddies Only, ShowOnline
Menu, OptionsMenu, Add, &Purge Buddies After %Auto_Purge_If_Greater_Than_Days% Days, PurgeOld

Menu, MyMenuBar, Add, &Options, :OptionsMenu
Gui, Menu, MyMenuBar
Gui, Show, "", Full Tilt Buddy List
ReadIni()
PopulateBuddyList()
FullTilt_FindOpenTables()
PopulateOpenTableList()

;start our looping function
WaitForActiveFTWindows()

return

;exit on close
GuiClose:
WriteIni()
ExitApp

#IfWinActive Full Tilt Buddy List ahk_class AutoHotkeyGUI
^r:: ; The Ctrl+R hotkey.
RemoveSelected:
Gui, ListView, MyBuddyList
RowNumber := 0
RemovedLength := 0
Loop % LV_GetCount("Selected")
{
RowNumber := LV_GetNext(RowNumber)
if not RowNumber
break

RemovedLength := RemovedLength + 1
Removed%RemovedLength% := RowNumber
}

removedNumber := 0
Loop %RemovedLength%
{
RowNumber := Removed%A_Index% - removedNumber
LV_GetText(Text, RowNumber, 2)
RemoveBuddy(Text)
removedNumber += 1
}

return


; ok button
; TODO move this and the player list select into an addBuddy() call
ButtonOK:
ControlGetText, name, Edit1
AddBuddy(name)
ControlSetText, Edit1,
return

; a table was clicked
MyBuddiesTableList:
Gui, ListView, MyBuddiesTableList
if A_GuiEvent = DoubleClick
{
if A_EventInfo > 0
{
LV_GetText(Name, A_EventInfo, 1)
FullTilt_OpenTableByName(Name)
}
}
return

; buddy
MyBuddyList:
Gui, ListView, MyBuddyList
normal = Normal
IfInString, A_GuiEvent, normal
{
if A_EventInfo = 0
return
LV_GetText(Name, A_EventInfo, 2) ; Get the text of the first field.

encName := Hex(Name)

Gui, ListView, MyBuddiesTableList
LV_Delete()

if TableArray%encName% <> Offline
{
length := TableArray%encName%_Length
Loop, %length% {
LV_Add("", TableArray%encName%_%A_Index%)
}
}
}
return

; Add a player by double clicking
MyPlayersList:
Gui, ListView, MyPlayersList
if A_GuiEvent = DoubleClick
{
LV_GetText(Name, A_EventInfo, 1)
AddBuddy(PlayerArray%A_EventInfo%)
}

return

;an item in mytables was selected
MyTablesList:
Gui, ListView, MyTablesList
normal = Normal
IfInString, A_GuiEvent, normal
{
LV_GetText(TableName, A_EventInfo, 1)
FirstDashPos := InStr(TableName, "-")
StringLeft TableName, TableName, FirstDashPos-2
FullTilt_GetPlayersForTable(TableName)
SelectedTable := TableName
PopulatePlayerList()
}
return

ShowOnline:
toggleSetting(ShowOnlyOnline, "OptionsMenu", "&Show Online Buddies Only")
PopulateBuddyList()
return

PurgeOld:
Menu = &Purge Buddies After %Auto_Purge_If_Greater_Than_Days% Days
toggleSetting(PurgeOldBuddies, "OptionsMenu", Menu)
return

#IfWinActive Full Tilt Buddy List ahk_class AutoHotkeyGUI
^f:: ; The Ctrl+S hotkey.
SearchForBuddies:
FullTilt_FindPlayer(names)
PopulateBuddyList()
return
Full Tilt Buddies (New AHK script) Quote
01-28-2007 , 05:44 PM
MK78:

you didn't have to quote the whole script. read the faq

Everyone,

I will have a beta out in the next couple of days that will add a few requested features and fix a few little nasty bugs.

cheers,
runstop
Full Tilt Buddies (New AHK script) Quote
01-29-2007 , 01:28 AM
When I double click the table that one of my buddies is sitting at, this web page pops up, and NOT the table:

http://www.fulltiltpoker.com/full-ti...series-gateway
Full Tilt Buddies (New AHK script) Quote
01-29-2007 , 02:29 AM
Quote:
When I double click the table that one of my buddies is sitting at, this web page pops up, and NOT the table:

http://www.fulltiltpoker.com/full-ti...series-gateway
I'm also having this problem.
Full Tilt Buddies (New AHK script) Quote
01-29-2007 , 10:10 AM

Hey guys.. yeah i noticed that yesterday and have it fixed. I'll post the new beta with this bug fixed tonight.

Cheers,
runstop
Full Tilt Buddies (New AHK script) Quote
02-01-2007 , 12:09 AM
Runstop--

Sorry to nag, but is the new beta up and running yet?
Full Tilt Buddies (New AHK script) Quote

      
m