Queuing for battlegrounds - out of process menu

Shout-Out

User Tag List

Results 1 to 7 of 7
  1. #1
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)

    Queuing for battlegrounds - out of process

    So I've been trying to find a proper method to queue for a battleground out of process, I can open the honor tab easily enough, and can scroll up/down in that window. But I'm unable to determine which battlegrounds the buttons represent.

    Has anyone done work on this? I was thinking there would be a pointer off of the PVPHonorFrameBgButton1, PVPHonorFrameBgButton2, etc... buttons that indicate which battleground is indicated, but I couldn't find a text pointer (or even a difference in integer values) at all, or I completely missed it.

    Anyone have any other ideas? I thought about going the macro route, but it's quite long and typing that out each time seems quite inefficient vs. clicking.

    Thanks!
    ~ Tanaris
    https://tanaris4.com

    Queuing for battlegrounds - out of process
  2. #2
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    https://tanaris4.com

  3. #3
    TOM_RUS's Avatar Legendary
    Reputation
    914
    Join Date
    May 2008
    Posts
    699
    Thanks G/R
    0/52
    Trade Feedback
    0 (0%)
    Mentioned
    1 Post(s)
    Tagged
    0 Thread(s)
    Index of those buttons should match arguments of lua funtions GetWorldPVPAreaInfo, GetBattlegroundInfo.

    And there's some info stored in those buttons:
    Code:
    frame = _G["PVPHonorFrameBgButton"..currentFrameNum];
    ...
    frame.pvpID = pvpID;
    frame.localizedName = localizedName;
    frame.isWorldPVP = isWorldPVP;
    ...
    so you should be able to find those values in memory.

    Code:
    function PVPHonor_UpdateBattlegrounds()
    	local frame, _;
    	local localizedName, canEnter, isHoliday;
    	local pvpID, isActive, canQueue, startTime;
    	local tempString, isBig, isWorldPVP;
    	
    	local offset = FauxScrollFrame_GetOffset(PVPHonorFrameTypeScrollFrame);
    	local currentFrameNum = 1;
    	local availableBGs = 0;
    	
    	local numWorldPvP = GetNumWorldPVPAreas();
    	local numBgs = GetNumBattlegroundTypes();
    	local numTypes = numWorldPvP + numBgs ;
    	
    	for i=1,numTypes do
    		frame = _G["PVPHonorFrameBgButton"..currentFrameNum];
    		
    		if  i <=  numWorldPvP then
    			isHoliday = false;
    			_, localizedName, isActive, canQueue, startTime, canEnter = GetWorldPVPAreaInfo(i);
    			pvpID = i;
    			isWorldPVP = true;
    		else
    			pvpID = i-numWorldPvP;
    			isActive = false;
    			canQueue = true;
    			startTime = -1;
    			localizedName, canEnter, isHoliday = GetBattlegroundInfo(i-numWorldPvP);
    			isWorldPVP = false
    		end
    		
    		if ( localizedName and canEnter ) then
    			if offset > 0 then
    				offset = offset -1;
    			elseif ( frame ) then
    				frame.pvpID = pvpID;
    				frame.localizedName = localizedName;
    				frame.isWorldPVP = isWorldPVP;
    				
    				if canQueue then
    					frame:Enable();
    					if ( not PVPHonorFrame.selectedButtonIndex ) then
    						frame:Click();
    					end
    				else
    					frame:Disable();
    					localizedName = GRAY_FONT_COLOR_CODE..localizedName;
    				end
    				tempString = localizedName;
    				
    				if isWorldPVP then
    					frame:SetScript("OnUpdate", PVPHonor_UpdateWorldPVPTimer);
    					frame.timeStep = 0;
    					frame.worldIndex = i;
    				else
    					frame:SetScript("OnUpdate", nil);
    				end
    				
    				if ( isHoliday ) then
    					tempString = tempString.." ("..BATTLEGROUND_HOLIDAY..")";
    				end
    				
    				if ( isActive ) then
    					tempString = tempString.." ("..WINTERGRASP_IN_PROGRESS..")";
    				elseif ( startTime > 0 ) then
    					tempString = tempString.." ("..SecondsToTime(startTime)..")";
    				end
    				
    				if PVPHonorFrame.selectedPvpID ==  frame.pvpID and PVPHonorFrame.selectedIsWorldPvp == isWorldPVP then
    					frame:LockHighlight();
    				else
    					frame:UnlockHighlight();
    				end
    					
    				frame.title:SetText(tempString);
    				frame:Show();
    				currentFrameNum = currentFrameNum + 1;
    			end
    			availableBGs = availableBGs + 1;
    		end
    	end
    	
    	if ( currentFrameNum <= NUM_DISPLAYED_BATTLEGROUNDS ) then
    		isBig = true;	--Espand the highlight to cover where the scroll bar usually is.
    	end
    	
    	for i=1,NUM_DISPLAYED_BATTLEGROUNDS do
    		frame = _G["PVPHonorFrameBgButton"..i];
    		if ( isBig ) then
    			frame:SetWidth(BG_BUTTON_WIDTH);
    		else
    			frame:SetWidth(BG_BUTTON_SCROLL_WIDTH);
    		end
    	end
    	
    	for i=currentFrameNum,NUM_DISPLAYED_BATTLEGROUNDS do
    		frame = _G["PVPHonorFrameBgButton"..i];
    		frame:Hide();
    	end
    	
    	PVPHonor_UpdateQueueStatus();
    	
    	PVPHonorFrame_UpdateGroupAvailable();
    	FauxScrollFrame_Update(PVPHonorFrameTypeScrollFrame, availableBGs, NUM_DISPLAYED_BATTLEGROUNDS, 16);
    end
    Last edited by TOM_RUS; 05-10-2012 at 11:24 AM.

  4. #4
    guizmows's Avatar Banned
    Reputation
    57
    Join Date
    Feb 2008
    Posts
    414
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    you are welcome Tanaris. I'm glad it helps you.

  5. #5
    demonguy's Avatar Member
    Reputation
    2
    Join Date
    Feb 2012
    Posts
    111
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Code:
    RequestBattlegroundInstanceInfo(5)
    JoinBattlefield(1)
    This code will join Arathi Basin....
    I didn't look into the "RequestBattlegroundInstanceInfo" API,
    But if you want to run out of process...you can go to look what does it do....

    Em...Maybe Click the button directly is easier....But you can extract All Blz source Frame codes by typing "ExportInterfaceFiles code" in the console mode in WOW
    just start "Start "G:\World of Warcraft\Wow.exe -console"" and press "~"(on the left of key "1") And type it ...
    Last edited by demonguy; 05-10-2012 at 11:44 AM.

  6. #6
    Tanaris4's Avatar Contributor Authenticator enabled
    Reputation
    148
    Join Date
    Oct 2008
    Posts
    646
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by TOM_RUS View Post
    Index of those buttons should match arguments of lua funtions GetWorldPVPAreaInfo, GetBattlegroundInfo.

    And there's some info stored in those buttons:
    Code:
    frame = _G["PVPHonorFrameBgButton"..currentFrameNum];
    ...
    frame.pvpID = pvpID;
    frame.localizedName = localizedName;
    frame.isWorldPVP = isWorldPVP;
    ...
    so you should be able to find those values in memory.
    Any reco on how I can find this? I looked at the 5 UI buttons and compared them to each other in CE (results here: 0000 - Pointer ->00978848 ->00978848 ->00978848 - Pastebin.com), and of course I couldn't find the values anywhere. These:
    Code:
            public enum BattlegroundType : int
            {
                UNKNOWN = 0,
                ALTERAC_VALLEY = 1,
                WARSONG_GULCH = 2,
                ARATHI_BASIN = 3,
                EYE_OF_THE_STORM = 7,
                STRAND_OF_THE_ANCIENTS = 9,
                ISLE_OF_CONQUEST = 30,
                TWIN_PEAKS = 108,
                THE_BATTLE_FOR_GILNEAS = 120,
                RANDOM = 32,
    
            }
    https://tanaris4.com

  7. #7
    mrdennis87's Avatar Member Authenticator enabled
    Reputation
    1
    Join Date
    Feb 2012
    Posts
    36
    Thanks G/R
    0/0
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I am not sure if you have figured anything out on it yet. But to do it out of process, You can use sendkeys to type in the chat window, and hit enter. Doing it this way is out of process. Here is an example of a code.. it is in vb6 (that's what my bot is made in) ..

    AppActivate ("World of Warcraft")
    Pause (1)
    Call MySendKeys("h")
    Pause (1)
    Call MySendKeys("~/click PVPHonorFrameTypeScrollFrameScrollBarScrollUpButton~")
    Pause (0.5)

    Call MySendKeys("~/click PVPHonorFrameTypeScrollFrameScrollBarScrollUpButton~")
    Pause (0.5)

    Call MySendKeys("~/click PVPHonorFrameTypeScrollFrameScrollBarScrollUpButton~")
    Pause (0.5)

    Call MySendKeys("~/click PVPHonorFrameTypeScrollFrameScrollBarScrollDownButton~")
    DoEvents
    Pause (1)
    Call MySendKeys("~/click PVPHonorFrameTypeScrollFrameScrollBarScrollDownButton~")
    DoEvents
    Pause (1)
    Call MySendKeys("~/click PVPHonorFrameBgButton5~") ' Clicks the bg listed at the bottom of the list ( it's the index of the listbox fo the bg's) <current index is 5
    DoEvents
    Pause (1)
    Call MySendKeys("~/click PVPFrameLeftButton~") ' clicks the join bg button =)
    DoEvents

    In my code, I had it scroll all the way up, to kind of reset it. Then it scrolls down however many times it needs to, to have the bg I want at the bottom of the list. You can always change the index, etc.. but this is basic code to help you out. I hope it helps..

Similar Threads

  1. Replies: 0
    Last Post: 10-22-2015, 08:54 AM
  2. Info for people writing "out-of-process" bots
    By Cypher in forum WoW Memory Editing
    Replies: 58
    Last Post: 01-11-2010, 09:07 PM
  3. Tips for renting out an account to gold farmers.
    By jtz in forum World of Warcraft Guides
    Replies: 12
    Last Post: 12-11-2007, 06:11 AM
  4. Reset Trinket Timers for Battlegrounds
    By Guzey in forum World of Warcraft Guides
    Replies: 7
    Last Post: 11-28-2007, 04:45 PM
  5. VW Sacrifices good for getting out of tight places
    By Nightmare34 in forum World of Warcraft Exploits
    Replies: 1
    Last Post: 12-31-2006, 02:23 PM
All times are GMT -5. The time now is 08:42 AM. Powered by vBulletin® Version 4.2.3
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Google Authenticator verification provided by Two-Factor Authentication (Free) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search