DoIt! – универсальный фреймворк для аддонов World of Warcraft

DoIt! для World of Warcraft – фреймворк для создания аддонов. Объектный подход упрощает работу с API и хуками. Поддерживает Retail и Classic версии.

Скачать DoIt! для World of Warcraft 1.14.3, 1.13.3

Оригинальное название: DoIt!

Версии World of Warcraft: 1.13.3, 1.14.3

ФайлВерсияЗагрузчикРазмер
DoIt!-0.26.zip1.13.3471 КБСкачать
DoIt!-0.35.zip1.13.3465 КБСкачать
DoIt!-0.42.zip1.13.3462 КБСкачать
DoIt!-0.62.zip1.13.3469 КБСкачать
DoIt!-0.67.zip1.13.3471 КБСкачать
DoIt!-0.68.zip1.13.3471 КБСкачать
DoIt!-0.69.zip1.13.3471 КБСкачать
DoIt!-0.71.zip1.14.3511 КБСкачать

DoIt!

Если вы занимаетесь разработкой модификаций для любимой мморпг, то вам наверняка знакомы трудности управления кодом. Аддон DoIt! представляет собой специализированный фреймворк, созданный для быстрого построения дополнений. Его подход полностью объектно-ориентирован, что выделяет его среди множества скриптовых решений. Это не просто набор функций, а полноценная архитектура, позволяющая писать чистый и поддерживаемый код на Lua.

Основная цель этого инструмента — предоставить разработчикам мощные абстракции над стандартным API игры. Вместо того чтобы каждый раз изобретать велосипед для обработки событий или создания классов, вы используете готовые проверенные решения. Это экономит время и снижает вероятность возникновения ошибок в продакшене. Многие авторы популярных интерфейсов используют подобные библиотеки как фундамент для своих проектов.

Основные компоненты фреймворка

Архитектура решения построена вокруг нескольких ключевых модулей, каждый из которых отвечает за свою задачу. Понимание их работы поможет вам эффективно внедрить DoIt! для World of Warcraft в свой проект.

Classy и Core Library

Ядром системы является модуль Classy. Он используется для создания общих типов данных и экземпляров классов в среде Lua. По сути, Classy — это внутренности данного фреймворка, обеспечивающие объектную модель. Примеры использования этих типов данных можно найти в файле Classy/UnitTests.lua, который часто поставляется вместе с дистрибутивом.值得注意的是, Classy также доступен на GitHub для других сред Lua, помимо нашей игры.

Core Library содержит классы, специфичные для WoW. Здесь реализована эффективная система обработки событий. Также библиотека включает большое количество классов для работы с игровым API в стиле ООП. Это позволяет инкапсулировать логику и делать код более модульным.

Secure Hooks и управление интерфейсом

Безопасность и стабильность интерфейса критически важны. Класс SecureHooks позволяет лучше управлять безопасными хуками, такими как вызовы hooksecurefunc. Разработчики Blizzard никогда не предоставляли возможности отмены хука, но SecureHooks дает вам полный контроль. Вы можете перехватывать и отменять вызовы whenever и as much as you need.

Первым модулем фреймворка стали MagnetButtons. Изначально это было отдельным дополнением, но теперь оно интегрировано в общую структуру. Процесс конвертации в модуль DoIt все еще продолжается, но функционал уже доступен. Также существует модуль Blizzard Interface Display Manager. Он позволяет условно управлять отображением элементов интерфейса Blizzard, изменяя свойства вроде расположения, видимости и прозрачности.

Совместимость с версиями игры

Одним из главных преимуществ является широкая поддержка клиентов. Вы можете использовать инструменты фреймворка в различных эпохах развития игры. Полная совместимость обеспечена для следующих версий:

  • Retail (актуальное издание)
  • Classic (ванильная версия)
  • TBC (The Burning Crusade)
  • WotLK (Wrath of the Lich King)
  • Cataclysm (Катаклизм)
  • MoP (Mists of Pandaria)

Это означает, что ваши наработки будут портативными. При планировании проекта важно учитывать различия в API между этими патчами, но базовая структура останется единой. Если вы планируете скачать DoIt!, убедитесь, что выбранная версия соответствует вашему клиенту.

Отладка и установка

При сообщении об ошибках информация отладки поможет автору отследить проблему. Всегда указывайте, специфичен ли баг для retail, classic или обоих клиентов. Обратите внимание, что每当 файлы добавляются в проект, вам нужно полностью выйти из wow, чтобы обновить файлы. Для включения отладки используйте скриптовые команды в чате.

Чтобы включить режим, введите script DoIt_Saved.Debug = true, затем SetCVar("ScriptErrors", "1") и сделайте reload. Для отключения значения меняются на false и 0 соответственно. Также при отладке рекомендуется использовать связку BugGrabber и BugSack для перехвата ошибок интерфейса.

Вопрос как установить решается довольно просто вручную через папку Interface. Однако для удобства можно воспользоваться сторонними средствами. Кстати, многие пользователи предпочитают лаунчер foxygame.net потому что там есть DoIt! в каталоге дополнений. Это позволяет выполнять установку в один клик и забыть о ручном обновлении файлов.

Заключение

Использование профессиональных инструментов значительно ускоряет разработку. DoIt! предоставляет необходимую базу для создания сложных интерфейсных решений. Объектно-ориентированный подход делает код понятным для других разработчиков. Если вы хотите углубиться в создание аддонов, изучение этого фреймворка станет отличным шагом вперед.