slotindia

Это мой первый пост на Reddit, так что будьте осторожны. Для тех из вас, кто не знает, что Under или Over - это азартная игра, в которой ведущий игры бросает два шестигранных кубика (/ roll 1-6 или Goblin Dice Toy), и вы отвечаете когда-либо меньше, больше или семь. Достижение способностей Достижения аддоны алхимия Альянс Альянс Альянс альтс Бассейн Арати Археология арена Видео-гид по арене Серебряный турнир комплекты брони Armorsmith art Auction House AV потрясающее поле битвы стратегия поле битвы Battlenet Bdages Bear Mount Beta beta эксплойты, делая ставки на черный кузнец Blizzard Blizzcon заказывает босса ботов, лучшие баффы для пивоварения. MMORPG.com запускает композицию, чтобы выиграть Z-доску (вы знаете, одну из тех больших, неуклюжих и громоздких клавиатур со сменными накладками, которые вы нажимаете на место) с набором клавиш World of Warcraft. Бесплатное сообщество World of Warcraft для WoW Gold Guides, WoW Exploits,WoW Hacks, программы WoW и боты WoW. Без регистрации.

Я никогда не сталкивался с World of Warcraft. Я играл в другие игры Blizzard как до, так и после ее выпуска, включая оригинальную серию Warcraft и Diablo. Я пропустил WoW по причинам, которые не могу полностью вспомнить. Во время шумихи вокруг «классики» я на мгновение попробовал «розницу» и внезапно остановился из-за переезда в новый дом. После того, как я узнал о «ванильных» серверах, мне захотелось сыграть снова, но я уже мысленно взял на себя обязательство дождаться официальных серверов. Классическая версия наконец-то была запущена 26 августа 2019 года, и я присоединился к ней, чтобы не пропустить два раза в жизни.

Прошли минуты, когда моя группа впервые сыграла в игру, и началась болтовня обо всех аддонах, которые им только что нужно было установить. В отличие от меня, они играли то и дело в течение последних пятнадцати лет, и ваниль, и в розницу. Не имея ни малейшего понятия, я поиграл несколько сеансов, прежде чем почувствовал зуд. Какие аддоны были и что они могли для меня сделать? У всех был такой большой опыт, что я подумал, что будет справедливо преодолеть этот разрыв. Я установил довольно много дополнений, чувствуя себя ребенком в кондитерской. Со всеми моими физическими недостатками я был крепко зацеплен.

Затем, из ниоткуда, мое любопытство взяло верх. Как все это работает ?!

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

Настройка среды разработки

Для разработки этого дополнения нам понадобится редактор. В предыдущих руководствах вам будут рекомендованы самые простые текстовые редакторы, которые будут работать, но мы можем сделать это лучше. Если у вас еще нет предпочтений, я бы рекомендовал загрузить Microsoft Visual Studio Code. Этого должно быть более чем достаточно для этого путешествия и позволит в будущем заниматься программированием. Я пересекся с плагинами vscode, рекламирующими поддержку как Lua, так и World of Warcraft, но редактора из коробки достаточно для того, что здесь необходимо. Изучите доступные расширения и примите собственное решение относительно их полезности.

Создание папки для аддона

Как вы будете управлять своим проектом в долгосрочной перспективе, зависит от вас. Я бы рекомендовал использовать GitHub для управления вашим кодом и обновлять локальный каталог надстройки только тогда, когда вы будете готовы протестировать новую версию, возможно, с помощью сценария развертывания. А пока, поскольку мы только начинаем, давайте просто поработаем из каталога Addons.

Если вы не изменили место установки по умолчанию, каталог World of Warcraft будет находиться либо в C: Program Files, либо в C: Program Files (X86) в Windows, либо в / Applications / на Mac. В зависимости от того, что вы установили, вы можете увидеть папки _classic_, _retail_ и _ptr_ в этом каталоге. Откройте _classic_ / Interface / Addons и создайте папку Sandbox. Родился аддон!

Создание оглавления

В папке Sandbox создайте новый текстовый файл с именем Sandbox.toc. Этот файл содержит необходимую информацию об аддоне для клиента WoW. Если вы когда-нибудь просматривали package.json, например, в проекте JavaScript, он служит той же цели.

Добавьте в файл следующее:

Правильное значение для интерфейса можно найти в игре, выполнив следующую команду: / run print ((select (4, GetBuildInfo ()))); На момент написания классическим является 11302. Если вы намереваетесь настроить таргетинг на розничную торговлю или обычную торговлю, обязательно обновите это значение.

После этого я считаю, что Название, Примечания, Автор и Версия не требуют пояснений. Есть довольно много других значений, которые я наблюдал в файлах toc, я бы порекомендовал заглянуть в другие надстройки, чтобы обнаружить их.

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

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

Написание кода

Дополнения World of Warcraft написаны на Lua, который позиционирует себя как «мощный, эффективный, легкий, встраиваемый язык сценариев». Освоение Lua не требует больших усилий, если у вас есть хотя бы один язык за плечами. В противном случае это будет отличный первый язык для изучения.

Чтобы начать кодирование на Lua, создайте файл Sandbox.lua в папке Sandbox, которую мы создали ранее, и добавьте следующий код:

Дополнительно выберите один из следующих примеров кода и добавьте его в самый конец файла:

Пробовать это

Пора запускать игру ... Не играть! Сосредоточьтесь! Когда вы входите в игру, должно произойти одно из двух. Если вы выбрали вариант А, вы должны увидеть «Hello World!» отображается в графическом окне:

Если вы выбрали вариант B, результаты будут более загадочными. Куда пропали грифоны?

Поздравляю! Ваш первый аддон готов!

Помимо основ

Есть гораздо более общее программирование, которое может быть выполнено внутри аддона, но я не буду здесь углубляться в Lua, так как уже существует множество книг для справок по этому предмету. Существуют даже такие книги, как «Начало Lua с надстройками World of Warcraft» и «Программирование World of Warcraft: руководство и справочник по созданию надстроек WoW специально для World of Warcraft».

Узнать, как создавать или изменять различные элементы в клиенте WoW, сложно и требуется знание доступного API. Лучшие ресурсы для API, которые я нашел до сих пор, - это Wowpedia и WoWWiki.

Кроме того, отличный способ узнать, как это сделать, - взглянуть на файлы Lua в существующих надстройках, которые вы установили или которые доступны в Интернете. Имейте в виду, что пробег будет зависеть от того, что поддерживается в разных версиях клиента World of Warcraft.

Ограничения и обходные пути

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

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

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

Наконец, не столько ограничение, сколько соображение - это различия между возможностями API между версиями игры. Поскольку теперь у нас есть классический, ванильный (который сам по себе является несколькими версиями) и розничный, API не всегда одинаковы. Плагины необходимо будет протестировать и закодировать для работы на всех платформах или только на определенной платформе, поскольку не все созданы равными. Один из способов адаптации - это программное переключение путей выполнения аддонов в зависимости от версии игры, полученной из GetBuildInfo ().

Отладка

Пока вы разрабатываете, будет полезно оставаться в игре. Это позволяет вам включаться и выключаться, чтобы вносить некоторые изменения в надстройку, запускать / перезагружать, чтобы перезапустить пользовательский интерфейс и продолжить отладку. В большинстве случаев ваши изменения будут отражены, если вы не измените имена файлов или файл toc. Также будет полезно выполнить / console scriptErrors 1 во время сеанса кодирования, чтобы при возникновении ошибок Lua они отображались немедленно. Только не забудьте выключить его с помощью / console scriptErrors 0, прежде чем вернуться к нормальному игровому процессу. Как всегда, функции печати и сообщений станут вашим другом! Наконец, есть также несколько интересных дополнений, которые могут оказаться дополнительной помощью, включая BugSack и BugGrabber, которые «облегчают процесс просмотра ошибок».

Тестирование

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

Удивительный вариант, который доступен, - это WowUnit, который «позволяет вам легко писать модульные тесты для ваших надстроек World of Warcraft и предоставляет интерфейс для их мониторинга». Вероятно, это лучший выбор для большинства надстроек, требующих тестирования.

Наконец, для аддонов со значительной внутренней логикой вполне возможно использовать сам Lua для тестирования аддона, не требуя запуска клиента WoW. Это потребует имитации частей WoW API и использования интерпретатора Lua для запуска ваших тестов. Хотя это самый продвинутый вариант, он также будет наиболее расширяемым.

Издательский

Я предполагал, что аддоны нужно будет приобретать и устанавливать вручную. Однако клиент Twitch может автоматически устанавливать дополнения для вас, а также поддерживать их синхронизацию между машинами, используя свой клиент. Вам не нужно быть стримером, чтобы использовать его. Он работает вместе с Curseforge, каталогом дополнений для нескольких игр. С миллионами загрузок самых популярных дополнений я определенно рекомендую опубликовать их, чтобы получить доступ. Кроме того, я снова рекомендую использовать GitHub, чтобы позволить другим сотрудничать и помогать поддерживать ваш аддон. Если вас вдохновили на создание надстройки, вот инструкции по созданию и отправке проекта.

Последние мысли

Я начал эту статью, чтобы узнать больше о том, как аддоны работают в World of Warcraft. Я обнаружил надежную структуру со всеми инструментами, которые я мог ожидать от доступной мне среды разработки. Я разрываюсь между игрой и продолжением заглядывать под капот. Для WoW уже доступно множество аддонов, но я не встречал ничего такого, что казалось бы концом всего. Можно сделать гораздо больше, и есть возможности для улучшения. Если отклик на эту статью будет положительным, я обязательно рассмотрю возможность написания серии статей на эту тему.

Я никогда не сталкивался с World of Warcraft. Я играл в другие игры Blizzard как до, так и после ее выпуска, включая оригинальную серию Warcraft и Diablo. Я пропустил WoW по причинам, которые не могу полностью вспомнить. Во время шумихи вокруг «классики» я на мгновение попробовал «розницу» и внезапно остановился из-за переезда в новый дом. После того, как я узнал о «ванильных» серверах, мне захотелось сыграть снова, но я уже мысленно взял на себя обязательство дождаться официальных серверов. Классическая версия наконец-то была запущена 26 августа 2019 года, и я присоединился к ней, чтобы не пропустить два раза в жизни.

Прошли минуты, когда моя группа впервые сыграла в игру, и началась болтовня обо всех аддонах, которые им только что нужно было установить. В отличие от меня, они играли то и дело в течение последних пятнадцати лет, и ваниль, и в розницу. Не имея ни малейшего понятия, я поиграл несколько сеансов, прежде чем почувствовал зуд. Какие аддоны были и что они могли для меня сделать? У всех был такой большой опыт, что я подумал, что будет справедливо преодолеть этот разрыв. Я установил довольно много дополнений, чувствуя себя ребенком в кондитерской. Со всеми моими физическими недостатками я был крепко зацеплен.

Затем, из ниоткуда, мое любопытство взяло верх. Как все это работает ?!

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

Настройка среды разработки

Для разработки этого дополнения нам понадобится редактор. В предыдущих руководствах вам будут рекомендованы самые простые текстовые редакторы, которые будут работать, но мы можем сделать это лучше. Если у вас еще нет предпочтений, я бы рекомендовал загрузить Microsoft Visual Studio Code. Этого должно быть более чем достаточно для этого путешествия и позволит в будущем заниматься программированием. Я пересекся с плагинами vscode, рекламирующими поддержку как Lua, так и World of Warcraft, но редактора из коробки достаточно для того, что здесь необходимо. Изучите доступные расширения и примите собственное решение относительно их полезности.

Создание папки для аддона

Как вы будете управлять своим проектом в долгосрочной перспективе, зависит от вас. Я бы рекомендовал использовать GitHub для управления вашим кодом и обновлять локальный каталог надстройки только тогда, когда вы будете готовы протестировать новую версию, возможно, с помощью сценария развертывания. А пока, поскольку мы только начинаем, давайте просто поработаем из каталога Addons.

Если вы не изменили место установки по умолчанию, каталог World of Warcraft будет находиться либо в C: Program Files, либо в C: Program Files (X86) в Windows, либо в / Applications / на Mac. В зависимости от того, что вы установили, вы можете увидеть папки _classic_, _retail_ и _ptr_ в этом каталоге. Откройте _classic_ / Interface / Addons и создайте папку Sandbox. Родился аддон!

Создание оглавления

В папке Sandbox создайте новый текстовый файл с именем Sandbox.toc. Этот файл содержит необходимую информацию об аддоне для клиента WoW. Если вы когда-нибудь просматривали package.json, например, в проекте JavaScript, он служит той же цели.

Добавьте в файл следующее:

Правильное значение для интерфейса можно найти в игре, выполнив следующую команду: / run print ((select (4, GetBuildInfo ()))); На момент написания классическим является 11302. Если вы намереваетесь настроить таргетинг на розничную торговлю или обычную торговлю, обязательно обновите это значение.

После этого я считаю, что Название, Примечания, Автор и Версия не требуют пояснений. Есть довольно много других значений, которые я наблюдал в файлах toc, я бы порекомендовал заглянуть в другие надстройки, чтобы обнаружить их.

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

Аддон для азартных игр Wow

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

Написание кода

Дополнения World of Warcraft написаны на Lua, который позиционирует себя как «мощный, эффективный, легкий, встраиваемый язык сценариев». Освоение Lua не требует больших усилий, если у вас есть хотя бы один язык за плечами. В противном случае это будет отличный первый язык для изучения.

Чтобы начать кодирование на Lua, создайте файл Sandbox.lua в папке Sandbox, которую мы создали ранее, и добавьте следующий код:

Дополнительно выберите один из следующих примеров кода и добавьте его в самый конец файла:

Пробовать это

Пора запускать игру ... Не играть! Сосредоточьтесь! Когда вы входите в игру, должно произойти одно из двух. Если вы выбрали вариант А, вы должны увидеть «Hello World!» отображается в графическом окне:

Если вы выбрали вариант B, результаты будут более загадочными. Куда пропали грифоны?

Поздравляю! Ваш первый аддон готов!

Помимо основ

Есть гораздо более общее программирование, которое может быть выполнено внутри аддона, но я не буду здесь углубляться в Lua, так как уже существует множество книг для справок по этому предмету. Существуют даже такие книги, как «Начало Lua с надстройками World of Warcraft» и «Программирование World of Warcraft: руководство и справочник по созданию надстроек WoW специально для World of Warcraft».

Узнать, как создавать или изменять различные элементы в клиенте WoW, сложно и требуется знание доступного API. Лучшие ресурсы для API, которые я нашел до сих пор, - это Wowpedia и WoWWiki.

Кроме того, отличный способ узнать, как это сделать, - взглянуть на файлы Lua в существующих надстройках, которые вы установили или которые доступны в Интернете. Имейте в виду, что пробег будет зависеть от того, что поддерживается в разных версиях клиента World of Warcraft.

Ограничения и обходные пути

Аддон для казино Wow Classic

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

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

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

Наконец, не столько ограничение, сколько соображение - это различия между возможностями API между версиями игры. Поскольку теперь у нас есть классический, ванильный (который сам по себе является несколькими версиями) и розничный, API не всегда одинаковы. Плагины необходимо будет протестировать и закодировать для работы на всех платформах или только на определенной платформе, поскольку не все созданы равными. Один из способов адаптации - это программное переключение путей выполнения аддонов в зависимости от версии игры, полученной из GetBuildInfo ().

Казино Аддон Вау

Отладка

Пока вы разрабатываете, будет полезно оставаться в игре. Это позволяет вам включаться и выключаться, чтобы вносить некоторые изменения в надстройку, запускать / перезагружать, чтобы перезапустить пользовательский интерфейс и продолжить отладку. В большинстве случаев ваши изменения будут отражены, если вы не измените имена файлов или файл toc. Также будет полезно выполнить / console scriptErrors 1 во время сеанса кодирования, чтобы при возникновении ошибок Lua они отображались немедленно. Только не забудьте выключить его с помощью / console scriptErrors 0, прежде чем вернуться к нормальному игровому процессу. Как всегда, функции печати и сообщений станут вашим другом! Наконец, есть также несколько интересных дополнений, которые могут оказаться дополнительной помощью, включая BugSack и BugGrabber, которые «облегчают процесс просмотра ошибок».

Тестирование

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

Удивительный вариант, который доступен, - это WowUnit, который «позволяет вам легко писать модульные тесты для ваших надстроек World of Warcraft и предоставляет интерфейс для их мониторинга». Вероятно, это лучший выбор для большинства надстроек, требующих тестирования.

Наконец, для аддонов со значительной внутренней логикой вполне возможно использовать сам Lua для тестирования аддона, не требуя запуска клиента WoW. Это потребует имитации частей WoW API и использования интерпретатора Lua для запуска ваших тестов. Хотя это самый продвинутый вариант, он также будет наиболее расширяемым.

Издательский

Я предполагал, что аддоны нужно будет приобретать и устанавливать вручную. Однако клиент Twitch может автоматически устанавливать дополнения для вас, а также поддерживать их синхронизацию между машинами, используя свой клиент. Вам не нужно быть стримером, чтобы использовать его. Он работает вместе с Curseforge, каталогом дополнений для нескольких игр. С миллионами загрузок самых популярных дополнений я определенно рекомендую опубликовать их, чтобы получить доступ. Кроме того, я снова рекомендую использовать GitHub, чтобы позволить другим сотрудничать и помогать поддерживать ваш аддон. Если вас вдохновили на создание надстройки, вот инструкции по созданию и отправке проекта.

Последние мысли

Я начал эту статью, чтобы узнать больше о том, как аддоны работают в World of Warcraft. Я обнаружил надежную структуру со всеми инструментами, которые я мог ожидать от доступной мне среды разработки. Я разрываюсь между игрой и продолжением заглядывать под капот. Для WoW уже доступно множество аддонов, но я не встречал ничего такого, что казалось бы концом всего. Можно сделать гораздо больше, и есть возможности для улучшения. Если отклик на эту статью будет положительным, я обязательно рассмотрю возможность написания серии статей на эту тему.

ПОПУЛЯРНЫЕ СТАТЬИ