|
Обстоятельства сложились так, что мне нужно написать аддон для нашей базы данных. Аддоны я никогда не писал, но хотел. И идеи были. Но не было времени. А теперь - нужно. Под это дело я начинаю цикл статей, который познакомит желающих с тем, как пишутся аддоны для World of Warcraft. Очень надеюсь на помощь и советы тех, кто аддоны уже писал или правил, вобщем - разбирается. Скажу сразу, что данный цикл статей будет ориентирован на людей знакомых с программированием, или способных разобраться в программировании самостоятельно. Т.е. основ тут не будет. В идеале вам нужно иметь опыт работы с парой различных языков, JavaScript и представление о формате XML. Данный цикл статей ориентирован на клиент версии 4.x, доступный сейчас на бета тесте и некоторые вещи могут не работать с младшими версиями. Это сделано из тех соображений, что когда мы доберемся до конца - как раз выйдет Катаклизм, или, по крайней мере - патч 4.0.1. По первому впечатлению, разработка аддона во многом похожа на разработку Веб-приложения. Начнем с начала. Введение World of Warcraft позволяет дорабатывать имеющийся интерфейс с помощью дополнительных модулей, называемых - аддонами. Функциональная часть аддонов реализована на языке программирования LUA. Общую информацию о языке вы можете найти в википедии: http://ru.wikipedia.org/wiki/Lua Как оказалось, язык этот достаточно популярен, как среда для работы дополнений. Он используется во множестве игр и серьёзных приложений. Так что знать его может быть очень полезно. Что нужно для начала - Учтите, Близзард официально не поддерживает разработку аддонов, так что все вопросы, которые у вас могут возникнуть можно задавать здесь или на официальном форуме, посвященным макросам и аддонам (на английском языке): http://forums.worldofwarcraft.com/board.html?forumId=11114&sid=1
- Клиент ВоВа и аддоны работают в кодировке UTF-8, все файлы, кроме графических, являются простым текстом. Так что вам потребуется текстовый редактор, поддерживающий UTF-8. Лично я пользуюсь Notepad++: http://notepad-plus-plus.org/ru/node/88
- Текстуры в ВоВ хранятся в проприетарном формате Близзард -.blp. В сети существует утилита, может даже не одна, позволяющая сконвертировать blp в png, чтобы было удобно просматривать файлы.
- Для написания аддонов можно так же использовать свою графику в формате TARGA -.tga: http://ru.wikipedia.org/wiki/Truevision_TGA
- Так же может быть полезно скачать Blizzard Addon Kit, который содержит документацию для начинающих, примеры и позволяет извлечь текстуры из клиента World of Warcraft. Документация на английском языке и во многом будет использоваться в моих статьях. Кит по умолчанию устанавливается в папку, где установлен World of Warcraft. Выбрать другую папку - нельзя.
- Документацию по самому языку LUA можно найти:
Файлы аддона Аддон World of Warcraft состоит из трех основных типов файлов: - в папке World of Warcraft\Interface\Addons нужно создать папку с названием вашего аддона - myaddon.
- myaddon.toc - table of contents - это заголовочный файл, должен обязательно быть. Содержит информацию об аддоне и включаемых файлах.
- myaddon.xml - содержат элементы интерфейса, окна, панели и т.п. один файл обычно используется для одного элемента интерфейса.
- myaddon.lua - содержат программный код, "оживляющий" ваш аддон.
Формат файла toc Заголовочный файл toc содержит скелет вашего аддона - заголовок и включаемые файлы. В фале допустимы комментарии, начинающиеся с одного знака #. Описание аддона делается в следующем формате: ## Interface: 40000
## Title: My first addon
## Notes: Additional addon information
## Dependencies:
Где: - Interface - это версия клиента, для которого написан ваш аддон. По всей видимости, это версия без точек. Т.е. в нашем случае 4.0.000 (хотя в бете 4.0.1. работает)
- Title - это название аддона, можно по-русски, но не забываем про UTF-8.
- Description - описание аддона.
- Dependencies - описание зависимостей, через запятую. Некоторые аддоны используют ресурсы других аддонов, функции, ресурсы. Так что здесь вы указываете то, без чего ваш аддон работать не будет. Яркий пример - DBM.
Далее вы указываете включаемые файлы, по одному на строку. Важно, что внутренний интерпретатор читает файлы в том порядке, в котором вы указали их в файле toc. Т.е. если в файле myaddon.xml вызывается функция из файла myaddon.lua, то сначала должен идти lua файл, потом xml. В противном случае, вы получите ошибку вызова неизвестной функции. Таким образом файл должен выглядеть примерно так: ## Interface: 40000
## Title: Hello world
## Notes: My hello world addon
helloworld.lua
helloworld.xml Формат файла xml Определение XML файла для интерфейса аддона должно быть следующим: <Ui xmlns="http://www.blizzard.com/wow/ui/"
xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://www.blizzard.com/wow/ui/
..\..\FrameXML\UI.xsd">
</Ui> Формат файла lua Обычный файл LUA, содержащий код и функции. Продолжение: Как написать аддон для ВоВ. API. XML. События.
|