Skip to main content

World of Warcraft Programming: A Guide and Reference for Creating WoW Addons, 2nd Edition

World of Warcraft Programming: A Guide and Reference for Creating WoW Addons, 2nd Edition

James Whitehead II, Rick Roe

ISBN: 978-1-118-08103-7

Mar 2011

1440 pages



The #1 bestselling programming book is back with updated and expanded coverage of the newest release of WoW!

World of Warcraft (WoW) is currently the world's largest massively multiplayer online role-playing game. The newest release, "Wrath of the Lich King," has created a demand for updated information on writing addons. This eagerly anticipated edition answers that request and is an essential reference for creating WoW addons.

Written by a duo of authors who have each contributed a number of successful WoW addons, the book offers an overview of Lua and XML (the programming languages used to write addons) and includes coverage of specific pitfalls and common programming mistakes-and how to avoid them. Valuable examples show you detailed aspects of writing addons for WoW and demonstrate how to implement addon concepts such as variables, slash commands, secure templates, and more.

  • World of Warcraft insiders share their techniques for writing addons for both the latest version of WoW as well as the new Wrath of the Lich King expansion set
  • Guides you through the specific nuances of the WoW API with the use of detailed examples
  • Discusses ways to distribute and host your WoW addons so others can download and use them
  • Explains how to respond to events, create frames, and use the WoW API to interact with the game

You'll be well on your way to creating exciting WoW addons with this comprehensive reference by your side.

Note: CD-ROM/DVD and other supplementary materials are not included as part of eBook file.

Introduction xxxvii

Part I Learning to Program 1

Chapter 1 Programming for World of Warcraft 3

Chapter 2 Exploring Lua Basics 13

Chapter 3 Basic Functions and Control Structures 39

Chapter 4 Working with Tables 53

Chapter 5 Advanced Functions and Control Structures 77

Chapter 6 Lua Standard Libraries 91

Chapter 7 Learning XML 111

Part II Programming in World of Warcraft 123

Chapter 8 Anatomy of an Addon 125

Chapter 9 Working with Frames, Widgets, and Other Graphical Elements 143

Chapter 10 Saving Time with Frame Templates 171

Chapter 11 Exploring the World of Warcraft API 187

Chapter 12 Interacting with Widgets 207

Chapter 13 Responding to Game Events 243

Chapter 14 Tracking Damage with CombatTracker 267

Part III Advanced Addon Techniques 283

Chapter 15 Taking Action with Secure Templates 285

Chapter 16 Binding Keys and Clicks to Addon Code 309

Chapter 17 Creating Slash Commands 337

Chapter 18 Responding to Graphic Updates with OnUpdate 351

Chapter 19 Altering Existing Behavior with Function Hooking 359

Chapter 20 Creating Custom Graphics 373

Chapter 21 Responding to the Combat Log and Threat Information 387

Chapter 22 Creating Scroll Frames 413

Chapter 23 Creating Dropdown Menus 431

Chapter 24 Scanning and Constructing Tooltips 451

Chapter 25 Taking Protected Action in Combat 463

Chapter 26 Creating Unit Frames with Group Templates 501

Part IV Reference 537

Chapter 27 API Reference 539

Chapter 28 API Categories 1025

Chapter 29 Widget Reference 1121

Chapter 30 Events Reference 1277

Part V Appendixes 1303

Appendix A Best Practices 1305

Appendix B Utilizing Addon Libraries 1329

Appendix C Tracking History Using Version Control Systems 1339

Appendix D Addon Author Resources 1349

Index 1357

ChapterPageDetailsDatePrint Run
276Error in Text
On page 276, in the code listing for CombatTracker_OnEvent, the code listing has this line:

Total_time = math.mind(end_time – start_time, 1)

“Math.mind” should be “math.min”, as it sets the minimum value for the variable total_time.