Close
Page 1 of 3 1 2 3 LastLast
Showing results 1 to 10 of 26
  1. #1

    Default [Addon] MultiBoxMacro v0.1

    So, I was toying around with libRpc/libTrust and I came up with this little beauty. It allows you to control all your macros from you main without switching windows (Which is a pain on my setup with the small alt windows).

    Here's a pic of it (Yes, I completely ripped off the UI from SuperMacro. No I don't feel bad).



    I'ts still in development, so if it screws up one of your macros, then don't yell at me. Always make a backup

    There's a bit of delay when refreshing an alt's macros or creating/deleting one (This is fixed in the development version). Editing is pretty much instant though. Be advised, it'll probably error if either you or the alt is in combat. Also, you'll need libRpc and libTrust, as I was too lazy to embed them.

    Oh right, how to use it:
    • You need to be in a party with your alts.
    • You need to setup your trust settings. You main needs to trust your alts, and your alts need to trust your main.
    • Then just type /mbm show


    I'll post the code for the interested/paranoid later.

    the download links are here:

    http://www.thekinfamily.com/MultiBoxMacro.zip - Stable release
    http://www.thekinfamily.com/MultiBoxMacro-0.2a.zip - Unstable development
    Tasirai (Prot Paladin) - Istaria (Holy Priest) - Satiria (Mage) - Atisria (Shadow Priest)

  2. #2

    Default

    Very cool! I'll have to give this a try.
    All my codes r belong to you: wow5box

  3. #3

    Default

    Code: (Sorry for the lack of useful commenting. I only worked on this yesterday, so it was a bit thrown together).

    Code:
    -- ****************************************
    -- * Library definitions                  *
    -- ****************************************
    local libTrust = LibStub("LibTrust-0.1")
    local libRpc = LibStub("LibRpc-0.2")
    
    -- ****************************************
    -- * Constants                            *
    -- ****************************************
    NUM_MACRO_ICONS_SHOWN = 30;
    NUM_ICONS_PER_ROW = 5;
    NUM_ICON_ROWS = 6;
    MACRO_ROW_HEIGHT = 36;
    MACRO_ICON_ROW_HEIGHT = 36;
    
    -- ****************************************
    -- * Ace3 addon creation line             *
    -- * - Only uses AceConsole ATM, though   *
    -- *   the plan is to use AceGUI for the  *
    -- *   GUI at some point                  *
    -- ****************************************
    MultiBoxMacro = LibStub("AceAddon-3.0"):NewAddon("MultiBoxMacro", "AceConsole-3.0")
    
    -- ****************************************
    -- * Command line setup                   *
    -- * - Options are "show" or "display"    *
    -- *   they both do the same thing        *
    -- ****************************************
    local options = {
        name = "MultiBoxMacro",
        handler = MultiBoxMacro,
        type = 'group',
        args = {
    		display = {
    			name = "display",
    			type = "execute",
    			func = "Display",
    		},
    		show = {
    			name = "show",
    			type = "execute",
    			func = "Display",
    		},
        },
    }
    
    -- ****************************************
    -- * Display method                       *
    -- * - Called by the command line option. *
    -- *   Displays the window                *
    -- ****************************************
    function MultiBoxMacro:Display()
        -- Show the window.
        MultiBoxMacroFrame:Show();
    end
    
    function MultiBoxMacro:OnInitialize()
        -- Register the command line options
        LibStub("AceConfig-3.0"):RegisterOptionsTable("MultiBoxMacro", options, {"multiboxmacro", "mbm"})
    end
    
    -- Macro Display functions
    
    MultiBoxMacro.cachedMacros = {};
    MultiBoxMacro.selectedMacro = -1;
    
    function MultiBoxMacro:ClearMacroButtons()
    	for i=1,36 do
    		local macroID = i;
    		getglobal("MultiBoxMacroButton"..macroID.."ID"):SetText(macroID);
    		local macroButton = getglobal("MultiBoxMacroButton"..macroID);
    		local macroIcon = getglobal("MultiBoxMacroButton"..macroID.."Icon");
    		local macroName = getglobal("MultiBoxMacroButton"..macroID.."Name");
    
    		macroButton:SetID(macroID);
    		macroIcon:SetTexture("");
    		macroName:SetText("");
    		macroButton:Enable();
    		macroButton:SetChecked(0);
    	end
    
    	self:SetSelectedMacro(-1);
    
       	MultiBoxMacroFrameSelectedMacroName:SetText("");
    	MultiBoxMacroFrameText:SetText("");
    	MultiBoxMacroFrameSelectedMacroButton:SetID(0);				
       	MultiBoxMacroFrameSelectedMacroButtonIcon:SetTexture("");
    end
    
    function MultiBoxMacro:SetMacroButtons(macros)
    	for i=1,36 do
    		local macroID = i;
    		getglobal("MultiBoxMacroButton"..macroID.."ID"):SetText(macroID);
    		local macroButton = getglobal("MultiBoxMacroButton"..macroID);
    		local macroIcon = getglobal("MultiBoxMacroButton"..macroID.."Icon");
    		local macroName = getglobal("MultiBoxMacroButton"..macroID.."Name");
    		
    		if macros[i] ~= 0 and macros[i] ~= -1 then
    			macroButton:SetID(macroID);
    			macroIcon:SetTexture(macros[i].texture);
    			macroName:SetText(macros[i].name);
    			macroButton:Enable();
    			-- Highlight Selected Macro
    			if ( i == MultiBoxMacro.selectedMacro ) then
    				macroButton:SetChecked(1);
        			MultiBoxMacroFrameSelectedMacroName:SetText(macros[i].name);
    				MultiBoxMacroFrameText:SetText(macros[i].body);
    				MultiBoxMacroFrameSelectedMacroButton:SetID(macroID);				
        			MultiBoxMacroFrameSelectedMacroButtonIcon:SetTexture(macros[i].texture);
    			else
    				macroButton:SetChecked(0);
    			end
    		else
    			macroButton:SetID(macroID);
    			macroIcon:SetTexture("");
    			macroName:SetText("");
    			macroButton:Enable();
    			macroButton:SetChecked(0);
    		end
    	end
    	
    	self:UpdateNewButtonStatus();
    end
    
    function MultiBoxMacro:UpdateNewButtonStatus()
    	self:UpdateNewAccountButtonStatus();
    	self:UpdateNewCharacterButtonStatus();
    end
    
    function MultiBoxMacro:UpdateNewAccountButtonStatus()
    	for i=1,18 do
    		if self.cachedMacros[self:GetNameFromTab()][i] == 0 then
    			MultiBoxMacroNewAccountButton:Enable();
    			return;
    		end
    	end	
    
    	MultiBoxMacroNewAccountButton:Disable();
    end
    
    function MultiBoxMacro:UpdateNewCharacterButtonStatus()
    	for i=1,18 do
    		if self.cachedMacros[self:GetNameFromTab()][i] == 0 then
    			MultiBoxMacroNewCharacterButton:Enable();
    			return;
    		end
    	end	
    
    	MultiBoxMacroNewCharacterButton:Disable();
    end
    
    -- Player Macro functions
    
    function MultiBoxMacro:LoadPlayerMacros()
    	local numAccountMacros, numCharacterMacros = GetNumMacros();
    	local numMacros = 0;
    	
    	self.cachedMacros["player"] = {}
    
    	for j=0, 18, 18 do
    		if ( j == 0 ) then
    			numMacros = numAccountMacros;
    		else
    			numMacros = numCharacterMacros;
    		end
    	
    		for i=1, 18 do
    			if i <= numMacros then
    				local thename, thetexture, thebody, theisLocal = GetMacroInfo(i+j);
    				--self:Print("Got macro info for"..thename);
    				self.cachedMacros["player"][i+j] = {
    					name = thename,
    					texture = thetexture,
    					body = thebody,
    					isLocal = theisLocal,
    				};
    			else
    				self.cachedMacros["player"][i+j] = 0;
    			end
    		end
    	end
    	
    	self:SetMacroButtons(self.cachedMacros["player"]);
    end
    
    -- Party Macro functions
    
    function MultiBoxMacro:LoadPartyMacros(member)
    	libRpc:RemoteCall(member, MBM_RPC_NumMacros, "GetNumMacros");
    end
    
    function MultiBoxMacro:EndLoadPartyMacros(member)
    	self:SetMacroButtons(self.cachedMacros[member]);
    end
    
    -- Selected macro management
    
    function MultiBoxMacro:SetSelectedMacro(index)
    	if index == -1 then
    		MultiBoxMacroDeleteButton:Disable();
    		MultiBoxMacroSaveButton:Disable();
    		MultiBoxMacroEditButton:Disable();
    	else
    		MultiBoxMacroDeleteButton:Enable();
    		MultiBoxMacroSaveButton:Enable();
    		MultiBoxMacroEditButton:Enable();
    	end
    	
    	MultiBoxMacroPopupFrame:Hide();
    	self.selectedMacro = index;
    end
    
    -- RPC callbacks
    
    function MBM_RPC_NumMacros(info)
    	local numAccountMacros, numCharacterMacros = unpack(info.rval);
    	
    	local numMacros = 0;
    	
    	MultiBoxMacro.cachedMacros[info.target] = {}
    
    	for j=0, 18, 18 do
    		if ( j == 0 ) then
    			numMacros = numAccountMacros;
    		else
    			numMacros = numCharacterMacros;
    		end
    	
    		for i=1, 18 do
    			if i <= numMacros then
    				MultiBoxMacro.cachedMacros[info.target][i+j] = -1;
    			else
    				MultiBoxMacro.cachedMacros[info.target][i+j] = 0;
    			end
    		end
    	end
    	
    	for j=0, 18, 18 do
    		if ( j == 0 ) then
    			numMacros = numAccountMacros;
    		else
    			numMacros = numCharacterMacros;
    		end
    	
    		for i=1, 18 do
    			if i <= numMacros then
    				libRpc:RemoteCall(info.target, MBM_RPC_MacroInfo, "GetMacroInfo", i+j);
    			end
    		end
    	end
    end
    
    function MBM_RPC_MacroInfo(info)
    
    	local id = unpack(info.args);
    	local thename, thetexture, thebody, theisLocal = unpack(info.rval);
    
    	MultiBoxMacro.cachedMacros[info.target][id] = {
    					name = thename,
    					texture = thetexture,
    					body = thebody,
    					isLocal = theisLocal,
    				};
    
    	if MultiBoxMacro:GetNameFromTab() == info.target then
    		MultiBoxMacro:SetMacroButtons(MultiBoxMacro.cachedMacros[info.target]);
    	end
    
    	for i=1,36 do
    		if MultiBoxMacro.cachedMacros[info.target][i] == -1 then
    			return;
    		end
    	end
    	
    	if MultiBoxMacro:GetNameFromTab() == info.target then
    		MultiBoxMacro:EndLoadPartyMacros(info.target)
    	end
    end
    
    function MBM_RPC_CreateMacro(info)
    	local id = unpack(info.rval);
    	local thename, icon, thebody, theisLocal = unpack(info.args);
    	local thetexture = GetMacroIconInfo(icon);
    	
    	MultiBoxMacro.cachedMacros[info.target][id] = {
    					name = thename,
    					texture = thetexture,
    					body = thebody,
    					isLocal = theisLocal,
    				};
    				
    	MultiBoxMacro:SetSelectedMacro(id);
    	MultiBoxMacro:LoadPartyMacros(info.target);
    end
    
    -- Main Frame methods
    
    function MultiBoxMacro:Frame_OnShow()
    	self.Tab = 0;
    	MultiBoxMacro:OnTabChange(1);
    	
    	MultiBoxMacroFrameTab1:SetText(UnitName("player"));
    	
    	for i=1,4 do
    		if UnitExists("party"..i) then
    			if libTrust:IsAllowed(UnitName("party"..i)) then
    				getglobal("MultiBoxMacroFrameTab"..(i+1)):Show();
    				getglobal("MultiBoxMacroFrameTab"..(i+1)):SetText(UnitName("party"..i));
    			else
    				getglobal("MultiBoxMacroFrameTab"..(i+1)):Hide();
    			end
    		else
    			getglobal("MultiBoxMacroFrameTab"..(i+1)):Hide();
    		end
    	end
    end
    
    function MultiBoxMacro:Frame_OnHide()
    	MultiBoxMacroPopupFrame:Hide();
    	self.cachedMacros = {};
    end
    
    --Tab methods
    
    MultiBoxMacro.Tab = 1
    
    function MultiBoxMacro:OnTabChange(selectedTab)
    	if selectedTab ~= self.Tab then
    
    		self.Tab = selectedTab
    
    		if self.Tab == 1 then
    			MultiBoxMacroRefreshButton:Disable();
    		else
    			MultiBoxMacroRefreshButton:Enable();
    		end
    		
    		self:ClearMacroButtons();
    		
    		if self.Tab == 1 then
    			if self.cachedMacros["player"] == nil then
    				self:LoadPlayerMacros();
    			else
    				self:SetMacroButtons(self.cachedMacros["player"]);
    			end
    			MultiBoxMacroFrameCharacterMacroText:SetText(UnitName("player").."'s Macros");
    		else
    			if self.cachedMacros[self:GetNameFromTab()] == nil then
    				self:LoadPartyMacros(self:GetNameFromTab());
    			else
    				self:SetMacroButtons(self.cachedMacros[self:GetNameFromTab()]);
    			end
    			MultiBoxMacroFrameCharacterMacroText:SetText(self:GetNameFromTab().."'s Macros");
    		end
    	end
    end
    
    function MultiBoxMacro:GetNameFromTab()
    	if self.Tab == 1 then
    		return "player";
    	else
    		return UnitName("party"..(self.Tab-1));
    	end
    end
    Tasirai (Prot Paladin) - Istaria (Holy Priest) - Satiria (Mage) - Atisria (Shadow Priest)

  4. #4

    Default

    Code (cont):

    Code:
    --Button methods
    
    function MultiBoxMacro:RefreshButton_OnClick()
    	if self.Tab == 1 then
    		self:LoadPlayerMacros();
    	else
    		self:LoadPartyMacros(self:GetNameFromTab());
    	end
    end
    
    function MultiBoxMacro:MacroButton_OnClick(mbutton, id)
    
    	if mbutton ~= "LeftButton" then
    		return;
    	end
    	
    	local macroButton = getglobal("MultiBoxMacroButton"..id);
    	local macroIcon = getglobal("MultiBoxMacroButton"..id.."Icon");
    	local macroName = getglobal("MultiBoxMacroButton"..id.."Name");
    
    	if self.cachedMacros[self:GetNameFromTab()][id] == 0 or self.cachedMacros[self:GetNameFromTab()][id] == -1 then
    		if MultiBoxMacro.selectedMacro ~= -1 then
    			getglobal("MultiBoxMacroButton"..MultiBoxMacro.selectedMacro):SetChecked(0);
    		end
    
    		self:SetSelectedMacro(-1);
    
    		macroButton:SetChecked(0);
    
        	MultiBoxMacroFrameSelectedMacroName:SetText("");
    		MultiBoxMacroFrameText:SetText("");
    		MultiBoxMacroFrameSelectedMacroButton:SetID(0);				
        	MultiBoxMacroFrameSelectedMacroButtonIcon:SetTexture("");
        	
        	return;
    	end
    
    	if ( id ~= MultiBoxMacro.selectedMacro ) then
    		if MultiBoxMacro.selectedMacro ~= -1 then
    			getglobal("MultiBoxMacroButton"..MultiBoxMacro.selectedMacro):SetChecked(0);
    		end
    		
    		self:SetSelectedMacro(id);
    		
    		macroButton:SetChecked(1);
        	
        	MultiBoxMacroFrameSelectedMacroName:SetText(self.cachedMacros[self:GetNameFromTab()][id].name);
    		MultiBoxMacroFrameText:SetText(self.cachedMacros[self:GetNameFromTab()][id].body);
    		MultiBoxMacroFrameSelectedMacroButton:SetID(id);				
        	MultiBoxMacroFrameSelectedMacroButtonIcon:SetTexture(self.cachedMacros[self:GetNameFromTab()][id].texture);
    	else
    		self:SetSelectedMacro(-1);
    
    		macroButton:SetChecked(0);
    
        	MultiBoxMacroFrameSelectedMacroName:SetText("");
    		MultiBoxMacroFrameText:SetText("");
    		MultiBoxMacroFrameSelectedMacroButton:SetID(0);				
        	MultiBoxMacroFrameSelectedMacroButtonIcon:SetTexture("");
    	end
    end
    
    function MultiBoxMacro:SaveButton_OnClick()
    	if self.selectedMacro ~= -1 then
    		if self.Tab == 1 then
    			EditMacro(self.selectedMacro, nil, nil, MultiBoxMacroFrameText:GetText());
    		else
    			libRpc:RemoteCall(self:GetNameFromTab(), nil, "EditMacro", self.selectedMacro, nil, nil, MultiBoxMacroFrameText:GetText());
    		end
    		
    		self.cachedMacros[self:GetNameFromTab()][self.selectedMacro].body = MultiBoxMacroFrameText:GetText();
    	end
    end
    
    function MultiBoxMacro:EditNameIconButton_OnClick()
    	if self.selectedMacro ~= -1 then
    		self.NameIconMode = "edit";
    		MultiBoxMacroPopupFrame:Show();
    	end
    end
    
    function MultiBoxMacro:DeleteButton_OnClick()
    	if self.selectedMacro ~= -1 then
    		local macroButton = getglobal("MultiBoxMacroButton"..(self.selectedMacro));
    
    		macroButton:SetChecked(0);
    
        	MultiBoxMacroFrameSelectedMacroName:SetText("");
    		MultiBoxMacroFrameText:SetText("");
    		MultiBoxMacroFrameSelectedMacroButton:SetID(0);				
        	MultiBoxMacroFrameSelectedMacroButtonIcon:SetTexture("");
    
    		if self.Tab == 1 then
    			DeleteMacro(self.selectedMacro);
    			self:SetSelectedMacro(-1);
    		else
    			libRpc:RemoteCall(self:GetNameFromTab(), nil, "DeleteMacro", self.selectedMacro);
    			self:SetSelectedMacro(-1);
    		end
    		
    		self:RefreshButton_OnClick();
    	end
    end
    
    function MultiBoxMacro:NewAccountButton_OnClick()
    	self:SetSelectedMacro(-1);
    	self.NameIconMode = "newAccount";
    	MultiBoxMacroPopupFrame:Show();
    end
    
    function MultiBoxMacro:NewCharacterButton_OnClick()
    	self:SetSelectedMacro(-1);
    	self.NameIconMode = "newCharacter";
    	MultiBoxMacroPopupFrame:Show();
    end
    
    -- PopUp Fram methods
    
    function MultiBoxMacro:PopupFrame_OnShow()
    	if self.NameIconMode == "edit" then
    		MultiBoxMacroPopupEditBox:SetText(MultiBoxMacroFrameSelectedMacroName:GetText());
    	end
    
    	MultiBoxMacro.selectedIcon = -1;
    	
    	MBM_PopupScrollFrame_Update();
    end
    
    function MultiBoxMacro:PopupFrame_OnHide()
    	self.NameIconMode = nil;
    end
    
    -- PopUp Button methods
    
    function MultiBoxMacro:PopupOkayButton_OnClick()
    	if self.selectedMacro ~= -1 then
    	
    		local selicon = nil;
    	
    		if self.selectedIcon ~= -1 then
    			selicon = self.selectedIcon;
    		end
    	
    		if self.Tab == 1 then
    			EditMacro(self.selectedMacro, MultiBoxMacroPopupEditBox:GetText(), selicon, nil);
    		else
    			libRpc:RemoteCall(self:GetNameFromTab(), nil, "EditMacro", self.selectedMacro, MultiBoxMacroPopupEditBox:GetText(), selicon, nil);
    		end
    		
    		MultiBoxMacroFrameSelectedMacroName:SetText(MultiBoxMacroPopupEditBox:GetText());
    		self.cachedMacros[self:GetNameFromTab()][self.selectedMacro].name = MultiBoxMacroPopupEditBox:GetText();
    		
    		if self.selectedIcon ~= -1 then
    			self.cachedMacros[self:GetNameFromTab()][self.selectedMacro].texture = GetMacroIconInfo(self.selectedIcon);
    		end
    	else
    		local perCharacterMode = 0;
    		
    		if self.NameIconMode == "newCharacter" then
    			perCharacterMode = 1;
    		end
    			
    		if self.Tab == 1 then
    			local createdmacro = CreateMacro(MultiBoxMacroPopupEditBox:GetText(), self.selectedIcon, "", 1, perCharacterMode);
    			self:LoadPlayerMacros();
    			self:SetSelectedMacro(createdmacro);
    		else
    			libRpc:RemoteCall(self:GetNameFromTab(), MBM_RPC_CreateMacro, "CreateMacro", MultiBoxMacroPopupEditBox:GetText(), self.selectedIcon, "", 1, perCharacterMode);
    		end
    
    	end
    	
    	MultiBoxMacroPopupFrame:Hide();
    	local tempselected = self.selectedMacro;
    	self:SetMacroButtons(self.cachedMacros[self:GetNameFromTab()]);
    	self:SetSelectedMacro(tempselected);
    end
    
    function MultiBoxMacro:PopupOkayButton_Update()
    	if MultiBoxMacroPopupEditBox:GetText() ~= "" then
    		if self.NameIconMode == "edit" or self.selectedIcon ~= -1 then
    			MultiBoxMacroPopupOkayButton:Enable();
    		end
    	else
    		MultiBoxMacroPopupOkayButton:Disable();
    	end
    end
    
    function MultiBoxMacro:PopupButton_OnClick(id)
    	self.selectedIcon = this:GetID() + (FauxScrollFrame_GetOffset(MultiBoxMacroPopupScrollFrame) * NUM_ICONS_PER_ROW);
    	self:PopupOkayButton_Update()
    end
    
    -- Icon update for scrolling and such
    
    MultiBoxMacro.selectedIcon = -1;
    
    function MBM_PopupScrollFrame_Update()
    	local numMacroIcons = GetNumMacroIcons();
    	local macroPopupIcon, macroPopupButton;
    	local macroPopupOffset = FauxScrollFrame_GetOffset( MultiBoxMacroPopupScrollFrame );
    	local index;
    	
    	-- Icon list
    	for i=1, NUM_MACRO_ICONS_SHOWN do
    		macroPopupIcon = getglobal("MultiBoxMacroPopupButton"..i.."Icon");
    		macroPopupButton = getglobal("MultiBoxMacroPopupButton"..i);
    		index = (macroPopupOffset * NUM_ICONS_PER_ROW) + i;
    		if ( index <= numMacroIcons ) then
    			macroPopupIcon:SetTexture(GetMacroIconInfo(index));
    			macroPopupButton:Show();
    		else
    			macroPopupIcon:SetTexture("");
    			macroPopupButton:Hide();
    		end
    		if ( index == MultiBoxMacro.selectedIcon ) then
    			macroPopupButton:SetChecked(1);
    		else
    			macroPopupButton:SetChecked(nil);
    		end
    	end
    	
    	-- Scrollbar stuff
    	FauxScrollFrame_Update(MultiBoxMacroPopupScrollFrame, ceil(numMacroIcons / NUM_ICONS_PER_ROW) , NUM_ICON_ROWS, MACRO_ICON_ROW_HEIGHT );
    end
    Tasirai (Prot Paladin) - Istaria (Holy Priest) - Satiria (Mage) - Atisria (Shadow Priest)

  5. #5

    Default

    Ooooooh! Looking nice
    [align=center]1--------10---------20------27--30---------40---------50---------60---------70
    This Multi-Boxer was brought to you by Keyclone
    [/align]

  6. #6

    Default

    Been doing some performance tweaks for a new version, anyone out there running this? Was hoping for some bug reports
    Tasirai (Prot Paladin) - Istaria (Holy Priest) - Satiria (Mage) - Atisria (Shadow Priest)

  7. #7

    Default

    I'll install it today.

    Main - Lootdrone lvl70 Mage Bloodscalp 5box - Tioget, Tiodrone, Tioluv, Tiogriz, Tiobuzz q9450 - 4gb ram - 8800gt 512 - 400gb hd - 500gb hd

  8. #8

    Default

    Butting my head at the wall here.

    Installed it on my 5 toons, and it works on only one. Copied the addon folder from that toon to another, and cleared the savedvariables. still no go.

    Got a error saying: [string "MultiBoxMacroframe.OnLoad"];|;attempt to index global 'MultiBoxMacro' (a nil value)

    Looks nice on the toon it is working on tho..... Looking forward to using it on all 5. Going to make my life so much easier.
    EU-Eonar-PvE

    ---------10-------X-20---------30---------40---------50---------60---------70
    Palladin, Priest, Mage, Mage, Mage

  9. #9

    Default

    Do you have libRpc/libTrust installed on all the toons?
    Tasirai (Prot Paladin) - Istaria (Holy Priest) - Satiria (Mage) - Atisria (Shadow Priest)

  10. #10

    Default

    And if so do you have any other addons that use LibTrust installed?
    All my codes r belong to you: wow5box

Similar Threads

  1. I need a new addon
    By Catamer in forum Software Tools
    Replies: 5
    Last Post: 03-01-2009, 02:15 PM
  2. Addon Question, Limit addon to one character?
    By delafoo in forum Macros and Addons
    Replies: 1
    Last Post: 02-15-2009, 10:35 PM
  3. [Addon] OhNoes: Screen Coloring/Alert addon. Updated!
    By Depherios in forum Macros and Addons
    Replies: 18
    Last Post: 08-04-2008, 01:54 PM
  4. Addon
    By strat1219 in forum New Multi-Boxers & Support
    Replies: 1
    Last Post: 06-17-2008, 07:06 PM
  5. Anyone know of an addon that can ...
    By shocktrot in forum Macros and Addons
    Replies: 2
    Last Post: 12-30-2007, 12:57 AM

Posting Rules

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •