Пятница, 10.01.2025, 01:58
Gamezona и не только
Приветствую Вас Гость | RSS
Главная | Регистрация | Вход
Меню сайта

Мини-чат

Наш опрос
Вы играете в MMMORPG??
Всего ответов: 14

Главная » 2009 » Январь » 28 » Статейка по WoW'y
Статейка по WoW'y
09:51
Учимся делать аддоны

"На колоссальной четырехъярусной террасе вдова коллежского асессора Агриппина Саввишна угощала Аполлона Никитича,
местного подьячего, винегретом с моллюсками и можжевеловым вареньем."©

 
1. Преквест.

Долго думал, что может называться гайдом по программированию аддонов для WoW. И в результате всех этих размышлений пришел примерно к такой концепции - человека далекого от программирования научить все равно не получится, а вот программисту помочь вполне возможно. Отсюда, краткий план таков : инструментальные средства, стркутура аддона, WoW API, где брать информацию, что делать, если не работает, какие есть библиотеки.

Самые главные вопросы - зачем вообще писать аддоны, какие аддоны надо бы писать и почему выбор библиотеки абсолютно неважен - так вот, все это мы обсуждать не будем.
2. Инструментальные средства.

Вообще то, из по-настоящему необходимых вещей вам понадобится любой текстовый редактор. То есть все, что способно запомнить текст, ктоторый вы набрали и сохранить его в файле, вполне может считаться редактором.

Для комфорта можно использовать редакторы с подсветкой lua'шного синтаксиса, с автозаполнением и прочими радостями. В конце-концов на дворе 21 век. Так же, для особых сибаритов вполне возможно использовать любой визуальный редактор xml. Так же неплохо бы забиндить макрос /script ReloadUI(); на кнопку, он вам понадобится.

Сложность (точнее, специфика) всего этого дела такова, что исполняющей машиной для скрипта, который вы пишете является сам WoW, софтинка немаленькая, требующая интернета и памяти внутри вашего компутера. Считайте, что это компилятор, с логом ошибок времени исполнения или просто исполняющей средой, интерпретатором, каковым он и является.

Файлы скрипта можно править во время работы WoW, после ReloadUI вы увидете, как работает ваша новая версия (и новыеошибки, возможно). 

Еще одна неочивидная сложность - без особых телодвижений не получится сэмулировать условия для проверки вашего скрипта. То есть, если ваш скрипт считает что-то во время боя, вам при отладке придется имеено что вступать в бой. 

(Есть, конечно WoWBench http://www.wowwiki.com/WoWBench, попытка сэмулировать WoWAPI в 
оффлайне, возможно вам это средство поможет.)

Редакторы кода : 
http://www.wowwiki.com/Lua_editors
XML редакторы : 
http://www.xmlfox.com/download.htm 
http://symbolclick.com/
Разные плюшки : 
http://www.wowwiki.com/UI_FAQ/AddOn_Author_Resources 
3. Структура аддона. 

Аддон, как структура может состоять из двух типов файлов (*.lua и *.xml) и обязательно содержит файл управления 
*.toc. Честно говоря, ничего не делающий аддон может состоять из одного файла *.toc. 

В файлах xml обычно содержаться определения интерфейса (окон, кнопок, виджетов управления), скриптов, биндов...

D файлах lua - код вызовов WoW API, пользовательские функции, логика работы аддона. Надо понимать, что используя файлы 
определения интерфейса исполняющая машина порождает те же самые вызовы WoWAPI, что и пользовательский код. 

Глобальное адресное пространство является разделяемым, поэтому все переменные, функции и любые объекты не объявленные, 
как локальные, находятся в глобальной области видимости и могут быть использованы из любой еденицы интерпретации.

То есть, при определении бинда в файле xml вы вполне можете использовать привязку функции, определенной в lua файле
4. Заголовочный файл.

Формат TOC файла

Информация, содержащаяся в файле управления во-первых рассказывает исполняющей системе о файловой структуре
нашего аддона и, во-вторых доступна из исполняющей среды во время выполнения (к примеру, номер версии, метатеги)
Вот наш управляющий файл (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 для последующих экспериментов.
5. Файлы определений интерфейса.

Основная информация
Widget API

Вообще то можно поступить "правильно" (можно и без кавычек) и написать что-то типа :
Код:

Просмотров: 1997 | Добавил: game-zones | Рейтинг: 0.0/0 |
Всего комментариев: 0
Имя *:
Email *:
Код *:
Форма входа

Календарь новостей
«  Январь 2009  »
ПнВтСрЧтПтСбВс
   1234
567891011
12131415161718
19202122232425
262728293031

Поиск

Друзья сайта

Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0

Copyright MyCorp © 2025