Пишем AddOn к World of Warcraft
На хабре как-то писали о создании ботов к WoW, а вот статей о написании аддонов я не нашел и решил описать этот процесс на примере одной поделки, которую я писал когда-то давно, когда я был еще студентом и моего времени хватало на игру в World of Warcraft и создание аддонов к нему. С деньгами тогда было туго и играл я не на официальном сервере, а на одном из бесплатных, имеющем кучу недоделок, багов, фич и аномалий.
После того, как за случайное использование одной из них я был забанен, появилась идея создать аддон, указывающий в игре на все отличия данного шарда от официального сервера, с предупреждениями о наказаниях за их использование.
Я выложил аддон на Google Code и форум серевера и он стал достаточно популярным (как для пиратского сервера). Кому интересно, как делаются аддоны — велкам под кат.
Введение
Итак, начнём с определения. Аддон в WoW — это набор некоторых файлов, которые позволяют пользователю изменить интерфейс клиентской части игры, но никак не влияют на серверную игровую механику. Аддоны были в WoW изначально, что выгодно отличает эту ММОРПГ от некоторых других, кричащих о своём превосходстве, но не имеющих возможности создания официальных аддонов и по сей день. Аддонов есть тысячи, если не десятки тысяч. Почему так много? А потому, что стилей игры и игровых задач ровно столько же. И конечно же, разработчики молодцы, что с самого начала дали способ каждому создать что-то своё, а не навязывать единый интерфейс, требуя считать его удобным.
Главным источником документации при создании аддона у нас будет портал WoWWiki. Пару ссылок по теме:
- Об аддонах
- Начинаем писать аддон
- World of Warcraft API
- О разработке интерфейса
Полезной информации там еще очень много, но до неё можно добраться по ссылкам с этих четырёх страниц в пару кликов.
Инструментарий
Никаких специальных инструментов для создания аддонов не нужно. Все они представляют собой текстовые файлы, так что берите свой любимый текстовый редактор — и вперёд! Если он имеет подсветку синтаксиса языка Lua (именно на нём создаются аддоны) — вообще прекрасно. Этим требованиям отвечает, например, Notepad++.
А еще, энтузиасты создали на базе движка Free Visual Studio Shell специальную open-source IDE, которая называется AddOn Studio.
Штука прикольная и берет на себя ряд функций, таких как:
- Дизайнер интерфейса
- Просмотре интерфейса в виде XML-дерева
- Браузер ресурсов WoW
- Автодополнение по WoW API
- Автогенерацию некоторых файлов
+ пару других прикольных вещей. В общем, можно пользоваться. Ну и еще можно просмотреть эту страницу, может быть найдете плагин к своей любимой IDE или просто что-то знакомое.
Пару концептуальных моментов
- Есть такая штука, как политика Blizzard, требующая от аддона бесплатности, соответствия EULA, отсутствия вреда для других пользователей и пару других скучных, но идейно верных вещей. Так что о идеях написания ботов, хаков, читов и прочего мусора лучше забыть.
- Хотите Вы того или нет, Ваш аддон будет opensource, потому что пишется на LUA+XML и распространяется в исходных кодах.
Из чего состоит аддон
1. TOC-файл (table of conteset). Это оглавление нашего аддона. Объясняет оболочке WoW кто мы такие, как называемся, кто автор, из чего состоим и пару других вещей. Вот, например, toc-файл моего аддона:
2. XML-файлы, описывающие изменения в интерфейсе, которые мы хотим внести (фреймы, кнопки, привязку событий в интерфейсе к определенным функциям в коде). Вот xml-файл моего аддона:
Источник статьи: http://habr.com/ru/post/119312/
AddOn Studio for World of Warcraft 1.0.1 создание своих аддонов для WoW
Вы мечтали создать свой аддон для WoW своими же руками?
Это детище от Dan Fernandez (сотрудника Microsoft).
Специальная визуальная среда для разработки аддонов на основе Microsoft Visual Studio 2008.
Некоторые возможности:
Визуальный редактор интерфейса
Редактор Lua с подсветкой синтаксиса
Drag-and-Drop интерфейс
Автоматическая генерация списка контента
Автоматическая генерация Lua-ивентов
Использование XML файлов из World of Warcraft
Дополнительные утилиты, шаблоны для создания Ace2-аддонов.
Поддержка форматов TGA, MP3 и др.
Версия «all-in-one», не требует дополнительно Microsoft Visual Studio (его облегчённая версия — Visual Studio Shell идёт в комплекте):
AddOn Studio for World of Warcraft 2.0 Jan 10 2008 61,23 Мб от 24.04.2009 (cкачиваний: 1415) СКАЧАТЬ
Новая, последняя версия, гарантированно поддерживает World of Warcraft Wrath of the Lich King
AddOn Studio for World of Warcraft v2 BETA 2 8,16 Мб от 24.04.2009 (cкачиваний: 547) СКАЧАТЬ
Требует уже установленного софта:
# Visual Studio 2008 installed including VS SP1
# Visual Studio SDK 1.1 SP1
Если установка этой версии Wow Addon Studio заканчивается неудачей ставим Visual Studio Shell .
Что бы всё это не качать можно попробовать поставить на предыдущюю версию.
По мне так проще пока пользоваться предыдущей версией, тем более работает стабильно.
1.1 Поддерживаемая архитектура процессора:
* x86
* x64
* IA64 не поддерживается
1.2 Поддерживаемые операционные системы:
* Microsoft Windows XP Professional x64 Edition
* Microsoft Windows XP Professional SP2
* Microsoft Windows XP Home Edition SP2
* Microsoft Windows XP Media Edition 2002 SP2
* Microsoft Windows XP Media Edition 2004 SP2
* Microsoft Windows XP Media Center Edition 2005
* Microsoft Windows XP Tablet PC Edition SP2
* Microsoft Windows Server 2003, Standard Edition SP1
* Microsoft Windows Server 2003, Enterprise Edition SP1
* Microsoft Windows Server 2003, Datacenter Edition SP1
* Microsoft Windows Server 2003, Web Edition SP1
* Microsoft Windows Server 2003, Standard x64 Edition SP1 (WOW)
* Microsoft Windows Server 2003, Enterprise x64 Edition SP1 (WOW)
* Microsoft Windows Server 2003, Datacenter x64 Edition SP1 (WOW)
* Microsoft Windows Server 2003 R2, Standard Edition
* Microsoft Windows Server 2003 R2, Enterprise Edition
* Microsoft Windows Server 2003 R2, Datacenter Edition
* Microsoft Windows Server 2003 R2, Standard x64 Edition
* Microsoft Windows Server 2003 R2, Enterprise x64 Edition
* Microsoft Windows Server 2003 R2, Datacenter x64 Edition
* Windows Vista
* Minimum: 1.6 GHz CPU, 192 MB RAM, 1024×768 display, 5400 RPM hard drive
* Recommended: 2.2 GHZ or higher CPU, 384 MB or more RAM, 1280×1024 display, 7200 RPM or higher hard drive
* Running on Windows Vista: 2.4 GHz CPU, 768 MB RAM
* 500 MB of available disk space for the full installation
ВАЖНО! Известные проблемы: (дословный превод)
«Инсталляция может занять длительное время особенно если не установлен .NET Framework 3.5 и пожалуйста не прерывайте установку.»
Источник статьи: http://www.wowmmorpg.ru/wow_addons/miscellaneous/14-addon-studio-for-world-of-warcraft-101-sozdanie-svoix-addonov-dlya-wow.html
wowTalk.ru — World of Warcraft портал: Аддоны и аддонописание — wowTalk.ru — World of Warcraft портал
Аддоны и аддонописание или гайд по аддонам для продвинутых
#1
Ленар
- Администратор
1. Преквест.
Долго думал, что может называться гайдом по программированию аддонов для WoW. И в результате всех этих размышлений пришел примерно к такой концепции — человека далекого от программирования научить все равно не получится, а вот программисту помочь вполне возможно. Отсюда, краткий план таков : инструментальные средства, стркутура аддона, WoW API, где брать информацию, что делать, если не работает, какие есть библиотеки.
Самые главные вопросы — зачем вообще писать аддоны, какие аддоны надо бы писать и почему выбор библиотеки абсолютно неважен — так вот, все это мы обсуждать не будем.
2. Инструментальные средства.
Вообще то, из по-настоящему необходимых вещей вам понадобится любой текстовый редактор. То есть все, что способно запомнить текст, ктоторый вы набрали и сохранить его в файле, вполне может считаться редактором.
Для комфорта можно использовать редакторы с подсветкой lua’шного синтаксиса, с автозаполнением и прочими радостями. В конце-концов на дворе 21 век. Так же, для особых сибаритов вполне возможно использовать любой визуальный редактор xml. Так же неплохо бы забиндить макрос /script ReloadUI(); на кнопку, он вам понадобится.
Сложность (точнее, специфика) всего этого дела такова, что исполняющей машиной для скрипта, который вы пишете является сам WoW, софтинка немаленькая, требующая интернета и памяти внутри вашего компутера. Считайте, что это компилятор, с логом ошибок времени исполнения или просто исполняющей средой, интерпретатором, каковым он и является.
Файлы скрипта можно править во время работы WoW, после ReloadUI вы увидете, как работает ваша новая версия (и новыеошибки, возможно).
Еще одна неочивидная сложность — без особых телодвижений не получится сэмулировать условия для проверки вашего скрипта. То есть, если ваш скрипт считает что-то во время боя, вам при отладке придется имеено что вступать в бой.
(Есть, конечно WoWBench http://www.wowwiki.com/WoWBench, попытка сэмулировать WoWAPI в
оффлайне, возможно вам это средство поможет.)
3. Структура аддона.
Аддон, как структура может состоять из двух типов файлов ( *.lua и *.xml) и обязательно содержит файл управления
*.toc. Честно говоря, ничего не делающий аддон может состоять из одного файла *.toc.
В файлах xml обычно содержаться определения интерфейса (окон, кнопок, виджетов управления), скриптов, биндов.
D файлах lua — код вызовов WoW API, пользовательские функции, логика работы аддона. Надо понимать, что используя файлы
определения интерфейса исполняющая машина порождает те же самые вызовы WoWAPI, что и пользовательский код.
Глобальное адресное пространство является разделяемым, поэтому все переменные, функции и любые объекты не объявленные,
как локальные, находятся в глобальной области видимости и могут быть использованы из любой еденицы интерпретации.
То есть, при определении бинда в файле xml вы вполне можете использовать привязку функции, определенной в lua файле
Информация, содержащаяся в файле управления во-первых рассказывает исполняющей системе о файловой структуре
нашего аддона и, во-вторых доступна из исполняющей среды во время выполнения (к примеру, номер версии, метатеги)
Вот наш управляющий файл (test.toc)
Код: ## Interface: 20400
## Title: |cff7fff7f SUPER |cffffff2f DUPER|r
## Author: Don Kaban
## Version: 0.1
## X-eMail: k.shabordin@gmail.com
## Notes: example plugin for WordOfWarcraft.ru forum
test.xml
test.lua Плугин ничего не делает, только демонстрирует себя в списке плугинов. В папке с плугином лежат два пустых файла
test.lua и test.xml для последующих экспериментов.
Вообще то можно поступить «правильно» (можно и без кавычек) и написать что-то типа :
Источник статьи: http://wowtalk.ru/index.php?showtopic=330
Getting started with writing AddOns
The following is a guide for getting started with building WoW AddOns. Creating your own AddOns can be a difficult process at first, but can be very satisfying and is a great way to learn programming in general.
If you are mostly interested in what files and structure comprise a WoW AddOn, you can skip to WoW AddOn, and come back here or move on from there.
What should I make
Pick a simple goal or idea for your AddOn. It’s often a good idea to just make an AddOn that only opens a window or prints a message to get started, especially when everything is new for you. After that works the way it should, and you have learned everything necessary to make an AddOn work at all, you can move on to adding one piece at a time toward your goals. Writting software in general is often a never ending process because you can always think of something new to add or improve.
Examples of good questions to ask yourself:
- What’s my end goal?
- What information will I need from WoW for my AddOn to work?
- Will I need to make windows (called ‘frames’ in WoW)?
- Will I need to interact with Blizzard’s windows or frames?
- Will I need to print messages to the chat box?
- Do I know how to talk to WoW in my AddOn to do everything I want to do?
How do I make it
Research the programming environment:
- Lua — This is the programming language used by WoW for UI AddOns.
- WoW AddOn — These pages explain the basic structure of a WoW AddOn.
- World of Warcraft API — These are the functions and ways to talk to WoW with Lua.
- Curse Forge or WoW Interface — Find a real but simple example of an existing AddOn. Most real AddOns, even the simple ones, however can be difficult to read for getting started, with many moving parts.
- Lua editors — A long list of code editors and other tools often used by other AddOn creators.
Start with making a simple AddOn that has almost no moving parts, where you can see what all of the basic parts are and move forward from there. Use the reference material described above, especially WoW AddOn, as that describes what really makes up an AddOn.
After completing your first one you will then have enough skill to start to build the real AddOn you wanted to originally make.
The following sections help with some of the various aspects of completing these first steps.
Lua is a language used by many different games for their customizable UI AddOn code and other code. In WoW, if you learn a few Lua basics it will go a very long way to creating your first WoW AddOn, and toward understanding all of the other documentation and help here.
World of Warcraft API
The World of Warcraft API has a list of functions that you can interact with and to talk with WoW using Lua. These are your building blocks for manipulating WoW windows and chat boxes and so forth. Looking at these for the first time can be very daunting. But don’t be discouraged. After getting more familiar with Lua the WoW API gets much easier, and the documentation gets much easier to read. Keep in mind there are many different ways to accomplish your goals, so when going though the API keep looking until you find a way that best suits what you need.
Editing Tools
Before you can write any sort of code, you’ll want to have a tool that lets you edit your AddOn files. However do not get overly distracted with the tools themselves while trying to get your first AddOn created. Any text editor, like Windows Notepad can edit the files. All AddOn files are plain text files. The editors can make the coding and many repetitive tasks easier for day to day editing, but it’s often very difficult to learn the tools and try to learn the AddOn at the same time.
To review the list of tools and get one you’d like, head to the Lua editors page.
Anatomy of a WOW Addon
Strongly suggest looking here: WoW AddOn, and then come back here to this section, to review this mini-review of the same material to put into better context. The WoW AddOn page shows all of the AddOn elements, where then are explained here for getting started.
File Types
There are three main types of files that you’ll need to worry about with AddOn editing:
- TOC File — This file is required for any WoW AddOn, and supplies WoW with information about your AddOn and its files.
- LUA Files — This contains Lua code for your AddOn.
- XML Files — This holds the layout of UI windows, buttons, and similar for your AddOn.
TOC File
This is the file that instructs WoW in some basics about your AddOn and what other files you want loaded. Here’s a short example of one. If you pasted this code into a ‘MyAddOn.toc’ file it would work as a beginning toc file:
You can read more about what you need or can put in a TOC over at The TOC Format.
Lua Files
Lua files contain functional pieces of code. You may choose to only have one of these or break up your code into multiple files for a specific purpose. Here’s a short example of one:
XML Files
XML files can be used to specify the visual style of your frames. More importantly though a frame allows you to easily pass events to your Lua files. Frame XML files are how Blizzard defines most of their own UI windows in the game. Check out XML User Interface for details. Here’s a short example of an XML file:
Источник статьи: http://wowwiki.fandom.com/wiki/Getting_started_with_writing_AddOns