World of Warcraft Programming: A Guide and Reference for Creating WoW Addonsby James Whitehead II, Bryan McLemore, Matthew Orlando
"WoW" is what you’ll say when you see how many ways you can tweak the World of Warcraft interface after you read this book! If you're new to programming, we'll teach you the basics of Lua and XML and walk you through writing your first addon. If you already have some original addons in your arsenal, jump right into Parts III and IV and work with templates,
"WoW" is what you’ll say when you see how many ways you can tweak the World of Warcraft interface after you read this book! If you're new to programming, we'll teach you the basics of Lua and XML and walk you through writing your first addon. If you already have some original addons in your arsenal, jump right into Parts III and IV and work with templates, function hooking, custom graphics, state headers, and more. We'll even help you distribute your addons, making WoW better for everybody.
- 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.
- Publication date:
- Product dimensions:
- 7.32(w) x 9.30(h) x 1.84(d)
Read an Excerpt
Meet the Author
James Whitehead II is the author of a number of popular addons for World of Warcraft such as PerfectRaid, Clique, LightHeaded, TomTom, and many other small addons available at www.wowinterface.com. He has been an active member of both the WoW UI and the Lua communities since the World of Warcraft Beta began and has been writing addons since. When he actually has time to play the game, you can find him playing one of his many characters on the Stormrage (US) server, or feverishly leveling his characters on Ravencrest (EU).
Jim is a graduate of Syracuse University where he completed both his BSc and MSc in computer science. He is currently pursuing his DPhil in computer science at the University of Oxford, where he is also the teaching assistant for the Computing Laboratory. In his spare time, he enjoys rowing competitively for Worcester College and stabbing his friends in the back playing Munchkin.
Bryan McLemore has been a member of the UI community since early 2005. After creating KC_AutoRepair, he went on to co-found the Ace Project and WowAce.com as Kaelten alongside Brent Miller (Turan in the UI community). Following Brent’s official departure from WoW, Bryan found himself having to devote more and more time to WowAce and less to his addons; however, he refuses to give up on OneBag and KC_Items. When he actually manages to spend time playing World of Warcraft, he plays one of his many alts on the US server Whisperwind.
In the remainder of his free time, he is leading the development of Ace3 and working on plans for his addons, along with a few websites he would like to see developed. Bryan recently started a full-time career in web development and system administration when he moved to California with his wife and daughter. They currently live in San Francisco.
Matthew Orlando is the author of numerous addons for World of Warcraft, including BuyEmAll, CogsBar, and MacroTalk. He has been programming for 13 years and has been active in the addon community since early 2006. In addition to his extensive experience with Lua and the World of Warcraft API, he maintains “Cogwheel’s Complete Macro Guide,” the definitive source for information on writing macros for WoW.
Matthew currently resides in Sebastopol, California, with his wife, Juliella; their dog, Ari; and two cats, Ryo-ohki and Zoe. He works for Kistler Vineyards where his duties range from customer service and data entry to database programming and website development, and he plans to begin law school in mid-2008.
Most Helpful Customer Reviews
See all customer reviews
I was a copy for nook? I'll pay.
You can learn this stuff for free on blizzard and other sites
Ya know, I may not have this book, but I'm sure some of the addons I have are made from a few people in this book so much props and keep up the good work you hordies! Down the the alliance!