16,957 Downloads Last Updated: Jan 9, 2007 Game Version: 2.0.1  

This project is abandoned and its default file will likely not work with the most recent version of World of Warcraft. Whether this project is out of date or its author has marked it as abandoned, this project is no longer maintained.

WeaponQuickSwap - v31

Quick Start
Unzip the contents of the zip archive into your WoW Interface\AddOns
directory. Make sure you "Use folder names" so the files end up in
the right place. You should end up with:

Now log into your character and go to the Main Menu in-game. Select
macros and add a New macro. Give it a name and an icon and make the
macro text:
/script WeaponSwap("main1", "off1", "main2", "off2", ...);

Parameters are CASE-SENSITIVE:
main1 - What weapon you want in your main hand for set 1.
off1 - What weapon you want in your off hand for set 1.

The following 2 parameters are optional:
main2 - What weapon you want in your main hand for set 2.
off2 - What weapon you want in your off hand for set 2.
(more sets can be specified if desired)

Mages wishing to wield a 2h in their main and a wand in the ranged slot
should use MageWeaponSwap() instead of WeaponSwap().

This Add-on adds two functions to the scripting namespace called:

The arguments are pairs of weapons to be held in the main hand and off
hand respectively. For example, if you want to put a "Sword of the
Black Knight" in your main, and a "Johnsonville Brat" in the off-hand,
that is:
/script WeaponSwap("Sword of the Black Knight",
"Johnsonville Brat");

But you're thinking. "Bry, I could already do that pretty easily."
The fun is that you can specify a second set of equipment to be swapped
in if the first is already in place. This macro would switch between
just holding a "Sharpened Letter Opener" in the main hand (nothing
off-hand) and two "Mace of Ultimate Whompitude" in each hand.
/script WeaponSwap("Sharpened Letter Opener", "",
"Mace of Ultimate Whompitude", "Mace of Ultimate Whompitude");

If you do not wish to change whatever is in that a slot, a wildcard
character "*" can be used.
/script WeaponSwap("Sword", "Dagger1", "Dagger2", "*");
Leaves Dagger1 in offhand when switching to set 2. Note that you can
get yourself in trouble if you use too many wildcards:
/script WeaponSwap("*", "Dagger1", "Sword", "*");
That probsbly won't do anything once the Sword is in the main and the
dagger is in the offhand. Think your wildcard usage through.

Note: As as design decision, the names are CASE SENSITIVE.
"Misspelled Swoard" and "misspelled swoard" are not the same. Type it
exactly as it appears in your inventory. I did it this way to avoid
lowercasing a bunch of immutable strings every time you want to switch.

Interesting facts about this script:
-- Slot lock events are used to detect when it is safe to move a
weapon. Prevents hang ups found in other scripts and Add-ons.
-- Uses LinkText to detect item names rather that creating a
GameToolTip descendant. More efficient? Hells yeah.

If you get an error using this, make sure you report it with your macro
line *as well as* the position of where the items where before you ran
the macro.

More examples
---- --------
Just a 2h:
/script WeaponSwap("2h");

2h to 1h/shield:
/script WeaponSwap("2h", "", "1h", "shield");

To swap dual wield hands:
/script WeaponSwap("Hammer", "Dagger", "Dagger", "Hammer");

2h to DW:
/script WeaponSwap("2h", "", "Weap1", "Weap2");

DW to Backstab/Ambush
/script WeaponSwap("Weap1", "Weap2", "Dagger", "fish");

Switch between 3 sets of weapons (ss/dw/2h):
/script WeaponSwap("shortsword", "shield", "shortsword", "knife", "2h Hammer");

Staff and Wand to Staff and another Wand:
/script MageWeaponSwap("Smackem Staff", "Wand of the Fleeting",
"Smackem Staff", "Tinkerbell's Fairy Wand");

Drunk to Billigerent:
/script WeaponSwap("Tankard of Ale", "Tankard of Ale",
"Mace of Antioch", "Sword of Barroom Brawl");

Q1. How do I make a macro to switch to a dagger in my main hand,
backstab, then put my weapons back?
A. Short Answer: you cannot.
Long Answer: Switching weapons is not what we call a "synchronous"
event. When you say WeaponSwap() it *requests* that the weapons
swap and returns to your macro. The actual weapons get in your
hands at some point P in the future.
Can such a macro be written? Not since patch like 1.8 where
cast actions can not be scripted from an event handler.

Q2. How do I use a weapon that has an apostrophe in the name? Such
as a Tyr's Hand?
A. Just use double quotes around the item name instead of single:
/script WeaponSwap("Tyr's Hand", "");

Q3. WeaponSwap stopped working mid-game! What do I do?
A. This has been reported to occur, but I have not been able to
reproduce the problem. If it happens to you do any of the following:
/script WeaponSwap_Reset()
OR /console reloadui
OR /script ReloadUI()

** CapnBry <bmayland@capnbry.net> **


  • To post a comment, please or register a new account.
Posts Quoted: