|
#1
|
|||
|
|||
MiniLobby V2
Here we go again:
(The Lobby is bigger that the Seat Available window obviously). Instructions: You’ll have to edit some images for this one. First, edit the image “background_client”. I use some old table mod, but you can use whatever you like. Then edit these two: “client_gradient” and “client_top”. They are part of the background, so the easiest way to do it is just open them in Paint or whatever and than paste the images you used for the background on top of the default image: Then select “save as…” and confirm you want to overwrite. Next, you’ll have to edit the filter buttons. I just use the same filter button for everything (that way I only had to “make” one). Just experiment a bit - all that matters is that it’s short enough. Keep in mind that Party uses one half of it for “open” and the other for “closed”. That was the “hard” part. Now, resize these to one pixel: bulletin_background filters_background_normal tab_background tab_description tab_game_info tab_players tab_players_right tab_tournament_info tree_main_background box_corners And that’s it. You can use these two lines of code to make a backup copy before you start: FileSelectFolder, ImageFolder, C:\Programs\PartyGaming\PartyPoker\Images, , Select the Images Folder: FileCopyDir, %ImageFolder%, %ImageFolder%\MiniLobbyBackup Remarks: I had to do a few things differently for technical reasons. [*]The menu bar buttons freeze up when moved and don’t react to mouse-clicks. They do, however, react to ControlClick, so I assigned a hotkey (Alt-m) to the “Options and Rules” menu (or whatever it’s called). I don’t think I’ll ever use any of the other menus while playing, so there’s no way to acces them. If somebody wants me to I can change that though.[*]Likewise, the buttons game info buttons were causing trouble, so they too got a hotkey (Alt-i). It will toggle between seated players and info. [*]As you can see from the pic, I managed to display the average pot size on in the Seat Available window. I just wrote this and tested it only pro forma so I wouldn’t be surprised if there are bugs (that’s true for the rest also btw). For this to work, you ListView in the lobby has to be displaying the limit of the table you’ve just gotten a seat at (though the lobby can be minimzed). [*]The columns for Stud and Omaha will be auto-resized when necessary (because the avg. pot column was beeing pushed aside). [*]I’m sure I’ve forgotten something. Finally, to use this you [*]download AHK here . It’s free. [*]copy the code below into an editor of your choice (no line wrapping please) and save it as .ahk; then double-click the icon Sorry the code is such a mess. I hope Party’s taking screenshots. [img]/images/graemlins/laugh.gif[/img] ;___________________MiniLobby V2__________________________________ ; AutoHotkey Version: 1.0.41.02 ; Platform: WinXP ; Author: Roland ControlList = Internet Explorer_Server1,Internet Explorer_Server2, Internet Explorer_Server3 ,Shell DocObject View2,Internet Explorer_Server4,Shell DocObject View4,Shell Embedding5 ,AfxWnd4213,AfxWnd4264,AfxWnd4261,AfxWnd4262,AfxWn d4263,AfxWnd423,AfxWnd424 ,Shell DocObject View1,Shell Embedding2,Shell Embedding3,Static6,AfxWnd425,AfxWnd426 ,Static5,AfxWnd4211,AfxWnd421,AfxWnd422,Static1,Af xWnd4212,AfxWnd4213 ,AfxWnd4217,AfxWnd4267,AfxWnd4268,AfxWnd4269,AfxWn d4271,AfxWnd4272,AfxWnd4273 ,AfxWnd4212,AfxWnd4210,Static7,Static8 WinWait, PartyPoker.com: Poker Lobby ;_____script will keep waiting until you start Party WinGet, lobby_id, ID, PartyPoker.com: Poker Lobby ;______move the controls out of sight and resize them to one pixel: Loop, Parse, ControlList, `, { ControlMove, %a_loopfield%, 1000, 1000, 1, 1, ahk_id%lobby_id% } ;______move some controls around: ControlMove, #327701, 0, 0, 1000, 1000, ahk_id%lobby_id% ControlMove, SysListView321, 7, 30, , 145, ahk_id%lobby_id% ControlMove, AfxWnd4270, 7, 30, 1, 1, ahk_id%lobby_id% ControlGetPos, , , , h, SysListView322, ahk_id%lobby_id% h := h - 18 ControlMove, SysTreeView321, 7, 180, 165, %h%, ahk_id%lobby_id% ControlMove, SysListView322, 177, 180, , , ahk_id%lobby_id% ControlMove, SysListView323, 177, 180, , , ahk_id%lobby_id% y := h + 5 + 180 ControlMove, AfxWnd4214, 177, %y%, , , ahk_id%lobby_id% ControlMove, AfxWnd4215, 177, %y%, , , ahk_id%lobby_id% ControlMove, AfxWnd4218, 177, %y%, , , ahk_id%lobby_id% ControlMove, AfxWnd4219, 295, %y%, , , ahk_id%lobby_id% ControlMove, AfxWnd427, 7, %y%, , , ahk_id%lobby_id% ControlGetPos, , , w, h, AfxWnd428, ahk_id%lobby_id% x := 7 + w + 2 ControlMove, AfxWnd428, %x%, %y%, , , ahk_id%lobby_id% x := 7 + w*2 + 4 ControlMove, AfxWnd429, %x%, %y%, , , ahk_id%lobby_id% ControlGetPos, , y, , h, AfxWnd4214, ahk_id%lobby_id% ControlGetPos, , , w, , SysListView321, ahk_id%lobby_id% w := w + 14 h := y + h + 7 WinMove, PartyPoker.com, , , , %w%, %h% ControlGetPos, SysListView322, , y, w, h, ahk_id%lobby_id% SendMessage, 4126, 0, 0, SysListView322, ahk_id%lobby_id% SendMessage, 4126, 1, 95, SysListView322, ahk_id%lobby_id% SendMessage, 4126, 2, 35, SysListView322, ahk_id%lobby_id% SendMessage, 4126, 0, 55, SysListView323, ahk_id%lobby_id% SendMessage, 4126, 1, 75, SysListView323, ahk_id%lobby_id% ControlMove, SysListView322, , , 130, %h%, ahk_id%lobby_id% ControlMove, AfxWnd4221, 312, 180, , , ahk_id%lobby_id% ControlMove, AfxWnd4222, 312, 180, , , ahk_id%lobby_id% ControlMove, AfxWnd4225, 312, 180, , , ahk_id%lobby_id% ControlMove, AfxWnd4226, 312, 180, , , ahk_id%lobby_id% ControlMove, SysListView323, , , 130, %h%, ahk_id%lobby_id% ;_____set timers: SetTimer, ResizeColumns, 1000 SetTimer, ShowAvg, 1000 return ;__________end fo auto-execute section____________ ;_____Hotkeys: !m:: ControlClick, AfxWnd4270, ahk_id%lobby_id% return !i:: ControlGet, is_vis, Visible, , SysListView322, ahk_id%lobby_id% If is_vis = 1 ControlClick, AfxWnd4212, ahk_id%lobby_id% else ControlClick, AfxWnd4211, ahk_id%lobby_id% return ;______Subroutines: ResizeColumns: ControlGet, limit, List, Col2, SysListView321, ahk_id%lobby_id% StringGetPos, pos_linefeed, limit, `n StringLeft, limit, limit, %pos_linefeed% ControlGet, is_stud, List, Col3, SysListView321, ahk_id%lobby_id% type1 = Stud type2 = Omaha If (InStr(is_stud, type1) <> 0 OR InStr(is_stud, type2) <> 0) { game_type = stud If limit <> %limit_prev% { SendMessage, 4126, 2, 0, SysListView321, ahk_id%lobby_id% SendMessage, 4126, 6, 110, SysListView321, ahk_id%lobby_id% limit_prev = %limit% } } return ShowAvg: IfWinNotExist, Seat Available id_list = else { WinGet, id, List, Seat Available Loop, %id% { StringTrimRight, this_id, id%a_index%, 0 If this_id in %id_list% continue id_list = %id_list%,%this_id% target = %this_id% ControlGetText, waitlist_dialog_text, Static1, ahk_id%target% StringGetPos, pos_on, waitlist_dialog_text, on StringGetPos, pos_brace, waitlist_dialog_text, ( pos_name := pos_on + 3 name_len := pos_brace - (pos_on + 2) StringMid, table_name, waitlist_dialog_text, pos_name, %name_len% ControlGet, list, list, Col1, SysListView321, ahk_id%lobby_id% pos_name := pos_name - 8 StringTrimLeft, waitlist_dialog_text, waitlist_dialog_text, 36 StringTrimLeft, table_name, table_name, 1 Loop, Parse, list, `n { IfInString, A_LoopField, %table_name% { If game_type = stud column = 7 else column = 6 ControlGet, pot_size, list, Col%column% Row%A_index%, SysListView321, ahk_id%lobby_id% num_linefeed := A_Index - 1 StringGetPos, pos_linefeed, pot_size, `n, L%num_linefeed% pos_linefeed++ StringTrimLeft, pot_size, pot_size, %pos_linefeed% StringGetPos, pos_linefeed, pot_size, `n, L StringLeft, pot_size, pot_size, %pos_linefeed% ControlSetText, Button1, %pot_size%, ahk_id%target% break } } } } return ;_____end of code |
#2
|
|||
|
|||
tnx!!! u saved me :). question:
Is there any way to change the font size in the table lists?
|
#3
|
|||
|
|||
Re: MiniLobby V2
I read ur replay in "sam code..."
in heneral i dont understand why u say that im the only user of ur script. What others do? they use other script, or dont use script at all? About the seat avaliable thing. yes, the avg pot size is great. but maybe u can add more info, like "AvgPotSize,Hands/Hour,NumberOfPlayers" together in the button? [img]/images/graemlins/smirk.gif[/img] tnx pif |
#4
|
|||
|
|||
other proposal
what u say about this idea:
to save all those mouse clickings on buttons during the game, maybe u can write a small script that auto click on button if i hold the mouse pointer over it for more then 1 or 2 sec. after the autoclick, move the mouse above the button (to prevent reclick in new turn). u need to assure that u click on button and not on premove chkbox. is it going to work? another idea: can u auto queue the order of tables to action sequence and bring the mouse to the next table after the prev action as finishd? in this way after u made decision, u put the mouse above the desire button for the autoclick (it takes 1-2 sec to click), and meanwhile u go to the next table (we need some sign to know what is the next). after autoclick u automove the mouse pointer to the nexttable. what u say? (pressing on shift will temporarly igonre this, and capslock=on will ignore permanently) |
#5
|
|||
|
|||
another question: resize
is there anyway to manual resize the tables screen to specific size, meaning that every table i open will open in this size.
? |
#6
|
|||
|
|||
Re: another question: resize
[ QUOTE ]
is there anyway to manual resize the tables screen to specific size, meaning that every table i open will open in this size. ? [/ QUOTE ] Yep - do a search for PartyPlanner. [img]/images/graemlins/smile.gif[/img] |
#7
|
|||
|
|||
Update
Okay, I did what I should have done the first time around and added lot's of comments. The code is now much more readable and should be easy to modify/use in other scrips/whatever.
I improved the column resizing for Stud/Omaha; I do this better than Party now. [img]/images/graemlins/laugh.gif[/img] Also added hands/h, since requested. The instructions for image editing/resizing from version 2 still apply. I'm gonna edit on OC when I've finished my battle with the Wiki Sandbox [img]/images/graemlins/smile.gif[/img]; or can someone else do it, till I find the time? Enjoy. [img]/images/graemlins/smile.gif[/img] ;___________________MiniLobby V3__________________________________ ; Date: 2006-02-23 ; AutoHotkey Version: 1.0.42.03 ; Platform: WinXP ; Author: Roland WinWait, PartyPoker.com: ;_____script will keep waiting until you start Party WinGet, lobby_id, ID, PartyPoker.com: Poker Lobby ;____retrieve id to use later ;____make a list of all the controls we don't want: ;________these are the "menubar" buttons, excluding the "Game Rules&Options" button ControlList = AfxWnd4268,AfxWnd4269,AfxWnd4270,AfxWnd4272,AfxWnd 4273,AfxWnd4274 ;_______all those announcements, and, most importantly, "My Account" ,Internet Explorer_Server1,Internet Explorer_Server2,Internet Explorer_Server3 ;_______the 2 Afx's are New&Events, the Shell Docs are behind the IE servers ,Static6,Static7,Static8,AfxWnd422,AfxWnd423,Shell DocObject View1,Shell DocObject View2 ;_______...and the embeddings are behind the shell docs ,Shell DocObject View3,Shell Embedding2,Shell Embedding3,Shell Embedding5 ,AfxWnd4211,AfxWnd4214 ;____My Favorites and Open Table ;______move the controls out of sight and resize them to one pixel: Loop, Parse, ControlList, `, { ControlMove, %a_loopfield%, 1000, 1000, 1, 1, ahk_id%lobby_id% } ;___this is some kind of control that just serves as a background for all the other controls; we need it to cover the entire window: ControlMove, #327701, 0, 0, 1000, 1000 ;___we can ommit the window title since we're operating on the last found window ;___adjust the position and height of the Listview: ControlMove, SysListView321, 7, 30, , 145 ;___retrieve the height of the player name list... ControlGetPos, , , , h, SysListView322 ;___we want to adjust the height of the TreeView; but we have to alow for the height of the arrow bitmap ;so we use SysGet to retrieve it : SysGet, h_arrow, 20 ;____20 is SM_CYVSCROLL h := h - h_arrow - 2 ;apparently it's still not flush... two more pixels... ;___adjust the position and size of the TreeView (5 pixel margin to ListView) and make it the same height as the name list: ControlMove, SysTreeView321, 7, 180, 165, %h% ;___now move the player name list and adjust it's width (happens to be at the right x-position) ;___(I spent like 3 hours trying to get rid of the scroll bar; stupid me figuring I had to decrease the height ;___actually you have to increase it; (300 is just random)) ControlMove, SysListView322, 177, 180, 130, 300 ControlMove, SysListView323, 177, 180, 130, 300 ;___323 is the same for tourneys ;___and resize the columns: SendMessage, 4126, 0, 0, SysListView322, ahk_id%lobby_id% SendMessage, 4126, 1, 95, SysListView322, ahk_id%lobby_id% SendMessage, 4126, 2, 35, SysListView322, ahk_id%lobby_id% SendMessage, 4126, 0, 55, SysListView323, ahk_id%lobby_id% SendMessage, 4126, 1, 75, SysListView323, ahk_id%lobby_id% ;___move the Cash/Tourney/All buttons: y := 180 + h + 5 ;___y-position of TreeView plus height of TreeView plus margin ControlMove, AfxWnd428, , %y% ControlMove, AfxWnd429, , %y% ControlMove, AfxWnd4210, , %y% ;___move the Join Waitlist/Get off Waitlist buttons: ControlMove, AfxWnd4215, 177, %y% ;___177 is the position of ListView322/323 ControlMove, AfxWnd4216, 177, %y% ;___... and the Register Now /Tourney Lobby buttons: ControlMove, AfxWnd4219, 177, %y% ControlGetPos, , , w, h, AfxWnd4219 ;__height is used for the calculation of the window size later x := 177 + w + 5 ;___x-position plus width of the first button plus margin ControlMove, AfxWnd4220, %x%, %y% ;___move the remaining menubar button and resize it to 1 pixel: ControlMove, AfxWnd4271, 7, 30, 1, 1, ahk_id%lobby_id% ;___move the various filter buttons to their position next to the player list: ControlMove, AfxWnd4222, 312, 180 ControlMove, AfxWnd4223, 312, 180 ControlMove, AfxWnd4226, 312, 180 ControlMove, AfxWnd4227, 312, 180 ;___finally, resize the window: ControlGetPos, , , w, , SysListView321 h := h + y + 5 ; "h" is the height of the Join Wait list button retrieved above; "y" is it's y-position w := w + 7 + 7 WinMove, , , , , %w%, %h% ;___this just scrolls down by one line in the TreeView (avoids drawing problems) SendMessage, 0x115, 1, 0, SysTreeView321 ;___set our two timers: SysGet, scrollbar_w, 2 ;___2 is SM_CXVSCROLL; used to account for the scrollbar when resizing the column ;___the column sizes, excluding the table name column (we change the width depending on the presence of the scrollbar: column_sizes = 75,0,55,40,50,67 SetTimer, ResizeColumns, 1000 SetTimer, ShowAvg, 100 return ;______________end of auto-execute section___________________ ;______________hotkeys: ;____this toggles game info/players; for some reason it works for both tourneys and cash games even thought the controls have different names (?) !i:: ControlGet, is_vis, Visible, , SysListView322, ahk_id%lobby_id% If is_vis = 1 ControlClick, AfxWnd4213, ahk_id%lobby_id% else ControlClick, AfxWnd4212, ahk_id%lobby_id% return !m:: ControlClick, AfxWnd4271, ahk_id%lobby_id% return ;_____________subroutines: ResizeColumns: ;____only post our messages if we actually have to (i.e. if the limit has changed); posting those messages every other second might not be a good idea: ControlGet, limit, List, Col2, SysListView321, ahk_id%lobby_id% ;____could use just the selected row, but might not work for the LobbyControl script I'm writing StringGetPos, pos_linefeed, limit, `n StringLeft, limit, limit, %pos_linefeed% ControlGet, is_stud, List, Col3, SysListView321, ahk_id%lobby_id% ;___only neccessary for stud/omaha If (((InStr(is_stud, "Stud") <> 0 OR InStr(is_stud, "Omaha") <> 0)) AND (limit <> limit_prev)) { ControlGet, count, List, Count, SysListView321, ahk_id%lobby_id% If count < 9 SendMessage, 4126, 0, 135, SysListView321, ahk_id%lobby_id% else SendMessage, 4126, 0, 135 - scrollbar_w, SysListView321, ahk_id%lobby_id% ;____Parameters can be expressions, nice! Loop, Parse, column_sizes, `, SendMessage, 4126, a_index, a_loopfield, SysListView321, ahk_id%lobby_id% ;___and yeah, I'm anal limit_prev = %limit% } return ShowAvg: IfWinNotExist, Seat Available id_list = ;___probably not neccassary else { WinGet, id, List, Seat Available ;___there could be more than one Loop, %id% { StringTrimRight, this_id, id%a_index%, 0 If this_id in %id_list% ;___to avoid flickering from setting the same text every other second only do it once continue id_list = %id_list%,%this_id% target = %this_id% ;___retrieve the name of the table: ControlGetText, waitlist_dialog_text, Static1, ahk_id%target% StringGetPos, pos_on, waitlist_dialog_text, on StringGetPos, pos_brace, waitlist_dialog_text, ( StringMid, table_name, waitlist_dialog_text, pos_on + 4, pos_brace - (pos_on + 3) ;___look for it in the lobby: ControlGet, list, list, , SysListView321, ahk_id%lobby_id% Loop, Parse, list, `n { IfInString, a_loopfield, %table_name% { ;__columns are different for stud/omaha and holdem; we use the current game type from ResizeColumns: If game_type = stud tab = 6 else tab = 5 ;___retrieve the pot size: StringGetPos, pos_tab, a_loopfield, %a_tab%, L%tab% StringTrimLeft, pot_size, a_loopfield, pos_tab + 1 ;__retrieve hands/h: tab-- StringGetPos, pos_tab, a_loopfield, %a_tab%, L%tab% StringTrimLeft, hands, a_loopfield, pos_tab + 1 StringTrimRight, hands, hands, StrLen(pot_size) ;___put the info on the buttons: ControlSetText, Button1, %pot_size%, ahk_id%target% ControlSetText, Button2, %hands%, ahk_id%target% break ;___stop parsing the list and move on to the next window (if neccassary) } } } } return ;____end of code |
#8
|
|||
|
|||
Re: other proposal
Lol - you're re-inventing the wheel here. [img]/images/graemlins/laugh.gif[/img] Although the "click after two seconds-idea is new I believe. Thing is, this wouldn't be all that easy to do and I suspect it woun't be very functional either. A much better way to reduce the strain of using a mouse is to use the keybord or a joypad instead - do a search for MTH and AHK and you'll discover some interesting stuff, I promise. [img]/images/graemlins/grin.gif[/img]
MTH already does the move cursor to active table - thing btw. Any other questions, just ask. |
#9
|
|||
|
|||
Re: other proposal
[ QUOTE ]
Lol - you're re-inventing the wheel here. [img]/images/graemlins/laugh.gif[/img] Although the "click after two seconds-idea is new I believe. Thing is, this wouldn't be all that easy to do and I suspect it woun't be very functional either. A much better way to reduce the strain of using a mouse is to use the keybord or a joypad instead. . . [/ QUOTE ] Here's a quickie that might help mouse/KB users. . . how about a script that echoes a keypress (like space bar) into a mouseclick? Would that help you, PIF? |
#10
|
|||
|
|||
Re: other proposal
hi,
is it possible for you guys to create the files and post them here so that we can just copy and paste them into the party poker directory? i have no clue what to do, even after reading the instructions. thanks |
|
|