Wow как работает

Обновлено: 25.06.2024

Думаю есть ли смысл, или это эпоха прошла? Я лет 8 назад пробовал, поиграл пару месяцев но потом появились другие увлечения.

Жизнь уберегла тебя в свое время от героина, зачем ты пытаешься попробовать его второй раз осознанно?

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

+
Тоже стабильно залетаю на новые аддоны, но больше 2 месяцев там не провожу
Обычно апаю недостающие 10 лвл и бегу в ПП, потом ПР
А дальше это превращается в обычную рутину и бесконечным гриндом))
Иногда удивляюсь, как на ЛК мог годами искать для себя развлечения

Плюсану. Вкатился на старте в классик (в свое время не застал), вкусил атмосферу, за месяц взял 30лвл, сходил в пару данжей, потом что-то и не захотелось продлевать подписку.

вов жрет массу времени в новом смысле: таймгейты на уже готовый контент

Эпоха ммо в их первозданном виде, когда во главе стояло общение и эксплоринг, прошла. Сейчас все смещается к сессионности.
Но если хочешь попробовать, то почему бы и нет? За неделю прокачаешься, а там и новый аддон подъедет. Пойдешь вместе со всеми новый контент пробовать. ред.

Соня, вы классику проспали!

Классика да. Удовольствие через боль. Но факт фактом, в классике есть общение и эксплоринг.

когда апал вара были именно эти эмоции

Ну насчет боли такое, шаману без проблем прокачал. Ну тут главное не попасть в ловушку энха!

Я походу попал в ловушку энха) ну ооочень понравился)

Я умоляю а в актуале типо нету пойдешь пушить ключи высокие я погляжу как будешь все на интуиции делать

Сейчас в ммо запрещают общаться?

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

Сейчас из соло контента только Торгаст ключи с пугами иногда то еще занятие рейды тоже самое и да если типо Лфр то это не сложность

До 10 ключа молча регаешься в пати, молча проносишь ключ.
В героиках тоже самое. Увидел в поиске группу, нажал кнопку, тебя пригласили.
Перед некоторыми боссами перекинулся парой слов про тактику.
Это все общение для среднестатистического игрока, который не закрывает 10+ ключи или рейды выше героика.
В открытом мире других игроков вообще не замечаешь.
Поэтому я и говорю, что общение сосредоточено на высокоуровневых активностях и в гильдиях, где нужна слаженная группа

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

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

Да. Это было бы лучше.

И аук бы выпилили, заменили бы рынком.

О да а в классике как? типо собирайю пати в тот или инной инст очень хорошее общение у меня был опыт классики и могу сказать все это общение такое же как и в актуале добавь систему Лфг Лфг не Лфр в классику всего этого общения не будет все так же будут люди писать в сборах собираю ГЧГ Ходж Анролл поэтому не нужно вводить людей в заблуждение вот в классике общение есть поиск пати это не общение

Какие разговоры? о том чтобы собрать пати вся суть классики в прокачке а хай лвл контент как показала практика говно лютейшее когда я со своей Ги и несколькими пугами убили Рагну с первого пула ладно ок черт с ним с моей Ги люди приходили в зеленке без каких либо резов и убивали так в чем суть классики чтобы орать в чате и качать перса по миллион лет или в 14 ранге который зависит не от тебя а кто сколько надрочит? что мешает в актуале на хай энд контенте найти друзей правильно ничего а знаешь почему потому что вот залетаешь ты в ключики с одной пати тебе не везёт с другой наоборот и ты абсолютно так же можешь найти ребят для пуша высоких ключей просто бегая по ключам как я выше написал вся суть классике в нудной прокачке хотя скажем так сейчас если у тебя есть знакомый маг то прокачка займет 1-2 дня всё и все твоё знакомство,общение улетит в никуда

Все что ты сейчас написал актуально для нас с тобой. А теперь представь чувака, который в соло залетает в игру первый раз.
Вряд ли он на второй день после взятия 50го пойдет в героик или 10й ключ.
Если он настроен серьезно, то он найдет гильдию, где и сосредоточено сейчас общение, как я и написал ранее. Иначе он будет просто в соло не выкупать, как вообще попасть в хайенд активности

В классике же игрок с начальных уровней начинает взаимодействовать с другими игроками. Вот и все. Странно сравнивать игру 2004 года, где прокачка была частью геймплея и игру 2020 года, где прокачаться можно за 15 часов, а вся игра начинается на максимальном.

Как взаимодействовать чел понимаешь сейчас вся информация лежит в открытом доступе алё да сейчас даже куча аддонов есть и билдов как раскачивать понимаешь всё это осталось в прошлом это как вернуться в древние времена вот сейчас для нас 30 фпс это не комфорт раньше у нас и меньше был когда играли в компах и ничего человеку просто нужно уметь пользоваться гуглом или на крайняк есть Wowhead

Все, я потерял нить нашего диалога
Ты мне сейчас объясняешь, что сейчас нет разницы между новичком и прошаренным игроком из-за доступности информации? Так и есть, но мне кажется, что ты забыл себя, когда только начинал играть в эту игру.

Рагна это таргет дамми, а не босс(который к тому же был в мясину понерфлен еще во времена ванилы), ты пойди в последний актуальный рейд со своей ги и не просиди там 2+ часа, а потом говори как там все легко. Но даже в тот же МК, в пуги ходят онли с войсом, чего в ритейле и в помине нет.
14 ранг тоже просто так не берется, приходится общаться с остальными игроками на сервере, потому что внезапно за 14 выстраивается очередь, да и сам ты его никак не возьмёшь без коммуникации с другими игроками, и без примейдов с войсом.

Дада понерфлен а когда Накс пронесут за два часа тоже скажешь понерфлён все понефрелно а не то что игроки стали лучше и те тактики которые были в классике х. а по сравнению с актуалом да даже Азшара даст курнуть любому боссу и классики не говоря уже о Кж или Джайне

Ну да, люди по кд на пиратках убивали этих боссов.
Уверен даже сейчас китайцы тренируются.

сомневаюсь что 70-80% населения серверов сможет сразу полностью закрыть Накс, а то и в первые пару недель(на моем серве не более 10 гильдий АКУ закрыли полностью в первый месяц, а про пугорейды вообще молчу, 1 если и собирается уже счастье, в отличии от того же бвла, в который 5-6 пугорейдов собирается в неделю, и то люди его закрывают больше часа), в отличии от ритейла, где в героики через пару недель пуги собирают

Выстраивается в очередь вау охуенная система если человек лучше всех он должен стоять в очереди а не так у кого больше рейтинг тот и круче что мы наблюдаем на ритейле никаких очередей если ты круче то ты и будешь топ один не важно пвп,пве вау а в двойках ты возьмешь 2500 спокойно? ну я погляжу как на арене без войса не на присловутых 1400 а на норм рейтинге

да ты можешь быть мегонагибатором, сверх скилловым парнем, но в соло БГ ты не выиграешь, и в соло ты не выфармишь нужное количество хонора, а если и выфармишь, то в конце недели просто поднимут хоноркап(чтобы выкинуть тебя из брекета), и примейды его выфармят за один вечер, а тебе нужно будет фармить его 2 дня, а завтра уже среда.

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

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

О опять прохладные истории а 8 танков это как фрезы на Рагну?

вот только рагна был нерфлен, а накс был доступен менее полугода, и в ваниле с ним ничего сделать не успели, критичного

И да играть в игру которая мне заведомо не нравится скажи мне в чем мне стимул играть в устаревшее геймплейно дерьмо где вся ротация сводится к спаму одной кнопки? есть старые игры в которые приятно играть просто пример Герои 3 не смотря на то что они древние они по прежнему играются отлично в отличие от классики где только один контент рейд 5 ппл мусор в котором только пре Бис выбиваешь в остальное время кури бамбук в актуале сейчас торгаст для соло,двоек и пятерок,рейд,ключи а что там в классике правильно иди ходи в рейд на 40 ебал в надежде что бог рандома смилуется и среди 40 еблетов тебе выпадет шмотка

да в ритейле значимость шмоток и лута очень упала, игроков им просто засыпают, и это печально

Сейчас из соло контента фарм трансмога, маунтов, ачивок, петов и тд. Вов уже давно не ограничивается одним лишь дрочем данжей и арен. Соло активностей гораздо больше.

Ну есть и такие люди согласен раньше закрыл рейд и все сиди кури бамбук ну или на крайняк реагенты собирай для некст рейда

Я купил себе на старте BFA и дропнул ее спустя пару месяцев, выкачав персонажа на макс уровень а потом тупо не найдя себе занятия7
Потом уже под конец дополнения (где-то этим летом) друзья позвали побегать по "Ключам" и я мягко говоря подохренел увидев сколько контента я скипнул и сколько всего оказывается на самом деле было в игре
Убил немало времени на открытие некоторых "особых" достижений, до-прохождение сюжетных линий, даже попробовал себя в профессиях (которые обычно скипал в демо-игре)

Правда из-за того что все массово сказали "ХАТИМ ИГРАТЬ ЗА АРДУ" и ливнули с альянса, моя жопа сказала "Хочу приключений" и понесла меня на ролевой сервак откуда я чет уже и не хочу выбираться)

Главное взять за правило - если тебе надоел один тип контента, надо рискнуть попробовать себя в чем-то еще. Впринципе за счет этого Вовч меня уже полгода как нормально держит)

Думаю зависит от того, найду ли я интересных людей или клан. По сути выбор сервера оказывается основополагающий момент.

О, да
С этим тоже постоянно проблема была
Каждый раз как я находил гильдию, интерес к игре моментально улетучивался (я так с классики в последний раз вылетел)

Но серьезно - у РПшников действительно чет дольше положенного сижу)

Есть возможность поиграть бесплатно, прокачав перса до 20 лвл. С недавним обновлением близы добавили новую стартовую локацию, которая логически подводит к сюжету BFA. Поиграй сам и поймешь, стоит ли продолжать.

Как человек, наигравший в молодости в неё 800 дней,(бк лич катку пандарию) вроде, могу сказать, что это пустая трата времени. Бывает и меня тянет, даже иногда захожу поглядеть (там можно до 20лвла бесплатно). Но времени нет) ред.

Игры впринципе это пустая трата времени

А что не пустая?

Бухать и баб ебать, очевидно же

Попробуй FFXIV и WoW, а потом уже выбери себе что-то одно.

Про ФФ я забыл, спасибо.

Я бы тогда еще TESO посоветовал бы попробовать

Честно, в Скайрим я наигрался. А тут те же яйца.

Похоже раве тем что лор один,а так геймплей и прокачка совсем отличаються

Нет. В игры-сервисы надо начинать играть на старте или в первые месяцы после релиза. А не в игры, которые существуют годы. Догнать по шмоту и скилу задротов с опытом 10+ лет не получится. Или получится, если забыть про реальную жизнь и задротить месяцами.

ИМХО мне допустим не интересен шмот и задрачивание эпохальных данжей и рейдов.
Ключи я не знаю это вообще диабло какой-то, а рио так называемый?! Чтоб всякие челики мерялись этим в чате, ага. Нарейдился в Teso за 4 года, и в вововских рейдах ничего нового для меня нет. Мне 415 итема с фронта на мэйне хватало за глаза для моих целей например это в частности фарм маунтов(205штук за год), качаю персов(24 штуки 120лвла, уже 50)делаю ачивки интересные мне, прохожу контент. Это ММО тут каждый найдет себе занятие по душе, так что не говорите за всех :3

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

Попробуй бесплатно месяц.

Можешь попробовать, но береги время. Оно там пролетает только так

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

Всё к этому и идёт.

А почему нет, единственная живая ммо которая получает кучу обновлений и контента. Даже просто побегать будет весело

Сейчас прям идеальный момент. Качество жизни подняли, да и через неделю новый аддон. Можешь на месяц подписку купить, посмотреть что как, а потом уже в ШЛ залететь.

Dark Messiah, сейчас как бы самый подходящий аддон выходит для этого. прокачку ускорили, для новичков сделали новый остров там где они начинают своё путешествие . на этом острове им разжёвывается всё и тп. ввели возможность старым игрокам помогать новичкам в плане советов и тп. ввели для этого отдельный чат. ввели более простую прокачку между 10 лвлом(1-10 ты прокачиваешься на этом острове) и 50 лвлом(50-60 лвл - этап нового аддона Шадоулендс) где на 10-50 ты прокачиваешься в рамках одного аддона что более удобно.
Так что самое время. более удачного аддона в этом плане думаю не будет.

Играть стоит, но познавать полный лор игры - боль, ибо текстурки в старых локах ужасают. Построение квестов - угнетает. В новых аддонах, с Дренора - уже и текстурки и интересность подвезли. Если просто играть - всё ок. Никто не заставляет задротить. ПВЕ данжи - сделали поиск и всё просто и интересно. Рейды - та же тема. Можно конечно искать стаки, для более высокой сложности, но это если хочешь. ПВП - тоже, не обязательно стак искать, если просто фанишься.

Так же верно подмечено - ТЕСО - Свитки онлайн. Несколько классов, которые дают Базовые скилы 5 штук+ульта. Это один бар скилов, и есть ещё один бар 5+1 ульта. Скилы получаешь от прокаченной брони, оружия, вампиризма и прочего. Можешь комбинировать - маг в латах с кинжалами, а на втором баре меч+щит. Прям очень спокойно играется как одна большая сингловая игра по свиткам.

World of Warcraft: одна строка кода, чтобы потерять все


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


Интерфейс WoW (например, строка меню, окно чата и другие 2D графические элементы) и также дополнения написаны на языке Lua. Обе стороны строки — RemoveExtraSpaces и также RunScript — легальные функции и часть WoW Lua API. Но введение этой строки кода в диалоговом окне изменяет поведение интерфейса WoW.

Что делает эта команда на самом деле?

/run — команда для интерпретации следующего текста как сценария Lua.
RemoveExtraSpaces — встроенная функция, которая удаляет ненужные пробелы из текста.
RunScript — функция, которая выполняет текст в качестве кода Lua (аналогично команде /run )

Чем это опасно?

Неосторожный игрок вводит в своем диалоговом окне вредоносную строку кода, потому что его убедили слова нападавшего. Но вместо того, чтобы получить редкие предметы, он становится жертвой.

Временное скрытие и сохранение команды



Атакующий устанавливает новый канал передачи данных

Для того, чтобы понять цель этой команды, нужно знать что в WoW есть возможность общаться с помощью скрытого канала (локально и удаленно). Этот канал установлен через использование событий “CHAT_MSG_ADDON”.


Сценарий создает фрейм (строка 2), к которому можно установить различные свойства. Сценарий регистрирует события CHAT_MSG_ADDON с конкретным префиксом (строка 6 и 25). Только тот, кто знает выбранный префикс, может тайно управлять интерфейсом жертвы. Это все равно что пароль для бэкдор.

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

Вывод: пока злоумышленник не решит Вам показать, что происходит, Вы, к сожалению, про это не узнаете.

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

Какой вред может быть причинен?

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

Как можно себя защитить?

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

В данном примере мы говорили об атакующем персонаже в игре, кто принадлежал к популярной гильдии. Но по факту он не принадлежал к этой гильдии. Он выбрал известную гильдию и скопировал имя, заменив “L” на “I”. Возможно, Вы уже знакомы с такими методом фишинг-атак.

Кроме того, будьте осторожны при загрузке дополнений используйте защищенные и популярные веб-сайты, сохраните свои дополнения, чтобы их можно было в любой момент заменить. Возможно, что некоторые из этих обновлений могут уже содержать вредоносный код. Подобная проблема была замечена в 2014, когда так называемый “ElvUI Backdoor” был обнаружен в одном из дополнений.


Создание несложного бота для WoW, программирование маршрутов

Я отлично понимаю, что использование ботов запрещено лицензионным соглашением Blizzard. Это может привести к перманентному бану аккаунта. Я бы расстроился, узнав, что кто-то, воспользовавшись материалами данного поста, стал наживаться, ухудшая экономику игры и вызывая неодобрение других игроков. И да, я понимаю, то, что делаю я, нечестно.

Цель поста — рассказать о моем опыте и описать сложности, с которыми я столкнулся, узнать у вас, что можно было сделать лучше.

Предыстория
Коллекционирование

Люди, далекие от индустрии игр, могут без ущерба пропустить этот раздел. В игре WoW есть такой аспект — коллекционирование. Как и в нумизматике/филателии, чем больше у вас, например, верховых животных, тем вам приятнее. Точно так же важен процесс получения. Какие-то драконы требуют для получения выполнения десятка задач («ачивок»), какие-то — войти в лучшие 2% игроков в мире по навыку управления персонажем (сражения на арене), что-то можно просто купить за игровую валюту, что-то — за реальные деньги в магазине. Подробности можно почитать в другом источнике, речь не об этом. Так вот, некоторые из коллекционируемых предметов падают в подземелье с шансом около 0,5%. Если шанс выпадения дается игроку лишь раз в день (иногда в неделю), вам потребуется время, соизмеримое с годом, для забегов. И все ради того мгновения получения заветного выстраданного предмета. Чем больше вы потратили времени и сил на "фарм" предмета, тем приятнее вам его в итоге получить. По моему опыту радость очень мимолетна.

Зависимость шанса выпадения от количества попыток

Небольшое отступление. Какова вероятность того, что за шесть бросков игральной кости выпадет «6»? Очевидно, что . То есть, наше событие является противоположным событием к невыпадению «6» за все шесть попыток.
Используя второй замечательный предел, нетрудно показать, что .

А вероятность получения коня с шансом «дропа» в 1% за 100 попыток примерно равна 63%.

Некоторые игроки, сделав триста попыток считают, что вот-вот повезет — ведь вероятность облома за такое большое число попыток мала. Их ждет разочарование, ведь за следующие 100 им повезет снова лишь на 63%. А старые труды не дают ничего.

Задача

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


Карта подземелья и маршрут:

Задача максимум. Запустил и ушел на пол часа. Процесс полностью автоматический.

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

Важно иметь возможность при желании описать маршрут другого подземелья, не залезая в код.

Подход
Движение и позиционирование
  1. Вам требуется воспроизвести первоначальное положение персонажа и направление его взгляда. Если вы перед автоматическим забегом повернетесь слегка в другую сторону, вы побежите кривовато и рано или поздно упретесь в стенку
  2. Если вы записали точные координаты и угол, то поставить персонажа туда же вам также не удастся. Реагирует на кнопки он как бульдозер и поворачивается так же. А даже ошибка в 1 градус через 100 метров выльется в метра (ширина дверного проема)
  3. Время нажатия и отпускания кнопок тоже далеко от идеала. Это похоже на передвижение по квартире с закрытыми глазами. Вроде бы шесть шагов вперед и строго направо, но на деле вместо туалета мы оказываемся в ванной. Попробуйте также открыть дверь с закрытыми глазами, не щупая ручку


Это отрывок из списка команд робота по перемещению. Указаны координаты x, y и угол поворота в пространстве в радианах.

Клавиши и команды

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


Отдельно упомяну про «pitch» (наклон). Если персонаж смотрит в горизонт, он равен нулю. Если под ноги, наклон отрицателен. А в небо — положителен. Измеряется в радианах. Его пришлось добавить, как только персонажу захотелось летать.

Модули
  1. Мы напишем addon для интерфейса WoW, который будет определять позицию персонажа, азимут, наклон. Правилами игры аддоны ничуть не запрещены, указанная информация доступна через игровое API внутри аддона. Он будет рисовать это все на экране. Сам аддон пишется на языке Lua, потому что так решили разработчики игры.
  2. В аддоне можно определять кое-что, можно рисовать, но вот заставить персонажа двигаться нельзя. Еще в аддоне нельзя писать в файл, спрашивать у игры, где стены, где враги, да и много чего еще нельзя. Поэтому нам нужно написать внешнее управляющее приложение. Я не стал оригинальничать и использовал AutoIt. Это действительно быстро и удобно, хоть и немного дико для меня, привыкшего программировать на строго типизированных языках.
    • Приложение должно уметь записывать мои действия. Назовем этот функционал Recorder
    • Приложение должно уметь воспроизводить запись. Назовем Player
  3. Записанные действия и координаты мы будем хранить в текстовом файле построчно. Их можно и нужно редактировать вручную. Добавлять костыли, удалять мусор. Скажу сразу, это самое сложное.
Addon для WoW на Lua

Аддон для WoW это скрипт на языке Lua. Язык полноценный, гибкий, эффективный. Делать с системой ничего нельзя. Делать с игрой можно все, но только в рамках того API, которое предоставляет вам игра. Так как Blizzard не хочет, а точнее, запрещает игрокам и предпринимателям писать ботов, то и API кроме упомянутых выше координат почти ничего полезного и не предоставляет. Разумеется, полезного для наших нужд. Неплохой гайд по написанию аддонов сразу с описанием Lua можно найти здесь. Ну а я опишу свой вариант.

Манифест и GUI

Подробности и источник. В папке World of Warcraft\Interface\AddOns\ создаете папку HelloWorld. В нее кладете HelloWorld.toc с содержимым


Если бы я хотел понарисовать формочек и кнопочек (а для этого обычно и нужны аддоны), последней строчкой я бы вписал еще HelloWorld.xml с описанием этих кнопочек. В дизайне и написании такого GUI-аддона хорошо помогает AddOn Studio. Мощный инструмент на базе MS Visual Studio.

Но так как я минималист, рисовать мы в этот раз не будем. Кроме того, это даст мне возможность показать, что создавать формы можно динамически из самого скрипта без использования дизайнера. Рассмотрим же HelloWorld.lua. Редактировал я его в Notepad++. Чтобы игра подключила изменения в HelloWorld.toc, надо перезапустить ее целиком. А вот изменения в HelloWorld.lua можно подхватить, написав в консоли команду /reload. Поэтому процесс программирования и отладки не такой болезненный.

Слеш-команды

Кстати, об отладке. Советую сразу добавить обработчик слеш-команд:


Для этого определим переменную вида SLASH_ИМЯn. Где ИМЯ уникально для всех аддонов, а n либо пусто, либо порядковое число с 1. И добавим функцию с именем ИМЯ в некий объект. Может показаться странным для программиста на C++, что мы эту функцию-обработчик нигде явно не регистрируем. Да и со строковой переменной связываем чисто по имени переменной. Но вот такая она, мощь и магия Lua.

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

Ну и тут же я показал WoW API, которое достает требуемую информацию.

Обработчик событий


Мы создаем фрейм типа "Frame" и подключаемся на действия "OnEvent" и "OnUpdate" командами


Обработчик OnUpdate будет вызываться после каждого кадра — то, что нам нужно для обновления координат. А OnEvent будет вызываться при других желаемых событиях. Из него будем дергать соответствующие функции:


Что еще удобнее в Lua, это то, что вот такой конструкцией можно вызвать уникальные обработчики вида


Здесь PLAYER_LOGIN — это событие, которое рассылается во все фреймы при входе в мир и перезапуске пользовательского интерфейса. Другие события: PLAYER_LEAVE_COMBAT, QUEST_FINISHED, PLAYER_EQUIPMENT_CHANGED, PLAYER_DEAD, — и еще очень много. С полным списком можно ознакомиться тут. Зарегистрируем то событие, которое мы хотим обрабатывать, командой

Передача информации

Так как в аддоне нельзя ничего делать с системой, информацию из WoW другой части бота мы будем передавать при помощи изменения цвета пикселей. Как это делал rednaxi в своем посте. Но только мы будем передавать цветом не один бит информации, а будем сериализовать данные и передавать их больше.

Рисование

Так как для рисования тоже нужны фреймы, создадим их


Думаю, тут все понятно и без комментариев. Подробности по каждому методу ищите сами.

Сериализация

У нас есть две координаты и два угла. Все — числа с плавающей запятой. Компоненты цветов пикселей в аддоне тоже числа с плавающей запятой, но от 0.0 до 1.0. Кроме того, известно, что сохранится компонента цвета в одном байте. Поначалу я каждую координату сохранял в одну компоненту цвета. В итоге точность позиционирования в локации составляла 1/255 от размера карты. Получалось как в GPS: вроде координаты есть, но вести машину на автомате (управление компьютером без человека) по дороге по навигатору не выйдет. Так что пришлось давать два байта. Как повыгоднее сохранить одно дробное число в два байта? Я сделал так


Функция modf возвращает целую и дробную часть числа через запятую. Здесь используется параллельное присваивание — еще одна полезная фишечка Lua.

При таком подходе я использую полную мощность каждого из двух байтов, в которые сохраняется координата. Ну а азимут и наклон не так требовательны к точности, лишь бы укладывались в отрезок 0.0-1.0. Получается вот так:


Теперь при перемещении по миру в левом верхнем углу два квадратика 10 на 10 будут хаотично менять свой цвет.

Wow как работает

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

Ссылки на конкретные конструкции, модели, производителей и (или) модификации кораблей и самолётов использованы исключительно с целью соблюдения исторического соответствия и не предполагают какого-либо финансирования или иного участия в проекте обладателей прав на товарные знаки. Характеристики всех моделей реалистично воспроизведены на основе тактико-технических элементов боевых кораблей и самолётов первой половины ХХ века. Все относящиеся к кораблям и самолетам товарные знаки и права на них являются исключительной собственностью соответствующих правообладателей

Читайте также: