- Respond to events, creates frames, and use the WoW API to interact with the game
- Learn the Lua programming language through interactive examples, from values and variables to custom functions and control structures
- Write well-formed XML and validate using schemas
- Find specific functions easily in the comprehensive references of APIs, API categories, events, and widgets
- Create custom graphics, scroll frames, dropdown menus, and much more
A Note from the Publisher:
In the first printing, we mistakenly omitted the Authors’ Acknowledgements, which included the names of many World of Warcraft community members who helped bring this book to market. I want to publicly thank them for their efforts, and apologize for the omission, which will be corrected in the second printing.
It is the members of the WoW community that make Blizzard’s amazing game an even greater experience for millions of players around the world, and their efforts on this book are greatly appreciated.
From the Authors:
James and Lee Whitehead, thank you for standing behind me on everything that I’ve done throughout my wacky life. None of this would have been possible without the guidance and support that you've provided me. Michelle Hastings, thank you for finding a way to bridge a 5300 mile gap and still make me feel like I’m in your living room. Robert and Gregory Whitehead, thank you for sticking by me wherever I am and whatever I do without ever passing judgment. Tom Harper, thank you for letting me be a part of your life. Every single day with you is an adventure I can’t wait to begin, and you have changed my life forever.
Jamie Anderson and Edward Wilman, thank you for letting us invade your sanctuary and for being such good friends. Charlie Radcliffe, Björn Alfthan, Anne Christianson, and Chris McCabe, thank you for being great flatmates. Worcester College MCR, thank you for giving me a community of friends in a very foreign land.
Karen Hobson, thank you for being so helpful and supportive throughout the last two projects; you've helped keep me afloat. Sam Lantinga, thank you for all the time and effort you put into helping the World of Warcraft community. Kevin M. Kelly, thank you for your odd sleep patterns and availability; exploration of the unknown is always easier when you have a friend with a map. Daniel Stephens, thank you for your help digging through various parts of the API and for giving me a good jumping-off point for my data exploration.
Chris Webb, thank you for bringing this book and Hacking World of Warcraft into existence. Both books serve as great resources for the WoW UI community. Maryann Steinhart, thank you for your guidance through the entire process. Your feedback, as always, has proved instrumental to the process. Matthew and Bryan, for working with me on this extremely ambitious project, it’s definitely been a rollercoaster.
Thanks to everyone who kept me moving when I needed a push, and those who slowed me down when I needed a break. Thank you to all of my users for putting up with bugs and lack of updates while the book was still being written; your patience and support is what keeps me writing addons. Finally, thank you to all the members of the WoW UI community for everything you do.--Jim
First, I would like to thank all those involved with the book: Jim for inviting me to take part; Bryan for sticking with it through all his work pressures; Chris, Maryann, and the rest of the folks at Wiley for allowing this project to materialize. Thanks to Rick and Stephen for picking apart our work. Supreme thanks go to Iriel, AnduinLothar, Cladhaire, MentalPower, Esamynn, Beladona, Krka, Legorol, Shirik, Cidan, Kevin, Sam, and all the members of #wow-lounge for putting up with our incessant questions. Thank you to all the folks who helped us churn out the API docs at the 11th hour.
Thank you to PepsiCo and Rockstar, Inc., without whose caffeinated beverages I never would have completed my chapters. I'd also like to thank whoever made the massage pad I keep on my computer chair. The best go out to the folks behind "Brisco County Jr.," "Firefly," and every other television series that should’ve gone on for years. For entertaining me in my few breaks, xkcd.org, bash.org, Portal, World of Warcraft, "Bones," "Nip/Tuck," and "Mythbusters" have my undying gratitude. What thanks for a book of this nature would be complete without recognition of Blizzard for its wonderful product and incredible passion?
Special thanks go out to my de facto colleagues from the UI & Macros forum for their hard work, dedication, and flaming of people who didn’t read the stickies while I devoted my time to this project: Troodi, the nicest troll I’ve ever met; Jelly, enthusiastic ForumToCPoster user; Kamdis, female Draenei—@@'nuff said; Lunessa, my no. 1 supporter for my presidential bid; Lopeppeppy, whose name I can finally type from memory; Kaydeethree, with the best diagram of how to find stickies ever; Kelfarr, under people’s skin before he even posts; Alestane, unnervingly patient; Valaron, never met a better Orc; Lealla, yay drood!; Aella, whom I always confuse with Lealla; everybody else whom I forgot to name; and our Administratrix Extraordinaire, Cairenn, for holding everything together!
My deepest thanks go to my family for making me who I am, and, most important, to my wife, Juliella, thank you for supporting me in this endeavor even when it meant I had to put you on /ignore from time to time.--Matthew
Wanda and Joe Newman, for the hours you put up with me not being willing to get off the computer. Thanks for all the support over the years, and for buying me my first copy of VB when I was 15, and sorry for all the arguments. Willis McLemore, thanks for supporting me without ever expecting anything from me.
Brent Miller, for helping me really start out on this awesome journey. You helped guide me when I first got started doing WoW addons, and many of the things we talked about helped shape me as a professional coder. Thanks for the first versions of Ace and for shrugging off all that responsibility onto me when you left. Oh, and thanks for listening to me rant.
Jim Whitehead and Matthew Orlando, you have been better co-authors than anyone else can ask for. Thanks for putting up with me while I learned how to do this, and for handling the content that I had no clue about. Sorry again for the times when I got overwhelmed. Thanks to all the editors and support from Wiley for helping me get through this, and for putting up with me when I gave you problems.
PProvost, Ammo, Cladhaire, hyperChipmunk, kergoth, Mikk, Nargiddley, pastamancer, nevcairiel, Tekkub, Tem, vhaar, Wobin and the members of #wowace. Thanks for the ideas, inspiration, strife, and hard work. Thanks for helping WowAce grow to more than a million users and for all the great mods!
Shirik, Tekkub, Wobin, Mentalpower, Esamynn, Cide, Ammo, Nevcairiel, and Iriel (and any I have accidentally forgotten). Thank you for helping so much on the reference. We would never have been done in time without you.
Karen Hobson. You've been a friend to me during some of the darkest times in my life, and I'll always treasure your company and support. I don’t think it’d be possible for me to thank you enough.
Aidan McLemore, who still thinks Daddy can do anything. Last, but by no means least, Kristina McLemore. Thanks for believing in me and following me across the country, for always loving me, and for helping me but, most important, for not divorcing me during the production of this book.--Bryan
A special thanks is owed to a group of hard-working members of the user interface community, without whom the reference section of this book would not have been completed. Each of you truly stepped up when we needed your help, and we're extremely grateful for everything you've done for us. Thank you [Ammo], Beladona, Cide, Gazmik, JoshBorke, MentalPower, Nevcairiel, Shirik, Tem, and Wobin for giving us your time, and a little bit of your sanity.
Dan Fernandez, thank you for your work on the World of Warcraft AddOn Studio and your help in writing Chapter 14. We're hopeful that the software will continue to develop and mature as another tool in the addon author’s toolbox.