x

#{title}

#{text}

x
error

#{title}

#{text}

x
success

#{title}

#{text}

Цитадель ночи

Аддоны WoW: Основы

Mon Nov 2015 03:00, добавлено пользователем admin

Dev

     Всем привет! Мой игровой персонаж Виетт. На данный момент являюсь ГМ'ом и РЛ'ом рейдовой гильдии Адамантан. Моя игровая карьера игрока World of Warcraft началась чуть менее девяти лет назад. За это время было выпущено несколько игровых дополнений к WoW, много раз менялись игровые механики. Что-то удалялось, а потом возвращалось, что-то дополнялось, что-то вовсе не возвращалось после удаления. Изначально я позиционировал себя игроком PvE, но за мою долгую игру я успел поучаствовать и в PvP и в PvA направлениях. На данный момент я занимаюсь только PvE т.к. это единственое интересное направление в этой игре сейчас.

     Каждый игрок в WoW, участвующий в освоении PvE контента, когда-нибудь пользовался таким инструментом игры как "пользовательские модификации"(addons) или в простонародье "аддоны". Аддоны нужны в первую очередь для отображения нужной рейдеру информации для его класса, для отображения информации о способностях босса во время боя, для отображения информации о рейде и т.д. Существует великое множество аддонов для WoW различной направленности, большая база таких модификаций находится на известном широкой публике ресурсе http://curse.com

    Но не всегда можно найти нужный аддон, поэтому у меня часто возникало желание написать свой или поправить существующий для своих нужд. В реальной жизни по своей профессии я связан с разработкой программного обеспечения, знаю отлично программирование, поэтому написать что-то или разобраться в чем-то новом для меня не проблема. И я решил, что пора заняться изучением строения аддонов для WoW на уровне хобби, и тут меня ждало глубокое разочарование. После анализа всевозможных ресурсов в интернете я не обнаружил во-первых ни одного актуального на русском языке, во-вторых не обнаружил четкой и детальной документации по аддонам в принципе. В данный момент не существует полной, актуальной и детальной базы и документации по аддонам WoW, в отличие от Web API WoW! Мне кажется, что компании Blizzard давно следовало обратить на это внимание, но видимо все никак руки не доходят. Поэтому все что мы знаем об аддонах это лишь чьи-то примеры, комментарии на американских форумах и официальные комментарии разработчиков Blizzard и конечно же готовые аддоны. Код всех аддонов полностью доступен и открыт, можно открывать и смотреть как они сделаны, задавать вопросы авторам если что-то непонятно.

     Ввиду всего этого безобразия я решил написать пару статей, носящих чисто информативный характер. Статей о том как как на базовом уровне написать собственный аддон для World of Warcraft. Начнем пожалуй с базовых моментов.

 

Что такое аддоны и как они работают?

     Аддоны это специально написанные пользовательские скрипты, выполняющие определенные функции по задумке разработчика. Физически аддоны выглядят в виде папки с файлами, имеющей уникальное имя и расположенной в директории \World of Warcraft\Interface\AddOns\

     Функционал аддонов напрямую ограничен разработчиками WoW, и скажу вам по недолгому опыту он очень ограничен, чтобы не было злоупотреблений. Чтобы было нагляднее рассмотрим процесс создания аддона на примере простейшего аддона, который выводит в игровой чат надпись-приветствие "Hello World". Рассматривать будем постепенно по шагам. Погнали!

Шаг 1. Структура аддона

     Каждый новый аддон должен следовать установленной структуре файлов. Без правильной структуры ваш аддон не заработает. Простейшая структура аддона выглядит следущим образом:

  • MyAddon Directory
    • MyAddon.toc
    • core.lua

     Как видите все довольно просто на первом шаге. Для того чтобы ваш аддон работал нужно создать всего лишь два файла: файл с настройками для аддона - *.toc файл и непосредственно сам скрипт(сценарий) - *.lua файл, по которому будет работать ваш аддон. Без *.toc файла игра не поймет что в этой папке находится ваш аддон и не загрузит его в список доступных модификаций в игровом меню.

Структура *.toc файла следующая:

## Interface: 60200
## Title: My Addon
## Author: Viett
## Notes: My description
## Version: 0.1

core.lua

  • Interface - Версия интерфейса игры на настоящий момент, можно посмотреть в самой игре командой в чате /run print((select(4, GetBuildInfo())));
  • Title - Название вашего аддона, также должен называться и сам *.toc файл
  • Author - Сведения об авторах
  • Notes - Краткое описание аддона для enGB enUS локализаций
  • Version - Версия нашего аддона

     После того как мы заполнили все эти поля далее следует написать список всех используемых аддоном файлов, это нужно для того чтобы аддон мог найти ваши скрипты и сторонние функции из других файлов. Так как у нас всего один файл-скрипт, то мы пишем только core.lua. Обращаю внимание, что файлов-скриптов может быть сколько угодно и называться они могут как угодно. Однако! Главный файл обычно размещают в начале списка и называют его либо core.lua либо main.lua. Всё, с файлом настроек разобрались!

Шаг 2. Подготовка

     Что же теперь делать? Как написать скрипт? Все скрипты, используемые для разработки аддонов WoW используют специальный скриптовый язык программирования LUA. Язык довольно простой, если вы с ним еще не знакомы не беда. Первая же ссылка в поиске Google выдает краткое руководство по данному языку посмотреть можно здесь. Советую изучить прежде чем рваться программировать что-то.

     Обращаю внимание что все создаваемые вами файлы должны быть в кодировке UTF-8 либо UTF-8 (без BOM)! Если файл будет в друой кодировке, то весь русский текст в игре будет нечитаемым. На первое время для удобной разработки можно использовать продвинутый редактор текста для начинающих программистов или просто для любителей - Notepad++ Скачать и установить можно по этой ссылке

Шаг 3. Пишем аддон

Итак, мы все установили и все почитали! Что дальше?

  1. Создаем папку в любом месте на компьютере и называем ее HelloWorld. В этой папке делаем два файла HelloWorld.toc и core.lua
  2. Нажимаем правой кнопкой мыши по HelloWorld.toc и выбираем меню Edit with Notepad++. Открывается пустой файл, сразу же меняем кодировку. Открываем меню "Кодировки -> Преобразовать в UTF-8 (без BOM)".
  3. Повторяем процедуру для файла core.lua
  4. Заполняем файл HelloWorld.toc по шаблону из первого шага. Должен получиться следующий код:
    ## Interface: 60200
    ## Title: HelloWorld
    ## Author: Viett
    ## Notes: My first addon
    ## Version: 0.1

    core.lua
  5. Сохраняем файл.
  6. В файле core.lua пишем следующий код print("Hello World") И сохраняем.
  7. Осталось скопировать папку HelloWorld в директорию \World of Warcraft\Interface\AddOns\ т.е. туда куда обычно копируются аддоны. Запускаем игру, если все сделано правильно, то в модификациях мы видим название нашего аддона Hello World. Убеждаемся что он включен и логинимся в игру. Первая запись в нашем чате будет "Hello World", это значит что наш аддон работает.

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

Успехов в обучении!

Комментарии

Нет комментариев
Рейтинг
Набор игроков
class 3 Охотник средний
class 5 Паладин
    Воздаяние средний
class 9 Чернокнижник высокий
Подать заявку